Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOFTWARE DESIGN DOCUMENT (SDD)

Similar presentations


Presentation on theme: "SOFTWARE DESIGN DOCUMENT (SDD)"— Presentation transcript:

1 SOFTWARE DESIGN DOCUMENT (SDD)

2 Outline Overview Definition SDD Functions Writing Techniques
SDD Template

3 Overview Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase. A design document is a written outline of the development of a course or a description of a software product that a software designer writes in order to give a software development team an overall guidance of the architecture of the software project. Practically, a design document is required to coordinate a large team under a single vision.

4 Overview The SDD shows how the software system will be structured to satisfy the requirements. The SDD is performed in two stages: The first is a preliminary design in which the overall system architecture and data architecture is defined. In the second stage, i.e. the detailed design stage, more detailed data structures are defined and algorithms are developed for the defined architecture.

5 What is SDD? Definition The Software Design Document (SDD) is a comprehensive software design model consisting of four distinct but interrelated activities: data design, architectural design, interface design, and procedural design.

6 The functions of SDD Communicating design to others
Processing ideas and converting them into a solid design Allowing for increased accuracy in time estimates Allowing for content adjustments

7 Communicating design To implementers. » In order to help them write efficiently, the design should be clear, complete and well defined. To fellow designers. » In order to optimize this interaction, you should specify the decisions you made in building your design and explain the reasons behind each one of them. To successors. » Thoroughly explain your design philosophy and intentions. To managers. » Form carries just as much weight as content. The document should be carefully arranged and edited so that it would be aesthetic to look at. Additionally, the reader should be able to derive time estimates from the content. To guests. New employees Investors

8 Processing your ideas When thoughts are put into writing, it is much harder to overlook problematic issues. This is particularly true if you do your best to anticipate every possible question and objection your readers may have.

9 Increased accuracy in time estimates
At the beginning of a project, one of the first steps is to estimate the amount of work involved. This is a very rough estimate, and it is based on previous experiences with projects of a similar size. As the work progresses, there is need to come up with more accurate estimates, and the best tool for this is a detailed design. Once you have the design document and you iron out all the problems and details you could think of without actually writing the code, you can give a fairly accurate estimate for every module and function in the design. » The document should reflect the size and complexity of every part of the software. It should also mention factors that may affect the duration of the coding phase, such as the use of new technologies, languages, tools or environments, or the requirement for a special skill set, etc.

10 Allowing for content adjustments
The design document must elaborate on the dependencies among the various coding phases, and should attach a concrete cost to each of the project requirements.

11 What does SDD contain? The Data Design
describes structures that reside within the software. Attributes and relationships between data objects dictate the choice of data structures. The Architecture Design uses information flow characteristics, and maps them into the program structure. Transformation mapping method is applied to exhibit distinct boundaries between incoming and outgoing data. The Data Flow diagrams allocate control input, processing, and output along three separate modules.

12 What does SDD contain? (cont’d)
The Interface Design describes internal and external program interfaces as well as the design of human interface. Internal and external interface design are based on the information obtained from the analysis model. The Procedural Design describes structured programming concepts using graphical, tabular, and textual notations. These design mediums enable the designer to represent procedural detail that facilitates translation to code. This blueprint for implementation forms the basis for all subsequent software engineering work.

13 Techniques Prepare a skeleton in advance - a document containing only section titles. You can copy the example given below and edit it to fit your project, or use an existing document after you've deleted the text. This will help you trace with ease any forgotten sections. Imagine you are writing the design for people who will read it in your absence. Try to anticipate their questions, trivial as well as prominent, and make certain your answers are embedded in the text.

14 Techniques (cont’d) Assume the role of a non-compromising critic, and look for faults and counter arguments. At the end of this review your text should make a convincing case for your design decisions. When you feel you have an adequate version, let other people (preferably from different backgrounds) read it and ask you questions. Every question may suggest an unclear or missing explanation. Ask for comments and suggestions, and do not reject any idea before you put it to careful examination.

15 What to avoid Avoid using lists of cryptic nouns. As tempting as it may be to quickly jot down your ideas, a design document written in shorthand will not convey your thoughts and intentions to the readers. Instead, it will cause misconceptions and misinterpretations. Do not make up too many terminological innovations (particularly, abbreviated module names) to use in your document. The average reader will soon feel lost and unable to follow your ideas. When your text relies on other documents, try not to assume that the readers are fully informed and in complete understanding (and recollection) of these documents. Write a few sentences to summarize each document you rely on for the benefit of your readers. Avoid using cryptic references known only to a limited number of people. Supply an explanation, however brief, so that the interested reader may look up each reference elsewhere.

16 Template 1. INTRODUCTION 1.1 Purpose 1.2 Scope 1.3 Overview 1.4 Reference Material 1.5 Definitions and Acronyms 2. SYSTEM OVERVIEW 3. SYSTEM ARCHITECTURE 3.1 Architectural Design 3.2 Decomposition Description 3.3 Design Rationale

17 Template (cont’d) 4. DATA DESIGN 4.1 Data Description
4.2 Data Dictionary 5. COMPONENT DESIGN 6. HUMAN INTERFACE DESIGN 6.1 Overview of User Interface 6.2 Screen Images 6.3 Screen Objects and Actions 7. REQUIREMENTS MATRIX 8. APPENDICES

18 Review Overview Definition SDD Functions Writing Techniques
SDD Template


Download ppt "SOFTWARE DESIGN DOCUMENT (SDD)"

Similar presentations


Ads by Google