![Page 1: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/1.jpg)
Software Development Process Models
Derived from Dr. Fawcett’s slidesPhil Pratt-SzeligaCSE 784Fall 2009
![Page 2: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/2.jpg)
Overview
Definitions Software Process Model Process Models
Waterfall Spiral Incremental Development Design by Contract Evolutionary Extreme Programming Microsoft Development
![Page 3: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/3.jpg)
Definitions
Model A representation of the most essential
features of a physical object or process Used as a pattern for reasoning about,
analyzing, or predicting behavior Software Process Model
A model of the phases, activities, products and roles of people involved with the development of software
![Page 4: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/4.jpg)
Software Process Models:Overview A model of the way software is built Production of large scale software is a complex endeavor
Many documents are produced Code is written
Product code Prototype code Test code
Many reviews are held internally with the development team and for the customer
Enormous amounts of data are collected and used to manage the development and keep developers and customer apprised of the program’s status
Models are used to Guide developers in their day-to-day activities Keep the program focused on it’s principle objectives Promote communication through the use of standardized
documentation and reviews
![Page 5: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/5.jpg)
Waterfall Process Model
A software development process that proceeds linearly in time through phases
Originally taken from the construction industry where some types of changes late in the project can be prohibitively expensive or impossible
RequirementsAnalysis
design
code andUnit Test
integration test
Qualification Test
![Page 6: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/6.jpg)
Waterfall Development Roles
Software Product Manager Responsible for cost and schedule Has ultimate authority on all software
development decisions Depends on Architect, Test Manager and
Team Leaders to implement decisions
![Page 7: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/7.jpg)
Waterfall Development Roles
Software Architect Responsible for top-level software
partitioning, defining user interfaces Manages interfaces between software
developed by each team Is the source of knowledge on how the
system works
![Page 8: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/8.jpg)
Waterfall Development Roles
Test Manager Responsible for Test Plan and
Qualification Develops, with the test team, test
descriptions and procedures, usually by assigning them to individual teams for elaboration
Conducts the Test Readiness Review and Qualification Test
![Page 9: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/9.jpg)
Waterfall Development Roles
Team Leader Responsible for one subsystem – may be one module or a
family of modules Responsible for production of B and C specifications for
the team’s software Presents his or her B-Spec at the Software Requirements
Specification Review Usually delegates C-Spec development to team members
Responsible, with other team leaders, for software integration
Responsible to fully support Test Manager for the team’s part of the system, including production of Test Descriptions, Test Procedures and test conduct
![Page 10: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/10.jpg)
Waterfall Development Roles
Team Members Responsible for their assigned part of the
team’s C-Specification, code and unit test Usually present at two reviews
Preliminary Design Review Critical Design Review
![Page 11: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/11.jpg)
Waterfall Development Roles
Quality Assurance Responsible for continuing assessment of
the software quality Reports to the Program Manager
![Page 12: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/12.jpg)
Waterfall Model:Customer Reviews
Requirements Analysis Software Specification Review
Architecture B-Spec (DFDs + HIPOs + Data dict + RTM) Derived Requirements Design and requirements issues
![Page 13: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/13.jpg)
Waterfall Model:Customer Reviews
Design Preliminary Design Review
Module Structure Preliminary C-Specs
Module Charts, Structure Charts Class Structures, HIPOs
Resolution of design and requirements issues Derived Requirements Design and test issues
Critical Design Review Full C-Specs with Pseudo-code Resolution of design and test issues
![Page 14: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/14.jpg)
Waterfall Model:Customer Reviews
Code and Unit Test Informal code walkthroughs and
inspections Integration Testing
Test Readiness Review (TRR) Major Test Groups Test Procedures Test Equipment, environment
![Page 15: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/15.jpg)
Waterfall Model:Customer Reviews
Qualification Testing Formal, step-by-step proof that system
meets A and B level specification requirements Demonstration Inspection Analysis Test
![Page 16: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/16.jpg)
Waterfall Model:Reviews
Audits: Functional Configuration Audit (FCA)
an Audit of both contracting office and contractor by outside agency to verify that contractual obligations have been met. Includes specification and test report reviews.
Physical Configuration Audit (PCA)an Audit of both contracting office and contractor by outside agency to verify that all the component parts purchased by the contract are in fact the ones tested and delivered.
![Page 17: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/17.jpg)
Waterfall Model:Summary
The waterfall model does a good job of capturing the essentials of large software development process Activities Required Roles of Specific Project Personnel Products Generated
It does not do a very good job of accounting for many realities of the development process: Need for constant change due to:
Requirements, Design and Implementation errors Performance deficits Accommodation of changes in another part of the system
Need to carefully control change Discovery of unforeseen risks Uncertainty of scheduling work that the team has not done
before
![Page 18: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/18.jpg)
Waterfall Model:Summary
The failing of the waterfall model has prompted the development of several new variations Incremental Development Spiral Model Design by Contract Extreme Programming Combinations of two or more of these
![Page 19: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/19.jpg)
Side Note:Capability Maturity Model (CMM)
Describes software development process in terms of five levels Level 1 – Initial
Ad hoc process, unpredictable results Level 2 – Repeatable
Disciplined process using standard management principles Key Process Areas:
Requirements Management, Project Planning, Project Tracking and Oversight, Configuration Management, Quality Assurance
Level 3 – Defined Standard Process applied consistently across organization
Level 4 – Managed Predictable Process using metrics gathered as part of the applied
process Level 5 – Optimizing
Continuously improving process with a mandated process for defect prevention
![Page 20: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/20.jpg)
Spiral Model
Development proceeds through several prototypes, culminating in the completed system.
Each prototype is developed according to the waterfall model requirements analysis, code and unit test,
integration, and system testing. Its intent is to deal effectively with the
uncertainties and risks associated with a large new development.
![Page 21: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/21.jpg)
Spiral Model
![Page 22: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/22.jpg)
Incremental Development Model1. Begins with requirements analysis and
preliminary design2. As soon as modules are defined, one is selected
that has all of its dependencies met3. This module’s development proceeds as with
the Spiral Model, until unit test is complete4. A summary level test (regression) is put in a test
stub and used to verify the module’s operation5. The module is then integrated into the baseline
of code6. Steps 2 through 4 are repeated until the project
is complete7. Qualification Test demonstrates that the
software meets requirements
![Page 23: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/23.jpg)
Incremental Development Model
Requirements Analysis
Preliminary Design
Design Design Design
Code & UT Code & UT Code & UT
Integration Test
Qualification Test
Integration Test
Integration Test
correct code
correct code
partially testedcode
partially testedcode
---
---
phases
modules
![Page 24: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/24.jpg)
Design by Contract Design by Contract
A design process based on built in test Uses assertions to guarantee correctness
Pre-conditions Conditions which must be satisfied by the caller
Post-conditions Conditions which the service supplier
guarantees to hold after delivery of the service Invariants
Conditions which must hold at the end of every service invocation
![Page 25: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/25.jpg)
Evolutionary Project Management Plan for frequent deliveries of a production
quality system that run with growing functionality
Goals Budget cost and schedule for the complete
project Divide the project into a series of small delivery
cycles Focus on short-term, clear goals with a high
expectation of meeting them Deliver fully tested, production quality software
with the right documentation at the end of each cycle
![Page 26: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/26.jpg)
Evolutionary Project Management
Goals Solicit feedback from the customer and
management at the end of each cycle At the beginning of each cycle
Reassess objectives Estimate effort
Make quality objectives part of the requirements Conclude the project when the budgeted cost or
schedule has been consumed Customer has the option to contract further work on
the system
![Page 27: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/27.jpg)
Evolutionary Project Management
Inspection Process All deliverable items are inspected using a
walkthrough process lead by the originator. Inspectors Present: Project Manager Inspection committee of developers
All defects are recorded The originator removes all defects and resubmits
the item for inspection This is repeated until the item meets or exceeds
its planned level of quality
![Page 28: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/28.jpg)
Extreme Programming
A development process designed to develop high quality software using an incremental development process
![Page 29: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/29.jpg)
Extreme Programming User stories are created by the customer
that shed light on features needed Each user story is implemented, starting
with the most important one Analysis Design Code Test Production
![Page 30: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/30.jpg)
Extreme Programming
Test Driven Development is used for all implementation with Programmer Pairs
Refactoring is used with TDD Short standup meetings are used to
coordinate the team After each user story is implemented it
should be of quality to deliver to the customer
![Page 31: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009](https://reader035.vdocuments.us/reader035/viewer/2022062515/56649ca15503460f9495fbfe/html5/thumbnails/31.jpg)
References
The Capability Maturity Model, Software Engineering Institute, Addison Wesley, 1994
Process Improvement for Small Organizations, Kelly & Culleton, IEEE Computer, October 1999
Evolutionary Project Management, Woodward, IEEE Computer, October 1999
http://www.extremeprogramming.org/light2.html Software Development on Internet Time,
Cusumano & Yoffie, IEEE Computer, October 1999