6/21/2008 Software Engineering Standards Introduction 1028 9126 730 12207 9000 CMM 15288 CMMI J-016 1679 Outline 1. Definitions 2. Sources of Standards 3. Why Use Standards ? 4. ISO and Software Engineering Standards 5. IEEE Software Engineering Collection Sources: IEEE Standards, Software Engineering, Volume Three: Product Standards, Introduction to the1999 Edition, pages i toxxiii. Horch, J., ‘Practical Guide to Software Quality management’, ArtechHouse, 1996, chap 2. Wells, J., ‘An Introduction to IEEE/EIA 12207’, US DoD, SEPO, 1999. Moore, J., ‘Selecting Software Engineering Standards’, QAI Conference, 1998. Moore, J., ‘The Road Map to Software Engineering: A Standards-Based Guide’, Wiley-IEEE Computer Society Press, 2006. Moore, J.,’AnIntegrated Collection of Software Engineering Standards’, IEEE Software, Nov 1999. Gray, L., ‘Guidebook to IEEE/EIA 12207 Standard for Information Technology,Software Life Cycle Processes’, AbeliaCorporation, Fairfax, Virginia, 2000. Coallier, F.; International Standardization in Software and Systems Engineering, Crosstalk, February 2003, pp. 18-22. 6/21/2008 2 1 6/21/2008 Exemple d’un système complexe Système de transport aérien SSyyssttèèmmee ddee ttrraannssppoorrtt Système de Transport Aérien tteerrrreessttrree SSyyssttèèmmee ddee SSyyssttèèmmee ddee ggeessttiioonn dduu ttrraaffiicc rréésseerrvvaattiioonn aaéérriieenn SSyyssttèèmmee SSyyssttèèmmee aaéérrooppoorrttuuaaiirree ddee ddiissttrriibbuuttiioonn dduu kkéérroossèènnee SysStyèsmtèem aevi oavniioqnue SSyyssttèèmmee ddee SSyyssttèèmmee ddee ggeessttiioonn ddee llaa SSttrruuccttuurree vviiee ààbboorrdd SySsytèsmtèem dee de ééqquuiippaaggee prporpoupluslisoinon SSNNyyaassvvttèèiiggmmaaeettii ooddnnee de SVSyiysssuttaèèlmimsaeetion SSyyssttèèmmee ddee nnaassvvyyiiggssaatteettiioommnn de visualisation ccoonnttrrôôllee ddee vvooll SSyyssttèèmmee d dee ré rcéecpetiopntion SSyyssttèèmmee ddee GGPPSS ttrraannssppoorrtt tmearrreitsimtree 6/21/2008 3 Toward a Software Engineering Profession • What does it take ? 1. Body of Knowledge (e.g. SWEBOK) 2. Standards 3. ‘Best practices’ (i.e. techniques proven to work) 4. Education 5. Code of Ethics 6. Certification mechanism 7. Licensing mechanism Source: Steve McConnel, 1999 6/21/2008 4 2 6/21/2008 Standard: Définition • Mandatory requirements employed and enforced to prescribe a disciplined uniform approach to software development, that is, mandatory conventions and practices are in fact standards. (ISO/IEC 24765, Systems and Software Engineering Vocabulary) http://pascal.computer.org/sev_display/index.action 6/21/2008 5 Standard: Définition • Formal mandatory requirements developed and used to prescribe consistent approaches to development (e.g., ISO/IEC standards, IEEE standards, and organizational standards). (source: CMMI) – Normative: “prescribing a norm or standard” (Webster) – Informative: Tell users something useful about the standard itself, or provide informationthat complementsthe normative parts (source: Gray 2000) Evaluation de la conformité Intrant Extrant 6/21/2008 Processus 6 3 6/21/2008 Normes et Standards • Norme de jure – Norme définie et adoptée par une organisation officielle de normalisation, sur le plan national ou international. • Norme de facto – Norme qui n’a pas été définie ni entérinée par un organisme officiel de normalisation mais qui s’est imposée par la force des choses, parce qu’elle fait consensus auprès des utilisateurs, d’un groupe d’entreprises ou encore d’un consortium Adaptéde F Coallier 6/21/2008 7 Normes/Standards ouverts • Sa définition est accessible à tous, • Son utilisation n’est pas sujette à des redevances de la part d’un propriétaire, • Au moins une implémentation de référence existe, • Il est possible de vérifier la conformité d’un système/processus à ce standard Adaptéde F Coallier 6/21/2008 8 4 6/21/2008 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. -- IEEE Std 610.12 6/21/2008 9 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. • In 1981, IEEE had one software engineering standard. By year end 1997, the collection had grown to 44. Source: Moore 98 6/21/2008 10 5 6/21/2008 Roles of Software Engineering Standards More 1. Specify techniquesto develop software faster, cheaper, exciting better, IEEE 982.1 (Measures for Reliable SW) 2. Provide consensus validityfor “best practices”that cannot be scientificallyvalidated,IEEE 1008 (Unit Testing) 3. Provide a systematic treatmentof “ilities”, IEEE 730 (SW Quality Assurance) 4. Provide uniformityin cases where agreement is more important than small improvements, IEEE P1320.1 (IDEF0) 5. Provide a framework for communicationbetween buyer and seller, IEEE/EIA 12207 (SW Life Cycle Processes) 6. Give precise namesto concepts that are fuzzy, complex, detailed and multidimensional, IEEE 1028 (SW Reviews) More Source: J Moore 98 effective 6/21/2008 11 Software Engineering Standards - Scope Process Technique/Tool Applicability 1. Acquisition 1. CASE tools 1. General 2. Requirements 2. Languages and 2. Defense definition Notations 3. Financial 3. Design 3. Metrics 4. Medical 4. Code and Test 4. Privacy 5. Nuclear 5. Integration 5. Process 6. Process Control 6. Maintenance and Improvement 7. Scientific Operations 6. Reliability 8. Shrink-wrap 7. CM 7. Safety 9. Transportation 8. Documentation 8. Security 9. Project Management 9. Software reuse 10. Quality Assurance 10. Vocabulary 11. V & V Most software engineering standards are practicestandards rather than the more familiar productstandards in other fields (e.g. chemistry). 6/21/2008 12 Source: Moore 98 6 6/21/2008 Software Engineering Standards Organizational Goals 1. Improve and evaluate software competence 2. Framework for two-party agreements 3. Evaluation of software products 4. Assurance of high integrity levels for software products Source: Moore 05 6/21/2008 13 Why Use Standards? 1. Establish uniformrequirementsand vocabularyfor development and documentation 2. Define a common frameworkfor software life cycle processes 3. Clarify the roles and interfacesof participants 4. Clarify the types and contentsof documentation 5. Identifythe tasks, phases, baselines, reviews, and documents needed 6. Follow the lessons learned and proven (best)practicesof the industry 7. Avoid the pitfalls and problemsof the past 8. Save time and $by not reinventing the wheel again (NRHvs. NIH). 9. Selecta supplieror a developer(e.g. ISO 9000) 10. Impose requirementsin a contract 11. Impose a trade barrier! 6/21/2008 (NRH= Not Re-Invented Here; NIH = Not Invented here) 14 7 6/21/2008 Software Engineering Standards in Courts (US) • Courts generally view the application of standards as important evidencethat engineers performed their work with appropriate diligence and responsibility. • If sued for negligence or reckless conduct, an engineer can cite the standards usedwhen he or she conducted the work to demonstrate that it was performed in accordance with codified professional practices. Moore, J.,’An IntegratedCollection of Software Engineering Standards’, IEEE Software, Nov1999. 6/21/2008 15 The Frameworks Quagmire SDCE SCE People CMM PSP DOD- DOD- DOD- STD- STD- SW-CMM STD- 2167A 2168 CBA IPI TSP Process Stds 7935A QualityStds SCAMPI Maturity or ISO/IEC CMMI 15504 J-STD MIL-STD- Capability ISO FAA- 016 498 Models Appraisal 15939* iCMM# SA- methods CMM SSE- RTCA Guidelines PSM CMM DO-178B FAM** IEEE/EIA Six IPD- 12207 Sigma CMM* SE-CMM Baldrige EIA/IS SECAM SAM ISO 9000 ISO/IEC 731 IEEE Q9000 series 12207 EIA/IS 1220 MIL-STD 632 499B* TL9000 ISO/IEC 15288* EIA 632 Italic = obsolete boxed = integrating *not released **based on CBA IPI, SAM, and others supersedes Source: Sarah Sheard, SPC # V2 also based on many others based on 6/21/2008 Seewww.software.org/quagmire uses/references 16 8 6/21/2008 Sources of Standards 1. Within an organization – Documented from day-to-day activities 2. From consultantsmandated to develop them 3. From manufacturers’ user groups (e.g. IBM) 4. From a group of companies working together (e.g. Telecom) 5. From professional groups(e.g. IEEE) 6. From government agencies(e.g. NASA, Transport) 7. From Standards Organizations(e.g. ISO) 8. From Countries(e.g. Conseil canadiendes normes) 6/21/2008 17 Outline 1. Definitions 2. Sources of Standards 3. WhyUse Standards ? 4. ISO and Software Engineering Standards • Name of organizationISO comesfrom‘ISOS’a greekword ‘Equal’ 5. IEEE Software Engineering Collection 6/21/2008 18 9 6/21/2008 International Software Standards Developers ISO IEC ITU TC176 JTC1 TC56 SC65A Quality Information Technology Dependability Functional Safety SC1 SC7 SC22 Terminology Software Language, OS Engineering WG7 Other WGs WG9 WG15 Life cycle processes Ada POSIX Members of these committees are “national bodies,”i.e. countries, represented by “national delegations.” 6/21/2008 19 International Organization For Standardization • ESTABLISHED:1947 • OBJECT:Promote the development of standardization... in the world ... to facilitating international exchangeof goods and services • MEMBERS:148countries • Over 14,000 Standards • TECHNICAL COMMITTEES (TCs): Carry out technical work • TCsTHAT MAY IMPACT SOFTWARE ENGINEERING: -TC 10: Technical Drawings -TC 20: Space and aircraft vehicles -TC 46: Information and documentation -TC 145: Graphical symbols -TC 154: Documents and data elements in administration, commerceand industry -TC 159: Ergonomics -TC 176: Quality management and quality assurance -TC 184: Industrial automation systems 6/21/2008 20 10
Description: