Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n 12.3.1 Data Flow Analysis Example n 12.3.2.

Slides:



Advertisements
Similar presentations
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Advertisements

Chapter 2: Modularization
Design CS 524 – Software Engineering I Fall I 2007 – Sheldon X. Liang, PH.D. Jeff Nogy.
Design Concepts and Principles
Design Phase What’s design?
Software Design Deriving a solution which satisfies software requirements.
Design. Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Challenges.
Introduction To System Analysis and Design
© Copyright 2011 John Wiley & Sons, Inc.
Systems Analysis and Design in a Changing World, Fourth Edition
Detailed Design Kenneth M. Anderson Lecture 21
Component-Level Design
Design Xiaojun Qi.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
© 2005 Prentice Hall3-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Slide 14.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
6 Systems Analysis and Design in a Changing World, Fourth Edition.
The chapter will address the following questions:
Chapter 7: The Object-Oriented Approach to Requirements
*Object-Oriented Design (Schach Chap 14)
Chapter 6: The Traditional Approach to Requirements
Introduction To System Analysis and design
System Implementation System Implementation - Mr. Ahmad Al-Ghoul System Analysis and Design.
The Design Discipline.
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
CS540 Software Design Lecture 8 1 Lecture 8: Structured Design Anita S. Malik Adapted from Schach (2004) Chapter 13 and Appendix.
Introduction To System Analysis and Design
Chapter 9 Moving to Design
1 Analysis Extracting from Use Cases to Create Diagrams.
Lecture 14 & 15: Object- Oriented Analysis Anita S. Malik Adapted from Schach (2004) Chapter 12.
Software Engineering SI334 Lessons 24, 26 – 28 & 30: Classical & Object-Oriented Design October 6, 8, 10, 15, 2014.
Software Design Deriving a solution which satisfies software requirements.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Systems Analysis and Design in a Changing World, 3rd Edition
Systems analysis and design, 6th edition Dennis, wixom, and roth
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Slide 13B.22 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
1 ITEC 2010 Chapter 9 – Design The Structure Chart Structure chart –A hierarchical diagram showing the relationships between the modules of a.
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Software Engineering Zhang Shuang
Petri Nets Invented by Carl Adam Petri in 1962 Concurrent systems with timing problems  Synchronization, race problem, deadlock A petri net consists of.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Slide 13.1 © The McGraw-Hill Companies, 2007 Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Introduction to Design. 2 Outline Basics of design Design approaches.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
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.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Basic Characteristics of Object-Oriented Systems
Slide 13A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Engineering Design
CHAPTER 14 DESIGN.
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Presentation transcript:

Chapter 12: Design Phase n 12.1 Design and Abstraction n 12.2 Action-Oriented Design n 12.3 Data Flow Analysis n Data Flow Analysis Example n Extensions n 12.4 Transaction Analysis n 12.6 Object-Oriented Design n 12.7 Elevator problem: OO Design n Metrics for the Design Phase July 3th, 2000

Design and Abstraction n Major activities of the software design phase  Architectural design (also known as general, logical or high-level design)  Detailed design (also known as modular, physical, low-level design, or procedural design)  Design testing n Architectural design - Develop a modular program structure and represent the control relationships between modules n Detailed design - Specify each module by designing the algorithmic details and associated data structures

Design and Abstraction (2) n Input to the design phase  The specification document, a description of what the product is to do. n Output to the design phase  The design document, a description of how the product is to achieve this. n Design techniques  Action-oriented techniques  Data-oriented techniques  Object-oriented techniques.

Action-oriented Design n Actions is emphasized n Two practical techniques for action-oriented design  Data flow analysis  Transaction analysis n Weakness  Concentrate on the actions; the data are only of secondary importance

