SOFTWARE DESIGN DOCUMENT (SDD)

18

description

SOFTWARE DESIGN DOCUMENT (SDD). [email protected]. Outline. Overview Definition SDD Functions Writing Techniques SDD Template. Overview. - PowerPoint PPT Presentation

Transcript of SOFTWARE DESIGN DOCUMENT (SDD)

Page 2: SOFTWARE DESIGN DOCUMENT (SDD)

OutlineOverviewDefinitionSDD FunctionsWriting TechniquesSDD Template

Page 3: SOFTWARE DESIGN DOCUMENT (SDD)

OverviewSoftware 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.

Page 4: SOFTWARE DESIGN DOCUMENT (SDD)

OverviewThe 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.

Page 5: SOFTWARE DESIGN DOCUMENT (SDD)

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.

Page 6: SOFTWARE DESIGN DOCUMENT (SDD)

The functions of SDD Communicating design to othersProcessing ideas and converting them into a

solid designAllowing for increased accuracy in time

estimatesAllowing for content adjustments

Page 7: SOFTWARE DESIGN DOCUMENT (SDD)

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

Page 8: SOFTWARE DESIGN DOCUMENT (SDD)

Processing your ideasWhen 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.

Page 9: SOFTWARE DESIGN DOCUMENT (SDD)

Increased accuracy in time estimatesAt 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.

Page 10: SOFTWARE DESIGN DOCUMENT (SDD)

Allowing for content adjustmentsThe design document must elaborate on the

dependencies among the various coding phases, and should attach a concrete cost to each of the project requirements.

Page 11: SOFTWARE DESIGN DOCUMENT (SDD)

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 Designuses 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.

Page 12: SOFTWARE DESIGN DOCUMENT (SDD)

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.

Page 13: SOFTWARE DESIGN DOCUMENT (SDD)

TechniquesPrepare 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.

Page 14: SOFTWARE DESIGN DOCUMENT (SDD)

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.

Page 15: SOFTWARE DESIGN DOCUMENT (SDD)

What to avoidAvoid 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.

Page 16: SOFTWARE DESIGN DOCUMENT (SDD)

Template1. 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

Page 17: SOFTWARE DESIGN DOCUMENT (SDD)

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

Page 18: SOFTWARE DESIGN DOCUMENT (SDD)

ReviewOverviewDefinitionSDD FunctionsWriting TechniquesSDD Template