Design. Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Challenges.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 10: The Traditional Approach to Design
Design CS 524 – Software Engineering I Fall I 2007 – Sheldon X. Liang, PH.D. Jeff Nogy.
Design Phase What’s design?
Chapter 10 The Traditional Approach to Design
Software Design Deriving a solution which satisfies software requirements.
Introduction To System Analysis and 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.
Component-Level Design
Design Xiaojun Qi.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Chapter 1 Principles of Programming and Software Engineering.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
The chapter will address the following questions:
*Object-Oriented Design (Schach Chap 14)
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
2 Approaches to Requierements Engineering Reference: Systems Analysis and Design in a Changing World, 3 rd Edition, chapter 2 and chapter 6.
System Implementation System Implementation - Mr. Ahmad Al-Ghoul System Analysis and Design.
The Design Discipline.
Systems Analysis and Design in a Changing World, Fifth Edition
INFO415 Approaches to System Development: Part 2
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Slide 12.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
CS540 Software Design Lecture 8 1 Lecture 8: Structured Design Anita S. Malik Adapted from Schach (2004) Chapter 13 and Appendix.
DESIGN.
Two Approaches to System Development
Introduction To System Analysis and Design
SOFTWARE DESIGN.
Chapter 9 Moving to Design
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 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.
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.
Design Concepts By Deepika Chaudhary.
1 ITEC 2010 Chapter 9 – Design The Structure Chart Structure chart –A hierarchical diagram showing the relationships between the modules of a.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Software Engineering Zhang Shuang
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
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.
© 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.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
SYSTEM ANALYSIS AND DESIGN SAFAA S.Y. DALLOUL. DESIGN THE PROGRAM.
Basic Characteristics of Object-Oriented Systems
11 Systems Analysis and Design in a Changing World, Fifth Edition.
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
Cmpe 589 Spring 2006.
Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R
Software Engineering Design
Principles of Programming and Software Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CHAPTER 14 DESIGN.
Component-Level Design
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Presentation transcript:

Design

Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Challenges of the design phase

Data and Actions Two aspects of a product –Actions that operate on data –Data on which actions operate The two basic ways of designing a product –Action-oriented design –Data-oriented design Third way –Hybrid methods –For example, object-oriented design

Design Activities Architectural design Detailed design Design testing

Architectural Design Input: Specifications Output: Modular decomposition Abstraction

Detailed Design Each module is designed –Specific algorithms –Data structures

Action-Oriented Design Methods Data flow analysis When to use it –With most specification methods (Structured Systems Analysis here) Key point: We have detailed action information from the DFD

Data Flow Analysis Product transforms input into output Determine –“Point of highest abstraction of input” –“Point of highest abstract of output”

Data Flow Analysis Decompose into three modules Repeat stepwise until each module has high cohesion –Minor modifications may be needed to lower the coupling

Data Flow Analysis Example Design a product which takes as input a file name, and returns the number of words in that file (like UNIX wc )

Data Flow Analysis Example First refinement Now refine the two modules of communicational cohesion

Data Flow Analysis Example Second refinement All eight modules now have functional cohesion

Multiple Input and Output Streams Point of highest abstraction for each stream Continue until each module has high cohesion –Adjust the coupling if needed

Transaction Analysis DFA poor for transaction processing products –Example: ATM (automated teller machine) Poor design –Logical cohesion, control coupling

Corrected Design Using Transaction Analysis Software reuse Have one generic edit module, one generic update module Instantiate them 5 times

Data-Oriented Design Basic principle –The structure of a product must conform to the structure of its data Three very similar methods –Warnier –Orr –Jackson Data-oriented design –Has never been as popular as action-oriented design –With the rise of OOD, data-oriented design has largely fallen out of fashion

Object-Oriented Design (OOD) Aim –Design the product in terms of the classes extracted during OOA If we are using a language without inheritance (C, Ada 83) –Use abstract data type design If we are using a language without a type statement (FORTRAN, COBOL) –Use data encapsulation

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

Elevator Problem: OOD Step 1. Construct interaction diagrams for each scenario Sequence diagrams Collaboration diagrams –Both show the same thing –Objects and messages passed between them –But in a different way

Elevator Problem: OOD Normal scenario

Elevator Problem: OOD Sequence diagram

Elevator Problem: OOD Collaboration diagram

Elevator Problem: OOD Step 2. Construct the detailed class diagram Do we assign an action to a class or to a client of that class? Criteria –Information hiding –Reducing number of copies of each action –Responsibility-driven design Examples close doors is assigned to Elevator Doors move one floor down is assigned to Elevator

Elevator Problem: OOD Detailed class diagram

Elevator Problem: OOD Step 3. Design the 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 –Additional methods may be needed

Elevator Problem: OOD C++ client-object relations

Elevator Problem: OOD Java client-object relations

Elevator Problem: OOD elevator controller needs method elevator control loop so that main (or elevator application ) can call it

Elevator Problem: OOD Step 4. Perform the detailed design Detailed design of method elevator controller loop

Formal Techniques for Detailed Design Implementing a complete product and then proving it correct is hard However, use of formal techniques during detailed design can help –Correctness proving can be applied to module-sized pieces –The design should have fewer faults if it is developed in parallel with a correctness proof –If the same programmer does the detailed design and implementation The programmer will have a positive attitude to the detailed design This should lead to fewer faults We examine formal methods in CS460.