|
This task defines how to perform the transformation of a behavioral description at the System Level, into coarse-grained system structure. |
Disciplines: Analysis & Design |
|
Purpose
-
To elaborate the black-box flow-of-events text for each System Operation in each architecturally significant use
case into sequences of white-box steps, speaking in terms of subsystem actions and collaborations.
-
To augment these white-box descriptions with locality decisions, process decisions, worker decisions, and
white-box budget requirements.
-
To create subsystem interactions in sequence or collaboration diagrams (in the Analysis Model), based on the
white-box steps.
|
Relationships
Roles | Primary Performer:
| Additional Performers:
|
Inputs | Mandatory:
| Optional:
|
Outputs |
|
Main Description
In this task, the Designer begins the transformation of a behavioral description at the System Level, intocoarse-grained
system structure (and associated interactions) and behavior at the Subsystem Level. |
Steps
Elaborate black-box text into subsystem white-box steps
In this step, you take the Use-Case Model and elaborate the black-box flow-of-events text (which is a property of each
use case) into sequences of white-box steps (which speak in terms of subsystem actions and interactions, using the
subsystems and outlined collaborations from System Architectural Analysis). If this task is performed for a subsystem
for which the operations have been already specified, then the starting point are the operations and you can proceed
directly to the Initial White-Box Step Expansion.
For example, if you had used a tabular description as in the table, Example Black-Box Flow-of-Events:
System Use-Case <name>
|
Step
|
Actor Action
|
Black-Box Step Description
|
Black-Box Budgeted Requirements
|
System Operation
|
1
|
(actor
action identifier): description of what the actor does, for example, "AA1: this use case begins
when the Clerk pushes the New Sale button"
|
(black-box
step identifier): description of the system's response (without revealing the internal structure of
the system), for example, "BBS1: the system brings up new sales clerk and customer's screens and
enables the scanner"
|
(black-box
step requirements identifier): description of how well the system must perform this step; for
example, in terms of response time or rate, for example, "SUP36.2: total response time is 0.5
seconds"
|
(system
operation identifier): name of the system operation which is invoked for this step, for example,
"<<operation>> Begin New Sale" (from Context Diagram, defined in Task: Define System Context)
|
2
|
|
|
|
|
3
|
|
|
|
|
Example Black-Box Flow-of-Events
If the task is performed for a subsystem for which only the operations have been defined
Next, a System Operation (black-box step) is expanded into one or more white-box steps, each of which is performed by a
named subsystem. The Designer is guided by the work done by the Architect (during Architectural Analysis) in the
selection of subsystems and interactions which are used to describe the white-box steps. Note that the analysis now
proceeds driven by System Operation; that is, treat the next realization step as the realization of each System
Operation (rather than the more abstract notion of system use case black-box step).
The white-box steps for each System Operation (gray background in the table below) are captured (initially) in the
Analysis Model, associated with the corresponding System Operation as its realization. The white-box steps are not
stored with the System Use-Case (they are shown that way here simply as an illustration), but can be traced from the
System Use Case through the System Operation.
System Use-Case <name>
|
System Operation
|
Step
|
Actor Action
|
Black-Box Step Description
|
Black-Box Step Budgeted Requirements
|
Subsystem White-Box Step Description
|
White-Box Step Budgeted Requirements
|
Locality
|
Process
|
Worker
|
(system operation identifier): name of the
system operation which is invoked for this step, for example, "<<system
operation>> Begin New Sale" (from Context Diagram)
|
1
|
(actor action identifier): description of what the actor does,
e.g., "AA1: this use case begins when the Clerk pushes the New Sale button"
|
(black-box step identifier): description of the system's response
(without revealing the internal structure of the system), e.g., "BBS1: the system brings up new sales
clerk and customer's screens and enables the scanner"
|
(black-box step requirements identifier): description of how well the
system must perform this step; for example, in terms of response time or rate, e.g. "SUP36.2: total
response time is 0.5 seconds"
|
(white-box step identifier): description of an action performed by a
subsystem (performing part of the black-box step) in the form of input, processing, output,
e.g., "WBS1: the Point-of-Sale Interface clears the transaction, brings up new sales screens,
and requests that Order Processing start a sales list"
|
|
|
|
|
(white-box step identifier):...
|
|
|
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
Example White-Box Flow-of-Events
|
Augment white-box steps with locality, process and worker decisions
The description is then further augmented with locality decisions, process decisions, and worker decisions. The
locality decision places, with some latitude (given the level of abstraction of locality) where the subsystem white-box
step are performed. The process decision is necessary only when it is decided that (for this step at least), the
subsystem is "passive," that is, its operations are invoked by processes external to the subsystem. An "active"
subsystem is able to respond autonomously, using processes internal to the subsystem. The system designer is again
guided by the work of the system architect (in producing the Locality Model and Process Model). In worker decisions,
appropriate when you make allocations to human resources, you start to identify the organizational entities and then
system worker resources needed for a System Operation.
If the analysis shows that a white-box step requires more than one locality (or process), then decompose it into
smaller steps, so that each can be associated with a single locality (and process, where appropriate). This
decomposition might have important architectural ramifications (it might need the subsystem to be refactored) and needs
to be canvassed with the team or person playing the System Architect role.
System Use-Case <name>
|
System Operation
|
Step
|
Actor Action
|
Black-Box Step Description
|
Black-Box Step Budgeted Requirements
|
Subsystem White-Box Step Description
|
White-Box Step Budgeted Requirements
|
Locality
|
Process
|
Worker
|
(system operation identifier): name of the
system operation which is invoked for this step, for example, "<<system
operation>> Begin New Sale" (from Context Diagram)
|
1
|
(actor action identifier): description of what the actor does,
for example, "AA1: this use case begins when the Clerk pushes the New Sale button"
|
(black-box step identifier): description of the response (without
revealing the internal structure of the system), for example, "BBS1: the system brings up new sales
clerk and customer's screens and enables the scanner"
|
(black-box step requirements identifier): description of how well the
system must perform this step; for example, in terms of response time or rate, for example, "SUP36.2:
total response time is 0.5 seconds"
|
(white-box step identifier): description of an action performed by a
subsystem (performing part of the black-box step) in the form of input, processing, output, for
example, "WBS1: the Point-of-Sale Interface clears the transaction, brings up new sales screens,
and requests that Order Processing start a sales list"
|
|
Locality identifier
|
Process identifier
|
Organization or System Worker identifier
|
(white-box step identifier):...
|
|
|
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
Example Augmented White-Box Flow-of-Events
|
Allocate white-box budgeted requirements
Next, apportion black-box step budgeted requirements to white-box steps. This allocation helps determine the
performance requirements for both the subsystem and the associated locality. In the case of a passive subsystem, it is
an input into latency analysis of the invoking process (which might have other responsibilities).
System Use-Case <name>
|
System Operation
|
Step
|
Actor Action
|
Black-Box Step Description
|
Black-Box Step Budgeted Requirements
|
Subsystem White-Box Step Description
|
White-Box Step Budgeted Requirements
|
Locality
|
Process
|
Worker
|
(system operation identifier): name of the
system operation which is invoked for this step, for example, "<<system
operation>> Begin New Sale" (from Context Diagram)
|
1
|
(actor action identifier): description of what the actor does,
for example, "AA1: this use case begins when the Clerk pushes the New Sale button"
|
(black-box step identifier): description of the system's response
(without revealing the internal structure of the system), for example, "BBS1: the system brings up new
sales clerk and customer's screens and enables the scanner"
|
(black-box step requirements identifier): description of how well the
system must perform this step; for example, in terms of response time or rate, for example, "SUP36.2:
total response time is 0.5 seconds"
|
(white-box step identifier): description of an action performed by a
subsystem (performing part of the black-box step) in the form of input, processing, output, for
example, "WBS1: the Point-of-Sale Interface clears the transaction, brings up new sales screens,
and requests that Order Processing start a sales list"
|
(white-box step requirements identifier): description of how well the
subsystem must perform this step; for example, in terms of response time or rate, for example,
"SUP36.2.1: elapsed time 0.16 second"
|
Locality identifier (in locality model)
|
Process identifier (in process model)
|
Organization or System Worker identifier
|
(white-box step identifier):...
|
(white-box step requirements identifier):...
|
Locality identifier
|
Process identifier
|
Organization or System Worker identifier
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
Example Allocated White-Box Flow-of-Events Budgeted Requirements
|
Sort white-box steps by subsystem
In this step, you collect together all white-box steps for each subsystem (that is, the white-box steps that
belong to that subsystem). This is done in preparation for the identification of Subsystem Operations
(which are to the subsystem what System Operations are to the system), by examination of the subsystem white-box step
descriptions. As with the identification of system operations, there might not be a unique subsystem operation
for each white-box step. Also note that the white-box steps are grouped by system operation. For example, this might be
done in tabular form as well, grouped by subsystem:
Example Subsystem Use-Case Survey
Subsystem <name>
|
System Operation
|
Locality
|
Process
|
Worker
|
Subsystem White-Box Step Description
|
Subsystem Operation
|
<name>
|
Locality identifier
|
Process identifier
|
Organization or System Worker identifier
|
(white-box step identifier): description of an action performed by a
subsystem (performing part of the black-box step) in the form of input, processing,
output
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example Operation Use-Case Survey
In the case of a "systems of systems", where a use-case model is maintained for each system/subsystem, this grouping is
a strong guide to the identification of subsystem use cases: you can initially identify a subsystem use case for each
system operation in which the subsystem participates. You might then note that the sequences of white-box steps are the
same for some of these use cases; therefore, they can be aggregated, and thus a single subsystem use case can be made
to fulfill the needs of several system operations.
|
Refine outlined collaborations for each system operation
Based on the white-box steps, subsystem interactions are created in sequence or collaboration diagrams (in the Analysis
Model). This refines the work done previously by the System Architect. At this stage, the collaborations might still be
abstract, perhaps only links are identified, or messages at an abstract level. This work, nevertheless, gives an
insight into the coupling and cohesion of the subsystems. This refines the white-box step expansion performed
previously (see Initial White-Box Step Expansion).
|
Evaluate the analysis
The System Designer needs to call for an informal review at the conclusion of this task, and thus ensure that all
emergent issues are recorded and scheduled for resolution.
|
|
More Information
© Copyright IBM Corp. 1987, 2006. All Rights Reserved.
|
|