264bb235516760c6f21133dcfcb70b32.ppt
- Количество слайдов: 41
OBJECT-ORIENTED ANALYSIS Chapter 11 CS 3320: : CH 11 1
OBJECT-ORIENTED ANALYSIS (OOA) • Semi-formal specification technique • Several methods – Booch, OMT, OOSE, Objectory--Essentially equivalent – Nowadays--represent OOA using UML (Unified Modeling Language) CS 3320: : CH 11 2
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 CS 3320: : CH 11 3
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 CS 3320: : CH 11 4
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. CS 3320: : CH 11 5
Elevator Problem: OOA CS 3320: : CH 11 6
Normal Scenario CS 3320: : CH 11 7
Abnormal Scenario CS 3320: : CH 11 8
2. Object Modeling • The object model describes the real-world object classes of the systems and their relationship to each other with an entityrelationship 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 CS 3320: : CH 11 9
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. CS 3320: : CH 11 10
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. CS 3320: : CH 11 11
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 CS 3320: : CH 11 12
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. CS 3320: : CH 11 13
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 CS 3320: : CH 11 14
Noun Extraction CS 3320: : CH 11 15
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. CS 3320: : CH 11 16
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. CS 3320: : CH 11 17
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. CS 3320: : CH 11 18
Identify Associations • Identify association multiplicity: – 1 to 1 – 1 to many – Many to many • Identify aggregations • Identify inheritance relations CS 3320: : CH 11 19
First Iteration of Class Model • Problem: buttons do not communicate directly with elevator==> class Elevator Controller CS 3320: : CH 11 20
Second Iteration of Class Model CS 3320: : CH 11 21
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 CS 3320: : CH 11 22
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. CS 3320: : CH 11 23
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 CS 3320: : CH 11 24
Elevator Controller--CRC 1. Turn on elevator button Totally unacceptable in OOA CS 3320: : CH 11 25
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 CS 3320: : CH 11 26
Elevator Controller--CRC CS 3320: : CH 11 27
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 CS 3320: : CH 11 28
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) CS 3320: : CH 11 29
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) CS 3320: : CH 11 30
Example • Draw a state diagram for a phone line CS 3320: : CH 11 31
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. CS 3320: : CH 11 32
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) CS 3320: : CH 11 33
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 leftturn signal is turned on – else straight W/E light is turned on • Same for W/E left-lane CS 3320: : CH 11 34
N/S may go straight Time-out [cars in N/S left lane] Time-out [No cars in W/E left lane] W/E may turn left N/S may turn left Time-out [cars in W/E left lane] CS 3320: : CH 11 Time-out W/E may go straight 35
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 CS 3320: : CH 11 36
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 State 1 do: activity 2 CS 3320: : CH 11 37
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. CS 3320: : CH 11 38
Summary of Notation State 1 do: activity 2 Event [condition]/action CS 3320: : CH 11 State 2 do: activity. . . 39
CS 3320: : CH 11 40
CASE Tools for OOA Phase • Paradigm Plus • Software through Pictures • Rose CS 3320: : CH 11 41
264bb235516760c6f21133dcfcb70b32.ppt