Software Architecture

Slides:



Advertisements
Similar presentations
Computer Science Department
Advertisements

Lecture # 2 : Process Models
CSC 480 Software Engineering
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Ch 3 System Development Environment
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chair of Software Engineering ATOT - Lecture 1, 31 March Advanced Topics in Object Technology Bertrand Meyer.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Development Process
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Objectives:  To define RAD  Describe RAD as a system development method  List the advantages of RAD as a method  List the disadvantages of RAD  State.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Introduction Requirements and the Software Lifecycle (3)
Software Production ( ) Lecture 3: Dr. Samer Odeh Hanna (PhD) office: 318.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Advanced Software Engineering Dr. Cheng
Software Development - Methodologies
Software Development.
Process 4 Hours.
IL Marking Get out your CPU / Memory answers Swap with someone else
Lecture 3 Prescriptive Process Models
Software Quality Engineering
Object-Oriented Software Engineering Using UML, Patterns, and Java,
What is UML? What is UP? [Arlow and Neustadt, 2005] October 5, 2017
Software Quality Engineering
Software Life Cycle “What happens in the ‘life’ of software”
CS 5150 Software Engineering
IEEE Std 1074: Standard for Software Lifecycle
Software Processes (a)
Chapter 2 SW Process Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Processes.
Requirements and the Software Lifecycle
COMP 350: Object Oriented Analysis and Design Lecture 2
Software Development Process
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Lecture 2 Revision of Models of a Software Process
Chapter 2 – Software Processes
Software life cycle models
Process Models Coming up: Prescriptive Models.
Software engineering -1
Software Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 1: Introduction to Systems Analysis and Design
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Software Processes.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Human Computer Interaction Lecture 14 HCI in Software Process
Rapid software development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Presentation transcript:

Software Architecture Prof. Bertrand Meyer, Dr. Michela Pedroni ETH Zurich, February-May 2010 Lecture 2: The software lifecycle

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

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

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

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.

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

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.

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

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)

A modern variant

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

The Spiral model

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

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

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

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…

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

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)

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

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

Extremes “Clusterfall” “Trickle” A D I V&V G A D I V&V G A D I V&V G

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

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

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

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”

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

Open-source processes Collaborative, distributed developments Concentric trust circles Success with strong project leader (e.g. Linux) “Given enough eyes, all bugs are shallow”