Exercising control over the design of evolving software systems using an inverse application of reflexion modeling

  • Authors:
  • Andrew Le Gear;Jim Buckley

  • Affiliations:
  • University of Limerick;University of Limerick

  • Venue:
  • CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

A software designer often has little control over, or a means of checking, whether his design is being adhered to once implementation begins. This 'architectural drift,' where the original design and the design of the implemented system diverge can cause serious problems for evolution, maintenance and the comprehensibility of a system if it remains undocumented. The earlier such discrepancies can be identified the better. This paper proposes a process for design control based on an inverted use of a design recovery technique called Reflexion Modeling that allows the software designer to enforce his design decisions during the implementation phase of the software engineering process.A large industrial case study of the development of an IBM system called DAP is used to demonstrate the effectiveness of the process. Based on a comparison between the old implementation of DAP and the new version, our findings suggests that better design control is achievable using our inverse Reflexion Modeling approach. This is because, during the case study our process revealed violations in the design of DAP. These were captured early and marked for correction. The violations were present in spite of the fact that the architect and implementer of the system was the same person. This indicates that design violations are very easily introduced and often unintentional, particularly in larger team-development contexts.Another measure of the value of the approach is the uptake of the tool by others in the organization. This has been quite rapid, with up to 15 installations since this work began. The next step will be to monitor several more iterations of the design control process and report upon the results of this new data.