*Object-Oriented Design (Schach Chap 14)

Slides:



Advertisements
Similar presentations
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Advertisements

Object-Oriented Analysis and Design
Design. Overview Design and abstraction Action-oriented design Data flow analysis Transaction analysis Data-oriented design Object-oriented design Challenges.
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
Introduction To System Analysis and Design
Detailed Design Kenneth M. Anderson Lecture 21
Component-Level Design
Slide 6C.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Slide 8B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Requirements Analysis 5. 1 CASE b505.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis CASE Computer.
Essentials of interaction diagrams Lecture Outline Collaborations Interaction on collaboration diagrams Sequence diagrams Messages from an object.
© 2005 Prentice Hall4-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
SwE 313 Introduction to Rational Unified Process (RUP)
7M822 UML Interaction Diagrams 25 November 2010.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Object-Oriented Analysis and Design
The chapter will address the following questions:
Introduction To System Analysis and design
System Implementation System Implementation - Mr. Ahmad Al-Ghoul System Analysis and Design.
The Design Discipline.
1 Object Oriented Analysis and Design. 2 Object-Oriented Analysis  Statement of what our client wants Object-Oriented Design  How to provide it using.
OBJECT-ORIENTED ANALYSIS PHASE
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Introduction To System Analysis and Design
Other UML Diagramming Techniques CS 124. UML Diagramming Techniques Class Diagrams Use Case Diagrams Interaction Diagrams Sequence diagrams Collaboration.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
 2000 Deitel & Associates, Inc. All rights reserved. Optional Case Study - Chapter 5 Outline 5.1 Introduction 5.2 Collaborations 5.3 Creating Collaborations.
1 Analysis Extracting from Use Cases to Create Diagrams.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
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.
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
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
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.
Slide 12A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
Drawing System Sequence Diagrams
COMP-350 Object-Oriented Analysis and Design Drawing System Sequence Diagrams Reference: Larman, Chapter 9.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
10 October, 2007Information System Design IT60105, Autumn 200 Information System Design IT60105 Lecture 17 Collaboration Diagrams.
Geospatial Systems Design and UML Or Looking at “OMT-G: An Object-Oriented Data Model for Geographic Applications” by Karla A.V. Borges, Clodoveu A. Davis.
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.
THE ANALYSIS WORKFLOW  The specification document  Informal specifications  The analysis workflow  Extracting the entity classes  Functional modeling:
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Use Case Textual Analysis
McGraw-Hill/Irwin© 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 17 Object-Oriented Design and Modeling Using the UML.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
Unified Modeling Language Tutorial
Unified Modeling Language
UML dynamic Modeling (Behavior Diagram)
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Object oriented analysis and design
UML Interaction diagrams
Presentation transcript:

*Object-Oriented Design (Schach Chap 14) Goal: Design product in terms of objects identified during OOA OOD consists of four steps: Construct interaction diagrams for each scenario. Two types: Collaboration Diagrams (Spatial), Sequence Diagrams (Temporal) Develop detailed class diagram Design the product in terms of clients of objects Proceed to detailed design Result of our Elevator System OOA: A UML Class Diagram 1..3 Constitute “High-Level” Design

*Step 1 of OOD: Interaction Diagrams Construct interaction diagrams for each scenario, focus is on the objects and the messages passed between them. “Passing a message” between objects really means having one object invoke a public member function of another object. An interaction is implemented by a group of objects that collaborate by exchanging messages. Two variants of UML Interaction Diagrams: Collaboration/Communication and Sequence Diagrams

*Collaboration Diagrams: spatial representation Focus is on the relationships between objects Goal is to understand Structure of Design’s components Timing info is obscure, messages numbered to indicate sending order Example: Consider making a hotel reservation

Example: Elevator Collaboration Diagram Sally is on the 10th floor and presses a floor button. The elevator arrives from the ground floor to pick her up.

*Sequence Diagrams: temporal representation Focus is on message broadcast chronology of interactions between objects from a temporal standpoint. An object is represented by a rectangle and a vertical bar. Message sending order indicated by position on axis. Again, consider making a hotel reservation

Example: Elevator Sequence Diagram Sally is on the 10th floor and presses a floor button. The elevator arrives from the ground floor to pick her up.

Connection between Scenarios & Sequence Diagrams Example of a Normal Use Scenario

A UML Collaboration Diagram A Collaboration Diagram is equivalent to its corresponding Sequence Diagram

MFKA UML Sequence Diagram ICE: Produce a UML Sequence Diagram for the Marine Field Kitchen Assistant scenario of “Finding a recipe for chili that includes chipotle powder, scaling it for 200 Marines per meal, and generating a grocery list for a week’s worth of chili (to be eaten 3 times a day).”

*Step 2 of OOD: Construct Detailed Class Diagram A well-structured Interaction Diagram gives very specific information on what responsibilities a class should have. Main question, do we assign an action to a class or to a client of that class? Information hiding Reducing copies of an action Responsibility-driven design Examples close doors assigned to Elevator Doors move one floor down assigned to Elevator Typical: Class at head of arrow on Interaction Diagram gets tasked with the labeled responsibility, and implements it as a method.

*Construct Detailed Class Diagram Consider class Elevator Controller If User wants to log and update requests, needs requests attribute Needs methods: log request, update requests, request is pending Detailed: As used here means that all method names, and (as a by-product) attributes ID’d by designer, are represented on the diagram

*Step 3 of OOD: Determine Clients of Objects Design Product in Terms of Clients of Objects to determine which objects should create other objects Draw a single arrow from each object to a client of that object Objects that are not clients of any object have to be initiated, probably upon system launch, Additional methods may be needed. elevator controller needs method elevator control loop so that elevator application can call it. This Completes High-Level Design for OOD!

*Step 4 of OOD: Perform Detailed Design Detailed design of method elevator controller loop, draws heavily from prior UML diagrams. Design Team: Should not do too much: Detailed design should not become complete code Should not do too little: It is essential for detailed design to fully indicate how all functionality is met. So, how to verify we are done with detailed design?

*ICE: Detailed Design ICE: Take an assigned class, and Complete the detailed UML class diagram of assigned class (to include its methods and attributes), and Give the pseudo-code for the most complex method in the class. We will pick a QA volunteer to walk thru the chipotle chili scenario and make sure each class has the methods the sequence diagram expects of it. Detailed design of method elevator controller loop, draws heavily from prior UML diagrams. Design Team: Should not do too much: Detailed design should not become complete code Should not do too little: It is essential for detailed design to fully indicate how all functionality is met. So, what should detailed design’s output be?

*Testing During the Design Phase Design itself must be correct No logic faults Interface for each class fully defined. Design reviews. Purpose is to show that Design correctly reflects Specification. How can this be shown?

*Case Tools for OOD Computer Aided Software Engineering (CASE) tools Examples of CASE tools: Software through Pictures, Rational Rose Visual Paradigm Built around data dictionary Screen, report generators What automated support could be provided by a case tool that represents OOD using UML?

*Metrics for OOD What Metrics can be used to describe various aspects of the Design? One is McCabe’s Cyclomatic complexity. Measure based on # of controlflow decisions, can apply to pseudo-code. the number of binary decisions plus 1, a metric of design quality, the lower the M the better What other aspects of a Design can be Measured? Advantage: Easy to compute, can be automated Disadvantage: Measures control complexity only, does not measure data complexity.

Recap: Relationships Between UML Diagrams OOA OOD