Implementing the IEEE Software Engineering Standards ; Implementing the IEEE Software Engineering Standards ; Michael Schmidt 800 East 96th Street Indianapolis, Indiana 46290 Copyright © 2000 by Sams Publishing All rights reserved No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher No patent liability is assumed with respect to the use of the information contained herein Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions Neither is any liability assumed for damages resulting from the use of the information contained herein International Standard Book Number: 0-672-31857-1 Library of Congress Catalog Card Number: 99-69168 Printed in the United States of America First Printing: October 2000 02 01 00 4321 Trademarks All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized Sams Publishing cannot attest to the accuracy of this information Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark Figures reprinted with permission from IEEE Std 1074; 1490; 830-1984; 830-1998; 829; 1016; 982.1; 982.2; 1028; 1012 Copyright 2000, by IEEE The IEEE disclaims any responsibility or liability resulting from the placement and use in the described manner Associate Publisher Michael Stephens Acquisitions Editor Steve Anglin Development Editors Laura N.Williams Heather Goodell Managing Editor Matt Purcell Project Editor Dawn Pearson Copy Editor Mary Ellen Stephenson Indexer Sheila Schroeder Proofreader Katherin Bidwell Technical Reviewers Charles Ashbacher Tathagat Varma Team Coordinator Pamalee Nelson Interior Designer Karen Ruggles Cover Designer Alan Clements Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied.The information provided is on an “as is” basis.The author and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book IEEE Standards Trademarks & Disclaimers The IEEE believes the information in this publication is accurate as of its publication date; such information is subject to change without notice.The IEEE is not responsible for any inadvertent errors IEEE Standards Copyright Information The IEEE Standards referenced in this book are copyrighted by the Institute of Electrical and Electronics Engineers, Inc All rights reserved IEEE Standards Information Network Endorsement Disclaimer The IEEE Standards Information Network (IEEE-SIN) endorsement in this publication does not render this publication a consensus document Information contained in this and other works has bee obtained from sources believed to be reliable and reviewed by credible members of IEEE Technical Societies, Standards Committees and/or Working Groups and/or relevant technical organizations Neither the IEEE nor its authors guarantee the accuracy or completeness of any information published herein and, neither the IEEE nor its volunteers, members and authors shall be responsible for any errors, omissions or damages arising out of use of this information Likewise, while the IEEE and its volunteers and members believe that the information and guidance given in this work serve as an enhancement to users, all parties must rely upon their own skill and judgment when making use of it Neither the IEEE nor its volunteers or members assume any liability to anyone for any loss or damage caused by any error or omission in the work, whether such error or omission is the result of negligence or any other cause Any and all such liability is disclaimed By endorsing this publication, it should be understood that the IEEE and its volunteers and members are supplying information through this publication, not attempting to render engineering or other professional services If such services are required, the assistance of an appropriate professional should be sought.The IEEE is not responsible for the statements and/or opinions advanced in this publication IEEE Review Policy The information contained in IEEE-SIN publications, and others publications endorsed by the IEEE-SIN, is reviewed and evaluated by peer reviewers of relevant IEEE Technical Societies, Standards Committees and/or Working Groups and/or relevant technical organizations.The publisher addressed all of the reviewer’s comments to the satisfaction of both the IEEE-SIN and those who served as peer reviewers for this document v The quality of the presentation of information contained in this publication reflects not only the obvious efforts of the authors, but also the work of these peer reviewers.The IEEE-SIN acknowledges with appreciation their dedication and contribution of time and effort on behalf of the IEEE To order IEEE publications, call 1-800-678-IEEE or, visit our web site at www.ieee.org To order The IEEE Standards referenced herein, call 1-800-678-IEEE or, visit the IEEE Standards web site at www.standards.ieee.org Endorsed by The IEEE Standards Information Network Implementing the IEEE Software Engineering Standards' by Michael Schmidt is recognized by the Software Engineering Standards Committee of the IEEE Computer Society as a useful guide for software practitioners applying software engineering standards vi Dedication To my family: My parents, Jürgen and Hanna My wife, Elizabeth My children, Emily, Evan, and Erica Acknowledgments I would like to thank the countless IEEE members who contributed to and reviewed the standards collection over the years.Without their efforts we would have no standards I would also like to thank my editors, Laura Williams, for encouraging me, and putting up with me, and Heather Goodell, for her help in completing the project Special thanks to Jim Moore, who provided invaluable feedback on the contents of the book I take credit for any remaining rough spots vii vii About the Author Michael Schmidt was born in Cologne, Germany in 1959 His father, Jürgen Schmidt, a well-known mathematician, moved the family to the United States in 1967 on a Fulbright-Hays teaching fellowship Mike graduated from the Kinkaid School in Houston,Texas, in 1977; received a B.A in Mathematics from the University of California at Berkeley in 1980; and a M.A in Mathematics from the University of Washington at Seattle in 1981 In 1980, as a student intern, Mike worked as a programmer on the cyclotron control system at Lawrence Berkeley Laboratories After receiving his degree at UW, Mike took a position as a software engineer at Bi-M Instruments, a start-up company in Houston developing ballast control systems for offshore oil rigs In 1981, Mike was recruited by Varian Associates in Palo Alto to work on the software for a next-generation linear accelerator for oncology care At Varian, Mike was promoted to project engineer, leading the team for the control system software In 1986, Mike was recruited to another start-up company,TransImage Corporation in Menlo Park, as a staff software engineer to develop a sophisticated optical-character-recognition system In 1987, Mike joined Siemens Medical Systems, again as a project engineer to head the software team developing a next-generation control system for a linear accelerator for oncology care Mike was promoted to manager of the software engineering department at Siemens Medical Systems, Oncology Care Systems, with responsibility for all software development in five major product areas In 1994, Mike started Software Engineering Services, Inc., a software consulting business specializing in fixed-price projects for software in the medical device, pharmaceutical, and biotechnology industries, and other industries for which software plays a safety-critical role SES has a long list of well-known clients in these industries, and has developed and validated software for numerous sophisticated applications Mike also has been teaching computer science classes at University of California Berkeley Extension, and Diablo Valley College, including C++ programming, and classes on the IEEE Software Engineering Standards In 2000, Mike joined Zeiss Humphrey Systems, a leading manufacturer of ophthalmic instruments, as the software engineering manager Mike is an IEEE member viii About the Technical Reviewers Charles Ashbacher has been programming for nearly 20 years, which makes him experienced and well-rounded rather than old and cynical He is co-editor of Journal of Recreational Mathematics and a regular contributor to Journal of ObjectOriented Programming Charles teaches computing at all levels: corporate training, college, and community education and is president and CEO of Charles Ashbacher Technologies (http://www.ashbacher.com) His background also includes stints writing commercial code and software to conduct scientific research Tathagat Varma received an M.Sc Computer Science (Software) degree from J.K Institute of Applied Physics and Technology, University of Allahabad, India in 1990 He then worked with the Defence Research and Development Organization, Government of India, as a computer scientist until 1995 During this tenure, he also participated in the XIII Indian Scientific Expedition to Antarctica, where he stayed for 16 months! In August 1995, he joined Siemens Communication Software, Bangalore, where he worked in telecommunication software development for over a year Since December 1996, he has worked with Philips Software Centre, Bangalore Philips Software Centre is the software arm of the Royal Philips Electronics,The Netherlands In the last three years with Philips, he has worked with Medical Systems and as SPI and QA Manager Currently, he is managing a project that involves development of embedded software for digital set-top boxes He is formally trained in CMM, ISO Tick-IT, and Philips Assessment Method He is also an active reviewer for the IEEE Software magazine ix 228 improvements incremental, 16 limiting, 16 planning, 16-17 specifying benefits of, 17 improving meeting efficiency, 150 software processes, 163 quality, 7, 174 incomplete SRSs, 206 increasing quality projects, 137 software, 46 sales volume, incremental improvements, processes, 16 incremental phase-ins, standards, 38 independence, SQAPs, 178 industry standards, researching, 14 information flow, standards, 35-37 Information Technology (ISO/IEC Std 12207), 142, 152-154 infrastructure process (organizational life cycle process), 54 infrastructures, 143 initiating V&V, 188 initiators, audits, 167 input reviews, 154 soliciting, 54 input documents IEEE Std 829, 106 IEEE Std 1016, 115 Inspection Leaders (inspections), 160 Inspection Reports, requirements, 161 inspection reviews, 147 inspection teams, 161 inspections, 42, 160-164, 170 meetings, 161 SQAPs, 179-180 visual, 148 instructional mode (IEEE Std.) 1063, 83-87 integration testing, 103 integrity levels software, 47, 172, 185 V&V tasks, 39, 44 interface control activity (SCM), 199 interface description (design views), 117 interfaces IEEE Std 830, 90 to non-software processes, defining, 19 testing, 103 interrelationships, standards, 35, 37 integrity levels, software, 189-192 introducing SCM, 201 introductions, reviews, 154 ISO 9001, 219 ISO-9000 standards, 10 ISO/IEC Std 12207, 142, 152, 154, 219 items, configuration See CIs iteration planning, 70 J-L J-STD-016-1995 EIA/IEEE, 220 joint review process (supporting life cycle process), 53 joint SRS preparation, 93-94 lead auditor, 166 leaders (Walk-Throughs), 164 legacy software, 99 Level (maturity model), 39-40 Level (maturity model), 41-42 Level (maturity model), 42 Level (maturity model), 43-45 Level (maturity model), 45-46 Level (maturity model), 46 liability (software), reducing, life cycle models, describing, 19 Life Cycle Processes creating, 175 framework, 40 organizational, 54 primary, 51-53 SESC alternative model, 30 supporting, 53-54 tailoring, 54-55 limiting improvements, 16 module complexity, 46 logging IEEE Std 829 (Software Test Documentation), 109-110 process measures, 111 test incident reports, 110-111 measures 229 test logs, 110 test summary reports, 111 logic structure standards, 179 Low-Level Design Description, 120 M major criticality (software), 190 management configuration, 206, 209-211 project, 205-206 responsibilities, 39 risks, 73 SQAPs, 178 management preparation (Management Reviews), 156 management process (organizational life cycle process), 54 Management Review Reports, 158 Management Reviews, 39, 42, 138, 147, 155-170 Management Staff (Management Reviews), 156 managing configuration, 43 costs, 7-9, 198 cynicism, 18 factionalism, 18 outsourcing, 212 projects, 10-11, 42, 136-139, 141-146, 186 risks projects, 72, 142 SQAPs, 181 schedules, 7-9, 198 source code files, 197 management, software configuration See SCM mapping, 49, 60 activities to SLCMs, 55 Activity Groups, 45 audits, 193 integrity levels (software), 47 reviews, 154, 193 SLCMs, 60 V&V activities, 44 mature processes, outsourcing, 212 maturity, 38 maturity model, 38 Level 0, 39-40 Level 1, 41-42 Level 2, 42 Level 3, 43-45 Level 4, 45-46 Level 5, 46 may conventions, 205 Mean-Time-to-Failure measure (IEEE Std 982.1), 130 Measurement (SESC alternative model), 30 measurements, quantitative, 15-16 measures, 123 IEEE Std 982.1 (Dictionary of Measures to Produce Reliable Software), 121 audience, 125 benefits, 123-124 Cyclomatic Complexity, 130 Defect Density, 130 defined, 122 Error Distribution (s), 130 failures, 122 implementation, 132-133 Mean-Time-to-Failure, 130 Minimal Unit Test Case Determination, 130 process, 129 product, 128 project phases affected, 126 quality issues, 122 relationship to other standards, 124-125 reliability issues, 122 summary, 133 Test Coverage, 130 IEEE Std 982.2 (Guide for the Use of IEEE Standard Dictionary of Measures to Produce Reliable Software), 121-123 IEEE Std 1061 (Software Quality Metrics Methodology), 121 audience, 126 benefits, 124 direct metrics, 128, 131-132 implementation, 132-133 methodology, 131-132 predictive metrics, 128, 131-132 project phases affected, 126-128 quality issues, 123 relationship to other standards, 124-125 230 measures processes, 46 products, 46 SQAPs, 179 Measures for Reliable Software (IEEE Std 982.1), 30 media control (SQAPs), 181 meetings guiding, 150 improving efficiency, 150 inspections, 161 metrics See measures Mil-Std-498, 220 Minimal Unit Test Case Determination measure (IEEE Std 982.1), 130 minor criticality (software), 190 missing standards, 46-47 modeling rapid prototyping, 68 models life cycle, 19 maturity, 38 phase-in strategies, 31 process outsourcing, 213 specifying, 58 SLCMs black box, 62 Code-and-Fix, 62 spiral See spiral models (SLCMs) waterfall See waterfall models (SLCMs) software life cycle, 47 moderate criticality (software), 190 modified waterfall model (SLCMs), 65 modular designs (software), 208 modular style, test documentation, 41 modules, 45-46, 103-104, 113 See also units monitoring SOPs, 21-22 morale, decreased, 18 MOTS (modified off-the-shelf software), 144 multi-processing applications, developing, 209 multi-threading applications, developing, 209 multiple CCBs, 197 multiple SRS, 207 N-O naming conventions, 46 non-applicable sections (SQAPs), 178 non-compliance, regulatory, 16 non-software processes, defining interfaces to, 19 nonsystematic reviews, 147 notation (UML), 208 object model (SESC), 28 object model categorization, 28 observations, classifying, 168 obsolete SOPs, replacing, 20 one phase overlap waterfall model (SLCMs), 65 OOD (object-oriented design), 208 OPAs (Organizational Process Assets), 60 organization Software Design Descriptions, 116-119 SQAPs, 178 Organizational Life Cycle Processes, 54 organizational models (IEEE Software Engineering Standards), 33-35 organizations software process, 38 standards supplied by, 46-47 organizing requirements (IEEE Std 830), 97-98 outsourcing, 212-213 overall guide (SESC framework model), 27 overlap phases (waterfall model), 51-54, 57, 64-65, 70 overviews (Management Reviews), 156 P P1471, D5.2, 220 P1540, D7.0, 220 personnel, training, 21, 169 PHAR (Preliminary Hazard Analysis Report), 36-37 phase review meetings, waterfall model (SLCMs), 63 phase-in strategies, 17, 31 projects 231 phase-ins incremental, 38 SOPs, 21 phases overlap, waterfall model (SLCMs), 51-54, 57, 64-65, 70 projects, 139 planned schedules versus actual schedules, 15 planning improvements, 16-17 iterations, 70 projects, 42, 174 plans abbreviated, SPMPs, 143 creating compliant, 137 infrastructures, 143 product acceptance, 143 projects, revising, 21 software safety, 144 supporting processes, 143 Plans (SESC alternative model), 30 practices (SQAPs), 179 predictive metrics, 128, 131-132 Preliminary Hazard Analysis Report (PHAR), 36-37 Primary Life Cycle Processes, 51-53 primary processes, 49 principles (SESC framework model), 27 problem reports, evaluating, 15 problem resolution process (supporting life cycle process), 53 problem solving (SQAPs), 180 procedural designs (software), 208 procedures, 104, 154 process diagrams, 17 process measures, 111, 129 process models determining acceptable, 38 outsourcing, 213 specifying, 58 process standards (software engineering), 216-217 Process Standards (SESC object model), 28 processes, 113 formalizing, 43 improvements committing to, 17 defining, 17 evaluating, 17, 22 incremental, 16 limiting, 16 planning, 16-17 interfaces to non-software, 19 life cycle, creating, 175 Management Reviews, 156, 158 mature, outsourcing, 212 measures, 46 organizational models (IEEE Software Engineering Standards), 33 primary, 49 SCM, 197 selecting, 54 software formalizing, 9, 41-42 improving, 163 standardization, 8-9 software acquisition, 144 systematic, 42 V&V, 184-185, 191 Walk-Throughs, 165 product acceptance plans, 143 product measures (IEEE Std 982.1 application), 128 product standards (software engineering), 217 Product Standards (SESC object model), 28 products measures, 46 software, 148-150, 163 programming standards, 19, 47, 82, 179 project management, 205-206 SESC alternative model, 30 standards, 136-139, 141-146 project phases IEEE Std 829 application, 107 IEEE Std 830 application, 94 IEEE Std 982.1 application, 126 IEEE Std 1016 application, 115 IEEE Std 1061 application, 126-128 IEEE Std 1063 application, 85 project plans, creation, 42 projects decreasing costs, 137 schedules, 137 identifying environment, 54 increasing quality, 137 232 projects managing, 42, 72, 138, 142 phases, 139 planning, 42 reviewing, 138 revising plans, 21 software executing, 174 managing, 10-11, 186 planning, 174 tracking, 11 tracking, 141 proof of concept, 72 prototyping IEEE Std 830, 100 rapid See rapid prototyping providing consistent terminology, 47 programming standards, 19 pure waterfall model (SLCMs), 65 Pyramid of Applicability, 38 Q quadrants, spiral model (SLCMs), 71-72 quality IEEE Std 982.1, 122 IEEE Std 1061, 123, 131-132 projects, increasing, 137 rapid prototyping, 69 software, 6-7, 46 ensuring, improving, 7, 174 increasing, 46 requirements, 46 testing, 188 quality assurance, 170-182 quality assurance process (supporting life cycle process), 53 quantitative measurements, 15-16 R ranking anomalies, 164 rapid prototyping modeling, 68 quality, 69 waterfall model (SLCMs), 68, 70 rationale, documenting, 54 readers, inspections, 160 recommended formats (SQAPs), 177 Recommended Practice for Software Acquisition (IEEE Std 1062), 201 Recommended Practice for Software Design Descriptions (IEEE Std 1016), 187 Recommended Practice for Software Requirements Specifications (IEEE Std 830), 40 recorders audits, 166 inspections, 160 Management Reviews, 156 Walk-Throughs, 164 reducing liability, support costs, reevaluating software engineering standards, reference mode (IEEE Std 1063), 83 document body contents, 87-88 selecting, 85 referencing specific standards, 19 regulations, government, 14 regulatory non-compliance, correcting, 16 reliability IEEE Std 982.1, 122 software, 46 replacing obsolete SOPs, 20 reports, 111 See also logging activity summary, 194-195 anomaly, 194-195 Audits, 168 evaluating, 15 inspection, 161 reviewing, 148 task, 194-195 Technical Review, 160 templates, 170 V&V Final, 194-195 Walk-Through, 166 requesting changes (CIs), 199 required content (SVVPs), 193 required tasks (V&V), determining, 191 requirements Management Review Reports, 158 outsourcing, 212 scheduling, sequential 233 software analyzing, 206-207 documenting, 41 Software Configuration Management Plans, 179-180 sofware quality, 46 SQAPs, 172-173, 178 researching government regulations, 14 industry standards, 14 resource standards SESC object model, 28 software engineering, 217-218 resources, outsourcing, 212 responsibilities, assigning, 19 management, 39 reviews, 154 restricting SOPs, 21 restrospective validations, 100 Reuse (SESC alternative model), 30 reusing software, Review Leaders (Management Reviews), 155 reviewing projects, 138 reports, 148 software, 146-170 SOPs, 20 work products, 68 reviews criteria, 154 cycles, 70, 74 input, 154 introductions, 154 management, 39, 155-170 process, 156-158 SPMPs, 138 mapping, 154, 193 nonsystematic, 147 output, 154 procedures, 154 responsibilities, 154 software, 37, 147 advantages, 150, 152 audit, 148 implementing, 169-170 inspection, 147 management, 147 technical, 147 types, 42 walk-through, 148 SPMPs, defining, 143 SQAPs, 179 statement of objectives, 156 systematic, 147 team, conducting, 20 technical, 158-160, 170 User Documentation, 173-174 revised SOPs, 21 revising project plans, 21 risk analysis, 73 risk management, 73, 181 risk-oriented spiral model (SLCMs), 72-73 risks projects, 72, 142 software, 185 SPMPs, 145 routines, defined, 104 S safety IEEE Std 830 issues, 92 IEEE Std 1063, 88 IEEE Std 1228 (Software Safety Plans), 84 plans, 144 sales volume (software), increasing, Sashimi model (SLCMs), 70 Sashimi waterfall model (SLCMs), 65 saving test incident reports, 111 SCDs (Software Change Descriptions) documenting, 209 guidelines, 210 scenarios SRSs, 100 test case specifications comparison, 111 schedules decreasing, 68, 137 managing, 198 planned versus actual, 15 software estimating, managing, 7-9 scheduling, sequential, 63 234 SCM (software configuration management) SCM (software configuration management), 196-202 activities, 199 advantages, 198 implementing, 201-202 introducing, 201 process, 197 SCM Plans (IEEE Std 828), 30 scope (IEEE Std 1016), 112 SDDs (Software Design Descriptions), 36, 207-209 secondary classifications, 31 selecting activities, 54 design entities, 120 modes, IEEE Std 1063, 85 processes, 54 SLCMs, 59-61 tasks, 54 sequential scheduling, 63 SESC (Software Engineering Standards Committee), 26 classifications, ambiguity, 31-33 models alternative, 30-31 framework, 26-27, 30-32 problems, 32 shall conventions, 205 should conventions, 205 simplifying SOPs, 61 size, Software Design Descriptions (IEEE Std 1016), 120 SLCMs (Software Life Cycle Models), 49-50, 59 applying standard, 61-62 mapping, 55, 60 models black box, 62 Code-and-Fix, 62 spiral See spiral model (SLCMs) waterfall See waterfall model (SLCMs) selecting, 59-61 SLCP (Software Life Cycle Planning), 45, 50, 59-62 SLCs (software life cycles), 60 software analyzing feedback, coding, 52 compliance, 10 costs, 7-9 COTS, 144 critical applications, 32 minimum documentation, 43 quality assurance, 171 criticality, 40, 190 designs documenting, 42 modular, 208 OOD, 208 procedural, 208 engineering activities, 34 challenges, evaluating, 11, 15 hazards, 185-186 identifying anomalies, 8, 146 increasing sales volume, integration testing, 103 integrity levels, 172, 185, 189-192 error consequences, 189 mapping, 47 V&V tasks, 39 legacy, 99 life cycle processes, 40 maintaining risks, 185 MOTS, 144 process, 8-9 projects managing, 10-11, 186 tracking, 11 quality, 6-7 ensuring, improving, 7, 174 increasing, 46 requirements, 46 reducing liability, requirements analyzing, 206-207 documenting, 41 restrospective validations, 100 reusing, reviews, 37, 147 advantages, 150, 152 audit, 148 implementing, 169-170 inspection, 147 management, 147 technical, 147 software engineering standards 235 types, 42 walk-through, 148 scenarios SRSs, 100 test case specifications comparison, 111 schedules, 7-9 software change requests, test incident software, 111 system testing, 103 testing, 6, 9, 41, 52, 103, 106 units defined, 103-104, 113 design entities, 113 IEEE Std 829, 103-104 testing, 103-104 use cases SRSs, 100 test case specifications comparison, 111 validation, verifying, 11 version identifiers, 210 Software Acquisition (IEEE Std 1062), 175 software acquisition processes, 144 Software Change Descriptions (SCDs), 209 software change requests, test incident reports, 111 Software Configuration Management (IEEE Std 1042-1987), 42, 196 Software Configuration Management Plans (IEEE Std 828), 37, 40, 44, 138, 143, 152-153, 172-174, 179-180 Software Configuration Management Plans (IEEE Std 828-1998), 196 Software Design Description (SDD), 9, 36, 81-82 Software Design Descriptions (IEEE Std 1016), 30, 42, 92, 112, 152, 172-174 audience, 115 benefits, 114 content required, 116 design entities, 112-114 attributes, 116 selecting, 120 design views, 117, 119 High-Level Design Description, 120 IEEE Std 830 comparison, 92 implementation, 120 input documents, 115 Low-Level Design Description, 120 organization recommended, 116-117, 119 project phases affected, 115 purpose, 112 relationship to other standards, 115 scope, 112 size, 120 summary, 121 software design documentation (SDD), 207-209 software development, outsourcing, 212-213 software engineering standards compliance, 10 IEEE, 10 IEEE Std 610-1990, IEEE Std 610.12, 34, 197-198, 202 IEEE Std 730, 30-34, 37, 43, 138, 143, 152-154, 171-184, 187, 198 IEEE Std 730-1998, 170 IEEE Std 730.1-1995, 170 IEEE Std 828, 30, 37, 40, 44, 138, 143, 152-153, 172, 174, 199-200 IEEE Std 828-1998, 196 IEEE Std 829 (Software Test Documentation), 16, 30-31, 35, 37, 41, 44, 84, 101, 152, 174, 187 audience, 106 benefits, 105 implementation, 110-111 input documents, 106 logging, 109-110 project phases affected, 107 relationship to other standards, 105-106 summary, 111 test documents, 101, 107-109 testing levels, 102-103 units, 103-104 IEEE Std 830 (Software Requirements Specifications), 16, 30, 40-41, 89-91, 152-153, 172-174, 187 audience, 93-94 benefits, 91 configuration management, 92 documentation comparison, 90 excluded specification topics, 89 236 software engineering standards good SRS characteristics, 89-90 implementation, 99-100 interface specifications, 90 joint SRS preparation, 93-94 organizing requirements included, 97-98 project phases affected, 94 prototyping, 94-96, 100 relationship to other standards, 91-93 safety issues, 92 specific requirements included, 96-97 specification issues addressed, 89 SRS testing, 92-93 summary, 100 templates, 41 versus other standards, 84, 92 IEEE Std 982.1 (Dictionary of Measures to Produce Reliable Software), 30, 46, 121, 152, 187 audience, 125 benefits, 123-124 Cyclomatic Complexity measure, 130 Defect Density measure, 130 Error Distribution (s) measure, 130 failures, 122 implementation, 132-133 Mean-Time-to-Failure measure, 130 measures defined, 122 Minimal Unit Test Case Determination measure, 130 process measures, 129 product measures, 128 project phases affected, 126 quality issues, 122 relationship to other standards, 124-125 reliability issues, 122 summary, 133 Test Coverage measure, 130 IEEE Std 982.2 (Guide for the Use of IEEE Standard Dictionary of Measures to Produce Reliable Software), 121, 123 IEEE Std 1008, 45, 153 IEEE Std 1012, 30-31, 34, 38, 43-44, 62, 138-139, 142-143, 152-154, 172, 174 IEEE Std 1012-1998, 183-196 IEEE Std 1012a-1998, 183 IEEE Std 1016 (Software Design Descriptions), 30, 42, 92, 112, 152, 172, 174, 187-188 audience, 115 benefits, 114 content required, 116 design entities, 112-114, 116, 120 design views, 117, 119 High-Level Design Description, 120 IEEE Std 830 comparison, 92 implementation, 120 input documents, 115 Low-Level Design Description, 120 organization recommended, 116-117, 119 project phases affected, 115 purpose, 112 relationship to other standards, 115 scope, 112 SDD size, 120 summary, 121 IEEE Std 1028 (Software Reviews), 20-21, 37, 42-44, 84, 142, 170, 175, 187, 198 IEEE Std 1028-1997, 146-150 IEEE Std 1042, 45 IEEE Std 1042-1987, 196 IEEE Std 1044, 30, 163 IEEE Std 1045, 30 IEEE Std 1058, 30-31, 42, 136-146, 152-153, 181, 198 IEEE Std 1059-1993, 183 IEEE Std 1061 (Software Quality Metrics Methodology), 30, 46, 121, 152, 175, 187 audience, 126 benefits, 124 direct metrics, 128, 131-132 implementation, 132-133 methodology, 131-132 predictive metrics, 128, 131-132 project phases affected, 126, 128 quality issues, 123 relationship to other standards, 124-125 IEEE Std 1062, 175, 201 IEEE Std 1063 (software user documentation), 37, 83, 152, 172, 175, 187 audience, 84-85 benefits, 83 Software Requirements Specifications (IEEE Std 830) 237 cautions, 88 components, 83, 85-86 document sets, 85 identifying required documentation, 85 implementation, 88 instructional mode, 83, 85-87 project phases affected, 85 reference mode, 83, 85, 87-88 safety issues, 84 summary, 88 validating documentation, 84 versus IEEE Std 830, 84 warnings, 88 IEEE Std 1074, 45, 58-61, 138, 142, 152-154, 175, 187, 198 IEEE Std 1228 (Software Safety Plans), 30, 45, 84, 138, 152-153, 187 IEEE Std 1233 (System Requirement Specifications), 30, 37, 92 IEEE Std 1362, 30 IEEE Std 1490, 30 IEEE Std 1490-1998, 70, 72 IEEE Std 12207.0, 40 IEEE/EIA Std 12207.0, 49-58, 175, 187 IEEE/EIA Std 12207.1, 175, 187 ISO/IEC Std 12207, 142, 152-154 programming, 82 reevaluating, work product, 81, 83 lack of directly applicable software standards, 82 Software Design Description, 81-82 SRS, 81-82 Software Engineering Standards Committee See SESC Software Engineering Standards, A User’s Road Map, 26 software functions, specifications, 41 Software Integrity Level (IEEE Std 1012), 38, 43, 45, 103, 106 Software Life Cycle Models See SLCMs Software Life Cycle Planning See SLCP Software Life Cycle Process (IEEE Std 1074), 45, 49-50, 175 Software Life Cycle Processes (IEEE/EAI Std 12207.0), 187 software life cycles See SLCs software process maturity, organizations, 38 software processes appropriateness, 39 formalizing, 41 improving, 163 software product dispositions, 163 Software Productivity Metrics (IEEE Std 1045), 30 software products, 148-150 Software Project Management Plan (IEEE Std 1058), 30-31, 42, 52, 136-139, 141-146, 152-153, 181, 198 Software Project Management Plans (SPMP), 36, 136, 181 See also SPMPs Software Quality, 46 Software Quality Assurance, 42 Software Quality Assurance Planning (IEEE Std 730.1-1995), 170 Software Quality Assurance Plans See also SQAPs IEEE Std 730, 31, 37, 43, 138, 143, 152-154, 171-184, 187, 198 IEEE Std 730-1998, 170 Software Quality Metrics Methodology (IEEE Std 1061), 30, 46, 121, 152, 175, 187 Software Reliability, 46 Software Requirements Specifications (IEEE Std 830), 16, 30, 36, 41, 89-91, 152-153, 172-174, 187 See also SRSs audience, 93-94 benefits, 91 configuration management, 92 documentation comparison, 90 good SRS characteristics, 89-90 implementation, 99-100 joint SRS preparation, 93-94 organizing requirements included, 97-98 project phases affected, 94 prototype SRS outlines, 94, 96 prototyping, 100 relationship to other standards, 91-93 safety issues, 92 specific requirements included, 96-97 specifications, 89-90 SRS testing, 92-93 summary, 100 238 Software Requirements Specifications (IEEE Std 830) templates, 41 versus other standards, 84, 92 Software Review Report (SRR), 36 Software Reviews (IEEE Std 1028), 20, 42-44, 84, 142, 170, 175, 187, 198 Software Reviews (IEEE Std 1028-1997), 146-150 Software Safety Plans (IEEE Std 1228), 30, 45, 84, 138, 152-153, 187 software SOPs, harmomizing, 204 Software Test Documentation (IEEE Std 229), 16 Software Test Documentation (IEEE Std 829), 30-31, 35, 41, 44, 84, 101, 152, 174, 187 audience, 106 benefits, 105 implementation, 110-111 input documents, 106 logging, 109-110 project phases affected, 107 relationship to other standards, 105-106 summary, 111 test documents, 101, 107-109 testing levels, 102-103 units, 103-104 Software Unit Testing (IEEE Std 1008), 45, 153 software user documentation See documentation Software User Documentation (IEEE Std 1063), 152, 175, 187 Software Verification and Validation (IEEE Std 1012), 30-31, 34, 138-139, 142-143, 152-154, 172, 174 Software Verification and Validation Plans See SVVPs Software Verification and Validation Reports See SVVR soliciting input, 54 SOPs (Standard Operating Procedures), 18, 204-205 approving, 20-21 archiving, 20 as training tools, 19 controlling, 20-21 distributing, 20-21 drafting, 18-20 functions, 19 harmonizing software, 204 monitoring, 21-22 replacing obsolete, 20 restricting phase-ins, 21 reviewing, 20 revised, 21 simplifying, 61 tailoring with, 205 training, 211-212 troubleshooting, 204-205 source code files, managing, 197 specifications See SRSs specifying adoption sequences, 38 benefits of improvements, 17 change control boards, 141 change control prodecures, 141 configuration items, 201 content, 137 core standards, 31 format, 137 process models, 58 standards, 35 subsets, 41 tools, 19 spiral model (SLCMs), 70, 72-73, 75 cycle reviews, 70 risk-oriented, 72-73 quadrants, 71-72 SPMPs (Software Project Management Plans), 36, 136, 181 audits, 143 change control boards, 141 change control procedures, 141 compliant, 137, 139 content, 137 format, 137 formats, 139 inputs, 37 management reviews, 138 plans, abbreviated, 143 reviews, 143 risks, 145 templates, 42, 145 SQAPs, 171 See also Software Quality Assurance Plans audits, 179 configuration items, 179 conventions, 179 documentation, 178, 181 subcontractor control activity (SCM) 239 implementing, 181-182 independence, 178 inspections, 179-180 management, 178 media control, 181 metrics, 179 non-applicable sections, 178 organization, 178 practices, 179 problem solving, 180 recommended formats, 177 requirements, 172-173, 178 reviews, 179 risk management, 181 standards, 179 supplier control, 181 supporting SQA, 180-181 tasks, 178 training, 181 SRR (Software Review Report), 36 SRSs (Software Requirements Specifications), 36, 81-82 attributes, 206 design information, 207 IEEE Std 830, 89, 91 audience, 93-94 benefits, 91 configuration management, 92 documentation comparison, 90 excluded specification topics, 89 good SRS characteristics, 89-90 implementation, 99-100 interface specifications, 90 joint SRS preparation, 93-94 organizing requirements included, 97-98 project phases affected, 94 prototype SRS outlines, 94, 96 prototyping, 100 relationship to other standards, 91-93 safety issues, 92 specific requirements included, 96-97 specification issues addressed, 89 SRS testing, 92-93 summary, 100 incomplete, 206 inputs, 37 legacy software, 99 multiple, 207 retrospective validations, 100 scenarios, 100 traceable, 207 troubleshooting, 207 use cases, 100 SSP (Software Safety Plan), 36-37 Standard for Information Technology (IEEE/EIA Std 12207.0), 175 Standard for Information Technology (IEEE/EIA Std 12207.1), 175 Standard Operating Procedures See SOPs standard SLCMs, 61-62 standardizing conventions, 47 software process, 8-9 standards adapting, 31 adoption sequences, 38 applicability, 37, 39, 41-46 applying, 31 categorization, 28 coding, 179 commentary, 179 core, 31 criticality rating, 47 design, 47 elements, 33 implementing, 38 information flow, 35, 37 interrelationships, 35, 37 logic structure, 179 missing, 46-47 phase-in, 38 programming, 19, 179 programming, 47 project management, 136-146 referencing specific, 19 researching industry, 14 secondary classifications, 31 SQAPs, 179 starting, 31 structure, 26 specifying subsections, 35 supplied by organizations, 46-47 V&V, 182-190, 192, 194-196 statement of objectives, 156 strategies, phase-in, 17, 31 subcontractor control activity (SCM), 199 240 subroutines subroutines, 104 subsections, 35 subsets, 41 subsystems, 112 supplements, applications, 27 supplier control, SQAPs, 181 suppliers, 93 support, building ground-level, 17-18 support costs, software, supporting life cycle processes, 53-54 process plans, 143 SQA, 180-181 SVVPs (Software Verification and Validation Plans), 36, 184, 193 SVVRs (Software Verification and Validation Reports), 36, 184, 194 System Requirements Specifications (IEEE Std 1233), 30, 37, 92 system testing, 103 system-level testing, 42 systematic processes, defining, 42 systematic reviews, 147 systems, 112 T Tables (IEEE Std 1012-1998), 192 tailoring, 49 compliance, 50 life cycle processes, 54-55 with SOPs, 205 warnings, 54 task reports, 194-195 tasks selecting, 54 SQAPs, 178 V&V, 191 TCS (Test Case Specification), 36 TDS (Test Design Specification), 36 team members, Walk-Throughs, 164 team reviews, conducting, 20 teams, inspection, 161 Technical Review Reports, 160 Technical Reviews, 42, 147, 158-160, 170 Technical Staff (Management Reviews), 156 technique standards, 217-218 technique toolboxes, SESC framework model, 27 technological expertise, outsourcing, 212 technology standards, 215-216 templates IEEE Std 830, 41 reports, 170 Software Project Management Plan, 31 Software Verification and Validation Plan, 44 Software Verification and Validation Report, 44 SPMP, 42, 145 terminology providing consistent, 47 SESC framework model, 27 Terminology (SESC alternative model), 30 Test Case Specification (TCS), 36, 111 Test Coverage measure (IEEE Std 982.1), 130 Test Design Specification (TDS), 36 test documentation creating, 41 V&V, 194 test documents (IEEE Std 829), 101 Test Incident Report (TIR), 36, 110 evaluating, 15 saving, 111 software change requests, 111 Test Item Transmittal Report (TITR), 36 Test Log (TL), 36 Test Plan (TP), 36 Test Procedure Specification (TPS), 37 Test Summary Report (TSR), 37 test summary reports, 111 test units, 104 testing acceptance, 103, 212 audience, 106 benefits, 105 beta, 180 IEEE Std 829 (Software Test Documentation), 101 V&V tasks 241 implementation, 110-111 input documents, 106 integration, 103 interface, 103 logging, 109-110 process measures, 111 project phases affected, 107 quality, 188 relationship to other standards, 105-106 scenarios SRSs, 100 test case specifications comparison, 111 software, 6, 9, 41, 52, 103, 106 SRSs, 92-93 summary, 111 system testing, 103 system-level, 42 test case specifications, 111 test documents, 101, 107-109 test incident reports, 110-111 testing levels, 102-103 test logs, 110 test summary reports, 111 units, 103 use cases SRSs, 100 test case specifications comparison, 111 TIR (Test Incident Report), 36 TITR (Test Item Transmittal Report), 36 TL (Test Log), 36 tools, 19 Tools (SESC alternative model), 30 TP (Test Plan), 36 TPS (Test Procedure Specification), 37 tracking, 11, 141 training personnel, 21, 169 SOPs, 211-212 SQAPs, 181 training process (organizational life cycle process), 54 training tools, SOPs, 19 treaceable SRS, 207 troubleshooting project management, 205 SDDs, 209 SOPs, 204-205 SRS, 207 TSR (Test Summary Report), 37 U U.S Quality System Regualtion, 10 UML notation, 208 unit testing, 45 units (software), 45, 103-104, 113 See also modules compilation, 104 design entities, 113 examples, 104 IEEE Std 829, 103-104 testing, 103-104 unproductive cynicism, 18 use cases SRSs, 100 test case specifications comparison, 111 user documentation See also documentation User documentation (IEEE Std 1063), 172 User Documentation Review, 173-174 User Representative (Management Reviews), 156 users, 93 V V&V (Verification and Validation), 34, 182 advantages, 186-187 defining processes, 184 development processes, 185 efforts, 194 implementing, 195-196 initiating, 188 standards, 182-190, 192, 194-196 test documentation, 194 V&V Activities, 34, 43-44, 191 V&V Final Report, 194-195 V&V Outputs, 34 V&V processes, 191 V&V tasks, 191 integrity levels, 44 required, 191 software, integrity levels, 39 242 validating validating critical applications, 45 documentation, 84 retrospective validations, 100 validation, 8, 183 Validation and Verification (IEEE Std 1012), 43-44 validation process (supporting life cycle process), 53 vendor control activity (SCM), 199 verification, 183, 186 verification and validation See V&V Verification & Validation (IEEE Std 1012), 62 Verification and Validation (IEEE Std 1012-1998), 183-196 Verification and Validation Content Map (IEEE Std 1012a-1998), 183 Verification and Validation Plans (IEEE Std 1059-1993), 183 verification process (supporting life cycle process), 53 verifying software, 11 version identifiers (software), 210 versions, controlling, 197 views, design (IEEE Std 1016), 117-119 visual inspections, 148 volume (sales), increasing, W-Z Walk-Throughs, 42, 148, 164-166, 170 warnings (IEEE Std 1063), 88 waterfall model (SLCMs), 51-57, 62-70 modified, 61, 65, 75 milestone build, 61, 77 study project, 76 waterfall/spiral hybrid, 75 phases, 63-65 overlap, 51-54, 57, 64-65, 70 one phase overlap, 65 review meetings, 63 pure, 65 rapid prototyping, 68, 70 Sashimi, 65 Web sites, FDA Center for Devices and Radiological Health, 14 work product, identifying defects, 67 Work Product (organizational models), 34 work product standards, 81, 83 lack of directly applicable software standards, 82 Software Design Description, 81-82 SRS, 81-82 work products controlled, 43 data flow, 66, 73, 75 reviewing, 68 specifying subsets, 41 writing Software Requirements Specification, 41 ... call 1-800-678 -IEEE or, visit the IEEE Standards web site at www .standards .ieee. org Endorsed by The IEEE Standards Information Network Implementing the IEEE Software Engineering Standards' by.. .Implementing the IEEE Software Engineering Standards ; Implementing the IEEE Software Engineering Standards ; Michael Schmidt 800 East 96th Street Indianapolis, Indiana 46290 Copyright © 2000. .. all the standards are discussed in the book.We will focus on the most important principles in the IEEE Software Engineering Standards collection, to show the easiest way to phase in the standards