+ All Categories
Home > Documents > Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784...

Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784...

Date post: 15-Dec-2015
Category:
Upload: wade-addy
View: 216 times
Download: 1 times
Share this document with a friend
Popular Tags:
31
Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009
Transcript
Page 1: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Spiral Model

Page 22: Software Development Process Models Derived from Dr. Fawcett’s slides Phil Pratt-Szeliga CSE 784 Fall 2009.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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


Recommended