Com S 362: Object-Oriented Analysis and Design Class, Responsibilities, Collaborations, CRC Cards Com S 362: Object-Oriented Analysis and Design Oct 18,

Slides:



Advertisements
Similar presentations
WHAT D IS RAW, UNPROCESSED FACTS AND FIGURES COLLECTED, STORED AND PROCESSED BY COMPUTERS.
Advertisements

Modeling Main issues: What do we want to build How do we write this down ©2008 John Wiley & Sons Ltd. vliet.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Robert B. Jackson Brigham Young University John W. Satzinger
Use cases.
Solving the Problem Analysis & Design.
Robustness Analysis Dr. Neal CIS 480. Outline What is robustness analysis? Key roles in robustness analysis Object types found in discovery Diagramming.
Lecture 4 Class Responsibility Collaboration Cards
Copyright W. Howden1 Lecture 2: Elaboration Tasks and Domain Modeling.
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
Fall 2009ACS-3913 Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Date: 1753 an interpretation.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
CMPT 275 Software Engineering
Chapter 5: Modeling Systems Requirements: Events and Things
Modeling Systems Requirements: Events and Things.
Introduction To System Analysis and design
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis and Design in a Changing World, Thursday, Feb 22
Chapter 3 Object-Oriented Analysis. Requirements Analysis A requirement is a feature of the system Requirements analysis seeks to assess and specify the.
1 CMPT 275 Phase: Design. Janice Regan, Map of design phase DESIGN HIGH LEVEL DESIGN Modularization User Interface Module Interfaces Data Persistance.
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis Activity (Identifying Objects, Scenarios) Janice Regan,
Individual DFD Assignment
The Library Catalog Renewing Library Books Online.
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 4th Edition Copyright © 2012 John Wiley & Sons, Inc. All rights.
Requirement Engineering. Review of Last Lecture Problems with requirement Requirement Engineering –Inception (Set of Questions) –Elicitation (Collaborative.
Object-Oriented Analysis and Design An Introduction.
1 Object-Oriented Analysis Use Case Driven. 2 The outline method for OOA 1.Identify object classes within the problem domain 2.Define the behaviour of.
1 ooa2 Object-Oriented Software A model of the real world.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
Submitted By: Memon Khurshed (Group Leader) Hamed Abdollahpur
Systems Analysis and Design in a Changing World, 3rd Edition
CS3773 Software Engineering Lecture 04 UML Class Diagram.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Database Design – Lecture 6 Moving to a Logical Model.
Object-Oriented Analysis 2: Finding Classes CMPT 371 Fall 2004 J.W. Benham.
12/24/2015B.Ramamurthy1 Analysis and Design with UML: Discovering Classes Bina Ramamurthy.
Georgia Institute of Technology Workshop for CS-AP Teachers Chapter 4 Object-Oriented Design.
Week 4-5 DBMS Database Design. Database design process can be divided into 6 major steps: 1.Requirements Analysis 2.Conceptual Database Design 3.Logical.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Com S 362: Object-Oriented Analysis and Design Interaction Diagrams and Responsibility Assignment Oct 23, 2006.
McGraw-Hill/Irwin© 2008 The McGraw-Hill Companies, All Rights Reserved Chapter 17 Object-Oriented Design and Modeling Using the UML.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 6: Restaurant.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Adapted from (Zenebe & Miao, 2001) CRC Cards A tool and method for systems analysis and design Part of the OO development paradigm Highly interactive and.
DOMAIN CLASSES – PART 1 BTS430 Systems Analysis and Design using UML.
1 OOA3 Stellman – Preface and Intro u Key Ideas? u Assumptions by Stellman/Greene 540/3 f07 OOA3 aug28.
An informal, team oriented, OO design system
Elaboration popo.
GRASP – Designing Objects with Responsibilities
Main issues: • What do we want to build • How do we write this down
Conception OBJET GRASP Patterns
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Chapter 5: Object Oriented Analysis and Design
Creating Use Cases.
Analysis and Design with UML: Discovering Classes and Relationships
Analysis and Design with UML: Discovering Classes and Relationships
Class Diagrams Oct 20, 2006.
Analysis and Design with UML: Discovering Classes and Relationships
SYS466 Domain Classes – Part 1.
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Analysis and Design with UML: Classes and Relationships
Presentation transcript:

Com S 362: Object-Oriented Analysis and Design Class, Responsibilities, Collaborations, CRC Cards Com S 362: Object-Oriented Analysis and Design Oct 18, 2006

Com S 362: Object-Oriented Analysis and Design From Analysis to Design Input artifacts: use cases, domain model, system sequence diagrams Refine these artifacts, one step closer to the executable system

Com S 362: Object-Oriented Analysis and Design Key Steps Finding entities in your system –These entities will become classes Assigning responsibilities to these classes –Often become operations that a class support Identifying collaborations between classes –Represent relationships between classes –Often describe dependence

Com S 362: Object-Oriented Analysis and Design Relation to Previous Phases Analysis: Domain Model Identify conceptual classes Identify attributes of conceptual classes Identify association between conceptual classes Design: Class Diagrams Identify solution classes Identify responsibilities of solution classes Identify collaboration between solution classes

Com S 362: Object-Oriented Analysis and Design Finding Solution Classes Conceptual Classes in Domain Model –Not every conceptual class may be required –Example: Copyright law, a conceptual class, but may not be a solution class –Some conceptual classes may become attributes –Example: Library, a conceptual class, but may just be an attribute, if only name is useful Use cases

Com S 362: Object-Oriented Analysis and Design Example: Domain Model Initial Class List: Patron, Book, Fine, Librarian, Manager, Library, Partner Library

Com S 362: Object-Oriented Analysis and Design Refining Class List: Redundancy Initial class list: patron, book, fine, librarian, manager, library, partner library Question: Are all user types (patron, librarian, manager) necessary?

Com S 362: Object-Oriented Analysis and Design Refining Class List: Redundancy Alternative: can we have a generic user type with different permissions for patrons, librarians, and managers? Refined class list : user, permissions, book, fine, library, partner library

Com S 362: Object-Oriented Analysis and Design Refining Class List: Redundancy Alternative rejected: Coupling between different user types in one class Change in any user type’s behavior affects this class Refined class list : patron, book, fine, librarian, manager, library, partner library Low coupling [Larman page ]

Com S 362: Object-Oriented Analysis and Design Refining Class List: Relations Initial class list: patron, book, fine, librarian, manager, library, partner library Question: Are patrons, librarians, managers related?

Com S 362: Object-Oriented Analysis and Design Refining Class List: Relations Alternative: Can we have another class user, the patrons, librarians, managers are all users at some level? Refined class list : user, patron, book, fine, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Refining Class List: Attribute or Class Initial class list: patron, book, fine, librarian, manager, library, partner library Question: Is fine a property of a patron? Can fines exist by themselves?

Com S 362: Object-Oriented Analysis and Design Refining Class List: Attribute or Class Alternative: Can we have fines as an attribute of patrons? Refined class list : patron, book, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Refining Class List: Discovery Initial class list: patron, book, fine, librarian, manager, library, partner library Question: Does library owns items other than books?

Com S 362: Object-Oriented Analysis and Design Refining Class List: Discovery Alternative: Can we have another set of classes videos, CDs, DVDs? Refined class list: patron, book, videos, CDs, DVDs, fine, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Refining Class List: 1 st Change Initial class list: patron, book, videos, CDs, DVDs, fine, librarian, manager, library, partner library Question: Is library ever going to own anything that we have not thought about here?

Com S 362: Object-Oriented Analysis and Design Refining Class List: 1 st Change Alternative: Can we have another type Item, an abstraction of books, videos, CDs, DVDs? Refined class list: patron, Item, book, videos, CDs, DVDs, fine, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Refining Class List: 2 nd Change Initial class list: patron, Item, book, videos, CDs, DVDs, fine, librarian, manager, library, partner library Question: Is library ever going to support multiple level of memberships? e.g, platinum can borrow unlimited, gold can borrow 25 items, silver can borrow 5 items, bronze can borrow 1 item only

Com S 362: Object-Oriented Analysis and Design Refining Class List: 2 nd Change Alternative: Can we have another type IPatron, an abstraction of different type of patrons? Refined class list: IPatron, patron, Item, book, videos, CDs, DVDs, fine, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Refining Class List: 3 rd Change Initial class list: IPatron, patron, Item, book, videos, CDs, DVDs, fine, librarian, manager, library, partner library Question: Is library ever going to support different type of librarians with different job responsibilities? Some will work at circulation desk, other kind at the reference desk, yet another kind are allowed to modify the library catalog and add new books.

Com S 362: Object-Oriented Analysis and Design Refining Class List: 3 rd Change Alternative: Can we have another type ILibrarian, an abstraction of different type of librarians? Refined class list: IPatron, patron, Item, book, videos, CDs, DVDs, fine, ILibrarian, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Assign Responsibilities Where do responsibilities come from? –Use case scenarios –Objective is to fulfill user’s goals

Com S 362: Object-Oriented Analysis and Design Example Scenario Success Scenarios #1: A patron approaches the library administration machine with books to borrow. The patron enters her/his membership information. The machine verifies the membership information. The patrons enters the book information. The machine updates the library catalog to reflect that the book is checked out. The machine outputs a receipt containing the due date. The patron receives a receipt from the machine. Responsibilities are underlined

Com S 362: Object-Oriented Analysis and Design Identified Responsibilities Prompt and store membership information Verify membership information Prompt and store book information Update the library catalog Output a receipt {Due date} Class list: IPatron, patron, Item, book, videos, CDs, DVDs, fine, ILibrarian, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Prompt and Record Member Info Do we need to refine class list? –How to prompt? –How to store? Class list: IPatron, patron, Item, book, videos, CDs, DVDs, fine, ILibrarian, librarian, manager, library, partner library

Com S 362: Object-Oriented Analysis and Design Classic case for 3-tiered architecture User Interface IPatron, patron, Item, book, videos, CDs, DVDs, fine, ILibrarian, librarian, manager, library, partner library Database

Com S 362: Object-Oriented Analysis and Design Information Expert Which class has the necessary information to prompt? Which class has the necessary information to store? Class list: IPatron, patron, Item, book, videos, CDs, DVDs, fine, ILibrarian, librarian, manager, library, partner library, User Interface, Database

Com S 362: Object-Oriented Analysis and Design Assigning Responsibilities Class Name: UI Subclasses: Super classes: Responsibilities Collaborators Prompt IPatron Class Name: IPatron Subclasses: Patron Super classes: Responsibilities Collaborators Store

Com S 362: Object-Oriented Analysis and Design Summary Identifying Solution Classes –Based on domain models –Based on use cases Refining Solution Class List Assigning Responsibilities to Classes