IEEE/EIA 12207 Software Life Cycle Processes Prepared by: James W. Moore, moorej@ieee.org The MITRE Corporation January 1998 Unit 2 - ISO/IEC 12207 - History - Purpose of 12207 - History of 12207 - Key concepts - ISO/IEC 12207 processes Purpose of 12207 - To establish a common framework for the life cycle of software - Acquire, supply, develop, operate, and maintain software - Undertakes broader scope than previous standards - Manage, control, and improve the framework - Recognizes that software is part of a system and that a project is part of an enterprise - To establish a basis for world trade in software Motivations for 12207 Previous standards ... - … focused on the single contract or project in isolation - … described a single monolithic process - … failed to encourage investment in the discipline and capitalization of processes - … induced 20-50% added costs in documentation and formal reviews Unit 2 - ISO/IEC 12207 - History - Key concepts - ISO/IEC 12207 processes Key concept of ISO/IEC 12207: Process/activity/task hierarchy - Processes are subdivided into cohesive activities. - Activities are subdivided into tasks. - You may think of tasks as being the specifications for the execution of an activity. - A task may be a self-declaration of intent, a requirement, a recommendation, or a permissible action. Key concept of ISO/IEC 12207: Processes and parties - Identification of processes is based on two principles: - Modularity: Processes should be cohesive and should have low coupling to other. - Responsibility: Each process should be executable by a single party. - A particular organization may become the party responsible for executing a process Key concept of ISO/IEC 12207: Continuing responsibilities - The activities and tasks of a 12207 process are not steps to be performed. - 12207 does not require that the activities and tasks are to be performed in any particular order. - The activities and tasks of 12207 are continuing responsibilities whose execution is assigned for the duration of the process. Key concept of ISO/IEC 12207: Categories of processes - Primary: - Acquisition, Supply - Development, Operation, Maintenance - Supporting: processes used as “subroutines” by other processes - Organizational: processes inherent to the organization and “instantiated” by the project - Also, a special tailoring process Key concept of ISO/IEC 12207: Integral evaluation - Evaluation is not a distinct process or activity. - Evaluation is treated as an internal, integral task of many activities in the standard. - In general, the evaluations have stated purposes and stated criteria. - Other processes may supplement internal evaluations: Verification, Validation, Joint Review, Audit, Quality Assurance, Improvement. Key concept of ISO/IEC 12207: Temporal issues - The standard does not specify a life cycle model, e.g. waterfall, spiral, etc. - The standard does not place ordering dependencies or time dependencies on the tasks - that is the job of the chosen life cycle model and the project plan. - Tasks may be iterated, repeated, recursively invoked, etc. Key concept of ISO/IEC 12207: Approach to documentation - The standard requires some outputs to be documented. - The standard does not prescribe format, media, or content of the documentation. - The Documentation Process permits the user to make these decisions. Key concept of ISO/IEC 12207: Approach to baselining - Standard differentiates between items and configuration items (CI). The CM process can handle both, but the latter are handled more rigorously. - A baseline is a formally approved version of a CI. Baselines (as clarified by the IEEE/EIA version) are established by the primary processes, not by the CM process. Unit 2 - ISO/IEC 12207 - History - Key concepts - ISO/IEC 12207 processes ISO/IEC 12207 processes - Primary - Supporting - Organizational ISO/IEC 12207 processes: Primary processes - Acquisition - Supply - Development - Operation - Maintenance ISO/IEC 12207 processes: Supporting processes - A supporting process supports another process as an integral part with a distinct purpose: ISO/IEC 12207 processes: Organizational processes - Organizational processes inherently exist outside the scope of the project but instances of them are employed by the project: - Management - Infrastructure - Improvement - Training ISO/IEC 12207 processes: Tailoring process - A special case - The tailoring process is used to tailor the standard for usage on a particular project. - Tailoring permits deletion of any process, activity or task. - (Tailoring is discouraged in the IEEE/EIA adaptation of the standard.)