Reflexion Models for Reengineering


© Faisal Bin Bashir

Reengineering large and complex software systems is often very costly. Reflexion models let software engineers begin with a structural high-level model that they can selectively refine to rapidly gain task-specific knowledge about the source code.

Introduction

To effectively perform most software engineering tasks on an existing system, a software engineer must have some understanding of the system's source code. However, gaining insight into the source code of large and complex systems typically takes too long and costs too much. In an attempt to address this problem, a technique was developed by Gail C. Murphy (University of British Columbia) and David Notkin (University of Washington), called the software reflexion model technique, which lets software engineers rapidly and cost-effectively gain task-specific knowledge about a system's source code. This technique begins with a high-level model, which users define on the basis of a desired software engineering task. We had often seen software engineers use an informal structural model, say sketched on a white board, to begin reasoning about systems. However, reasoning about a task in this way carries significant risk because the model is disconnected from the source. Thus, the next steps in this technique are to extract a model of the source, define a map, and, through a set of computation tools, compare the two models. This lets software engineers effectively validate their high-level reasoning with information from the source code.

Murphy and Notkin say that to satisfy the need for a quick and inexpensive method, they made the technique "lightweight" and iterative. The user can easily and rapidly access the structural information of interest and can balance the cost of refinement with the potential benefits of a more complete and accurate model.

Murphy and Notkin, in their paper on Re engineering with Reflexion Models, have given a case study as well. The engineer in their case study - a developer with 10-plus years at Microsoft - specified and computed an initial reflexion model of Excel in a day and then spent four weeks iteratively refining it. He estimated that gaining the same degree of familiarity with the Excel source code might have taken up to two years with other available approaches. The case study demonstrates not only that Murphy and Notkin's technique and tools can scale up to large real-world problems, but also that their technique is flexible and robust enough to withstand adaptations to suit a particular task or environment.

References

"Reengineering with Reflexion Models: A case study" by Gail C. Murphy (University of British Columbia) and David Notkin (University of Washington).

Go To Page: 1 2


The copyright of the article Reflexion Models for Reengineering in Software Re-engineering is owned by . Permission to republish Reflexion Models for Reengineering in print or online must be granted by the author in writing.

Post this Article to facebook Add this Article to del.icio.us! Digg this Article furl this Article Add this Article to Reddit Add this Article to Technorati Add this Article to Newsvine Add this Article to Windows Live Add this Article to Yahoo Add this Article to StumbleUpon Add this Article to BlinkLists Add this Article to Spurl Add this Article to Google Add this Article to Ask Add this Article to Squidoo