Sistemas de Información Agosto-Diciembre 2007 Sesión # 9 Software Development Process Planning Management Requirements Development Architecture Detailed Design Construction Quality Assurance and Testing User Documentation Time (McConnell, 1998) Evaluating the Software Development Process To assess the quality of the software development process: verify compliance with project schedule and budget verify compliance with initial requirements identify process metrics (SEI) coding testing Software Development Models Waterfall Model Spiral Model Structured Model Rapid Prototyping Model Rational MSF Waterfall Model Early focus on analysis of requirements and design Involves intensive documentation and testing Also known as “traditional model” or “linear model” Most widely used! Waterfall Model Systems Requirements Software Requirements Preliminary Design Detailed Design Code and Debug Test and Pre-operations Operations and Maintenance (Source: Dr. Szygenda, SMU) K90329_S_021 (2) Spiral Model Involves iterations of design, development, and testing Starts with a preliminary system version (v0.5) After intensive testing, a first version of the system (v1.0) is released Small changes on the first version are included, as necessary (v1.1, v1.2, etc..) Substantial changes will be included in a new release (2.0, 3.0, etc..) Works very well on incremental development projects (Source: Dr. Oard, LBSC-690) Spiral Model 1.2 2.3 0.5 1.0 2.0 (Source: Dr.Oard, LBSC-690) 3.0 1.1 2.1 2.2 Spiral Model Involves several task regions in each iteration: Customer communication Planning Risk analysis Engineering Release Customer evaluation (Pressman, 1997) Tends to be very expensive ! Structured Model Draws from structured analysis, structured design, and structured programming Involves parallel activities Requires several teams Works very well in large projects with self-directed teams Structured Model Users Management 1.0 Survey 2.0 Analysis Operations 8.0 Database Conversion 3.0 Design 7.0 Procedural Description 4.0 Implementation 5.0 Acceptance Test Generation (Source: Dr. Szygenda, SMU) 6.0 QA 9.0 Installation K90329_S_026 (2) Rapid Prototyping Model Goal: explore requirements Without building the complete product Start with part of the functionality That will (hopefully) yield significant insight Build a prototype Focus on core functionality, not in efficiency Use the prototype to refine the requirements Repeat the process, expanding functionality (Source: Dr. Oard, LBSC-690) Rapid Prototyping + Waterfall Update Requirements Initial Requirements Choose Functionality Write Specification Create Software Write Test Plan Build Prototype (Source: Dr. Oard, LBSC-690) Rational (IBM) A process for software engineering arranges in disciplines and phases Emerged in 1998, from the “Rational Approach” and the “Object Process 3.8”, from IBM Rational (IBM) • Core Process Workflows (6) • Core Supporting Workflows (3) MSF Microsoft Solutions Framework (MSF): An approach to IT project management Based on Microsoft best practices To improve project success rates To increase solution quality To increase business impact To improve process in terms of CMMi To support compliance with ISO standards MSF Models Software Development Models: Discussion How can we decide which model to use for a particular software development project? How can we assess the quality of: The software development process? The software product? Selecting a Software Development Model Choose a model, in terms of: the nature of the system to be designed and developed the time and budget restrictions the methods and tools available the required deliverables (Pressman, 1997)