Agenda Software Process Models Plan-driven Process Models Software Process and Models A software process model simplified, abstracted description of a software development process. A model is good for explaining different general approaches to software development. Example: waterfall model A software process is the process by which user needs are translated into a software product. The process involves translating user needs into software requirements, transforming the software requirements into design, implementing the design in code, testing the code, and sometimes installing and checking out the software for operational use. Note: these activities might overlap or be performed iteratively. Example: extreme programming A software development practice is an activity performed to aid in the development of a software product. Example: black box testing
The Waterfall Model of the Software Life Cycle Iterative - Spiral Model. Spiral focuses on RISK MANAGEMENT Determine objectives, alternatives, & constraints Delivers full system at the very beginning and then changes of functionality of each subsystem with each new release. Evaluate alternatives, identify & resolve risks P1 Prototype3 Prototype2 Prototype1 Requirements Concept of plan operation Software System Requirements Product Detailed Design Design Development Requirements plan validation P2 Code Plan next phase Integration Design plan validation Unit Test Integration & Test Acceptance Test Develop & verify next level product
Incremental Model System partitioned into subsystems. Releases are defined beginning with one small, functional subsystem and then adding functionality wit each new release. What are the pro s and con s of each Deter mine objectiv es, alter nativ es, & constr aints Evaluate alter nativ es, identify & resolv e r isks Requirements plan Development plan Concept of operation Requirements validation P1 Prototype1 Software Requirements P2 Prototype2 System Product Design Code Prototype3 Detailed Design Plan ne xt phase Integration Design plan validation Unit Test De velop & v er ify ne xt level product Acceptance Test Integration & Test spiral waterfall incremental
The Planning Spectrum I Source: Barry Boehm Get Ready For Agile Methods, With Care, IEEE Computer, Jan 2002. Which ones should I withdraw for this project?
Plan-Driven Methods Focus on repeatability and predictability Defined, standardized, and incrementally improving processes Thorough documentation A defined software system architecture defined upfront Detailed plans, workflow, roles, responsibilities, and work product descriptions Process group containing resources for specialists: process monitoring, controlling, and educating On-going risk management Focus on verification and validation Personal Software Process (PSP) Watts Humphrey SEI Each level has detailed scripts, checklists, and templates to guide the engineer through required steps. provides measurement-based feedback that helps each engineer improve her own personal software process The framework guides an engineer in using a defined, measured, planned, and quality controlled process
Team Software Process (TSP) Team roles from project structure for self-directed teams to plan and track their work, to establish goals, and to create and own their processes and plans.
Rational Unified Process (RUP) the RUP specifically embeds object-oriented techniques and uses UML as its principle notation Secondly, the RUP is a customizable process framework.
Process Structure Inception. Defining the objectives of the project, including the business case. This involves risk, initial project plans, and resource requirements. Elaboration. Creating and validating the architecture of the software system, capturing the most important and critical requirements, and planning and estimating the rest of the project. The use cases developed in the inception phase are done in greater detail. Construction. Implementing the system based on the executable architecture t created in the elaboration phase. Transition. Beta testing the system with some customers and preparing release candidates.