Technical

The technical evaluation considers the data collected in the baseline projects, in particular focusing on a specific set of metrics that were measured in the design artefacts and directly in the code. The technical analysis focused on assessing the degree of connection between objects (component internal cohesion) and between components (coupling between components).
We found that in general the coupling values were lower than the cohesion values for the components, a confirm to the initial expectations and a clear improved modularity of the system. The analysis of the coupling indicators evidenced a lower coupling towards the presentation layer and a stronger coupling towards the persistence layer of the systems. This can be due to the fact that the reuse efforts were much more focused on business rules reuse than on graphical interface reuse.
The experimental results showed that it is not always true that components directly lead to increased cohesion and decreased inter-component coupling. This general statement is a general consideration but it depends on specific situations.

 

Business

A comparison of the measured data against the estimated effort for a 'traditional' development showed that the total effort employed for the two projects (if we do not consider the effort spent for the development of the reusable components) is less that the estimated one.
Adding to the effort spent for the baseline projects the work required to develop the reusable components, we found that the component-based approach incremented the total effort we employed in the baseline compared with the estimated one (by about 14% and 7% respectively for the two systems).
With the figures we measured, we can foresee that a third reuse of the two components will result in a positive balance concerning these two projects: the return on the investment is reached when we reuse three times the reusable components (considering only the effort data).
A positive result comes up from the consideration of the time to market related to the baseline projects: we released the first version of the baseline systems with an appreciable reduction of the time to market. However, we have to consider that in the experiment we made the time required to develop the two reusable components did not delay the two baseline projects.

 

Qualitative

We conducted a final review with the people involved in the rpoject and we obtained these considerations:

- developers emphasised that the component-based approach and the different perspective it requires directly translate into a better structuring of the software application

- the experiment showed that the new approach led to an improved readability of the project documentation: hiding specific implementation mechanisms into components boundaries and describing interactions through public interfaces simplify the reading activity and this, in turn, leverages the understandability of the information

- the adoption of a component perspective fostered the application of documentation and coding standards, and this is very important aspect for augmenting understandability

- it seems that the component approach and the impact it has on the software development process allows lowering the effort required to maintain the system

- adopting a component perspective allows to simplify the relationships and the collaboration between developers