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 the 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 is composed of implementation elements, which include code (source, binaries and executables), and files containing information (for example, a startup file or a ReadMe file). An implementation subsystem is a collection of implementation elements and other implementation subsystems, and is used to structure the implementation model by dividing it into smaller parts. |
All software projects have an implementation model with implemention elements 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 implementation elements to be organized. |
Integration Build Plan | Defines the order in which components 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 to fit the needs of the project. For tailoring considerations, see the tailoring section of the artifacts' description page, or the steps described under the heading "Tailor Artifacts per Discipline" in the Activity: Develop Development Case.
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.
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 |