4.4 Relationships between Pre-ID and Post-ID
The previous section found that a discrepancy exists between Pre-
ID and Post-ID artifacts. The client approved both Pre-ID artifacts
and the final code, and the new software product has been
integrated into his software environment; therefore the team built
a right system. One can conclude that these discrepancies had
little measurable impact on the implementation of the client’s
requirements but might have an impact on the maintenance of the
software product. This analysis provided an example of the
various relationships that may exist between Pre-Id and Post-ID
artifacts.
The relationship between Pre-ID and Post-ID is based on expert
judgment. However, the conclusions are based on glaring issues
which would be confirmed by an independent committee if
needed. Minor or disputable issues were documented but were not
used for the conclusions of this study.
Correctness appraisal is obtained through a manual examination
of Pre-ID artifacts and the corresponding Post-ID artifacts. A
reviewer analyzes each class to answer the following questions:
• Does the class present an acceptable cohesion?
An acceptable cohesion is defined as whether the Pre-ID
or Post-ID class implements a single concern
(responsibility). A class with multiple concerns is flagged
as “incorrect”, according to the single responsibility
principle ([13], p11). Complexity of concerns is defined
with respect to the number of lines of code; a conflicting
concern with few lines of codes is rated as acceptable.
• Is the class’s coupling problematic? The Pre-ID or Post-
ID is flagged as “incorrect” if the class interact with many
other objects or if some interactions could be better
delegated to other objects.
A class receives the grade “GOOD” or “BETTER”, when the
implementation is an improvement over the design. The grade
“WORSE” implies that the design evolves toward a worst
implementation. The grade “SAME” represents unawareness,
where an imperfect design remains undetected and unimproved
during the implementation.
Figure 5 shows the possible relationships between Pre-ID and
Post-ID artifacts as extracted from the case study.
For example in Figure 5, the upper path shows that eight classes
present a correct Pre-ID. Two of these classes were correctly
implemented (GOOD) but for six of them their implementations
were worse than the design (WORSE). The lower path shows that