Identification of Classes. Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements.

Slides:



Advertisements
Similar presentations
Chapter 4: Requirements Engineering
Advertisements

Design by Contract.
Ch4: Software Architecture and Design. 1 Object-oriented paradigm  Object-oriented decomposition:  Agents comprised of two parts:  Hidden implementation:
Use Case Model. C-S 5462 Use case model describes what the user expects the system to do –functional requirements may describe only the functionalities.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
ATM Case Study A Discussion.
Information System Design IT60105
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.
Lecture 9 Object-Oriented Analysis
Chapter 12 ATM Case Study, Part 1: Object-Oriented Design with the UML
ATM User Interface Design. Requirements A bank customer is able to access his or her account using an automatic teller machine. To be able to use an ATM.
Fall 2002 SJSU -- CmpE Enterprise & Application Frameworks Dr. M.E. Fayad, Professor Computer Engineering Department – RM# College of Engineering San José.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
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.
Lecture 4 Class Responsibility Collaboration Cards
Object Oriented Analysis Process
COMP1007 Intro to Systems Requirements © Copyright De Montfort University 2002 All Rights Reserved COMP1007 Intro to System Requirements Lecture 2 Use-Cases.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
Requirements Analysis 4. 1 Use Case I b504.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Use-Cases.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
{ How to Use An ATM A simple tutorial to teach how to use ATM Machines.
Use Case Modeling. Use case diagram For each use case we develop  Object class diagram (with attributes only)  System sequence diagram (analysis) 
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Analysis Modeling (cont’d) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These slides.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
From Problem Statement to Design
Object Orientation An Object oriented approach views systems and programs as a collection of interacting objects. An object is a thing in a computer system.
Case Study :. Introduction The ATM network will consist of a large number of ATM machines distributed over a wide geographical area. The network must.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
1  Object Modeling Crash Course  Object Analysis –Classification –Identifying Object Relationships, Attributes, and Methods  Class Diagrams Agenda.
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.
Faculty of Computer & Information Software Engineering Third year
Chapter 3, Section 3 ELECTRONIC BANKING.
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
CSC 213 – Large Scale Programming. Today’s Goal  Improve design skills to make usable designs  Noun extraction & UML class diagram reviewed  Connections.
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.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 9 – More on objects and classes Dr Richard.
CSC 480 Software Engineering OOAD Process. Topics Overview: OOAD Process The object model Identifying classes Responsibilities and collaborations Hierarchy:
Object oriented classification Classification is the process of checking to see if an object belongs to a category or a class, is regarded as a basic attribute.
System models l Abstract descriptions of systems whose requirements are being analysed.
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
1 Objectives  Define key concepts of use-case modeling.  List the benefits of use-case modeling.  Find actors and use cases.  Describe their relationships.
Lecture 6: Structural Modeling
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.
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.
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
Use Case Textual Analysis
Software Engineering Zhang Shuang
Identifying Object Relationships, Attributes, and Methods
MODULE:VII OBJECT ANALYSIS: CLASSIFICATION
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
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.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
Introduction What would our society be like now if we did not have ATm’s? Not able to access money when we urgently want it. You will have to go to the.
CMPE 280 Web UI Design and Development August 29 Class Meeting
ATM OO Design and Implementation Case Study
UNIT-III object-oriented analysis process
Object-Oriented Static Modeling of the Banking System - I
Object Analysis: Classification
OO Domain Modeling With UML Class Diagrams and CRC Cards
OBJECT RELATIONSHIPS, ATTRIBUTES, AND METHODS
OO Domain Modeling With UML Class Diagrams and CRC Cards
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Identification of Classes

Object Oriented Analysis (OOA) OOA is process by which we identify classes that play role in achieving system goals & requirements. Classification is the process of checking to see if an object belongs to a category or a class which guides us in making decisions about modularization.

Approaches for identifying classes & their behaviours in problem domain Noun phrase approach Common class patterns Use–case driven approach Classes, Responsibilities and Collaboration (CRC) approach

Noun Phrase Approach Read through the requirements or use cases looking for noun phrases. Nouns in textual description are considered to be classes & verbs to be methods of classes. As a whole, classes are grouped in to three categories: Relevant classes, Fuzzy classes and Irrelevant classes.

The series of steps in this approach are as follows: 1.Identifying Tentative Classes: Following are guidelines for selecting classes in an application Look for nouns, and noun phrases in use cases Some classes are implicit or taken from general knowledge All classes must make sense in application domain Avoid computer implementation classes – defer them to the design stage

2. Selecting Classes form Relevant & Fuzzy Categories: Following guidelines help in selecting candidate classes from relevant & fuzzy categories of classes in problem domain Redundant classes: If more than one word is being used to describe same idea, select one that is most meaningful in the context of system. This part of building a common vocabulary for the system as a whole. Adjectives classes: Adjectives can be in many ways. An adjective can suggest a different kind of object, different use of the same object or it could be utterly irrelevant Attribute classes: Tentative objects that are used only as values should be defined or restated as attributes and not as a class Irrelevant classes: Each class must have a purpose and every class should be clearly defined and necessary. Classes which cannot be given statement of purpose are eliminated

3. Elimination & Refining: The process of eliminating redundant classes & refining remaining classes is not sequential. It can be done forth & back among steps as of wish.

Example Case study ( ATM) The following section provides a description of the ATM system requirements.  The bank client must be able to deposit an amount to and withdraw an amount from his or her accounts using the touch screen at the bank atm. Each transaction must be recorded and the client must be able to review all transactions performed against a given account.  In this bank client can have two types of accounts: a checking account and savings account.  The bank client will interact with the bank system by going through the approval process. After the approval process, the client can perform the transaction. The steps involved in transaction are: a)Insert ATM card b)Perform approval process c)Ask type of transaction d)Enter type e)Perform transaction f)Eject card g)Take card

