ABSTRACT

Various decisions we make for designing the software product need to be captured in a suitable manner so that the design can be validated and then implemented. Establishing the software design makes it possible for other stakeholders to participate in validation and improve it as necessary to achieve the best possible end product. There are various methodologies to document software design, such as SSADM, OOM, and UML, in addition to the good methodology of flowcharting. All these have been successfully used in the past and each has its own merits and demerits. The new agile methodologies frown upon any sort of documentation, including software design documentation. Perhaps it is all right if we do not document for small projects. But for large, mission-critical systems, I recommend capturing the software design and subjecting it to peer and expert reviews before it is released for downstream activities of product construction and testing. But, in my humble opinion, these methodologies are not close to the granularity of the engineering drawings used in other engineering fields. I recommend using engineering drawings for capturing software design. Engineering drawings not only make it easier to implement but also aid in preparing a comprehensive work breakdown structure, which aids in effective project management. All these topics are discussed in detail in this chapter. Appendix E provides a sample set of engineering drawings for ease of understanding.