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.

Slides:



Advertisements
Similar presentations
Chapter 10: The Traditional Approach to Design
Advertisements

Systems Analysis and Design in a Changing World, Fifth Edition
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 2: Approaches to System Development
Traditional Approach to 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
Systems Analysis and Design in a Changing World, Fourth Edition
Component-Level Design
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Design Xiaojun Qi.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Programming Fundamentals (750113) Ch1. Problem Solving
© 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.
The chapter will address the following questions:
Chapter 7: The Object-Oriented Approach to Requirements
*Object-Oriented Design (Schach Chap 14)
Introduction To System Analysis and design
System Implementation System Implementation - Mr. Ahmad Al-Ghoul System Analysis and Design.
Chapter 2: Approaches to System Development
INFO415 Approaches to System Development: Part 2
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)
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Data Flow Diagrams.
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
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Chapter 9 Moving to Design
Software Engineering SI334 Lessons 24, 26 – 28 & 30: Classical & Object-Oriented Design October 6, 8, 10, 15, 2014.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
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 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
Slide 13B.22 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
THE DESIGN WORKFLOW  Object-oriented design  The design workflow  The test workflow: Design  CASE tools for design  Challenges of the design workflow.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Software Engineering Zhang Shuang
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Petri Nets Invented by Carl Adam Petri in 1962 Concurrent systems with timing problems  Synchronization, race problem, deadlock A petri net consists of.
System Development 1 u Systems development life cycle (SDLC) l Provides overall framework for managing system development process u Two main approaches.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Systems Analysis and Design in a Changing World, Fourth Edition
1 Introduction to Design. 2 Outline Basics of design Design approaches.
Systems Design.  Application Design  User Interface Design  Database Design.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
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.
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.
Systems Analysis and Design in a Changing World, Fourth Edition
Principles of Programming & Software Engineering
Object-Oriented Design
Problem Solving Techniques
Software Design Designing the overall structure (architecture) of a software system Designing small pieces of computation Designing non-automated processes.
Programming Fundamentals (750113) Ch1. Problem Solving
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Algorithms and Problem Solving
Systems development life cycle (SDLC)
Presentation transcript:

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 basic ways of designing a product –Action-oriented design –Data-oriented design –Data Flow Analysis (DFS) Third way: Object-oriented design –combination of both

UHD::3320::CH123 Design Activities Three activities: –Architectural design Input: Specifications Output: modular decomposition –Detailed design each module is designed in detail –specific algorithms –data Structures –design testing integral part of design

UHD::3320::CH124 Action-Oriented Design Decomposition with high cohesion and low coupling flow of data is secondary Practical techniques –data flow analysis –transaction analysis examples where other techniques are used: –rule based systems –databases

UHD::3320::CH125 Data Flow Analysis The product is decomposed to three modules –input module –transform module –output module How? –Start with any action DFD. Example: apply payment to invoice compute speed of incoming missile –Represent action by data flow graph

UHD::3320::CH126 Transaction Analysis Related actions with similar outlines but different details software reuse e.g., automated teller machine (ATM) –analyzer and dispatcher –edit and update modules

UHD::3320::CH127 Object-Oriented Design Aim: Design product in terms of objects extracted during OOA OOD is both action and data oriented OOD consists of the four steps: 1. Construct interaction diagram for each scenario 2. Construct the detailed class (object) diagram 3. Design the product in terms of clients of objects 4. Proceed to detailed design

UHD::3320::CH128 STEP1: Construct Interaction Diagrams For Each Scenario Sequence diagrams Collaboration diagrams both show objects and messages passed between them.

UHD::3320::CH129 Sequence Diagram

UHD::3320::CH1210 Collaboration Diagram

UHD::3320::CH1211 STEP2: Construct Detailed Object Model Assign operations (“methods”) to classes Dynamic Model: each state diagram describes the behavior of an object. Convert actions and activities in the dynamic model into operations attached to classes in the object model. We can associate an operation with each event received by an object.

UHD::3320::CH1212 STEP2: Detailed Object Model CNTD A client of an object is a program unit that sends a message to an object of that class (i.e. requests a service from an object of that class) –should an action be assigned to the class or to the client of that class? Criteria –Information hiding: state variables of a class must be private/protected Actions on private members of a class must be carried out by local methods –Reducing number of copies of action –Responsibility-driven design

UHD::3320::CH1213 STEP2: Detailed Object Model CNTD When an operation involves more than one object, who should own the operation? Is one object modified by the operation while other objects are only queried for info? The object that is modified is the target of the operation. Associate the operation with the target object. Look at the classes and associations involved in the operation. The class that is central should own the operation. Think in the real world: which object is being pushed, moved, closed, acted on, or manipulated? That object should own the operation.

UHD::3320::CH1214 STEP2: Detailed Class Diagram CNTD

UHD::3320::CH1215 STEP3: Design Product In Terms of Clients of Objects Draw an arrow from an object to a client of that object Objects that are not clients of any object have to be initiated, probably by the main method

UHD::3320::CH1216 STEP3 CNTD Additional methods may be needed –verify that each object has all required methods to be able to carry out all actions and activities under all conditions and events. Example: consider Elevator Controller –Must log and update requests –Needs state variable requests –Need methods log request, update requests This ends the architectural design part

UHD::3320::CH1217 STEP 4: Perform Detailed Design Data structures to represent state variables of each class. –Usually instances of container classes: lists, queues, stacks, sets, dictionaries, trees etc. –OO languages have predefined libraries Algorithms to implement the operations assigned to each class and function main. Basic techniques: –Stepwise refinement: divide a big task into smaller sub-tasks. Repeat until sub-tasks are simple enough to be implemented directly –Simple “sub-tasks” usually have simple mathematical or procedural definition. Algorithm is an implementation of the definition.

UHD::3320::CH1218 STEP 4: Perform Detailed Design Sometimes simple implementation is not efficient. Consider the following factors in selecting an algorithm: –computational complexity –ease of implementation and maintainability Stepwise refinement may necessitate additional internal methods. Detailed design can be specified using –flow charts –pseudocode

UHD::3320::CH1219 Detailed Design of Method elevator control loop

UHD::3320::CH1220 Testing During the Design Correctness of design accurate reflection of specifications detecting faults (before the coding) using inspections or walkthrough

UHD::3320::CH1221 CASE Tools back-end (lower CASE Tool) –implementation front-end (upper CASE Tool) –design Analyst/Designer, Excelerator, and Teamwork –consistency checking –screen and report generators –management tools for estimation and planning –Object-Oriented Design Tools OMTool, Rose, Software through Pictures