Data Flow Analysis (DFA) n DFA is a design technique for achieving modules with high cohesion n The point of highest abstraction of input (HAI)  The point at which the input loses the quality of being input and becomes internal data operated on by the product n The point of highest abstraction of output (HAO)  The first point in the flow of data which the output can be identified n The product is decomposed into modules by using the point of highest abstraction of input and output n This procedure is continued stepwise until each module performs a single action

Data Flow Analysis Example n Map a Data Flow Diagram into a Structure Chart  Figures 12.3, 12.4, and 12.5 n Detailed design of each module  Figure 12.6

Extensions n In multiple input and output stream  Find the point of HAI and HAO for each input and output stream  Use these points to decompose the DFD into modules with fewer input and output streams, then continue until resulting module has high cohesion  Determine the coupling between each pair of modules and make necessary adjustments n Figure 12.8

Transaction Analysis n A transaction is an operation from the viewpoint of the user of the product  Print a list of today’s orders n Data flow analysis is not appropriate for the transaction- processing type of product  Typical transaction-processing system - Figure 12.9 n Transaction analysis is a good way of decomposing transaction processing products into modules.  Analyzer - determines the transaction type and passes this information to the dispatcher  Dispatcher - performs the transaction  Figure 12.10

Object-Oriented Design n OOD consists of four major steps:  Step 1: Construct interaction diagrams for each scenario  Step 2: Construct the detailed class diagram  Step 3: Design the product in terms of clients of objects  Step 4: Proceed to the detailed design

Object-Oriented Design n Step 1: Construct interaction diagrams for each scenario n Two types of interaction diagrams in UML  Sequence diagram  Emphasize the explicit chronological sequence of messages  Useful in situations where the order in which events occur is important  Collaboration diagram  Emphasize the relationship between objects Scenarios  Sequence Diagram  Collaboration diagram  Figures 12.11, 12.12, and 12.13

Object-Oriented Design (2) n Step 2: Construct the detailed class diagram  Determine all the actions performed by the product  Examine all interaction diagrams  Decide on which actions go to which class  Message sender (client) or message receiver (object)  Insert methods (perform actions) into the class diagram developed in the OOA phase

Object-Oriented Design (3) n Assigning actions to be performed (methods) to classes  Information hiding  Actions performed on state variables (attributes) must be local to that class.  Multiple requests  If a particular action is invoked by a number of different clients of an object, then it makes sense to have a single copy of that action implemented as a method of the object, rather than have a copy in each of the clients of that object.  Responsibility-driven design  If a client sends a message to an object, then that object is responsible for carrying out the request of the client. n Examine how messages in Figure are mapped to methods in Figure 12.14

Object-Oriented Design (4) n Step 3: Design the product in terms of clients of objects  Summarize all client-object relations (system architecture)  Figure  An object that is not a client of some other object needs to be initiated, usually by the main program  Add an elevator controller loop method into the Elevator Controller class to allow main can invoke it  Examine all classes to identify missing methods  Use scenarios to traverse the detailed class diagram  When a button is pressed, the elevator must log the request and then cancel it when the elevator arrives  Add a state variable requests and three methods  log request, update requests, and request is pending  to the Elevator class

Object-Oriented Design (5) n Step 4: Proceed to the detailed design  Perform the detailed design on the main program and the methods in all classes  A PDL specification of the elevator control loop method  Figure  Automatic code generation performed by a CASE tool is usually followed by detailed design

Metrics for the Design Phase n Cyclomatic complexity  Number of binary decisions (predicates) plus 1  Number of branches in the module  The lower the value of Cyclomatic Complexity, the better  Advantage - easy to compute  Problem - Only measure the control complexity; the data complexity is ignored n Supplementary information on McCabe’s cyclomatic complexity will be distributed in class

Metrics for the Design Phase (2) n Fan-in (of a module)  The number of flows into the module (i.e., number of other modules that call the module) + number of global data structures accessed by the module n Fan-out (of a module)  The number of flows out of the module (i.e., number of other modules that the module calls) + number of global data structures updated by the module Module complexity = length x (fan-in x fan-out) 2