Skip to main content
Log in

On the Automatic Recovery of Style-Specific Architectural Relations in Software Systems

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

The cost of maintaining a software system over a long period of time far exceeds its initial development cost. Much of the maintenance cost is attributed to the time required by new developers to understand legacy systems. High-level structural information helps maintainers navigate through the numerous low-level components and relations present in the source code. Modularization tools can be used to produce subsystem decompositions from the source code but do not typically produce high-level architectural relations between the newly found subsystems. Controlling subsystem interactions is one important way in which the overall complexity of software maintenance can be reduced.

We have developed a tool, called ARIS (Architecture Relation Inference System), that enables software engineers to define rules and relations for regulating subsystem interactions. These rules and relations are called Interconnection Styles and are definedusing a visual notation. The style definition is used by our tool to infer subsystem-level relations in designs being reverse engineered from source code.

In this paper we describe our tool and its underlying techniques and algorithms. Using a case study, we describe how ARIS is used to reverse engineer high-level structural information from a real application.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Biggerstaff, T.J. 1989. Design recovery for maintenance and reuse. IEEE Computer, 22(7):36–49.

    Google Scholar 

  • Chen, Y., Gansner, E.R., and Koutsofios, E. 1997. A C++ data model supporting reachability analysis and dead code detection. In Proceedings of the European Conference on Software Engineering/Foundations of Software Engineering.

  • Chikofsky, E.J. and Cross, J.H. 1990. Reverse engineering and design recovery: A taxonomy. IEEE Software, 7(1):13–17.

    Google Scholar 

  • Consens, M.P. and Mendelzon, A.O. 1990. GraphLog: A visual formalism for real life recursion. In Proceedings of the 9th ACM SIGACT-SIGMOD Symposium on Principles of Database Systems, pp. 404–416.

  • Dellarocas, C. 1997. Acoordination perspective on software system design. In Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering, pp. 318–325.

  • DeRemer, F. and Kron, H.H. 1976. Programming in the large versus programming in the small. IEEE Transactions on Software Engineering, 2(2):80–86.

    Google Scholar 

  • Fahmy, H., Holt, R.C., and Mancoridis, S. 1997. Repairing software style using graph grammars. In IBM Proceedings of the Seventh Centre for Advanced Studies Conference (CASCON'97).

  • Gansner, E., Koutsofios, E., North, S., and Vo, K. 1993. A technique for drawing directed graphs. IEEE Transactions on Software Engineering, 19(3):214–230.

    Google Scholar 

  • Holt, R.C. and Mancoridis, S. 1994. Using tube graphs to model architectural designs of software systems. Technical Report CSRI-308, Computer Science Research Institute, University of Toronto.

  • Korn, J., Chen, Y., and Koutsofios, E. 1999. Chava: Reverse engineering and tracking of Java applets. In Proceedings of the 6th Working Conference on Reverse Engineering, pp. 314–325.

  • Krishnamurthy, B. 1995. Practical Reusable Unix Software. New York: John Wiley & Sons.

    Google Scholar 

  • Mancoridis, S. 1997. Customizable notations for software design. In Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering.

  • Mancoridis, S. 1998. ISF: A visual formalism for specifying interconnection styles for software design. International Journal of Software Engineering and Knowledge Engineering, World Scientific Publishing Company, 8(4):517–540.

    Google Scholar 

  • Mancoridis, S. and Holt, R.C. 1996. Recovering the structure of software systems using tube graph interconnection clustering. In Proceedings of the 1996 International Conference on Software Maintenance.

  • Mancoridis, S., Mitchell, B.S., Chen, Y., and Gansner, E.R. 1999. Bunch: A clustering tool for the recovery and maintenance of software system structures. In Proceedings of International Conference of Software Maintenance.

  • Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y., and Gansner, E.R. 1998. Using automatic clustering to produce high-level system organizations of source code. In Proceedings of the 6th Intl. Workshop on Program Comprehension.

  • Müller, H., Orgun, M., Tilley, S., and Uhl, J. 1993. A reverse engineering approach to subsystem structure identification. Journal of Software Maintenance: Research and Practice, 5:181–204.

    Google Scholar 

  • Müller, H.A., Orgun, M.A., Tilley, S.R., and Uhl, J.S. 1992. Discovering and reconstructing subsystem structures through reverse engineering. Technical Report DCS-201-IR, University of Victoria, August 1992.

  • Murphy, G., Notkin, D., and Sullivan, K. 1995. Software reflexion models: Bridging the gap between source and high-level models. In Proceedings of the ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE'95), Washington, DC, pp. 18–28.

  • Ossher, H. 1989. A Case Study in Structure Specification: A Grid Description of Scribe. IEEE Transactions on Software Engineering, 15(11):1397–1416.

    Google Scholar 

  • Prieto-Diaz, R. and Neighbors, J.M. 1986. Module interconnection languages. The Journal of Systems and Software, 6:307–334.

    Google Scholar 

  • Schwanke, R.W. 1991. An intelligent tool for re-engineering software modularity. In Proceedings of the 13th IEEE International Conference on Software Engineering, Austin, Texas, pp. 83–92.

  • Shaw, M., DeLine, R., Klien, D.V., Ross, T.L., Young, D.M., and Zalesnik, G. 1995. Abstractions for Software Architectures and Tools to Support Them. IEEE Transactions on Software Engineering, 21(4):314–335.

    Google Scholar 

  • Tzerpos, V. and Holt, R.C. 1998. Software botryology, automatic clustering of software systems. In Proceedings of the International Workshop on Large-Scale Software Composition, pp. 811–818.

  • Wolf., A.L., Clarke, L.A., and Wileden, J.C. 1988. A model of visibility control. IEEE Transactions on Software Engineering, 14(4):512–520.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Traverso, M., Mancoridis, S. On the Automatic Recovery of Style-Specific Architectural Relations in Software Systems. Automated Software Engineering 9, 331–360 (2002). https://doi.org/10.1023/A:1020346626363

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1020346626363

Navigation