9 a] List the popular capability models to manage the quality of the Software and write about SEI CMM with appropriate diagram.
Popular capability models
- Capability Maturity Model (CMM): This was the original model that focused on software engineering processes. It defined five maturity levels to assess an organization’s process maturity.
- Capability Maturity Model Integration (CMMI): An evolution of CMM, CMMI integrates best practices from various disciplines (software engineering, systems engineering, etc.) and offers both staged and continuous representations for process improvement.
- ISO/IEC 12207: This international standard provides a framework for software life cycle processes. While not specifically a capability model, it’s widely used for quality management in software development.
- ITIL (Information Technology Infrastructure Library): Primarily focused on IT service management, ITIL includes best practices for service delivery and support, which can contribute to software quality.
- Six Sigma: While not exclusively for software, Six Sigma’s focus on process improvement and defect reduction can be applied to software development to enhance quality.
- Agile Methodologies: While not strictly capability models, Agile frameworks like Scrum and Kanban emphasize quality through practices like continuous integration, test-driven development, and frequent feedback.
SEI Capability Maturity Model (CMM) Overview
The Software Engineering Institute Capability Maturity Model (SEI CMM) is a framework developed to assist organizations, particularly those engaged in software development, in improving their processes. This model was initially created in collaboration with the U.S. Department of Defense (DoD) to address issues with software vendors, such as poor product quality, delays, and cost overruns. By evaluating and improving their development practices, organizations could better predict contractor performance and enhance software quality.
The SEI CMM classifies software development organizations into five distinct maturity levels, each representing a progression in process quality and organizational capability. The model serves both as a capability evaluation tool and a process improvement framework.
1. Capability Evaluation vs. Process Assessment
- Capability Evaluation: Administered by contract-awarding authorities to predict contractor performance. It assesses the capability of the software process to determine how well an organization is likely to perform on a given project.
- Process Assessment: Conducted internally by organizations to improve their own processes. It provides insights into process strengths and weaknesses, and offers recommendations for reaching higher maturity levels.
CMM Maturity Levels
- Level 1: Initial
- Characteristics: Ad-hoc and chaotic processes with no standardized development or management practices. Success is often due to individual heroics rather than systematic processes.
- Challenges: High project failure rates, inconsistent quality, and project delays.
- Level 2: Repeatable
- Characteristics: Basic project management practices are in place, such as planning and tracking costs and schedules. Configuration management tools are used, though processes are not fully documented.
- Improvements: Ability to repeat success on similar projects due to some level of process understanding.
- Level 3: Defined
- Characteristics: Processes are well-documented and standardized across the organization. There is a clear understanding of roles and responsibilities, and regular training and systematic reviews are practiced.
- Focus: Improved consistency and capability through formalized processes and continuous training.
- Level 4: Managed
- Characteristics: Quantitative metrics are used to manage and control processes. Quality goals are set and measured, and metrics are employed to track project performance.
- Focus: Managing processes through data and metrics to ensure performance goals are met.
- Level 5: Optimizing
- Characteristics: Focus on continuous improvement through the analysis of metrics and process optimization. Innovations and new technologies are integrated into processes.
- Focus: Achieving continuous process improvement and maintaining high-quality standards through ongoing process refinement and technology adoption.