Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e copyright © 1996, 2001 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. This presentation, slides, or hardcopy may NOT be used for short courses, industry seminars, or consulting purposes. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 1 Chapter 2 The Process These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 2 DEFINITION Software Engineering is… The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines [by Fritz Bauer] These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 3 DEFINITION (2) (1) The application of systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software; (2) The study of approaches as in (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 R.S. Pressman & Associates, Inc., copyright © 1996, 2001 4 A Layered Technology Software Software Engineering Engineering tools methods process model a “quality” focus These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 5 Process, Methods, Tools SE process is the glue that holds the technology layer together and enables rational and timely development of software SE methods provide the technical how-to’s for building software. SE tools provide automated or semiautomated support for the process and the methods. These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 6 GENERIC VIEW Definition phase – what Development phase – how Support phase – change (correction, adaptation, enhancement, prevention) These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 7 A Common Process Framework Common process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 8 Umbrella Activities Software project management Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 9 Common Process Framework (2) A common process framework is established by defining a small number of framework activities that are applicable to all software projects, regardless of their size and complexity Task set, a collection of SE work tasks, project milestones, work product, and quality assurance points, enable the framework activities to be adapted to the characteristics of the project Umbrella activities overlay the process model These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 10 Capability Maturity Model (CMM) Level 1: Initial – ad hoc, occasional Level 2: Repeatable – basic project management processes are established Level 3: Defined – process is documented, standardized, and integrated Level 4: Managed – process and products are quantitatively understood and controlled using detailed measures Level 5: Optimizing – quantitative feedback, innovative ideas and technology These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 11 Process as Problem Solving These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 12 The Process Model: Adaptability the framework activities will always be applied on every project ... BUT the tasks (and degree of rigor) for each activity will vary based on: the type of project (an “entry point” to the model) characteristics of the project common sense judgment; concurrence of the project team These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 13 The Primary Goal: High Quality Remember: High quality = project timeliness Why? Less rework! These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 14 The Linear Model These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 15 Problems on linear model Real project rarely follow the sequential flow It is often difficult for the customer to state all requirements explicitly The customer must have patience since the working version will not available until late in the project time-span These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 16 Iterative Models Prototyping RAD These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 17 Problems in prototyping The customer sees what appears to be a working version of the software, which was built in rush The developer often makes implementation compromises in order to get prototype working properly These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 18 Rapid Application Development (RAD) An incremental software development process model that emphasizes an extremely short development cycle. Achieved using component-based construction Requirements are well understood, and project scope is constrained Phases: business modeling, data modeling, application generation, testing & turnover These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 19 RAD’s drawbacks Requires sufficient human resources for large but scalable projects Requires commitment from developers and customers to complete the system in short time Not all types of applications are appropriate for RAD – good for modular, not for high performance system Not appropriate when technical risks are high These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 20 The Incremental Model These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 21 An Evolutionary (Spiral) Model These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 22 Still Other Process Models Component assembly model—the process to apply when reuse is a development objective Concurrent process model—recognizes that different part of the project will be at different places in the process Formal methods—the process to apply when a mathematical specification is to be developed Cleanroom software engineering—emphasizes error detection before testing These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001 23