Chapter 12 Conclusion
A Ph.D. Thesis by Andrew Le Gear
[Back to Home Page] [Previous Chapter] [Bibliography]
“Whatever we learn has a purpose and whatever we do affects everything and everyone else, if even in the tiniest way. Why, when a housefly flaps his wings, a breeze goes round the world; when a speck of dust falls to the
ground, the entire planet weighs a little more; and when you stamp your foot, the earth moves slightly off its course. Whenever you laugh, gladness spreads like the ripples in a pond; and whenever you’re sad, no one
anywhere can be really happy. And it’s much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer.”
-Norton Juster, The Phantom Tollbooth.
This last chapter briefly revisits the main themes of this thesis and draws conclusions on them. Conclusions with respect to the level to which the stated objectives and contributions were achieved and an overview of the interpretation of the results are provided.
Earlier in chapter 7 the Component Reconn-exion process was defined as a new process for component encapsulation based on an extensive literature review. The diagram in figure 12.1 illustrates the steps of the process as being:
1. A reuse perspective is created from dynamic analysis of the subject system.
2. Then the participant is presented with the reuse perspective. He uses this, to prompt initial mappings for possible component abstractions in the system.
3. From these component abstractions the participant chooses a component of interest that he wishes to recover.
4. The participant can then create his initial Reflexion model, as prescribed by this thesis’ proposed variation on Reflexion, with the map being prompted by the examination of the reuse perspective.
5. Further iterations of the variation on Reflexion Modelling are undertaken. The participant is free to refer to the reuse perspective at any stage. This continues until the component is encapsulated.
Figure 12.1: The Component Reconn-exion process.
A series of evaluations were then undertaken. This included, an industrial scale, in-vivo case study of the constituent parts of Reconn-exion and followed by a complete industrial scale, in-vivo case study of the entire Reconn-exion process.
The following conclusions can be drawn from the work of this thesis:
Certain validity issues and theoretical limitations exist. Users of Reconn-exion should be aware of its limitations as well as the potential gains of using it. The typical, pervasive, limitations of static and dynamic analysis exist. However, it is also important to note that the existence of source code clones can also confuse the outputted reuse perspective in certain instances. Also, when interpreting the results of the case studies one should be aware of the threats to validity that accompany these studies. Most prominant perhaps, is the small population size for the studies undertaken.
The preliminary empirical evidence suggests that reuse perspective does indeed contain core, reused and generic software elements. This view now provides a unique view on software system and is a valuable addition to a software engineer’s set of analyses. Potential exists as future work in combining this view with other techniques to allow product line and component recovery.
The reuse perspective could potentially serve as a useful prompt for software engineers when choosing reusable component abstractions. The final case study undertaken showed how software engineers were able to identify several core components of systems by examining the reuse perspective. This has benefits for both component recovery and architectural recovery.
Reconn-exion appears to be a useful process for component encapsulation and an improvement on standard practices. In line with other results from (Murphy and Notkin, 1997; Murphy et al., 2001, 1995), the Reflexion-based process proposed by this thesis allows significantly quicker and accurate identification of targeted components and architectural elements.
Based on our studies the resulting components outputted by Reconn-exion and the variation on Reflexion are of good quality and are reusable as evaluated by original architects and objective metrics. Because Reconn-exion allows for quicker and easier encapsulation of components, accuracy on the software engineers part appears to be increased. An error in accuracy can lead to serious component error. The improvement in accuracy was most evident from the workspace case study (section 8.2) where a software engineer revisited a component encapsulation task that had previously failed, only to complete it 30 times quicker using the altered version of Reflexion.
Cognitive psychology provides explanations for the successes of Reconn-exion. Reference to cognitive psychology seems to be underutilised in computer science literature in explaining the success of techniques such as Reconn-exion. Furthermore, if correctly applied cognitive psychology may also be able help guide aspects of tool design in the future.
The evidence gathered suggests that Reconn-exion is repeatable. The use of more than one participant in more than one setting showed how Reconn-exion is a repeatable process across organisations, participants and systems for component encapsulation. This, although a provisional finding, is of immense importance if the process
is to ever be adopted in practice.
Reconn-exion is useful to industry. In both industrial locations where the technique was applied, technology transfer to the organisation began to occur. Apart from the evidence gathered during evaluation, this is probably the best form of evidence that a technique is useful to industry.
During the component encapsulation phase the participant should be free to define subarchitectures of the chosen component in order to finalise its contents. In this way the software engineer can become more certain of the contents of a component before defining the roles that that component has in the system.
[Back to Home Page] [Previous Chapter] [Bibliography]
Component Reconn-exion by Andrew Le Gear 2006