Software Development Process Models
The Waterfall Development Model
The Prototyping Approach
The Spiral Model
Iterative Development Process Model
The Object-Oriented Development Process An eight step process (according to Branson and Herness) is divided into three phases 1. The Analysis Phase 2. The Design Phase 3. The Implementation Phase
The Eight Steps of OO Development Model the essential system Derive candidate-essential classes Constrain the essential model Derive additional classes Synthesize classes Define interfaces Complete the design Implement the solution
Reviews Included in the Eight Step Process Requirements review External structure and design review Class analysis and verification review Class externals review Code inspection
Agile Development – Extreme Programming (XP) by Beck The Planning Game System Metaphor Simple Design Pair Programming Unit Testing and Acceptance Testing Refactoring Collective Code Ownership Continuous Integration
Agile Development – Extreme Programming (XP) (Cont’d) On-site Customer 40-Hour Week Small Releases Coding Standard
The Cleanroom Methodology
The Defect Prevention Process
Process Maturity Frameworks and Quality Standards The SEI Process Capability Maturity Model The SPR Assessment The Malcolm Baldrige Assessment ISO 9000
The SEI Process Capability Maturity Model (CMM) CMM includes five levels of process maturity 1. Initial – Chaotic 2. Repeatable – Informal methods/procedures 3. Defined – Qualitative control of cost/schedule 4. Managed – Statistical control of quality 5. Optimizing – Quantitative basis for process improvement
The SEI Process Capability Maturity Model (Cont’d) The assessment methodology depends on a questionnaire. The pervasive use of software metrics and models is a key characteristic of level 4. The following metrics related topics are addressed by the questionnaire: Profiles of software size maintained for each software configuration item over time Statistics on software design errors
The SEI Process Capability Maturity Model (Cont’d) Topics are addressed by the questionnaire (cont’d): Statistics on software code and test errors Projection of design errors and comparison between projected and actual numbers Projection of test errors and comparison between projected and actual numbers Measurement of design review coverage Measurement of test coverage
The SEI Process Capability Maturity Model (Cont’d) Topics are addressed by the questionnaire (cont’d): Tracking of design review actions to closure Tracking of testing defects to closure Database for process metrics data across all projects Analysis of review data gathered during design reviews
The SEI Process Capability Maturity Model (Cont’d) Topics are addressed by the questionnaire (cont’d): Analysis of data already gathered to determine the likely distribution and characteristics of the errors in the remainder of the project Analysis of errors to determine their process- related causes Analysis of review efficiency for each project
The Capability Maturity Model Integration (CMMI) The integration of CMMs for; Software engineering Systems engineering Integrated product and process development Acquisition
The Capability Maturity Model Integration (Cont’d) The five CMMI levels are: 1. Initial – Ad hoc and chaotic 2. Managed – Focuses on basic project management 3. Defined – Focuses on process standardization 4. Quantitatively Managed – Focuses on quantitative management 5. Optimizing – Focuses on continuous process improvement
The SPR Assessment Developed by Software Productivity Research, Inc. SEI focuses on software organizational structure and software process. SPR focuses on strategic corporate issues and tactical project issues that affect quality, productivity, and user satisfaction.
The SPR Assessment (Cont’d) SPR questions regarding software quality and metrics relate to: Quality and productivity measures Pretest defect removal experience among programmers Testing defect removal experience among programmers Project quality and reliability targets Pretest defect removal at the project level Project testing defect removal Postrelease defect removal
The Malcolm Baldrige Assessment The most prestigious quality award in the United States Evaluation criteria cover: Leadership Information and analysis Strategic quality planning Human resource utilization Quality assurance of products and services Quality results Customer satisfaction
ISO 9000 A set of standards and guidelines for a quality assurance management system ISO covers software development Twenty elements are evaluated 1. Management responsibility 2. Quality system 3. Contract review 4. Design control
ISO 9000 (Cont’d) Twenty elements (cont’d) 5. Document control 6. Purchasing 7. Purchaser-supplier product 8. Product identification and traceability 9. Process control 10. Inspection and testing 11. Inspection, measuring, and test equipment 12. Inspection and test status
ISO 9000 (Cont’d) Twenty elements (cont’d) 13. Control of nonconforming product 14. Corrective action 15. Handling, storage, packaging, and delivery 16. Quality records 17. Internal quality audits 18. Training 19. Servicing 20. Statistical techniques
ISO 9000 Software Metrics Requirements Product Metrics: Measurements should be used for the following purposes: To collect data and report metric values on a regular basis To identify the current level of performance on each metric To take remedial action if metric levels grow worse or exceed established target levels To establish specific improvement goals in terns if metrics
ISO 9000 Software Metrics Requirements (Cont’d) At a minimum, some metrics should be used that represent Reported field failures Defects from customer viewpoint
ISO 9000 Software Metrics Requirements (Cont’d) Process Metrics: Ask if in-process quality objectives are being met Address how well development process is being carried out with check-points And how effective the development process is at reducing the probability that faults are introduced or go undetected
Differences Between MBNQA and ISO 9000 MBNQA is focused on quality results and customer satisfaction. ISO 9000 is focused on a quality management system and process control – “say what you do, do what you say, and prove it”