Finding Analysis Classes Written by Zvika Gutterman Adam Carmi.

Slides:



Advertisements
Similar presentations
Chapters 7 & 9 System Scope
Advertisements

Agenda What is a Use Case? Benefits of the Use Cases Use Cases vs. Requirements document Developing the Use Case model System Actor Use Case Use Case.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Use-case Modeling.
Software Requirements
Copyright ©2004 Cezary Z Janikow 1 Domain Model n Visualization of entities and relationships n In UP presented as Class Diagrams – Classes, Relationships,
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
UML Class Diagram and Packages Written by Zvika Gutterman Adam Carmi.
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Finding Analysis Classes Written by Zvika Gutterman Adam Carmi.
Written by: Zvika Gutterman Adam Carmi
1 Lecture 2: Elaboration Tasks and Domain Modeling.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
Data Modeling Entity - Relationship Models. Models Used to represent unstructured problems A model is a representation of reality Logical models  show.
Copyright W. Howden1 Lecture 2: Elaboration Tasks and Domain Modeling.
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Use Case Analysis – continued
Course Instructor: Aisha Azeem
Object Oriented Analysis and Design Using the UML
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Software Design Description (SDD) Diagram Samples
The chapter will address the following questions:
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/29 Object Oriented Analysis and Design Using.
CSC271 Database Systems Lecture # 21. Summary: Previous Lecture  Phases of database SDLC  Prototyping (optional)  Implementation  Data conversion.
USE Case Model.
The Software Development Life Cycle: An Overview
Overview of the Database Development Process
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Analysis Modeling.
Chapter 5 Analysis Model. Analysis model (AM) The first step in describing how the system will implement the requirements specification The first step.
ANALYSIS REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Data Flow Diagram A method used to analyze a system in a structured way Used during: Analysis stage: to describe the current system Design stage: to describe.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
NI ©UNITEN 2000/01 1 Faculty of Applied Engineering and Urban Planning Software Engineering Department Class Diagram Faculty of Information system Technology.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Actors and Use Case Diagrams Month Day, Year. Agenda Training Plan Overview Review Detailing Requirements with Requisite Pro Concepts Setting Up XDE Integration.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 6: Use-Case Analysis.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
UML-1 4. Architecture. UML-2 Artifact: Analysis Class Abstraction of one or several classes or subsystems –Focuses on handling functional requirements.
Chapter 4: Use Case Modeling [Arlow and Neustadt, 2005] CS 790M Project preparation (II) University of Nevada, Reno Department of Computer Science & Engineering.
What is a Structural Model?
IFS310: Module 6 3/1/2007 Data Modeling and Entity-Relationship Diagrams.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Use Case Model Use case diagram. Relevant Requirements Artifacts Use-Case Model Supplementary Specification Use-Case Specifications... Glossary Actors.
Use Case Textual Analysis
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Software Requirements
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.
Chapter 6: The Analysis Workflow Chapter 7: Classes and Objects Chapter 8: Finding Analysis Classes [Arlow and Neustadt, 2005] CS 426 Senior Projects in.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
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.
 System Requirement Specification and System Planning.
COMP 2710 Software Construction Class Diagrams
Today’s Objectives Define the Problem Domain
Use Case Modeling.
UML Class Diagram.
Use Case Analysis – continued
Presentation transcript:

Finding Analysis Classes Written by Zvika Gutterman Adam Carmi

Agenda Objective What are Analysis Classes? Types of Analysis Classes –Boundary classes –Entity classes –Control classes Finding Analysis Classes Example: TVRS Analysis Classes

Objective Identify a candidate set of (analysis) classes which are capable of performing the behavior described in the use cases –The complete behavior of a use case has to be distributed to analysis classes –Non-functional requirements are not taken into account –Concentrate on finding class attributes and relationships

What are analysis classes? The technique for finding analysis classes uses three different perspectives of the system: The boundary between the system and its actors The information the system uses The control logic of the system

What are analysis classes? > = = = A stereotype defines a new model element in terms of another model element.

Types of Analysis Classes > Actor1Actor2 Model interaction between the system and its environment Store and manage information in the system Coordinates the use case behavior

Boundary Classes Models the interaction between the system’s surroundings and its inner workings –User interface classes Concentrate on what information is presented to the user Don’t concentrate on user interface details Example: ViolationsDialog –System / Device interface classes Concentrate on what protocols must be defined. Don’t concentrate on how the protocols are implemented Example: OffendersDBProxy

Boundary Classes (cont.) Boundary classes are environment dependent: –UI dependent –Communication protocol dependent

Entity Classes Models the key concepts of the system Usually models information that is persistent Contains the logic that solves the system problem Is environment independent Can be used in multiple use cases

Control Classes Controls and coordinates the behavior of a use case Delegates the work of the use case to classes –A control class should tell other classes to do something and should never do anything except for directing Control classes decouple boundary and entity classes Often, there is one control class per use case

Control Classes (cont.) Use case and environment dependent Example: –ViolationsController

Finding Analysis Classes 1.For each use case: a.Supplement the use case description b.Identify Boundary, Entity and Control classes c.For each class identified i.Find attributes ii.Find relationships 2.Validate model, repeat process if necessary

Supplement Use Case description The description of each use case is not always sufficient for finding its analysis classes –Entity classes in particular Capture additional information needed in order to understand the required internal behavior of the system that may be missing from the use-case description written for the costumer Focus on enhancing current flow with internal details that realize the external behavior

Identifying Classes Classes may be hidden in: –Requirements document –(Augmented) Use case model –Stakeholder’s Request –Problem domain –Any project documentation

Identifying Classes (cont.) Boundary classes –There should be at least one boundary class for each actor / use-case pair Control classes –Often, there is one control class per use case –If two control classes are similar, their corresponding use cases may need to be merged Example: “manage traffic report” may replace “edit/add/remove traffic report” use cases.

Identifying Classes (cont.) Entity Classes –Identified by examining the nouns and noun phrases in problem description, requirements document, use cases and other documentation –Nouns found may be: Objects Description of an object’s state (attributes) Actors None of the above

Noun elimination Duplicate classes –Differ only in name: “System”, “TVRS”... Irrelevant classes –Classes that have nothing to do with the system (solution): “police headquarters”... Attributes / Operations –Some nouns are likely to be modeled as attributes or operations rather than classes: “ID”, “name”, “Report Lookup”...

Noun elimination (cont.) Roles –Some nouns are roles of objects involved in associations rather than classes Example: “Teaching Assistant” and “Student” may be different roles of a “Person” class. Abstract nouns –“Identify ideas or quantities that have no physical existence” –Rarely end up corresponding to analysis classes, but rather as attributes: “Request”, “Opinion” –May correspond to classes in later design stages

Finding class attributes Properties or characteristics of identified classes –Information retained by identified classes –Atomic Nouns that did not become classes –Information whose value is important for the solution –Information that is uniquely owned by an object

Finding relationships Associations often correspond to verbs or verb phrases –Physical locations: next to, above, inside... –Direct actions: drives, creates, manages... –Communication: talks to, listens, notifies... –Ownership: has, part of, belongs to, contained... –Others: works for, married to, studies at... Eliminate associations that don’t relate to the problem / solution More associations may be discovered using interaction diagrams (introduced later...)

Example: TVRS Analysis Classes Partial noun list from TVRS requirements and use cases (Entity classes candidates): Traffic report Supervisor Report lookup Confirmation TVRS Offender Details Form Traffic report addition System Offender Policeman Vehicle number License number Fault Traffic policeman Commander Violation ID Password Police headquarters Shutdown Date Speed Traffic Violation Clerk

Eliminate duplicate classes Traffic report Supervisor Report lookup Confirmation TVRS Offender Details Form Traffic report addition System Offender Policeman Vehicle number License number Fault Traffic policeman Commander Violation ID Password Police headquarters Shutdown Date Speed Traffic Violation Clerk

Eliminate duplicate classes Traffic report Supervisor Report lookup Confirmation TVRS Offender Details Form Traffic report addition System Offender Policeman Vehicle number License number Fault Traffic policeman Commander Violation ID Password Police headquarters Shutdown Date Speed Traffic Violation Clerk Clerk and Supervisor are replaced by User

Eliminate irrelevant classes Traffic report User Report lookup Confirmation TVRS Offender Details Form Traffic report addition Offender Policeman Vehicle number License number Traffic policeman Commander Violation ID Password Police headquarters Shutdown Date Speed

Eliminate irrelevant classes Traffic report User Report lookup Confirmation TVRS Offender Details Form Traffic report addition Offender Policeman Vehicle number License number Traffic policeman Commander Violation ID Password Police headquarters Shutdown Date Speed

Eliminate attributes and operations Traffic report User Report lookup Confirmation TVRS Offender Details Form Traffic report addition Offender Policeman Vehicle number License number Traffic policeman Commander Violation ID Password Shutdown Date Speed

Eliminate attributes and operations Traffic report User Report lookup Confirmation TVRS Offender Details Form Traffic report addition Offender Policeman Vehicle number License number Traffic policeman Commander Violation ID Password Shutdown Date Speed

Eliminate abstract nouns Traffic report User Confirmation TVRS Offender Details Form Offender Policeman Traffic policeman Violation

Eliminate abstract nouns Traffic report User Confirmation TVRS Offender Details Form Offender Policeman Traffic policeman Violation

Traffic report User TVRS Offender Details Form Offender Policeman Traffic policeman Violation … Entity classes (partial) The remaining list will often contain classes that are not entity classes, such as “Offender Details Form”. Boundary and control classes are easier to find by analyzing use cases directly.

Boundary classes ReportDetailsForm PolicemanDetailsForm LookupReportForm ConfirmationDialog OffendersDBProxy PolicemanDBProxy... A database proxy provides a high-level API and encapsulates communication and query language details

Control classes AddReportController RemoveReportController LookupReportController EditReportController AuthenticationController...

Analysis classes diagram I id : long name : String rank : int Policeman > TrafficPoliceman id : long description : String TrafficReport id : long description : String Violation name : String id : long Offender 1..*1 reports of 1..* issues1* occuredAt : Date

Analysis classes diagram II