IEEE/EIA 12207 Software Life Cycle Processes Prepared by: James W. Moore, moorej@ieee.org The MITRE Corporation January 1998 Seminar themes (1 of 3) - Nature of 12207 - A framework of related names and concepts ... not necessarily all of the best practices for software - Processes ... not procedures - Life cycle processes ... not a life cycle model Seminar themes (2 of 3) - The best use of IEEE/EIA 12207 is enterprise level adoption. - It is intended for voluntary adoption rather than contractual imposition. - It emphasizes specific one-party claims of compliance rather than two-party tailoring. - It has relationships to contextual standards affecting enterprise goals. - It has relationships to process and data standards that may be used to implement its processes. Seminar themes (3 of 3) - IEEE/EIA 12207 is a strategic, integrating standard for the IEEE software engineering collection. - It provides a unifying approach to life cycle process standardization. - It provides a unifying approach to life cycle data standardization. - IEEE is now improving the fit. - IEEE plans to build upon the standard with future strategic efforts. Part 1 - Software engineering - Software Engineering - Definition - Model - Relationship to other Disciplines - Software Engineering Standards - Software Engineering Standards Developers Software engineering: Definition (1) The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, that is, the application of engineering to software (2) The study of approaches as in (1) -- IEEE Std 610.12 Software engineering: A model Software engineering: Relationship to other disciplines Part 2 – Software engineering standards - Software Engineering - Software Engineering Standards - Scope - Importance - Roles and uses - History - Software Engineering Standards Developers Software engineering standards - Approximately 315 software engineering standards, guides, handbooks, and technical reports are maintained by approximately 46 professional, sector, national, and international standards organizations. -- [Magee97] - In 1981, IEEE had one software engineering standard. By year end 1997, the collection had grown to 44. -- [SESC97a] - The 1994 edition of IEEE Standards Collection: Software Engineering is 1300 pages long. The 1998 edition will be in four volumes totaling 2400 pages - Most software engineering standards are practice standards rather than the more familiar product standards Software engineering standards: Scope Process - Acquisition - Requirements definition - Design - Code and Test - Integration - Maintenance and Operations - CM - Documentation - Project management - Quality assurance - V & V Technique/Tool - CASE tools - Languages and Notations - Metrics - Privacy - Process improvement - Reliability - Safety - Security - Software reuse - Vocabulary Software engineering standards: Importance - They consolidate existing technology into a firm basis for introducing newer technology - They increase professional discipline - They protect the business - They protect the buyer - They improve the product Software engineering standards: Roles - Specify techniques to develop software faster, cheaper, better - IEEE 982.1 (Measures for Reliable SW) - Provide consensus validity for “best practices” that cannot be scientifically validated - IEEE 1008 (Unit Testing) - Provide a systematic treatment of “ilities” - IEEE 730 (SW Quality Assurance) - Provide uniformity where agreement is more important than small improvements - IEEE P1320.1 (IDEF0) - Provide a framework for communication between buyer and seller - IEEE/EIA 12207 (SW Life Cycle Processes) - Give precise names to concepts that are fuzzy, complex, detailed and multidimensional - IEEE 1028 (SW Reviews) Software engineering standards: Uses - Terminology - Best practice adoption - Organizational badge - Contractual agreement Software engineering standards: Organizational goals - Improve and evaluate software competence - Framework for two-party agreements - Evaluation of software products - Assurance of high integrity levels for software products Software engineering standards: History - 1968: Term software engineering coined at NATO conference - 1973: US National Bureau of Standards writes Guidelines for Documentation of Computer Programs and Automated Systems - 1974: US Navy initiates Mil-Std-1679, Weapons System Development, including guidelines for embedded computing resources. - 1976: IEEE creates predecessor of SESC - 1979: IEEE Std 730, Software Quality Assurance Plans - 1987: ISO and IEC form JTC1 on Information Technology [Industry] - 1998: JTC1/SC7 gains “horizontal” status Part 3 – Software engineering standards developers - Software Engineering - Software Engineering Standards - Software Engineering Standards Developers - International : ISO/JTC1/SC7 and others - US: IEEE and others SWE standards developers: International SWE standards developers: ISO/IEC JTC1/SC7 program - WG2: System software documentation - WG4: Tools and environment - WG6: Evaluation and metrics - WG7: Life cycle management - WG8: Integral life cycle processes - WG9: Classification and mapping - WG10: Process assessment - WG11: Software engineering data definition and representation - WG12: Functional size measurement - WG13: Software measurement process SWE standards developers: Current standards of SC7 - Six “legacy” standards - ISO/IEC 9126:1991, Product quality characteristics - ISO 9127:1988, User documentation and cover information for consumer software packages - ISO/IEC TR 9294:1990, Management of software documentation - ISO/IEC 11411:1995, Representation of state transition diagrams - ISO/IEC 12119:1994, Software packages: Quality requirements and testing - ISO/IEC 12207:1995, Software life cycle processes - ISO/IEC 14102:1995, Evaluation and selection of CASE tools - ISO/IEC 14143-1:1997, Functional size measurement - ISO/IEC 14568:1997, Diagram exchange language for tree charts SWE standards developers: US SWE standards developers: IEEE