Contd..  Initially the client enters the PIN code that consists of 4 digits. If PIN is valid the clients account will be available. Else an appropriate message is displayed on the screen.  Neither a checking nor savings account can have a negative balance. If the balance in saving account is less than the withdrawal amount requested, the transaction will stop and the client will be notified.

Solution: List of nouns identified are: Account Account balance Amount Atm card Bank Bank client Card Checking account Client Clients account Four digits Invalid PIN Message PIN PIN code Savings Savings account Transaction Transaction history Touch Screen

Eliminate irrelevant classes Account Account balance Amount Atm card Bank Bank client Card Checking account Client Clients account Four digits Invalid PIN Message PIN PIN code Savings Savings account Transaction Transaction history Touch Screen

Reviewing the redundant classes and building a common vocabulary Client, Bank client = Bank client Account, Client’s Account = Account PIN, PIN code = PIN Checking, Checking Account= Checking Account Savings, Savings Account =Savings Account

Here is the revised list of classes Account Account balance Amount Atm card Bank Bank client Card Checking account Client Clients account Four digits Invalid PIN Message PIN PIN code Savings Savings account Transaction Transaction history

Reviewing the classes containing adjectives In this example, we have no classes containing adjectives that we can eliminate.

Reviewing the Possible Attribute Amount -A value not a class Account Balance -An attribute of the Account class. Invalid PIN -only a value, not class Transaction history - attribute of transaction class PIN -attribute of Bank client class Password: An attribute of Bank Client class

Revised list after eliminating the attributes Account Account balance Amount Atm card Bank Bank client Card Checking account Client Clients account Four digits Invalid PIN Message PIN PIN code Savings Savings account Transaction Transaction history

Review the class purpose: ATM card class Bank client class: Details about client Account class: abstract class Savings and checking account: inherits account class. Transaction class: keeps track of the records.

Common Class Patterns Approach It is based on a knowledge base of common classes that have been proposed by various researchers. They have compiled & listed the following patterns for finding the candidate class & object Concept class: It encompasses principles that are not tangible but used to organize or keep track of business activities or communications. Eg: Performance is an concept class object Events class: These are points in time that must be recorded. Associated with things remembered are attributes such as who, what, when, where, how or why. Eg: Landing Organization class: It is collection of people, resources, facilities or groups to which users belong; their capabilities have a defined mission, whose existence is independent of individuals People class: It represent different roles users play in interacting with application. It is also known as person, roles and roles played class divided into 2 – users & non-users information Places class: Places are physical locations that system must keep information about. Eg: Stores Tangible things & devices class: This class includes physical objects or groups of objects that are tangible & devices with which application interacts. Eg: cars, pressure sensors

CRC Approach The Classes, Responsibilities and Collaborators process consists of three steps 1. Identify classes’ responsibilities (and identify classes) 2. Assign responsibilities 3. Identify collaborators Classes are identified & grouped by common attributes, which also provides candidates for super classes. Responsibilities are distributed; they should be as general as possible & placed as high as possible in inheritance hierarchy. The idea in locating collaborators is to identify how classes interact. Classes (cards) that have a close collaboration are grouped together physically.