Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 1 Getting Started In the.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
1 Classes. 2 Finding classes w Choosing classes is first step in defining essence of problem w If you can recognize an abstraction, you’ve found a candidate.
Introduction To System Analysis and Design
Solving the Problem Analysis & Design.
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
Lecturer: Dr. AJ Bieszczad Chapter 66-1 Object-Oriented analysis and design Special nature of OO development Use cases Design with UML OO system design.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
NJIT 1 Domain Model Visualizing Concepts Chapter 9 Applying UML and Patterns Craig Larman.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Use Case Diagrams Week 1 – Lab 1.
Designing Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 1 Designing the Classes Once.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
1 A Student Guide to Object- Orientated Systems Chapter 4 Objects and Classes: the basic concepts.
The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program.
Design & Evaluation OO Software Design and Construction Computer Science Dept Va Tech February 2000 ©2000 McQuain WD 1 Class Design and Evaluation Class.
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
CSCI 3140 Module 2 – Conceptual Database Design Theodore Chiasson Dalhousie University.
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis Activity (Identifying Objects, Scenarios) Janice Regan,
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
Mr C Johnston ICT Teacher BTEC IT Unit 06 - Lesson 01 Introduction to Computer Programming.
Introduction To System Analysis and Design
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Objectives:1. Classes and Objects 2. Attributes 3. Services 4. Subjects Object-Oriented Analysis – Finding Class-&-Obects.
Conceptual Modeling Modeling the Problem Domain. Conceptual Modeling Decompose problem space into comprehensible concepts. Clarify the terminology or.
Lecture 6: Structural Modeling
SYS466: Analysis and Design Using OO Models Domain Class Diagram, Part 1.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
The Unified Modeling Language Part II Omar Meqdadi SE 2730 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
1 Structural Modeling Chapter 7. 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes.
Design Model Lecture p6 T120B pavasario sem.
1 CMPT 275 High Level Design Phase Modularization.
 Week08.  Review Schedule Weeks 8-14  This week o Review last class o Introduce Class Diagrams o ICE-03 Sheridan SYST Engineering Quality Systems.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Use Case Textual Analysis
OO Design Roshan Chitrakar. Analysis to Design Do the RIGHT thing Do the RIGHT thing Requirement Analysis Requirement Analysis Domain Modeling with addition.
Class Diagram Mehwish Shafiq. Class Collection of object that share common properties, attributes, and behavior. Collection of objects with same data.
UML - Development Process 1 Software Development Process Using UML.
Gerhard Dueck -- CS3013Analysis 1. Gerhard Dueck -- CS3013Analysis 2 Why analysis?  Yield a more precise specification of the requirements.  Introduce.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.
Application Analysis. Application Interaction Model The purpose of analysis is to understand the problem so.
DOMAIN CLASSES – PART 1 BTS430 Systems Analysis and Design using UML.
Object-Oriented Programming in C++ Grzegorz Jabłoński Department of Microelectronics and Computer Science (K-25) Building B18 (next to the library)
An informal, team oriented, OO design system
CS 2704 Object Oriented Software Design and Construction
Creating Use Cases.
Object Analysis: Classification
OO Domain Modeling With UML Class Diagrams and CRC Cards
OO Domain Modeling With UML Class Diagrams and CRC Cards
SYS466 Domain Classes – Part 1.
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Design Strategies in OO Development
CS 2704 Object Oriented Software Design and Construction
Software Engineering Basics
Use Case Analysis – continued
Presentation transcript:

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 1 Getting Started In the beginning… there is: Specification: Design a library catalog system. The system must support the registration of patrons, adding and removing books, checking books in and out, satisfying queries regarding the availability of books, and determining which patron has a book. The specification is somewhat unsatisfactory… that is typical. Much is unspecified, some of that may be important. Often, much is said in the specification that is unimportant.

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 2 Identifying the Objects We must: – identify potential objects from the specification – eliminate phony candidates – determine how the legitimate objects will interact – extrapolate classes from the objects This process: – requires experience to do really well – requires guidelines, none of which is entirely adequate – often uses several approaches together – should lead to too many rather than too few potential objects

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 3 Approaches Abbott and Booch suggest: – use nouns, pronouns, noun phrases to identify objects and classes – singular  object, plural  class – not all nouns are really going to relate to objects Coad and Yourdon suggest: – identify individual or group "things" in the system/problem Ross suggests common object categories: – people – places – things – organizations – concepts – events

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 4 Objects and the Problem Domain What constitutes a "potential object" depends on the problem domain. Discuss with a domain expert — a person who works in the domain in which the system will be used. Try to identify objects from the way that the users/experts think about the system/problem. There are usually no handy domain experts for CS 2704 projects! Specification: Design a library catalog system. The system must support the registration of patrons, adding and removing books, checking books in and out, satisfying queries regarding the availability of books, and determining which patron has a book.

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 5 Categories of Classes  tangible things from the problem domain  system interfaces and devices  agents, providing objects to carry out operations  events and transactions, something done  users and roles  sub-systems  external systems  containers

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 6 Eliminate "false" Objects An object should: – be a real-world entity – be important to the discussion of the requirements – have a crisply defined boundary – make sense; i.e., the attributes and behaviors should all be closely related Danger signs: – class name is a verb – class is described as performing something – class involves multiple abstractions – class is derived from another, but has few features itself – class has only one public method – class has no methods

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 7 Example: Library System First cut: – library – catalog – system – registration – patron – book – query Specification: Design a library catalog system. The system must support the registration of patrons, adding and removing books, checking books in and out, satisfying queries regarding the availability of books, and determining which patron has a book. Looking for nouns:

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 8 Example: Library System Do any of the surviving candidate classes require data structure support? – Catalog – Patron – Book Specification: Design a library catalog system. The system must support the registration of patrons, adding and removing books, checking books in and out, satisfying queries regarding the availability of books, and determining which patron has a book. Looking for structures:

Identifying Classes OO Software Design and Construction Computer Science Dept Va Tech January 2002 ©2002 McQuain WD & Keller BJ 9 Example: Library System What about overall control? – The primary controller may be either procedural or an object. – CirculationDesk n uses the Catalog, which contains the BookList, a list of Book objects n uses the PatronList n (somehow) provides support for each of the required actions – However, the CirculationDesk should respond to instructions (events), not seek them out. In the implementation, we must parse an input script, or have a GUI. Either way, that's not part of the CirculationDesk, although it would interact with it. Specification: Design a library catalog system. The system must support the registration of patrons, adding and removing books, checking books in and out, satisfying queries regarding the availability of books, and determining which patron has a book. Delegating control: