Software Design Description Version <number> <date> <Project Title> <Authors> Submitted in partial fulfillment Of the requirements of <class number and name> Table of Contents Table of Contents ................................................................................................................................. i List of Figures ....................................................................................................................................... ii 1.0. Introduction................................................................................................................................... 1 1.1. Purpose ................................................................................................................................................ 1 1.2. Scope ................................................................................................................................................... 1 1.3. Glossary ............................................................................................................................................... 1 1.4. References ........................................................................................................................................... 1 1.5. Overview of Document ....................................................................................................................... 2 2.0. Deployment Diagram .............................................................................................................. 3 3.0. Architectural Design................................................................................................................ 4 3.1 First major design entity ................................................................................................................. 4 3.1.1 First sub-entity of first major design entity (if any) ................................................................ 4 3.2 Second major design entity ............................................................................................................. 4 4.0. Data Structure Design ............................................................................................................. 5 4.1. Table Name 1 ................................................................................................................................. 5 5.0. User Interface Design ............................................................................................................. 6 6.0. Real-Time Design ..................................................................................................................... 7 7.0. Help System Design ................................................................................................................ 8 8.0. Use Case Realizations ............................................................................................................ 9 Index ..........................................................................................................................................................10 i List of Figures < generate here > ii 1.0. Introduction 1.1. Purpose < Clearly state the purpose of this document and its intended audience. Note that this subsection does not describe the project. > 1.2. Scope < Overview the dominant design paradigm and the architecture of the product briefly. Describe the external systems with which this system must interface. > 1.3. Glossary < Define the terms, acronyms and abbreviations used in this document. Do not assume the experience or expertise of the reader. In particular, developers do not necessarily understand the problem domain. Use a table and alphabetize. > Term Definition 1.4. References < List here any references to other documents cited anywhere in this document including references to related project documents, in particular to the Software Requirements Specification. Add references here when other project documents are created. Give complete identifications, as this is usually the only Bibliography in the document. > SDD 1 date 1.5. Overview of Document < Describe the contents and organization of the rest of this document. Since there is already a Table of Contents, this overview will be less formal but more informative. Direct the reader to the sections that are of interest to him or her. > SDD 2 date 2.0. Deployment Diagram < The deployment diagram gives the physical layout of the system. At one time, a system was often contained on one processor but with the ubiquity of distributed processing, this is often not the case today. While the decision of where to put the design entities of a system may be deferred until late in the design process, it must be documented early in this document. Each smaller design entity must be on a single node of the system, not split over two nodes. When a larger entity spans two nodes, it must be internally designed as two cooperating entities, one on each node. This chapter is organized as a diagram with an accompanying explanation. Each node and connection is labeled in the diagram. The explanation gives the purpose of each node and connection. See the accompanying document on Design Diagrams for sample diagrams. > SDD 3 date 3.0. Architectural Design < In this space goes the top-level architectural diagram giving the main design entities and their relationships. Add an explanation of this diagram. See the accompanying document on Design Diagrams for examples. Each entity here will be expanded in a subsection of this chapter. Replace the meaningless names below by the actual entity names. > 3.1 First major design entity < List the interface first in the format shown in the Design Entity Format document. Note that the principle data structure of the system should be described in the following chapter. If the entity has a partitioning into sub-entities, add a design diagram (similar to the architectural diagram) for its internal structure and then detail each of its parts in subsections. This chapter must be detailed enough for an implementer to generate the needed code without needing additional information. > 3.1.1 First sub-entity of first major design entity (if any) 3.2 Second major design entity < Similarly expand each of the other design entities contained in the architectural diagram. > SDD 4 date 4.0. Data Structure Design < The principle data structure is a lower level design entity and is a continuation of the previous chapter. We recommend that it be separated into this chapter so that it can be found easily as its construction will be a major part of the implementation. If this data structure is a database, each table should be presented in tabular form as outlined below. Replace the “Table Name 1” by the actual table name. (Use the word “Table” in the heading, such as “Author Table” or “Table: Author”.) > 4.1. Field SDD Table Name 1 Type Description 5 date 5.0. User Interface Design < Supplement the information contained in the SRS. Since prototyping is a common paradigm in software development, the user interface may have been blocked out very early and used to enhance the explanation of the functionality of the system. Refer to what you have said in the SRS, if you need to. The SDD must complete the user interface design process. What is recorded here will be the actual interface that the user will see. Screen shots are very appropriate for this section. Included in the User Interface Design is a complete disruption of all instructions that will appear to the user including the text of error messages and tips for recovery. > SDD 6 date 6.0. Real-Time Design < If there are significant real-time considerations between the various design entities in your system, they must be documented. There are appropriate diagrammatic methods to do this and one should be adopted and used. If there are no significant real-time considerations, leave this section in and put the statement “No significant real-time considerations are needed.” Performance is not normally a real-time consideration. Real-time considerations include timing constraints that can prevent the proper working of the system if ignored. > SDD 7 date 7.0. Help System Design < If your system has an on-line Help System, describe it here so that it will be built correctly. Possibilities include no help system, a help system that gives access to an on-line users’ manual, a help system that has an index and/or a keyword search, or a context-sensitive help system. Do not promise more than the system will need. A good explanation facility that accompanies the user interface, including clear error messages and recovery tips, may remove the need for a help system. > SDD 8 date 8.0. Use Case Realizations < In this section, list each of the use cases from section 3.2 of the SRS and show how it can be accomplished using the design detailed here. Use either collaboration or sequence diagrams to do this. Organize this chapter in sections following the subsection breakdown of SRS 3.2. Each realization here must be explicitly cross-referenced to the use case in SRS 3.2. Reopen the SRS and add explicit forward references from each use case in SRS 3.2 to the appropriate use case in this chapter. > SDD 9 date Index < generate here > SDD 10 date