A Practical Handbook for Software DevelopmentThe designer of a software system, like the architect of a building, needs to be aware of the construction techniques available and to choose the ones that are the most appropriate. This book provides the implementer of software systems with a guide to 25 different techniques for the complete development processes, from system definition through design and into production. The techniques are described against a common background of the traditional development path, its activities and deliverable items. In addition the concepts of metrics and indicators are introduced as tools for both technical and managerial monitoring and control of progress and quality. The book is intended to widen the mental toolkit of system developers and their managers, and will also introduce students of computer science to the practical side of software development. With its wide-ranging treatment of the techniques available and the practical guidance it offers, it will prove an important and valuable work. |
Contents
The choices facing the system developer | 1 |
The software development process | 3 |
21 Phases and stages | 4 |
211 Delineating the phases deliverables | 5 |
212 The phase profile | 6 |
215 The System Design Phase | 7 |
218 The PostAcceptance Development Phase | 8 |
2110 The Work Breakdown Structure | 9 |
613 Functional completeness | 111 |
615 Ease of maintenance | 112 |
63 The finishing point of System Design | 113 |
633 Validity | 114 |
641 Structured Design SD | 115 |
642 Jackson Structured Programming JSP | 120 |
643 Jackson System Development JSD | 127 |
644 Finite State Machines FSM | 130 |
2111 Prototyping | 10 |
22 Quantitative software development models | 12 |
222 Approaches to estimating | 13 |
223 Algorithmic estimation methods | 14 |
224 Allocating effort to phases | 15 |
225 Deriving the development schedule | 16 |
226 Is reliability quantifiable? | 17 |
227 Using historical data | 18 |
24 Configuration management | 20 |
243 Issuing deliverable items | 21 |
244 The mechanisms of configuration control | 22 |
Development techniques | 24 |
32 Cost estimation models | 31 |
33 Structured English | 32 |
35 Structured Analysis SA | 33 |
36 Structured Analysis and Design Technique SADT | 34 |
38 Software Requirements Engineering Methodology SREM | 35 |
39 Finite State Machines FSM | 36 |
310 Petri Nets | 37 |
312 RSRE Software Development System SDSRSRE | 38 |
313 Structured Design SD | 39 |
315 System Architects Apprentice SARA | 40 |
317 Formal Development Methodology FDM | 41 |
318 Hierarchical Development Methodology HDM | 42 |
320 Structured programming | 43 |
321 Control of data | 44 |
323 Unit testing techniques | 45 |
326 Fagan inspections | 46 |
Project Inception | 47 |
43 The finishing point of the Inception Phase | 48 |
44 Techniques available during Project Inception | 49 |
452 Tender preparation | 50 |
47 Memorabilia during Project Inception | 51 |
482 Image processing background | 52 |
483 VISTA functionality and hardware configuration | 54 |
System Definition | 56 |
532 The Project Plan | 57 |
534 The Acceptance Test Specification | 58 |
541 Structured English | 60 |
542 PSLPSA | 62 |
543 Structured Analysis SA | 64 |
544 Structured Analysis and Design Technique SADT | 68 |
545 Controlled Requirements Expression CORE | 71 |
546 Software Requirements Engineering Methodology SREM | 77 |
547 Finite State MachinesFSM | 82 |
548 Petri Nets | 87 |
549 Jackson System Development JSD | 91 |
5410 Software Development System SDSRSRE | 95 |
5411 Structured Walkthroughs | 98 |
55 Indicators to be monitored during System Definition | 100 |
553 Requirement Specification quality indicator | 101 |
562 Contents of the Functional Specification | 103 |
563 Conduct of the Acceptance Test | 104 |
565 Contents of the Quality Management Plan | 105 |
57 Memorabilia for the System Definition Phase | 106 |
System Design | 110 |
645 Petri Nets | 131 |
646 System Architects Apprentice SARA | 133 |
647 MASCOT | 141 |
648 Formal Development Methodology FDM | 145 |
649 Hierarchical Development Methodology HDM | 148 |
6410 Higher Order Software HOS | 152 |
6411 Structured Walkthroughs | 157 |
6412 Fagan inspections | 158 |
65 Indicators to be monitored during System Design | 159 |
653 Myers module coupling metric | 160 |
655 Call graph metrics | 161 |
657 Error correction time metric | 162 |
66 Checklists for the System Design Phase | 163 |
662 General properties of the design documentation | 164 |
664 Potential design error types | 165 |
System Production | 167 |
713 Transforming correct designs into correct code | 168 |
715 Putting the system together | 169 |
73 The finishing point of System Production | 170 |
741 Jackson Structured Programming JSP | 171 |
742 Jackson System Development JSD | 172 |
743 Finite State Machines FSM | 175 |
745 MASCOT | 176 |
746 Hierarchical Development MethodologyHDM | 179 |
747 Structured programming | 180 |
748 Control of data | 184 |
749 Programming languages | 187 |
7410 Microprocessors | 189 |
7411 Program libraries and reusability | 190 |
7412 Walkthroughs and inspections | 191 |
7413 Static analysis | 192 |
7414 Symbolic execution | 193 |
7415 Assertion checking | 195 |
7416 Test data selection | 196 |
7417 Test coverage analysis and software metrication | 198 |
7418 Development environments | 199 |
7419 Techniques for system integration | 203 |
7420 System developer psychology | 207 |
75 Indicators to be monitored during System Production | 209 |
751 Detailed design indicators | 210 |
753 Testing indicators | 213 |
76 Checklists for the System Production Phase | 214 |
761 Checklist for detailed design | 215 |
764 Checklist for User Documentation | 216 |
766 Checklist for the Training Schedule | 217 |
768 Potential coding error types | 219 |
System Acceptance and PostAcceptance Development | 222 |
83 The finishing point of System Acceptance | 223 |
853 The specification design and implementation of changes | 224 |
Project Debriefing | 226 |
93 Contents of a Debriefing Report | 227 |
94 A checklist for the Project Debriefing Report | 228 |
Other bibliographies | 233 |
235 | |
257 | |
Other editions - View all
Common terms and phrases
abstract abstract data types Acceptance Test activities algorithm allocated BOOLEAN Breakdown Structure BUFFER capture checklist components configuration control map correct cost estimation model data flow data flow diagrams data structures data types database decision defined deliverable items described design documentation entity environment errors estimation example Fagan inspections figure frame Functional Specification hardware identify implementation indicators information hiding input integration interfaces iteration Jackson System Development machine MASCOT ment methodology methods metric module output package Petri Nets problem procedure processor produce Production Phase Project Debriefing Report Project Plan prototyping record refinement Requirement Specification SADT schedule sequence software development Software Engineering source code SREM stage step structure diagram Structured Analysis structured programming Structured Walkthroughs subsystem system development System Production techniques tion top-down transform unit testing VICE viewpoint VISTA system
Popular passages
Page 251 - MASCOT - A modular approach to software construction, operation and test", RRE Tech.
Page 254 - Requirements Definition and Its Interface to the SARA Design Methodology for Computer-Based Systems.