| Preface | p. xv |
| Who should read this book | p. xv |
| Why I wrote this book | p. xv |
| How this book is organized | p. xviii |
| Acknowledgments | p. xviii |
| References | p. xix |
| Introduction | p. 1 |
| Software in perspective | p. 3 |
| The software crisis | p. 4 |
| No silver bullet | p. 5 |
| Attempts to resolve the software crisis | p. 5 |
| Understanding the nature of software | p. 7 |
| Summary | p. 10 |
| References | p. 10 |
| Software development lifecycle models | p. 13 |
| The waterfall model | p. 14 |
| The DoD-2167A model | p. 16 |
| The rapid prototyping model | p. 18 |
| The spiral model | p. 19 |
| Hybrid models | p. 22 |
| Model-based development | p. 23 |
| Object-oriented models | p. 24 |
| Summary | p. 26 |
| References | p. 26 |
| The software development process | p. 29 |
| Software development process FAQs | p. 31 |
| Why is it important that the process be written? | p. 31 |
| Won't a written process stifle creativity? | p. 31 |
| We have a process that isn't written down, but it seems to work. Why should we change it? | p. 32 |
| How can I convince the software engineering manager to follow a written procedure? | p. 32 |
| How can having a written process improve software quality? | p. 32 |
| We do not have a written procedure (or we have one but do not follow it), and the quality of our software is not too bad. | |
| Why should we change? | p. 33 |
| What is software quality anyway? | p. 34 |
| So we take the process that we currently use and write it down. Then what? | p. 34 |
| How can you build in flexibility so that the process can be tailored to suit the needs of the project team? | p. 35 |
| How can information collected from using the process be used to improve the process? | p. 35 |
| Who should be responsible for enforcing the process? | p. 35 |
| Who should be the keeper of the process? | p. 36 |
| Summary | p. 36 |
| References | p. 36 |
| Economic justification | p. 39 |
| Economic justification | p. 40 |
| Software defect cost models | p. 43 |
| Measuring the cost of quality | p. 47 |
| Summary | p. 48 |
| References | p. 49 |
| Overview of software verification activities | p. 51 |
| Reference | p. 52 |
| The inspection process | p. 53 |
| Inspection process FAQs | p. 55 |
| What is an inspection? | p. 55 |
| Why is an inspection considered formal? | p. 55 |
| Who participates in an inspection? | p. 56 |
| What are the responsibilities of each role? | p. 56 |
| Who attends the inspection meeting? | p. 56 |
| Why is the producer present? | p. 56 |
| How are inspections different from walk-throughs? | p. 57 |
| What are the key attributes of the inspection process? | p. 57 |
| Who decides what to inspect? | p. 58 |
| How do you know if you are ready to perform an inspection? | p. 59 |
| What materials are required to conduct an inspection? | p. 59 |
| How are these materials disseminated? | p. 61 |
| What if the inspection team does not have five working days to review the materials? | p. 61 |
| We are having our first inspection and I am one of the inspectors. What should I do to prepare? | p. 61 |
| Who decides what is a problem? | p. 62 |
| What is an error? | p. 62 |
| What is a defect? | p. 62 |
| What if the producer doesn't agree? | p. 62 |
| I am an inspector, I have completed my preparation, and it is time for the inspection meeting. What happens now? | p. 62 |
| How does the moderator know if the inspectors are prepared? | p. 63 |
| How does the moderator keep the meeting focused? | p. 63 |
| What happens if the producer becomes defensive? | p. 63 |
| How do you justify the preparation time required for an inspection? | p. 64 |
| Why are inspection meetings limited to two hours? What happens if the meeting runs over? | p. 64 |
| What information (if any) should be made public regarding inspections? | p. 64 |
| When is the inspection officially complete? | p. 64 |
| Summary | p. 64 |
| References | p. 65 |
| Further reading | p. 65 |
| Resources on the WWW | p. 66 |
| Applying the inspection process | p. 67 |
| Attributes of a good process | p. 68 |
| Requirements inspections | p. 70 |
| Design inspection | p. 74 |
| Code inspection | p. 78 |
| Test procedure inspection | p. 82 |
| Summary | p. 85 |
| References | p. 85 |
| Software quality metrics | p. 87 |
| A strategy for implementing a software metrics program | p. 89 |
| Software quality metrics framework | p. 90 |
| Metrics that support software verification activities | p. 101 |
| Summary | p. 105 |
| References | p. 106 |
| Further information | p. 106 |
| Configuration management | p. 109 |
| Software configuration management basics | p. 111 |
| Identification | p. 116 |
| Baseline management | p. 119 |
| What baselines are required to be defined and managed? | p. 120 |
| How is the current software configuration defined? | p. 120 |
| Who must approve changes to baselines? | p. 120 |
| How and where are baselines created and physically controlled? | p. 120 |
| How are people informed of changes? | p. 121 |
| How are baselines verified? | p. 121 |
| Are baselines tied to project milestones? | p. 121 |
| What information is required to process a change to a baseline? | p. 121 |
| What tools, resources, and training are required to perform baseline change assessments? | p. 122 |
| What metrics should be used to assess changes to a baseline? | p. 122 |
| How are unauthorized changes to source code prevented, detected, and corrected? | p. 123 |
| What tools, resources, and training are required to perform baseline management? | p. 123 |
| Auditing and reporting | p. 124 |
| Summary | p. 127 |
| References | p. 128 |
| Overview of software validation activities | p. 129 |
| Reference | p. 130 |
| Testing | p. 131 |
| Testing: levels and methods | p. 134 |
| Testing procedures | p. 135 |
| Summary | p. 147 |
| References | p. 147 |
| Software validation metrics | p. 149 |
| Time measures | p. 150 |
| Test coverage metrics | p. 153 |
| Quality metric | p. 154 |
| Summary | p. 157 |
| References | p. 157 |
| Further information | p. 157 |
| Software reliability growth | p. 159 |
| Definitions | p. 160 |
| The test-analyze-fix process | p. 161 |
| Reliability growth modeling | p. 161 |
| Summary | p. 167 |
| References | p. 168 |
| Inspection roles and responsibilities | p. 171 |
| Roles | p. 171 |
| Responsibilities | p. 172 |
| A sample inspection process | p. 177 |
| Planning | p. 178 |
| Overview meeting (optional) | p. 180 |
| Preparation | p. 181 |
| Inspection meeting | p. 182 |
| Follow-up | p. 184 |
| Inspection process forms | p. 187 |
| Inspection checklists | p. 191 |
| Requirements inspection checklist | p. 192 |
| Design inspection checklist: high-level design | p. 192 |
| Design inspection checklist: detailed design | p. 194 |
| Code inspection checklist for C code | p. 196 |
| A C++ code inspection checklist | p. 198 |
| Test procedure inspection checklist | p. 215 |
| Attributes of good requirements specifications | p. 217 |
| Sample criteria for selecting modules for code inspection | p. 219 |
| Sample software development process based on the waterfall model | p. 221 |
| Requirements analysis phase | p. 222 |
| Requirements definition phase | p. 223 |
| Design phase | p. 224 |
| Coding phase | p. 225 |
| Testing phase | p. 227 |
| Maintenance phase | p. 228 |
| Document outlines | p. 231 |
| Product concept document | p. 232 |
| Software requirements specification (SRS) | p. 233 |
| Software design description (SDD) | p. 235 |
| Software development plan (SDP) | p. 236 |
| Software quality assurance plan (SQAP) | p. 240 |
| Software validation test plan | p. 242 |
| Software validation test procedure | p. 245 |
| Software validation test script | p. 245 |
| Software validation test report | p. 247 |
| Software configuration management plan | p. 247 |
| Software release procedure | p. 249 |
| Test cases for triangle program | p. 251 |
| Reference | p. 252 |
| Software reliability models | p. 253 |
| Jelinski-Moranda model | p. 254 |
| Geometric model | p. 254 |
| Schick-Wolverton model | p. 255 |
| Goel-Okumoto nonhomogeneous poisson process | p. 256 |
| Generalized poisson model | p. 256 |
| Brooks-Motley model | p. 257 |
| About the Author | p. 259 |
| Index | p. 261 |
| Table of Contents provided by Syndetics. All Rights Reserved. |