so ware architecture
play

So#ware Architecture Prof. Bertrand Meyer, Dr. Michela Pedroni ETH - PowerPoint PPT Presentation

Chair of Software Engineering So#ware Architecture Prof. Bertrand Meyer, Dr. Michela Pedroni ETH Zurich, FebruaryMay 2010 Lecture 2: The software lifecycle Software lifecycle models Describe an overall distribution of the software


  1. Chair of Software Engineering So#ware 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 2

  3. Lifecycle: the waterfall model Feasibility study Requirements Royce, 1970 (original article Specification actually presented the model to criticize it!) Global design Detailed design Succession of steps, with possibility at each step to question and update Implemen- tation the results of the preceding step V & V Distribution 3

  4. A V-shaped variant FEASIBILITY STUDY DISTRIBUTION SYSTEM REQUIREMENTS VALIDATION ANALYSIS SUBSYSTEM GLOBAL DESIGN VALIDATION UNIT DETAILED DESIGN VALIDATION IMPLEMENTATION 4

  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. 5

  6. Merging of middle activities Feasibility study Requirements Specification Global design Detailed design Implemen- tation V & V Distribution 6

  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. 7

  8. Problems with the waterfall Feasibility study Requirements  Late appearance of actual code. Specification  Lack of support for requirements change — and more Global generally for extendibility and design reusability  Lack of support for the Detailed design maintenance activity (70% of software costs?) Implemen- tation  Division of labor hampering Total Quality Management V & V  Impedance mismatches  Highly synchronous model Distribution 8

  9. Lifecycle: “impedance mismatches” As the Project Leader defined it As Systems designed it As Management requested it As Programming developed it What the user wanted As Operations installed it (Pre-1970 cartoon; origin unknown) 9

  10. A modern variant 10

  11. The spiral model (Boehm) Apply a waterfall-like approach to successive prototypes Iteration 3 Iteration 1 Iteration 2 11

  12. The Spiral model 12

  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”). 13

  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 14

  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 15

  16. Seamless development Example classes: PLANE, ACCOUNT, Analysis TRANSACTION… STATE,  Single notation, tools, Design COMMAND… concepts, principles  Continuous, incremental Implemen- HASH_TABLE… development tation  Keep model, implementation and documentation consistent TEST_DRIVER… V&V  Reversibility: go back and forth Generali- TABLE… zation 16

  17. G Generalization A D I V A* Prepare for reuse. For example:  Remove built-in limits  Remove dependencies on specifics of project B  Improve documentation, contracts...  Abstract X  Extract commonalities and revamp inheritance hierarchy Z Y Few companies have the guts to provide the budget for this 17

  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) 18

  19. Reversibility Analysis Design Implemen- tation V&V Generali- zation 19

  20. The cluster model Cluster 1 A Cluster 2 D A I D A I V&V D V&V G A I D G V&V I G V&V G 20

  21. Extremes “Clusterfall” “Trickle” A D Cluster 1 A A A I D D D V&V G I I I A V&V V&V V&V D Cluster 2 I G G G V&V G A D Cluster 1 Cluster 2 I V&V G 21

  22. Dynamic rearrangement Cluster 1 A D Cluster 2 I A V&V D G I Cluster 3 V&V A Cluster 4 G D I A V&V D G I V&V G 22

  23. Order of clusters Bottom up: start with most fundamental functionalities, end with user interface V&V A D G I Cluster 3 V&V Cluster 2 A D G I V&V Cluster 1 A D G I 23

  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 ... 24

  25. CMMI: maturity levels* Process Characteristics Level Management Visibility In Out Focus is on continuous Optimizing quantitative improvement Process is measured Quantitatively In Out and controlled Managed Process is characterized for the organization and Defined In Out is proactive Process is characterized Managed In Out for projects and is often reactive Process is unpredictable, Initial poorly controlled, and Out In reactive *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 26

  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” 27

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend