410 likes | 637 Views
OBJECT-ORIENTED ANALYSIS. Chapter 11. OBJECT-ORIENTED ANALYSIS (OOA). Semi-formal specification technique Several methods Booch, OMT, OOSE, Objectory--Essentially equivalent Nowadays--represent OOA using UML (Unified Modeling Language). THE THREE STEPS OF OOA. 1. Use-case Modeling
E N D
OBJECT-ORIENTED ANALYSIS Chapter 11 CS3320::CH11
OBJECT-ORIENTED ANALYSIS (OOA) • Semi-formal specification technique • Several methods • Booch, OMT, OOSE, Objectory--Essentially equivalent • Nowadays--represent OOA using UML (Unified Modeling Language) CS3320::CH11
THE THREE STEPS OF OOA 1. Use-case Modeling • Determine how the various results are computed by the product (without regard to sequencing) • Largely action-oriented 2. Class Modeling (“Object Modeling”) • Determine the classes and their attributes • Purely data-oriented 3. Dynamic Modeling • Determine the actions performed by and to each class • Purely action-oriented CS3320::CH11
Elevator Problem:OOA 1. Use-case Modeling • Use cases: Describe the behavior of the system as seen from actor’s point of view. • Actors: external entities that interact with the system (e.g. A system adm, a bank customer, a bank teller, a central database, etc.) • A Scenario: a concise description of how an actor may interact with the system • a scenario is an instance of a use case CS3320::CH11
1. Use-case Modeling • Identify the actors • Identify a list of "typical" scenarios to get insight into the system’s behavior • Identify use-cases • a use-case specifies all possible scenarios for a given functionality. • a use case is initiated by an actor. • A use case represents a flow of events thru the system. CS3320::CH11
Elevator Problem: OOA CS3320::CH11
Normal Scenario CS3320::CH11
Abnormal Scenario CS3320::CH11
2. Object Modeling • The object model describes the real-world object classes of the systems and their relationship to each other with an entity-relationship diagram • It shows the static structure of the system. 1. Identify classes/objects 2. Identify associations between objects 3. Identify attributes of objects 4. Represent them using an entity-relationship diagram 5. Prepare a data dictionary CS3320::CH11
Identifying Object Classes • An Object is an instance of a class that consists of • Data (attributes, state variables, instance variables, fields, data members) • Actions (methods , member functions) • An object has a state (represented by data members) that changes during execution. CS3320::CH11
Identifying Object Classes • Objects include physical entities (house, employees, button, etc.) and concepts (payment schedule, seating assignment, trajectory, etc.) • Avoid computer implementation constructs (an array, a linked list, a binary tree, etc.) • Don’t be concerned with operations at this points. CS3320::CH11
Identifying Object Classes • Two approaches • Deduce from use cases and their scenarios • often many scenarios • too many candidate classes • Noun Extraction • The two approaches are complementary CS3320::CH11
Noun Extraction Stage 1: Concise Problem Definition • Define product in a single sentence Buttons in elevators and floors are to be used to control motion of n elevators in building with m floors. Stage 2: Incorporate constraints buttons illuminate when pressed to request elevator to stop at specific floor; illumination is cancelled when request has been satisfied. If elevator has no requests, it remains at its current floor with its doors closed. CS3320::CH11
Noun Extraction Stage 3: Identify nouns. Nouns: buttons, elevator, floor, movement, building, illumination, door • floor, building, door are outside the problem boundary==>excluded • Movement, illumination are abstract nouns ==>excluded (may become attributes) • Candidate classes: elevator, button • Subclasses: Elevator button and floor button CS3320::CH11
Noun Extraction CS3320::CH11
Identify Associations • An association is any dependency between two or more classes. • Example: • Person works-for Company • User has Home Directory • Directory contains Files • contains and part-of are special types of associations called aggregation • Inheritance is also a special type of association. CS3320::CH11
Identifying Associations • Problem statement • location phrases: next to, contained in, etc • communication: talk to • ownership phrases: has, part of • satisfaction of some condition: works for,married to, manages • Some depend on knowledge of application domain. CS3320::CH11
Identifying Associations Example: Buttons in elevators and floors are to be used to control motion of n elevators in building with m floors. • Buttons control elevators • There are two types of buttons: floor buttons and elevator buttons • However, buttons do not really control elevator they simply communicate with it. CS3320::CH11
Identify Associations • Identify association multiplicity: • 1 to 1 • 1 to many • Many to many • Identify aggregations • Identify inheritance relations CS3320::CH11
First Iteration of Class Model • Problem: buttons do not communicate directly with elevator==> class Elevator Controller CS3320::CH11
Second Iteration of Class Model CS3320::CH11
Identify Attributes • Attributes are properties of individual objects Problem Statement: • Correspond to nouns followed by possessive phrase: collar of the car, position of the cursor, salary of the employee, etc. • Attributes are less likely to occur in statement of the problem. Knowledge of application domain. • Try to get only the most important attributes at this stage. Others can be added later CS3320::CH11
Prepare Data Dictionary • Write a paragraph describing each object class. Described the scope of the class within the current problem • Describe associations and attributes • Data dictionaries also include description of operations. CS3320::CH11
CRC Cards Used since 1989 for OOA • For each class, fill in card showing • name of Class • Responsibility : functionality • Collaboration: list of classes it invokes CS3320::CH11
Elevator Controller--CRC 1. Turn on elevator button Totally unacceptable in OOA CS3320::CH11
Elevator Controller--CRC 1. Turn on Elevator Button Should be 1. Send message to Elevator Button to turn on button What about ? 5. Open elevator doors • Note: Elevator doors have a state that changes during execution (class characteristic) • ==> add class Elevator Doors CS3320::CH11
Elevator Controller--CRC CS3320::CH11
3. Dynamic Modeling • The dynamic model shows the time-dependent behavior of the system Aim: • Produce a UML state diagram for each object class. • A state diagram is less formal than an FSM • States, events, and conditions CS3320::CH11
States and Events • The state of an object are defined by the values of its attributes. • Objects change state when stimulated by other objects or external actors. • A event is an individual stimulus from one object to another. • The response to an event by the object receiving it can include a change of state or the sending of an another event (to the original object or another object) CS3320::CH11
Events • An event is something that happens at a point in time: user depresses left-button, phone receiver lifted, call is routed, input string entered. • An event has no duration: assumed to be instantaneous • An event coveys information from one object to another • signal that something has occurred • Send data values: • left mouse-button pushed (location) CS3320::CH11
Example • Draw a state diagram for a phone line CS3320::CH11
Conditions • A condition is a Boolean function of an object values. Example: • Temperature is below freezing • Floor button is lit • No cars on N/S left lanes • A condition is valid over an interval of time • Generally, a condition indicates the state of another object in the system. CS3320::CH11
Conditions • Conditions are used as guards on transitions: • A transition fires when its event occurs, only if the guard condition is true • When you go out in the morning (event), if the temperature is below freezing (condition), then put on your gloves (next state) CS3320::CH11
Traffic Light Controller • Straight N/S or W/E • After N/S times-out, • if there are cars on N/S left lane, N/E left-turn signal is turned on • else straight W/E light is turned on • Same for W/E left-lane CS3320::CH11
Time-out [cars in N/S left lane] N/S may go straight N/S may turn left Time-out [No cars in N/S left lane] Time-out Time-out Time-out [No cars in W/E left lane] W/E may go straight W/E may turn left Time-out [cars in W/E left lane] CS3320::CH11
Operations--Activities & Actions • Operations are performed in response to states or events: • Activity: an operation that takes time to complete. • Continuous operations: display a picture • Sequential operations that terminate after an interval of time: performing a computation, play a recorded message CS3320::CH11
Activities • An activity continues until complete or interrupted by an event that causes transition to a another state • e.g. ringing a telephone bell • Activities are associated with states State1 do: activity1 do: activity2 CS3320::CH11
Operations--Activities & Actions • Action: is associated with an event • Instantaneous: duration is insignificant compared to the resolution of the state diagram • e.g. when callee hangs-up disconnect phone line • Changing attribute values: • e.g. increment count when some event occurs. CS3320::CH11
State 1 do: activity 1 do: activity 2 State 2 do: activity ... Summary of Notation Event [condition]/action CS3320::CH11
CASE Tools for OOA Phase • Paradigm Plus • Software through Pictures • Rose CS3320::CH11