Activity: Structure the Implementation Model
|
Purpose
|
Start by mirroring the structure of the Design Model in the Implementation Model: Design Subsystems will have corresponding Implementation Subsystems, which will contain one or more components and all related files needed to implement the component.
Create a Component Diagram to represent the Implementation Model Structure. A simple Component Diagram is shown below:
Example Component Diagram for a simple Automated Teller Machine
Purpose
|
Decide whether the organization of subsystems needs to be changed, by addressing small tactical issues related to the implementation environment. Below are some examples of such tactical issues. Notice, that if you decide to change the organization of implementation subsystems you must also decide whether you should go back and update the design model, or the design model to differ from the implementation model.
Example
You extract some type declarations from Subsystem D, into a new subsystem Types,to make Subsystem A independent of changes to the public (visible) components in Subsystem D.
Type declarations are extracted from Subsystem D
.
Components are extracted from subsystem A, and placed in a new subsystem A1.
Purpose
|
Decide where in the implementation model to place the main executables. It is usually advantageous to place each of the main executables that comprise the system in its own subsystem. The reasons for doing this are:
Purpose
|
For each subsystem, define which other subsystems it imports. This can be done for whole sets of subsystems, allowing all subsystems in one layer to import all subsystems in a lower layer. Generally, the dependencies in the Implementation Model will mirror those of the Design Model, except where the structure of the Implementation Model has been adjusted (see Adjust Subsystems).
Present the layered structure of subsystems in component diagrams.
Purpose
|
Unit Tests. Each Implementation Subsystem must contain a Test Subsystem which defines how to unit test the contents of the Implementation Subsystem (i.e. components). The contents of this Test Subsystem will include test plans, test scripts, test data, and test drivers for the subsystem to be tested.
Integration Tests. Integration occurs by successively building larger parts of the system. Integration subsets can be defined at any level, but generally occur along within higher-level subsystems and layers.
System Test. System tests evaluate the entire system. At the top-level of the system, there must be a Test Subsystem which defines how the system will be tested. The contents of this Test Subsystem will include test plans, test scripts, test data, and test drivers for the subsystem to be tested.
Decide where in the implementation model to place the test subsystems and test components, such as test automation tools, test procedures, input data and output data.
Purpose
|
The Implementation View is described in the "Implementation View" section of Software Architecture Document. This section contains component diagrams that show the layers and the allocation of implementation subsystems to layers, as well as import dependencies between subsystems.
|