Download presentation
Presentation is loading. Please wait.
Published byHoward Walter Lambert Modified over 9 years ago
2
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010. They may not show up well on other PowerPoint versions. You can download PowerPoint 2010 viewer from here.here These slides contain a lot of animations. For optimal results, watch in slideshow mode.
3
A success story: Damien is working for a technology startup. He is part of a 5-member team, all good buddies of each other and work was fun. It was a critical project for a major overseas client. The product is a novel proof-of-concept proxy server. As the team enters the last two weeks of the project, they are one week ahead of schedule and has one week allocated for integration and testing. i.e., they have two weeks to do the work of one week. They decide to do a quick integration and take the extra week off to celebrate the first release…
5
UI MSLogic Storage History UI MSLogic Storage History
8
Due to miscom
10
How to Avoid a Big Bang: Integrating Software Components CS2103/T, Lecture 6, Part 2, [Sep 18, 2015]
11
How to Avoid a Big Bang: Integrating Software Components CS2103/T, Lecture 6, Part 2, [Sep 18, 2015]
12
How to Avoid a Big Bang: Integrating Software Components An approachA tool
14
[Extra] Integration Work in parallel Logic UI Search Cache Storage
15
[Extra] Integration Work in parallel Logic UI Search Cache Storage Integrate Search Logic Cache Storage UI
16
Logic UI Search Cach e Storage Logic UI Search Cache Storage Logic UI Search Cache Storage Search Logic Cache Storage UI Late and one-time Integration
17
Logic UI Search Cach e Storage Logic UI Search Cache Storage Logic UI Search Cache Storage Early and frequent Integration
18
Late and one-time Integration
19
Early and frequent Integration Late and one-time Integration ?
20
Early and frequent Integration Late and one-time Integration
21
Early and frequent Integration Late and one-time Integration
24
Logic Search Cache Storage UI Logic Search Cache Storage UI Search Logic Cache Storage UI
25
[Extra] Top-down Integration Logic Search Cache Storage UI Logic Search Cache Storage UI Cache Storage Stubs
26
[Extra] Bottom-up Integration Logic Search Cache Storage UI Logic Search Cache Storage UI Driver
27
[Extra] Sandwich Integration Logic Search Cache Storage UI Logic Search Cache Storage UI Search Driver
28
[Extra] Big bang Integration Logic Search Cache Storage UI
29
[extra] Boom!
31
Incremental NOT big bang ( top-down, bottom-up, sandwich )
33
Incremental NOT big bang ( top-down, bottom-up, sandwich )
34
Incremental NOT big bang ( top-down, bottom-up, sandwich )
35
Incremental ly, early, frequently NOT big bang
38
How to Avoid a Big Bang: Integrating Software Components An approach A tool
40
RCS
41
Remote repo Centralized CVS SVN (Subversion)
42
RCS Remote repo Centralized Distributed CVS SVN Git (Mercurial) Hg Bazaar Remote repos
43
RCS Remote repo Centralized Distributed CVS SVN Remote repos Git (Mercurial) Hg Bazaar
44
Git commandline C:\CityConnect>git remote add origin https://github.com/cs2103jan2014-w09-1j/main.git C:\CityConnect>git push master origin Username for 'https://github.com': damithc Password for 'https://damithc@github.com': Counting objects: 3, done. Writing objects: 100% (3/3), 225 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/cs2103jan2014-w09-1j/main.git * [new branch] master -> master C:\CityConnect> push John init add remote GitHub repo John
45
C:\>git clone https://github.com/cs2103jan2014-w09-1j/main.git CityConnect Cloning into ‘CityConnect'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. C:\> push JohnAmy clone init GitHub repo
46
Git commandline C:\CityConnect>git commit -a -m "added support for add feature" push JohnAmy clone init GitHub repo
47
Git commandline C:\CityConnect>git commit -a -m "added support for add feature" C:\CityConnect>git push origin master push JohnAmy clone init GitHub repo John Amy
48
Git commandline Git repo C:\CityConnect> git fetch origin push John fetch init
49
Git commandline C:\CityConnect> git merge origin/master push John fetch merge init GitHub repo (pull ≈ fetch + merge) C:\CityConnect> git pull
50
push John fetch merge init GitHub repo
51
Remote repo push fetch clone commit init merge
54
How to Avoid a Big Bang: Integrating Software Components An approach A tool
55
How to Avoid a Big Bang: Integrating Software Components An approach A tool
57
UI MSLogic Storage History Start with a ‘walking skeleton’
58
UI MSLogic Storage History Start with a ‘walking skeleton’
59
UI MSLogic Storage History Adopt RCS gradually
60
Pull request Branches Pull request
61
https://github.com/ collate/collate
63
How to Avoid a Big Bang: Integrating Software Components An approach A tool
64
Framework Platform Specify requirements… Textual descriptions Feature list User stories Use cases OO domain models Object diagrams State machine diagrams Activity diagrams UI prototypes Glossary Supplementary requirements … Combat complexity… Use abstraction, build models System Detailed design BAC D Possible Improvements: Apply OO principles Apply analysis patterns Categorize and prioritize requirements Possible Improvements: ↑Cohesion, ↓Coupling Apply design patterns (Abstraction Occurrence, Singleton, Command, Observer) Apply design principles (Open/close, Law of Demeter, Separation of concerns, …) Use polymorphism (inheritance, interfaces, dynamic binding) Good product design guidelines (e.g., usability, …) Possible Improvements: Refactor code Coding standards and good coding practices Protect code using assertions, exceptions, logging, and defensive coding. Build automation Possible Improvements: Automate testing Use Test-Driven Development isolate SUT using drivers, stubs and dependency injection Increase efficiency and effectiveness of testing (Equivalence partitioning, Boundary Value analysis) Increase test coverage (function/entry/exit/statement/branch/ condition/path coverage) Unit testing Integration testing System testing Acceptance testing Alpha/beta testing Developer testing Made up as you go → Exploratory testing Predetermined → Scripted testing Can be created in these ways: o Black-box, Glass-box, Grey-box = Validation & Verification Testing Other V&V techniques: formal verification static analyzers code reviews … Unified process Agile processes B API (Application Programming interface) Architecture styles such as n- tier, client-server, peer-to-peer, broker, pipes-and-filters, service-oriented, transaction- processing, and MVC Top-down design Bottom-up design Integration Can be late-one- time, or early- and-continuous Can be top- down, bottom- up, sandwich, big-bang y x z yx z operations Class diagrams Sequential Iterative Breadth- first Depth- first Work-breakdown structures Project plans Team structures C A B D BA D Sequence diagrams Architecture After modifications… Regression testing Includes buffers and milestones Chief-programmer Egoless Strict hierarchy XP (Complex) Problem domain Establish requirements… brainstorming Focus groups User surveys Product surveys Observations Interviews Prototyping More agile -> less upfront detailed design ANALYSIS DESIGNIMPLEMENTATIONQUALITY ASSURANCE PROJECT MANAGEMENT Library QA User Issue trackers Detailed design Test cases Scrum CMMI RCS We use OO to ‘align the view’. We use UML as the standard notation. Stakeholders Requirements Specification System Specification IDEs, Debugging
65
Let’s get started on the coding
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.