EEC 421/521: Software Engineering The Software Process Prescriptive Process Models 1/22/08 EEC 421/521: Software Engineering 1 The Top Thrill Dragster 420 ft tall Max speed over 120 mph World s second fastest roller coaster 1/22/08 EEC 421/521: Software Engineering 2
Roller Coaster Process Concept The park conceptualizes what it wants Hires a company to build it; communicates its concept to the builder Builder plans the coaster, and communicates its plans and the budget to park for approval Planning Builder then makes models of the coaster and makes sure that all the requirements are met Modeling The models also help understand the physics a little better than plain calculations The actual coaster is built, and tested The coaster is delivered to the park and is opened to public Communication Deployment 1/22/08 EEC 421/521: Software Engineering 3 What is a Software Process? A series of predictable steps that helps produce a timely, high-quality result What are the actual steps? Differs from one process model to another Important because it provides stability, control and organization A process defines who is doing what, when, and how to reach a certain goal Ivar Jacobson, Grady Booch, and James Rumbaugh 1/22/08 EEC 421/521: Software Engineering 4
Software Engineering: A Layered Technology Software Engineering Tools Methods Process It should do X. It should do Y. I m not sure A quality focus Software engineering encompasses a process, management and technical methods, and tools. Software requirements are embodied knowledge that is initially dispersed, tacit, latent, and incomplete. 1/22/08 EEC 421/521: Software Engineering 5 Generic Software Engineering Phases The definition phase What product is going to be built? The development phase How will the product be built, and how will it be tested? The support phase Incorporate changes from the four sources of change. Correction Adaptation Enhancement Prevention 1/22/08 EEC 421/521: Software Engineering 6
Process Framework Provides the foundation for a complete software process Identifies framework activities Applicable to all software projects Defines a set of software engineering actions Each action has a set of work tasks Defines umbrella activities Applicable to the process across all process stages Focus is on project management, tracking, and control 1/22/08 EEC 421/521: Software Engineering 7 Generic Framework Activities Communication Communication/collaboration with customer Planning Technical tasks, risks, resource requirements, schedule, etc. Modeling Design, models, prototypes, customer feedback Coding, testing Deployment Delivery 1/22/08 EEC 421/521: Software Engineering 8
Umbrella Activities Software project tracking and control Risk management Software quality assurance Formal technical reviews Measurement Software configuration management Reusability management Work product preparation and production 1/22/08 EEC 421/521: Software Engineering 9 Process Variety Prescriptive models Waterfall model Spiral model The Unified Process Formal methods In general, more disciplined, and more rules Agile models Extreme programming Adaptive software development Scrum Feature-driven Development Fewer rules, focus on end product 1/22/08 EEC 421/521: Software Engineering 10
SEI CMMI Level 0: Incomplete No process Level 1: Performed Specific goals of process area are performed Level 2: Managed Work in process area conforms to a defined policy Level 3: Defined The process is tailored to the specific organization Level 4: Quantitatively Managed Quantitative objectives are established and reviewed Level 5: Optimized Process is adapted and optimized based on statistical evidence 1/22/08 EEC 421/521: Software Engineering 11 Process Patterns A consistent template for describing important characteristics for the software process Provides suggested solutions to recurring problems in the software process e.g., customer-communication, project-team assembly Can be reused in several different contexts 1/22/08 EEC 421/521: Software Engineering 12
General Characteristics of Prescriptive Models Framework activities populated with explicit tasks for software engineering actions The models prescribe how the various actions are to be executed The models prescribe a workflow 1/22/08 EEC 421/521: Software Engineering 13 The Waterfall Model Sequential approach to software development Communication Project initiation Requirements Planning Estimation Scheduling Tracking Modeling Analysis Design Code Test Deployment Delivery Support Feedback 1/22/08 EEC 421/521: Software Engineering 14
Communication Project initiation Requirements Planning Estimation Scheduling Tracking Modeling Analysis Design Code Test Communication Project initiation Requirements Deployment Delivery Support Feedback Planning Estimation Scheduling Tracking Modeling Analysis Design Code Test Communication Project initiation Requirements Deployment Delivery Support Feedback Planning Estimation Scheduling Tracking Modeling Analysis Design Code Test Deployment Delivery Support Feedback The Waterfall Model (2) Good for projects that can be planned completely right at the beginning Well-defined requirements No changes anticipated Most real projects cannot be built sequentially Most new projects have inherent uncertainty No way of checking if requirements are met 1/22/08 EEC 421/521: Software Engineering 15 The Incremental Model Iterative application of the Waterfall Product is grown through several increments Release 3 Software functionality Release 1 Release 2 Project time 1/22/08 EEC 421/521: Software Engineering 16
The Incremental Model (2) The model is an evolutionary approach The product gains more features with every iteration Similar to Waterfall Each increment is built sequentially Changes are expensive inside an increment Each increment is a usable, finished product Not a prototype 1/22/08 EEC 421/521: Software Engineering 17 Prototyping Requirements are very fuzzy Idea is there, but no details Customer is not able to clearly state requirement Communication is key Communication Quick plan Deployment, Delivery & Feedback Modeling and Quick Design Prototype construction 1/22/08 EEC 421/521: Software Engineering 18
Prototyping (2) Great way to elicit requirements Can serve as requirements gathering technique for other process models Saves a lot of change later on in the life-cycle Customer may not like the throw-away nature of the prototype May want to shorten schedule Bad development choices may be made 1/22/08 EEC 421/521: Software Engineering 19 The Spiral Model The most mature of evolutionary models Controlled and systematic, yet evolutionary Risk-driven process model Cyclic approach Increase degree of definition and implementation Decrease degree of risk Anchor point milestones 1/22/08 EEC 421/521: Software Engineering 20
The Spiral Model (2) Communication Start Planning Estimation Scheduling Risk analysis Modeling Analysis Design Deployment Delivery Feedback Code Test 1/22/08 EEC 421/521: Software Engineering 21 The Spiral Model (3) Realistic model for large projects Periodic risk evaluation leads to better utilization of resources When is the project finished? Considerable risk assessment expertise is required 1/22/08 EEC 421/521: Software Engineering 22
The Unified Process Unifies important features of other process models Specifically targeted at Object-Oriented system development Based on the concept of use-cases Includes a set of design tools Unified Modeling Language 1/22/08 EEC 421/521: Software Engineering 23 The Unified Process (2) Elaboration Modeling Inception Planning Communication Transition Deployment Release Software increment Production 1/22/08 EEC 421/521: Software Engineering 24
The Unified Process (3) Defined set of work products Use-case model (inception) Non-functional requirements (elaboration) Analysis model (elaboration) Design model (construction) Implementation model (construction) Test cases (construction) Beta test reports (transition) User feedback reports (transition) 1/22/08 EEC 421/521: Software Engineering 25 Other Prescriptive Models Component-Based Development Integrating components with well-defined interfaces to build system Formal Methods Model Specification, development, and verification of system using rigorous mathematical notation 1/22/08 EEC 421/521: Software Engineering 26
Reading Assignment Gilda Pour, Martin L. Griss, and Michael Lutz. The Push to Make Software Engineering Respectable. IEEE Computer. May 2000. pages 35 43. 1/22/08 EEC 421/521: Software Engineering 27