Title: RealTime UML PBX Modeling
1Real-Time UML PBX Modeling
2Approach guided by Use Cases
- Use Case used
- to discover the system components (capsules),
- their requirements and
- identify concurrency
- Use Cases can be
- considered all at once
- considered one by one
- considered by groups (packages of use cases)
3Incremental approach
- addition of Use Cases by increments
- development of increasingly concrete models
- validation at each stage
Use Case Package
Select Scenarios
Select Scenarios
Select Scenarios
Model construction
Model construction
Model construction
Model meeting requirements
Model validation
Model validation
Model validation
4Model construction
- Consists of
- Element Identification
- Consolidation
- Behavior Capture
Element Identification
Consolidation
Behavior Capture
5Example PBX system
administrator
user
Public Telephone Network
PBX
user
6Use Case Diagram
7Use Cases - 1
- Telephone Call A user (Ray) wants to call
another user (Corinne) on the same PBX. Ray lifts
his handset (goes off hook), and hears dial
tone. After dialing Corinnes complete telephone
number, Ray hears a tone (ring-back), telling
him that Corrines telephone is ringing. Corinne
answers the call by lifting her handset. The
ringing and ringback tone stop, and a voice
connection is made between the two telephones.
Ray and Corinne talk for a while. Either Ray or
Corinne can hang up (go on hook) to end the
call.
8Use Cases - 2
- Last Number RedialHaving made a call, Ray
decides to call the same person again. As in
Telephone Call, Ray goes off hook, and presses
a Last Number Redial button on his telephone.
This automatically redials the last number he
dialed.
9Use Cases - 3
- Putting a Telephone Into ServiceThe PBX
administrator is told that a new user needs phone
service. The administrator, through an
administrator user interface, selects a new
number for the user and tells the PBX to put it
into service. Users can now make calls to that
number.
10Use Cases - 4
- Taking a Telephone Out of ServiceThe PBX
administrator is told that a user no longer needs
phone service. The administrator, through an
administrator user interface, tells the PBX to
take the users phone number out of service.
Users can no longer call that number.
11Elements Identification
- Discovery of candidates
- capsule classes,
- data classes,
- protocol classes
- Based on
- experience,
- Brainstorming
- Discovered elements should be briefly described
and have a trace-ability number
12Candidate Capsules
- Supposes delimitation of system boundaries
- Candidate Capsules are
- Active elements in Use Cases and Sequence
diagrams - Capsules created to express abstractions
- Coordinators created to
- mediate between various capsules
- encapsulate processes
- Interface Capsules
- isolate the interface from the system
13Consolidation
- Elimination of certain candidates classes
- e.g. redundant classes
- Work on relationships between classes
- e.g. containment, communication,
- Organization in inheritance hierarchy
14Consolidation of Capsules
- Consolidation will be careful about capsules
- which are only attributes of other capsules
- which are data classes
- with too much responsibilities
- should be broken up
15Initial Model in the PBX system 1
- A capsule represents the system
- highest abstract view of the system
- Other capsules represents actors in the
environment
16Initial Model in the PBX system
17Description of capsules
18Candidate Protocols signals
- May be found by looking at
- events in sequence diagrams
- verbs in textual description
- Signal should
- describe the high level goal of messages
- have a destination-independent name
19Protocols consolidation - 1
- eliminate redundant signals
- remove or correct vague signals
- gather signals in protocol classes
- e.g messages between two actors can define a
candidate protocol class
20Example PBX system - 1
21Example PBX system - 2
PutInService(String) PutOutService(String)
22Protocols consolidation - 2
- Define asymmetrical signals from the point of
view of the client capsule - Divide protocols addressing too many concerns
- Examine aggregation of classes of protocols
23Data candidates
- Data transmitted by messages
- Attributes of capsules (qualifiers)
24Consolidation
- Elimination of redundancies
- Transformation of attributes into states
- Consideration of inheritance links
25Example data object in the PBX example
- PhoneNumber String
- The complete number that identifies a user. It
may include digits, dashes and parentheses.''
26Modeling the System
- Level 1 Obvious components
- physical objects in requirements description
- Telephone
- includes a handset, buttons, etc
- significant property is whether it is ringing
- AdministrationUserInterface
- used by administrator to make changes in PBX
- PBX
- provides interfaces to telephones and connect
them
27Modeling the System
28(No Transcript)
29Internal protocol
- OriginateCall request to initiate a call.
- reception of signal request the telephone to ring
- DialTone indication of dial tone transmission to
user - DigitsDialed indicates a number was dialed by
user - Includes a telephone number (digits)
- Alerting indication that ringing of the
telephone started - RingbackTone indication that ringback tone is
transmitted - to the user from where origin the call
- AnswerCall request to answer a call
- Talk indication of vocal information sent or
received by - a user connected to another user
- Release request to finish a call
30Decomposition of the PBX
31Decomposition of the PBX
- Call (capsule coordinator)
- make the relation between users (call,
connection, disconnection) - TelephoneHandler (interface capsule)
- abstract telephones in the PBX
- keep information (number, last number called)
- help support technological changes
- AdminHandler
- abstraction of the administrator in the PBX
- transmits messages from administrator to the
entities affected by the actions of the
administrator
32Behavior capture consolidation
- Distinguish between
- States
- where a capsule wait for an event
- State variables
- Attributes of capsules
33Candidate States
- Use Cases and Sequence Diagrams can help finding
states - A candidate state is a point between received
events - Ensure all events in the scenarios are handled
- Group candidates states hierarchically by
- decomposing a state in sub-states
- composing sub-states at a same level
34Candidate Transitions
- Definition of transitions
- use a consistent name
- name should reflect transition cause
- trigger or abstraction of triggers
35TelephoneHandler
36Decomposition of InService state
- To deal with last number redial
- we must know when the TelephoneHandler is
participating - in a call
- LastNumberDialed should be recorded only when a
- call is being made
37(No Transcript)
38AdminUserInterface
- AdministrationUserInterface does nothing except
relaying messages
39AdminHandler
Relays messages from AdministrationUserInterface
to TelephoneHandler(s)
40Telephone
- Ringing state needed to determine whether OffHook
should produce a OriginateCall or AnswerCall
41Call