MSO
History 1
Unified Process 3
Inception 3
Elaboration 4
Construction 4
Transition 5
Requirements 6
Elicitation 6
Specification 7
Validation and verification 8
Abstract classes 8
UML 9
Activity diagram 9
Class diagram 10
Sequence diagram 11
Object-Oriented Design 12
Analysis 12
Design 14
Design Patterns 17
Facade 19
Adapter 19
Strategy 20
Bridge 22
Abstract factory 23
Decorator 25
MVC 26
Observer 27
Template method 27
Factory method 28
Singleton 29
Object pool 29
Composite 30
Iterator 31
More design 32
Refactoring 33
Testing 34
,History
1940 - 1960 Pioneers era, technical field
1960’s Waterfall model
- 5 consecutive phases
1. Requirements analysis
2. Design
3. Coding and debugging
4. Testing and verification
5. Maintenance
- Advantages: structured, clear and understandable phases and a
focus on documentation and testing
- Problems: aims to complete every phase before moving on to the
next one, which makes it unable to deal with change and users are
only involved late into the project
1970 - 1980 Software systems more mainstream, growing criticism of waterfall,
introduction of waterfall variants (sashimi model)
1980’s Prototype, discard and re-build
Spiral model Boehm
- Iterative waterfall with a lot of focus on risk
- Advantages: iterative, risk focused, flexible, early user testing
- Problems: complex, unclear and spirals out of control
(procrastination)
1
,1990 - 2000 Waterfall reimagined: V-Model
Emergence of agile methods
- Advantages: customers closely involved, adaptive, reduced risk
- Problems: resources not optimally used, more beneficial to
management than developer (too many meetings), fragmented
features
- Examples: Rational Unified Process (RUP), RAD, DSDM, ASD, FDD,
MoSCoW, Scrum, Extreme Programming
2
, Unified Process
- Emphasises iterative software development
- Develop software in time-bound mini-projects called iterations with clearly
defined milestones
- Output of an iteration is a usable subset of the final system
- An iteration may occasionally be revisited to adapt to feedback from
stakeholders
- Use case driven
- Common elements:
- Requirements, analysis and design
- Modelling and design patterns
- Integrations
- Verification and validation
Stakeholders End users, project management, upper management, implementers, testers
Phases of UP
1. Inception: define the scope of the project
2. Elaboration: plan the project, specify features, baseline architecture
3. Construction: finish the construction
4. Transition: hand over the project to end users
- These phases do not overlap, but the various types of activities in these phases (e.g.
business modeling, analysis & design, implementation, etc.) do overlap in time
Agile (vs UP)
- Agile (Scrum for example) puts individuals and interactions before processes and tools
- Prototypes are more important than comprehensive documentation
- Customer collaboration rather than contract negotiation
- Respond to change rather than following a clearly defined plan
Inception
Best practices:
- Involve users early
- Manage requirements
- Visually model software (UML)
- Verify software quality (test, code reviews)
- Embrace change
Goals
- Envision the product scope, vision and business case
- Stakeholders should have a basic agreement on the vision and are able to decide
whether to continue or not
- Inventorize use cases, write a brief description of each one
- A project cost estimate is provided
3