1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.

Slides:



Advertisements
Similar presentations
Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Advertisements

Prescriptive Process models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
CHAPTER 3 SOFTWARE LIFE-CYCLE MODELS.
SOFTWARE PROCESS MODELS. Software Process Models  Process model (Life-cycle model) -steps through which the product progresses Requirements phase Specification.
Unit 2. Software Lifecycle
Software Processes Modified by Randy K. Smith
Software Life-Cycle Models
CS487 Software Engineering Omar Aldawud
Chapter 3 Process Models
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
April 30, April 30, 2015April 30, 2015April 30, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University,
Chapter 2 Process Models
Software Life Cycles ECE 417/617: Elements of Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 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.
Incremental Model Requirements phase Verify Specification phase Verify
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Chapter 3 Critical Systems (cont.). 2 Safety Safety is a property of a system that reflects the system’s ability to operate, normally or abnormally,
Chapter 2 The process Process, Methods, and Tools
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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 Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
CSE 308 Software Engineering Software Engineering Strategies.
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering process models
Chapter 4 프로세스 모델 Process Models
SOFTWARE LIFE-CYCLE MODELS
Slide 3.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
3.1 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering If prescriptive process models strive for structure.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Engineering Zhang Shuang
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 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.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Chapter 4 & Chapter 5 Important Concepts
Lecture 3 Prescriptive Process Models
Chapter 3 Prescriptive Process Models
Chapter :Software Process Model
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.
Software Engineering Lecture 09 & 10.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Process Models Coming up: Prescriptive Models.
Chapter 2 Process Models
Chapter 2 Process Models
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
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 2 Process Models.
Software Processes Process should be
Chapter 4 Process Models
Software Engineering Lecture 17.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 2 Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Presentation transcript:

1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

Software process model  Attempt to organize the software life cycle by  defining activities involved in software production  order of activities and their relationships  Goals of a software process  standardization, predictability, productivity, high product quality, ability to plan time and budget requirements  Attempt to organize the software life cycle by  defining activities involved in software production  order of activities and their relationships  Goals of a software process  standardization, predictability, productivity, high product quality, ability to plan time and budget requirements

Code&Fix The earliest approach  Write code  Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features  Source of difficulties and deficiencies  impossible to predict  impossible to manage The earliest approach  Write code  Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features  Source of difficulties and deficiencies  impossible to predict  impossible to manage

Models are needed  Symptoms of inadequacy: the software crisis  scheduled time and cost exceeded  user expectations not met  poor quality  The size and economic value of software applications required appropriate "process models"  Symptoms of inadequacy: the software crisis  scheduled time and cost exceeded  user expectations not met  poor quality  The size and economic value of software applications required appropriate "process models"

Process model goals (B. Boehm 1988) "determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions: What shall we do next? How long shall we continue to do it?"

Process as a "black box" Quality? Uncertain / Incomplete requirement In the beginning

Problems  The assumption is that requirements can be fully understood prior to development  Interaction with the customer occurs only at the beginning (requirements) and end (after delivery)  Unfortunately the assumption almost never holds  The assumption is that requirements can be fully understood prior to development  Interaction with the customer occurs only at the beginning (requirements) and end (after delivery)  Unfortunately the assumption almost never holds

Process as a "white box"

Advantages  Reduce risks by improving visibility  Allow project changes as the project progresses  based on feedback from the customer  Reduce risks by improving visibility  Allow project changes as the project progresses  based on feedback from the customer

The main activities of software production  They must be performed independently of the model  The model simply affects the flow among activities  They must be performed independently of the model  The model simply affects the flow among activities

11 Prescriptive Models That leads to a few questions …  If prescriptive process models strive for structure and order, are they inappropriate for a software world that thrives on change?  Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work? That leads to a few questions …  If prescriptive process models strive for structure and order, are they inappropriate for a software world that thrives on change?  Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work? Prescriptive process models advocate an orderly approach to software engineering

12 The Waterfall Model

13 Waterfall Model Assumptions 1. The requirements are knowable in advance of implementation. 2. The requirements have no unresolved, high-risk implications  e.g., risks due to COTS choices, cost, schedule, performance, safety, security, user interfaces, organizational impacts 3. The nature of the requirements will not change very much  During development; during evolution 4. The requirements are compatible with all the key system stakeholders’ expectations  e.g., users, customer, developers, maintainers, investors 5. The right architecture for implementing the requirements is well understood. 6. There is enough calendar time to proceed sequentially.

14 Process for Offshore? Deploy Analysis Design Accept. test Construct System test

15 The V Model  If we rely on testing alone, defects created first are detected last System Requirements Software Requirements Software Design Software Implementation Unit Testing Integration Testing Software Testing System Testing system test plan software test plan integration plan unit plan Product Release time User Need

