Download presentation
Presentation is loading. Please wait.
1
Software Architecture
Prof. Bertrand Meyer, Dr. Michela Pedroni ETH Zurich, February-May 2010 Lecture 2: The software lifecycle
2
Software lifecycle models
Describe an overall distribution of the software construction into tasks, and the ordering of these tasks They are models in two ways: Provide an abstracted version of reality Describe an ideal scheme, not always followed in practice
3
Lifecycle: the waterfall model
Feasibility study Requirements Specification Royce, 1970 (original article actually presented the model to criticize it!) Global design Detailed design Succession of steps, with possibility at each step to question and update the results of the preceding step Implemen- tation V & V Distribution
4
REQUIREMENTS ANALYSIS
A V-shaped variant FEASIBILITY STUDY DISTRIBUTION SYSTEM VALIDATION REQUIREMENTS ANALYSIS SUBSYSTEM VALIDATION GLOBAL DESIGN UNIT VALIDATION DETAILED DESIGN IMPLEMENTATION
5
Arguments for the waterfall
(After B.W. Boehm: Software engineering economics) The activities are necessary (But: merging of middle activities) The order is the right one.
6
Merging of middle activities
Feasibility study Requirements Specification Global design Detailed design Implemen- tation V & V Distribution
7
Arguments for the waterfall
(After B.W. Boehm: Software engineering economics) The activities are necessary (But: merging of middle activities) The order is the right one.
8
Problems with the waterfall
Feasibility study Requirements Specification Late appearance of actual code. Lack of support for requirements change — and more generally for extendibility and reusability Lack of support for the maintenance activity (70% of software costs?) Division of labor hampering Total Quality Management Impedance mismatches Highly synchronous model Global design Detailed design Implemen- tation V & V Distribution
9
Lifecycle: “impedance mismatches”
As the Project Leader defined it As Management requested it As Systems designed it As Operations installed it What the user wanted As Programming developed it (Pre-1970 cartoon; origin unknown)
10
A modern variant
11
The spiral model (Boehm)
Apply a waterfall-like approach to successive prototypes Iteration 3 Iteration 1 Iteration 2
12
The Spiral model
13
“Prototyping” in software
The term is used in one of the following meanings: 1. Experimentation: Requirements capture Try specific techniques: GUI, implementation (“buying information”) 2. Pilot project 3. Incremental development 4. Throw-away development (Fred Brooks, The Mythical Man-Month, 1975: “Plan to throw one away, you will anyhow”).
14
The problem with throw-away development
Software development is hard because of the need to reconcile conflicting criteria, e.g. portability and efficiency A prototype typically sacrifices some of these criteria Risk of shipping the prototype In the “anniversary” edition of his book (1982), Brooks admitted that “plan to throw one away” is bad advice
15
Seamless, incremental development
Seamless development: Single set of notation, tools, concepts, principles throughout Continuous, incremental development Keep model, implementation and documentation consistent Reversibility: can go back and forth These are in particular some of the ideas behind the Eiffel method
16
Seamless development Single notation, tools, concepts, principles
Example classes: PLANE, ACCOUNT, TRANSACTION… Analysis Single notation, tools, concepts, principles Continuous, incremental development Keep model, implementation and documentation consistent Reversibility: go back and forth STATE, COMMAND… Design Implemen- tation HASH_TABLE… TEST_DRIVER… V&V Generali- zation TABLE…
17
G Generalization A* Prepare for reuse. For example:
D I V A* Prepare for reuse. For example: Remove built-in limits Remove dependencies on specifics of project Improve documentation, contracts... Abstract Extract commonalities and revamp inheritance hierarchy Few companies have the guts to provide the budget for this B X Y Z
18
Finishing a design It seems that the sole purpose of the work of engineers, designers, and calculators is to polish and smooth out, lighten this seam, balance that wing until it is no longer noticed, until it is no longer a wing attached to a fuselage, but a form fully unfolded, finally freed from the ore, a sort of mysteriously joined whole, and of the same quality as that of a poem. It seems that perfection is reached, not when there is nothing more to add, but when there is no longer anything to remove. (Antoine de Saint-Exupéry, Terre des Hommes, 1937)
19
Reversibility Analysis Design Implemen- tation V&V Generali- zation
20
The cluster model Cluster 1 Cluster 2 A D A I D A V&V I D G V&V A I D
21
Extremes “Clusterfall” “Trickle” A D I V&V G A D I V&V G A D I V&V G
22
Dynamic rearrangement
Cluster 1 A D I V&V G Cluster 2 A D I V&V G Cluster 3 A D I V&V G A D I V&V G Cluster 4
23
Order of clusters Bottom up: start with most fundamental functionalities, end with user interface A D I V&V G Cluster 3 A D I V&V G Cluster 2 A D I V&V G Cluster 1
24
Seamless development with EiffelStudio
Diagram Tool System diagrams can be produced automatically from software text Works both ways: update diagrams or update text – other view immediately updated No need for separate UML tool Metrics Tool Profiler Tool Documentation generation tool ...
25
CMMI: maturity levels*
Initial Managed Defined Quantitatively Optimizing Level Process Characteristics Management Visibility Out In Process is unpredictable, poorly controlled, and reactive Process is characterized for projects and is often for the organization and is proactive Process is measured and controlled Focus is on continuous quantitative improvement A way to describe Management's Visibility into the existing software process at the various maturity levels Initial : Process is an amorphous blob - Visibility into the process is difficult - We know that inputs go in, there is a lot of motion, and outputs come out Managed: The process can be viewed as a succession of black boxes that allow management visibility only at transition points (milestones or phase reviews) Can only make changes at the end of a phase Defined: Organization Standard Software Process - Management can now see what is happening within each software development phase allowing more effective risk management Quantitatively Defined software processes are instrumented and controlled Managed: quantitatively - Can make changes within a phase for single causes of variation Optimizing: Causal analysis - Defect prone processes are replaced or revised - Common causes of variation are detected and eliminated *Slide by Peter Kolb, from our course “Distributed and Outsourced Software Engineering”
26
Agile/lean methods and extreme programming
De-emphasize formal process De-emphasize design, emphasize refactoring Emphasize short-cycled, time-boxed iterative development Emphasize the role of tests to guide the development (“TDD”, Test-Driven Development) Emphasize the benefit of a second set of eyes: Pair programming Emphasize self-organizing teams Emphasize customer involvement
27
Open-source processes
Collaborative, distributed developments Concentric trust circles Success with strong project leader (e.g. Linux) “Given enough eyes, all bugs are shallow”
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.