CS605 - Software Engineering II - Lecture Handout 02

User Rating:  / 0

Related Content: CS605 - VU Lectures, Handouts, PPT Slides, Assignments, Quizzes, Papers & Books of Software Engineering II

Software Process

A software process is a road map that helps you create a timely, high quality result. It is the way we produce software and it provides stability and control. Each process defines certain deliverables known as the work products. These include programs, documents, and data produced as a consequence of the software engineering activities.

Process Maturity and CMM

The Software Engineering Institute (SEI) has developed a framework to judge the process maturity level of an organization. This framework is known as the Capability Maturity Model (CMM). This framework has 5 different levels and an organization is placed into one of these 5 levels. The following figure shows the CMM framework.

Process Maturity and CMM

These levels are briefly described as follows”

  1. Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends upon individual effort. By default every organization would be at level 1.
  2. Level 2 – Repeatable: Basic project management processes are established to track cost, schedule, and functionality. The necessary project discipline is in place to repeat earlier successes on projects with similar applications.
  3. Level 3 – Defined: The software process for both management and engineering activities is documented, standardized, and integrated into an organizational software process. All projects use a documented and approved version of the organization’s process for developing and supporting software.
  4. Level 4 – Managed: Detailed measures for software process and product quality are controlled. Both the software process and products are quantitatively understood and controlled using detailed measures.
  5. Level 5 – Optimizing: Continuous process improvement is enabled by qualitative feedback from the process and from testing innovative ideas and technologies.

SEI has associated key process areas with each maturity level. The KPAs describe those software engineering functions that must be present to satisfy good practice at a particular level. Each KPA is described by identifying the following characteristics:

  1. Goals: the overall objectives that the KPA must achieve.
  2. Commitments: requirements imposed on the organization that must be met to achieve the goals or provide proof of intent to comply with the goals.
  3. Abilities: those things that must be in place – organizationally and technically – to enable the organization to meet the commitments.
  4. Activities: the specific tasks required to achieve the KPA function
  5. Methods for monitoring implementation: the manner in which the activities are monitored as they are put into place.
  6. Methods for verifying implementation: the manner in which proper practice for the KPA can be verified.

Each of the KPA is defined by a set of practices that contribute to satisfying its goals. The key practices are policies, procedures, and activities that must occur before a key process area has been fully instituted.

The following table summarizes the KPAs defined for each level.

Level KPAs
1 No KPA is defined as organizations at this level follow ad-hoc processes
  • Software Configuration Management
  • Software Quality Assurance
  • Software subcontract Management
  • Software project tracking and oversight
  • Software project planning
  • Requirement management
  • Peer reviews
  • Inter-group coordination
  • Software product Engineering
  • Integrated software management
  • Training program
  • Organization process management
  • Organization process focus
  • Software quality management
  • Quantitative process management
  • Process change management
  • Technology change management
  • Defect prevention