SOFTWARE DESIGN DOCUMENT (SDD)

Slides:



Advertisements
Similar presentations
Critical Reading Strategies: Overview of Research Process
Advertisements

English & Communications for College
Lecture # 2 : Process Models
Critical Thinking Course Introduction and Lesson 1
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Information Systems Analysis and Design
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Systems Analysis and Design 9th Edition
WEBQUEST Let’s Begin TITLE AUTHOR:. Let’s continue Return Home Introduction Task Process Conclusion Evaluation Teacher Page Credits This document should.
System Design and Analysis
Lecture 13 Revision IMS Systems Analysis and Design.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Software Requirements
Analysis Concepts and Principles
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Computers: Tools for an Information Age
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
© Copyright 2011 John Wiley & Sons, Inc.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Software Engineer Report What should contains the report?!
Software Design Description (SDD) Diagram Samples
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Chapter 7: The Object-Oriented Approach to Requirements
Estimating Software Size Part I. This chapter first discuss the size estimating problem and then describes the PROBE estimating method used in this book.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 14 Systems Analysis and Design: The Big Picture.
Introduction to Systems Analysis and Design Trisha Cummings.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Documenting Software Architectures
S/W Project Management
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Lesson 7 Guide for Software Design Description (SDD)
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Requirements Analysis
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Put the Title of the WebQuest Here A WebQuest for xth Grade (Put Subject Here) Designed by (Put Your Name Here) Put Your Address Here Put some interesting.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
Academic Essays & Report Writing
Software Requirements Engineering CSE 305 Lecture-2.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Needs Assessment Geog 469 GIS Workshop. Outline What is the rationale behind needs assessment? What are the benefits of GIS projects? What is a hierarchical.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
SE: CHAPTER 7 Writing The Program
BIT 286: Web Applications Software Design Documents.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
GRASP: Designing Objects with Responsibilities
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
Design Concepts By Deepika Chaudhary.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
Going Deeper with Mark Twain A WebQuest for 10th Grade Composition Designed by Sandy Schaufelberger Wes-Del High School, Gaston IN
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
Systems Development Life Cycle
Human Computer Interaction
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
6 Systems Analysis and Design in a Changing World, Fourth Edition.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
 System Requirement Specification and System Planning.
Software Life Cycle Models
Object-Oriented Design
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
CS 8532: Advanced Software Engineering
Software Requirements Specification (SRS) Template.
Presentation transcript:

SOFTWARE DESIGN DOCUMENT (SDD) kal@ittelkom.ac.id

Outline Overview Definition SDD Functions Writing Techniques SDD Template

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.

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.

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.

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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

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

Review Overview Definition SDD Functions Writing Techniques SDD Template