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 | Brief Tailoring Comments (see the artifact for details) |
Component | Must have, if you implement the system. The issue is what different stereotypes to use. |
Implementation model | Must have, if you implement the system. |
Implementation subsystem | Could have, if you need to organize the components. |
Integration Build Plan | Should have, 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
|