TCS2411 Software Engineering1 Software Design Notations “Documenting the software blueprint”

Slides:



Advertisements
Similar presentations
Lecture 7: Software Design (Part II)
Advertisements

Chapter 2: Modularization
TCS2411 Software Engineering1 Software Design Principles “Producing the software blueprint”
Programming Logic and Design Fourth Edition, Introductory
ALGORITHMS THIRD YEAR BANHA UNIVERSITY FACULTY OF COMPUTERS AND INFORMATIC Lecture two Dr. Hamdy M. Mousa.
CS /32 Illinois Institute of Technology CS487 Software Engineering Component Level Design & Design Documentation Instructor: David A. Lash.
TCS2411 Software Engineering1 System Engineering and Analysis “What is the role of the software product?”
Data-Flow Oriented Design
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
TCS2411 Software Engineering1 Software Maintenance “Taking care of the software”
Component-Level Design
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Program Design and Development
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
TCS2411 Software Engineering1 Monitoring & Controlling Projects “Do you know what’s happening in the project?”
1 Chapter 16 Component-Level Design. 2 Component-Level Design  the closest design activity to coding  the approach:  review the design description.
Lecture Notes 1/21/04 Program Design & Intro to Algorithms.
TCS2411 Software Engineering1 Software Requirements Analysis “What does the customer want?”
Understanding the Mainline Logical Flow Through a Program (continued)
Chapter 18 Testing Conventional Applications
Chapter 2: Developing a Program Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved.
Chapter 1 Program Design
TCS2411 Software Engineering1 Software Configuration Management “The only constant is change...”
TCS2411 Software Engineering1 Software Requirements Specification “Writing down the requirements”
TCS2411 Software Engineering1 Course Overview zLectures: attendance compulsory zTutorials: attendance compulsory y(80%) for both lecturer & Tutorial zAssessment.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Lesson 7 Guide for Software Design Description (SDD)
Structured COBOL Programming, Stern & Stern, 9th edition
Simple Program Design Third Edition A Step-by-Step Approach
Design the program Create a detailed description of program –Use charts or ordinary language (pseudocode) Identify algorithms needed –Algorithm: a step-by-step.
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
First Steps in Modularization Simple Program Design Third Edition A Step-by-Step Approach 8.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
1 © 2002 John Urrutia. All rights reserved. Qbasic Constructing Qbasic Programs.
BACS 287 Programming Logic 1. BACS 287 Programming Basics There are 3 general approaches to writing programs – Unstructured – Structured – Object-oriented.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
First Steps in Modularization. Simple Program Design, Fourth Edition Chapter 8 2 Objectives In this chapter you will be able to: Introduce modularization.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
The Software Development Process
Chapter 8 First steps in modularisation. Objectives To introduce modularisation as a means of dividing a problem into subtasks To present hierarchy charts.
First Steps in Modularization. Simple Program Design, Fourth Edition Chapter 8 2 Objectives In this chapter you will be able to: Introduce modularization.
PROGRAM DEVELOPMENT CYCLE. Problem Statement: Problem Statement help diagnose the situation so that your focus is on the problem, helpful tools at this.
Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Chapter 16 Component-Level Design. 2 Component-Level Design  the closest design activity to coding  the approach: review the design description for.
 Structure charts (last lesson)  Screen and page layout diagrams provide  A sketch of each page (screen) of the program  A list of the content, including.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
The Hashemite University Computer Engineering Department
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Component-Level Design and User Interface Design Departemen Ilmu Komputer IPB 2009.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11b: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
Software Engineering Lecture 13: User Interface and Component-Level Design.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Programming Fundamentals
Component-Level Design
Unit# 9: Computer Program Development
Problem Solving Techniques
Component-Level Design
Chapter 16 Component-Level Design
Component-Level Design
Software Design CMSC 345, Version 1/11.
Chapter 2- Visual Basic Schneider
Data and Flowcharts Session
Data and Flowcharts Session
Presentation transcript:

TCS2411 Software Engineering1 Software Design Notations “Documenting the software blueprint”

