Artifacts > Environment Artifact Set > Development Case > Guidelines > Important Decisions in Implementation
Guidelines:
|
Part of workflow |
Comments |
Integration and build management | The role Integrator and the Activity: Plan System Integration together with the Artifact: Integration Build Plan are usually introduced early in the project. The other integration related activities, such as Activity: Plan Subsystem Integration, Activity: Integrate Subsystem, and Activity: Integrate System are introduced just in time when the integration starts. |
Implementing components | The roles Implementer and Code Reviewer, and their activities and artifacts, are introduced at the start of implementation, in each iteration. |
Document the decisions in the Development Case, under the headings Disciplines, Implementation, Workflow.
Decide which artifacts to use and how to use each of them. The table below describes those artifacts you must have and those used in some cases. For more detailed information on how to tailor each artifact, and a discussion of the advantages and disadvantages of that specific artifact, read the section titled "Tailoring" for each artifact.
For each artifact, decide how the artifact should be used: Must have, Should have, Could have or Won't have. For more details, see Guidelines: Classifying Artifacts.
Artifact | Purpose |
Tailoring (Optional, Recommended) |
|
The implementation model is source code, executables, and all other artifacts needed to build and manage the system in the run-time environment. An implementation subsystem is a collection of components and other implementation subsystems, and is used to structure the implementation model by dividing it into smaller parts. A component represents a piece of software code (source, binary or
executable), or a file containing information (for example, a startup
file or a ReadMe file). A component can also be an aggregate of other
components; for example, an application consisting of several executables. |
All software projects have an implementation model with components including as a minimum some source code and executables. Some projects will also include subsystems, libraries, and visual models. Subsystems are useful when there are a large number of components to be organized. |
Integration Build Plan | Defines
the order in which the components and subsystems should be implemented,
which builds to create when integrating the system, and how they are
to be assessed. |
Optional. Recommended if you need to plan the integration. Omit it only when the integration is trivial. |
Tailor each artifact by performing the steps described in the Activity: Develop Development Case, under the heading "Tailor Artifacts per Discipline".
Decide the extent to which unit testing will be performed and the level of code coverage, which has a scale that goes from informal to 100% code coverage. This scale is described in the Test Plan.
The level of unit test coverage is often driven by the needs of the integration and system testers, to whom the code was handed over. The system testers are dependent on the quality of the code for their work. If the code has too many defects, the integration and system testers will send the code back to the implementers too often. This is a sign of a poor development process and the solution may be to require the implementers to do more thorough unit testing.
Of course, you cannot expect the unit-tested code to be completely free of defects. You do, however, need to find a "healthy" balance between unit testing and quality.
The level of unit test coverage can also differ between different phases. Even a safety-critical project that requires 100% code coverage during construction and transition does not usually require that during elaboration because many classes are only partially implemented at that stage.
Decide to what extent the code should be reviewed.
The advantages of code reviews are:
The disadvantages of code reviews are:
For more information about code reviewing, also see Activity: Review Code.
Code reviewing adds significant value to the project. All projects that start to measure the levels of bugs and maintenance problems related to code reviews claim they gain performance from the reviews. However, in many organizations it's difficult to make them "take off" for several reasons:
Keep the following in mind to make the best possible use of code reviews:
Rational Unified Process |