Week 6 Flashcards
Class diagrams, sequence diagrams, interaction diagrams and type diagrams are all used in what?
Object Oriented Analysis
What does CRC stand for?
Class-Responsibility-Collaboration
What are CRC cards used for?
Identifying classes that participate in a scenario
Allocating responsibilities - what can it do, what does it know
What does an unfilled diamond signify?
Aggregation
What does a filled diamond signify?
Composition
How is an initial pseudostate shown in a state machine?
filled circle with arrow pointing to first state
how is a final pseudostate shown on state machine diagrams?
“bullseye” symbol, filled circle with thin circle surrounding it
What types of trigger are to be found on state machines?
Change trigger
Call trigger
Signal trigger
relative time trigger
In a state machine, when does a change trigger occur?
When a condition becomes true
In a state machine, when does a call trigger occur?
When an object receives a call to one of its operations either from another object or itself
In a state machine, when does a signal trigger occur?
when an object receives a signal (asynchronous)
In a state machine, when does a relative-time trigger occur?
when a designated amount of time has elapsed after the event
what two approaches may be used to prepare state machines?
Behavioural approach
Life cycle approach
What are the 8 steps of behavioural approach to preparing state machines?
1) Examine all diagrams that involve each class with heavy messaging
2) Identify the incoming messages on each diagram that may correspond to events, and the resulting states
3) Document these events on a state machine
4) Elaborate as necessary to cater for additional interactions
5) Develop any nested state machines
6) Review to ensure consistency with use cases
7) Iterate 4,5,6 until the required detail is met
8) Check the consistency with the class diagram, or other diagrams and models
What are the 8 steps of the life cycle approach to producing state machines?
1) Identify major system events
2) Identify each class likely to have a state dependent response to the events
3) For each class, produce a first-cut state machine by considering the typical lifecycle of an instance of the class
4) Elaborate to encompass more detailed behaviour
5) Enhance the state machine to include alternative scenarios
6) Review to ensure consistent with use cases
7) Iterate 4,5,6 until necessary detail reached
8) Ensure consistency with other diagrams, models and state machines