ISO/IEC/IEEE 12207 and 15288: The Entry-Level Standards for Process Definition - Part 1 |
|
| Written by James W. Moore |
| Monday, 16 November 2009 11:28 |
In 2008, the 12207 standard for software life cycle processes and the 15288 standard for system life cycle processes were revised in an effort that finally harmonized system and software processes as well as bringing the respective IEEE and ISO/IEC standards into complete agreement. Some users mistakenly believe that these standards are targeted only to large organizations able to make a substantial investment in a complete suite of software and systems processes. However, these standards are also the best entry point for beginning users who desire guidance on as few as a single process. This three-part article will explain how entry-level users can apply the two standards.
Standards are Names It's commonplace to criticize standards on the grounds that there are too many of them, but consider the alternative. Is it a better situation for a buyer to understand and select from 802.11a, 802.11b, 802.11g and 802.11n or is it better for a buyer to understand and specify the nearly infinite combination of choices that are actually possible? Although the namespaces provided by standards may be large, they are infinitesimal compared to the ranges of choices available a priori. Electrical engineering and radio technology are mature disciplines with a well-defined nomenclature for describing their principles. Newer disciplines, such as software engineering, do not share this characteristic. Even the most fundamental of terminology is subject to interpretation and mis-interpretation. So the creation of agreed names is even more important in software engineering. These names can be vitally important in communication between buyers and sellers. For example, suppose a subcontractor is developing a software component of my system and I want to know what review practices they use. They might write a 20-page description of their practices, which I have to take the time to read, question and understand. Or, they might simply say that they use IEEE Std 1028, Software Reviews - an answer which saves both of us considerable effort and which reassures me that they use practices that, at least, meet a minimum set of responsible criteria. Names can be a useful tool in effective communication, but problems can arise when different namespaces are created for different purposes. A geographical metaphor can explain the point. The IEEE Operations center in Piscataway, New Jersey is located at 445 Hoes Lane. That is a useful name from the driver's point of view. However, workers at the regional postal processing center use a different name, 08855-1331. For taxation purposes, the town clerk might use a name something like "Tract 15, Lot 25, Liber 227, Plat 22." If the land is ever sold, a title researcher might use a description like "the portion of the 1677 royal grant of Charles II to Robert C. Smith, bounded by..." All of these names describe the same location, but are not related in any way that is obvious to the casual observer-that is, unless you have a map. If we plot each of these descriptions onto a map, we can determine immediately that they designate the same location. In disciplines that - for whatever reason - multiple namespaces are used, it is important to have maps that relate the namespaces. The 12207 and 15288 standards are maps of the namespace of life cycle processes. One can use the set of processes that are named by 12207 and 15288 or one can use the standards to describe the processes that one uses. Role of 12207 and 15288
The names of the processes described in the standards are important so that acquirers and suppliers can communicate regarding their intent. For example, if one contracts for "implementation" of a software element, does that include integration testing? If one contracts for work done in accordance with the processes of 12207, the answer to that question is known. Furthermore, the named processes are important for process evaluation and improvement and for the implementation of improved practices. After all, how can one describe an improved practice for requirements analysis unless we agree on the meaning of requirements analysis? That agreement is provided by the processes described in 12207. Life Cycle Concepts Everything has a life cycle by virtue of its existence. My own life cycle began 61 years ago and will continue for a few more, I hope. A particular systems or a software product also has a life cycle, covering the period from its conception to its final retirement or disposal. Although every unique entity has its own unique life cycle, it is sometimes desirable to talk about life cycles that share certain characteristics. The abstraction that we use is a life cycle model. For example, the much-maligned "waterfall" is a life cycle model which abstracts a certain set of properties from a huge number of actual life cycles that shared those properties. When we talk about life cycle models, it is often convenient to subdivide them into stages (or phases), each with different concerns. A commonly used set of stages is concept, development, production, utilization, support and retirement, representing differing goals and purposes at different points in the life cycle. It is important to understand that different elements of a system may transition from one stage to another at different points in time. In fact, it is sometimes useful to consider stages that are concurrent, such as utilization and support. Life cycle models are useful because they can be applied in developing the plan for a project; their usage guides the allocation of resources appropriate to the different stages. When applied to a project, stages are often viewed as being separated by decision gates, a formal process for determining that the system, or an element of the system, may now be regarded as being in a different stage because the desired outcomes of the stage being exited have been achieved. Next issue James W. Moore is a 40-year veteran of software engineering in IBM and, now, the MITRE Corporation. He serves as the IEEE Computer Society's Vice-President for Professional Activities and as a member of its Board of Governors. He was an Executive Editor of the Society's 2004 "Guide to the Software Engineering Body of Knowledge" and a member of the Editorial Board of the recent revision of the "Encyclopedia of Software Engineering." He performs software and systems engineering standardization for the IEEE, serving as its liaison to ISO/IEC JTC1/SC7 and as a member of the Executive Committee of the IEEE Software and Systems Engineering Standards Committee. The IEEE Computer Society has recognized him as a Charter Member of their Golden Core; the IEEE selected him as a recipient of their Third Millennium Award and recently named him as a Fellow of the IEEE. His latest book on software engineering standards was published in 2006 by John Wiley & Son. He holds two US patents and, dating to times when software was not regarded as patentable, two "defensive publications". He graduated from the University of North Carolina with a BS in Mathematics, and Syracuse University with an MS in Systems and Information Science. [1] The author's affiliation with The MITRE Corporation is provided for identification purposes only, and is not intended to convey or imply MITRE's concurrence with, or support for, the positions, opinions or viewpoints expressed by the author.
Set as favorite
Bookmark
Email this
Hits: 1539 Trackback(0)Comments (0)
|
| Last Updated on Monday, 16 November 2009 11:41 |


In 2008, the 12207 standard for software life cycle processes and the 15288 standard for system life cycle processes were revised in an effort that finally harmonized system and software processes as well as bringing the respective IEEE and ISO/IEC standards into complete agreement. Some users mistakenly believe that these standards are targeted only to large organizations able to make a substantial investment in a complete suite of software and systems processes. However, these standards are also the best entry point for beginning users who desire guidance on as few as a single process. This three-part article will explain how entry-level users can apply the two standards.