TCS2411 Software Engineering2 Lecture Objectives zTo describe the tasks in producing and document the software design zTo understand the systematic approach in producing the different levels of the software design zTo illustrate the different notations that can be used to draw the design

TCS2411 Software Engineering3 Software Design zNext milestone, due on Week 9 zData design  Database/File design  Data structure design zArchitecture design zInterface design  Screen design  Report design zProcedural design

TCS2411 Software Engineering4 Design Model Data design Architectural design Interface design Procedural design

TCS2411 Software Engineering5 Data Design zSelect logical representations of data objects (data structures) identified during requirements definition and specification zWell-designed data can lead to better program structure and modularity, and reduced procedural complexity

TCS2411 Software Engineering6 Data Design Tasks zDatabase/File design yExtension of Entity-Relationship Diagram yEntities  Tables yAttributes  Columns yRelationships  Columns, Tables yDescribe database tables / files as follows:

TCS2411 Software Engineering7 Data Design Tasks

TCS2411 Software Engineering8 Data Design Tasks

TCS2411 Software Engineering9 Data Design Tasks (Continued) zData structure design yArrays, structures/records, stacks, etc. yDescribe structure and its use yDescribe contents in similar way to database tables/files

TCS2411 Software Engineering10 Architecture design zDevelop a modular program structure and represent the control relationship between modules zCan be represented by yHierarchy of modules yStructure chart yStructure diagram

TCS2411 Software Engineering11 Hierarchy of Modules Read File Process Record Generate Report Process File Program Print Error Print Record

TCS2411 Software Engineering12 Structure Chart Read File Process Record Generate Report Process File Program Print Error Print Record record eof error no. of records no. of errors

TCS2411 Software Engineering13 Structure Diagram Read File Process Record Generate Report Process File Program Print Error Print Record Read File Check Record * oo while c1 c2c3 c1: not eof c2: record ok c3: error

TCS2411 Software Engineering14 Interface design zScreen design yFor text-based screens, can use design forms yFormat: 25 rows x 80 characters yFor GUI, can use ‘Print Screen’ zReport design yFor text-based reports, e.g. dot-matrix printers, use design forms (80 or 132 columns) yFor graphical reports, use ‘Print Screen’

TCS2411 Software Engineering15 Procedural design zDetails of how modules work zDefine algorithmic details zPossible to use natural language zStructured form: pseudocode, or PDL (Program Design Language), also called structured English zClearer with graphical methods such as yFlowchart yNassi-Schneiderman chart (N-S chart), box diagram

TCS2411 Software Engineering16 Structured Programming zSet of logical constructs from which any program can be formed: Sequence, Condition, Repetition zLimit procedural design to small number of predictable operations zEnter at top, exit at bottom zReduce complexity, easier to understand and maintain zProgram separated into logical ‘chunks’

TCS2411 Software Engineering17 Flowchart Constructs

TCS2411 Software Engineering18

TCS2411 Software Engineering19 Program Design Language(PDL)

TCS2411 Software Engineering20 Example of Pseudocode or PDL Process File Procedure Read file While not end-of-file If record ok then Print record Else Print error End if Read file End While End

TCS2411 Software Engineering21 Why Program Design Language? can be a derivative for the HOL (High Order Logic) of choice, e.g., Ada PDL machine readable and processable can be embedded with source code, therefore easier to maintain can be represented in great detail, if designer and coder are different easy to review

TCS2411 Software Engineering22 Example of N-S Chart/ Box Diagram Constructs First task Next task Next + 1 task Sequence Loop condition Do-while- part Loop condition Repeat- until- part Repetition Condition Else- part Then- part FT Case Condition Case- part Case- part Value ….. If-then-elseSelection

TCS2411 Software Engineering23 Nassi-Shneiderman (N-S) charts/ Box Diagram Characteristics zFunctional domain (i.e. the scope of repetition or if-then-else) is well defined and clearly visible as a pictorial representation zArbitrary transfer of control is impossible zThe scope of local and/or global data can be easily determined zRecursion is easy to represent, where depicted with a bounding pattern that encloses the process (do-while part or repeat-until part) to be repeated.

TCS2411 Software Engineering24 References z“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc- Graw-Hill, 2001 z“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001