16 Incremental Models: Incremental

17 Incremental Models: RAD Model

18 Evolutionary Models: Prototyping

19 Risk Exposure

20 Unified Process Model A software process that is: use-case driven use-case driven architecture-centric architecture-centric iterative and incremental iterative and incremental Closely aligned with the Unified Modeling Language (UML)

21 inception The Unified Process (UP)

22 UP Work Products inception

23 Lifecycle for Enterprise Unified Process inception

24 Synchronize-and Stabilize Model  Microsoft’s life-cycle model  Requirements analysis—interview potential customers  Draw up specifications  Divide project into 3 or 4 builds  Each build is carried out by small teams working in parallel  Microsoft’s life-cycle model  Requirements analysis—interview potential customers  Draw up specifications  Divide project into 3 or 4 builds  Each build is carried out by small teams working in parallel

25 Synchronize-and Stabilize Model (contd)  At the end of the day—synchronize (test and debug)  At the end of the build—stabilize (freeze build)  Components always work together  Get early insights into operation of product  At the end of the day—synchronize (test and debug)  At the end of the build—stabilize (freeze build)  Components always work together  Get early insights into operation of product

26 Evolutionary Models: The Spiral

27 Spiral Model  Simplified form  Waterfall model plus risk analysis  Precede each phase by  Alternatives  Risk analysis  Follow each phase by  Evaluation  Planning of next phase  Simplified form  Waterfall model plus risk analysis  Precede each phase by  Alternatives  Risk analysis  Follow each phase by  Evaluation  Planning of next phase

28 Simplified Spiral Model  If risks cannot be resolved, project is immediate ly terminate d

29 Full Spiral Model  Radial dimension: cumulative cost to date  Angular dimension: progress through the spiral  Radial dimension: cumulative cost to date  Angular dimension: progress through the spiral

30 Full Spiral Model (contd)

31 Analysis of Spiral Model  Strengths  Easy to judge how much to test  No distinction between development, maintenance  Weaknesses  For large-scale software only  For internal (in-house) software only  Strengths  Easy to judge how much to test  No distinction between development, maintenance  Weaknesses  For large-scale software only  For internal (in-house) software only

32 Object-Oriented Life-Cycle Models  Need for iteration within and between phases  Fountain model  Recursive/parallel life cycle  Round-trip gestalt  Unified software development process  All incorporate some form of  Iteration  Parallelism  Incremental development  Danger  CABTAB  Need for iteration within and between phases  Fountain model  Recursive/parallel life cycle  Round-trip gestalt  Unified software development process  All incorporate some form of  Iteration  Parallelism  Incremental development  Danger  CABTAB

33 Fountain Model  Features  Overlap (parallelism)  Arrows (iteration)  Smaller maintenance circle  Features  Overlap (parallelism)  Arrows (iteration)  Smaller maintenance circle

34 Software Process Spectrum lightweightheavyweightmiddleweight XP SCRUM DSDM FDD RUP dX ICONIX Crystal Clear Crystal Violet EUP OPEN

35 Conclusions  Different life-cycle models  Each with own strengths  Each with own weaknesses  Criteria for deciding on a model include  The organization  Its management  Skills of the employees  The nature of the product  Best suggestion  “Mix-and-match” life-cycle model  Different life-cycle models  Each with own strengths  Each with own weaknesses  Criteria for deciding on a model include  The organization  Its management  Skills of the employees  The nature of the product  Best suggestion  “Mix-and-match” life-cycle model

36 Model Driven Architecture

37 What is MDA in essence?  Automated approach to translate high level design to low level implementation by means of separation of concerns  From high-level model to running application  Risk proportional to expectations!  Automated approach to translate high level design to low level implementation by means of separation of concerns  From high-level model to running application  Risk proportional to expectations!

38 Finding the “right” language Assembler 3GL IDEs & 4GL Model Driven Architecture Computer Hardware Developer Automation Abstraction

39 “You should use iterative development only on projects you want to succeed” Martin Fowler

40 Model Driven Architecture  Can you actually have incremental MDA?  Or is it automated waterfall?  Need rigorous models  Need high quality requirements  Capture requirements  Understand requirements  Can you actually have incremental MDA?  Or is it automated waterfall?  Need rigorous models  Need high quality requirements  Capture requirements  Understand requirements

41 MDA or Offshore?  Automation versus reduce cost of labor  Objectives  Reduce required intelligence  Increase repetition  Goal  Reduce costs of development  Automation versus reduce cost of labor  Objectives  Reduce required intelligence  Increase repetition  Goal  Reduce costs of development