Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

Slides:



Advertisements
Similar presentations
Unit 2. Software Lifecycle
Advertisements

CS487 Software Engineering Omar Aldawud
SW Process Models It is a set of activities required to:
1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Chapter 3 Process Models
Chapter 2 Software Process Models
SE382 Software Engineering Lecture 04 Process Models (1)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Process
Prescriptive Software Models. Recall Boehm’s paper Why did they “invent” the waterfall model? – Distinction between programmer and user – Increased application,
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
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
SYSC System Analysis and Design
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 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
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 17 Slide 1 Rapid software development.
Chapter 3 Software Processes.
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.
IT Systems Analysis & Design
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©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.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Chapter 4 프로세스 모델 Process Models
Chapter 4 Process Models Chapter 4 Process Models Moonzoo Kim KAIST 1.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SWE311_Ch03 (071) Software & Software Engineering Slide 1 Chapter 3 Prescriptive Process Models.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
3.1 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering If prescriptive process models strive for structure.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 3 Prescriptive Process Models Discussion of the Software Process models:
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Model Process
Software Engineering Process Models Models for Guiding the Development of Software.
Software Process Models The slides and the material of this chapter is adopted from: 1. “Software Engineering”, by I. Somerville, 7th Ed., “Software.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
Chapter 4 & Chapter 5 Important Concepts
Chapter 4 Process Models: Prescriptive Models vs
Process Models.
Software Processes (a)
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.
Prescriptive 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 – Software Processes
Process Models Coming up: Prescriptive Models.
Chapter 2 Process Models
Chapter 2 Process Models
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.
Chapter 2 Process Models.
Chapter 4 Process Models
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.
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
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.
Advanced Software Engineering Ch. 2 – SE as Engineering Science
Presentation transcript:

Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited. Coming up: Prescriptive Models

Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering 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? Coming up: The Waterfall Model

The Waterfall Model Use when: Requirements are stable and well-understood CHALLENGES: Final product only available at the end Things always change. Coming up: The Incremental Model

The Incremental Model Delivers software in usable “increments” each containing a working version of the system, just fewer features. Helps get software to users faster Provides an evaluation and re-planning ability to the team May complete an initial functionality to get buy-in/funding for later increments Coming up: The Incremental Model

The Incremental Model Requires: Operational product at each increment Advantages Helps users get software faster Provides ability for the team to evaluate and replan May complete an initial functionality to get buy-in or funding for later increments Disadvantages May not be good for very risky systems Full working systems may require long increments Delivers software in usable “increments” each containing a working version of the system, just fewer features. Helps get software to users faster Provides an evaluation and re-planning ability to the team May complete an initial functionality to get buy-in/funding for later increments Coming up: The RAD Model

The RAD Model Used when requirements are also well-understood Very fast cycles (60-90 days) Emphasizes use of existing components/automatic code generation Challenges: Lots of staff needed to form RAD teams Must have component based software Developers and Customers must be willing to make quick decisions Coming up: The RAD Model

The RAD Model Requires: very well understood requirements. Very fast cycles (60-90 days) to create a lot of functionality Emphasizes use of existing components/automatic code generation Challenges: Large staff needed to form RAD teams Must have modularizable based software Developers and Customers must be willing to make quick decisions Time-consuming overall system tuning is difficult Coming up: Evolutionary Models: Prototyping

Evolutionary Models: Prototyping Prototyping is a tool that can be used during any process Used when customer only has a vague idea of what they want Plan to either throw-away or evolve into real product -- there will be pressure at the end to evolve into the real product Quick plan communication Modeling Quick design Deployment delivery & feedback Construction of prototype Try to use throw-away prototyping -- hard to do! Coming up: Evolutionary Models: The Spiral

Evolutionary Models: The Spiral Complete highest risk items first Used to mitigate risk on risk-intensive projects Every spiral revises cost/budget/schedule/etc… Early spirals may just generate documentation/paper prototypes Later spirals then generate prototypes in software Then increasingly fuller versions of the software (not necessarily a working useful version of the software) Coming up: Still Other Process Models

Still Other Process Models Component based development—the process to apply when reuse is a development objective Formal methods—emphasizes the mathematical specification of requirements AOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspects Unified Process—a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) Formal Methods - safety critical software like avionics, medical devices Aspects - cross-cutting concerns (like logging, security, etc…). AspectJ Coming up: The Unified Process (UP)

The Unified Process (UP) inception elaboration inception ・Inception - do you and the Customer have a shared understanding of the system? --- Use cases, initial use cases, basic architecture ・Elaboration - do you have an architecture to be able to build the system? --- Detailed use cases, 5 perspectives - use cases, analysis, design, implementation, deployment model ・Construction - are you developing product? ・Transition - are you trying to get the Customer to take ownership of the system? --- beta-testing, system testing, final documentation (user manuals, help etc…) Coming up: UP Phases

UP Phases Coming up: UP Work Products

UP Work Products Coming up: Prescriptive Software Models

Pick a model Developing software to automatically drive racecars through a track without crashing. This has never been attempted before under software control. The requirements are stable. Waterfall, Incremental, Spiral, RAD?

Pick a model Developing software to track the financial bailout. The software requirements are very clear. You need to create a system to perform 3 distinct tasks: Display where the money went Display the amount of money left and how it’s allocated Allow people to request funds from a particular subset of the money All functions will interface with each other and the same underlying database. Waterfall, Incremental, Spiral, RAD?

Pick a model Just checking if you were awake

Prescriptive Software Models Variations of these models are VERY commonly used today If you think about it, they are focused in different areas, but have many similarities (all do the basic structure -- communication, planning, construction, testing, deployment, maintenance) You will almost definitely do some version of these processes when you graduate If you had never been to CS421, and never learned them, and then started your own company, you would STILL do your own version of these processes… they make sense! Currently these processes are evolving into Agile methods Lets have a look!