Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Playing Detective: Reconstructing Software Architecture from Available Evidence

Published: 01 April 1999 Publication History

Abstract

Because a system‘s software architecture strongly influences its quality attributes such as modifiability, performance, and security, it is important to analyze and reason about that architecture. However, architectural documentation frequently does not exist, and when it does, it is often “out of sync” with the implemented system. In addition, it is rare that software development begins with a clean slate; systems are almost always constrained by existing legacy code. As a consequence, we need to be able to extract information from existing system implementations and utilize this information for architectural reasoning. This paper presents Dali, an open, lightweight workbench that aids an analyst in extracting, manipulating, and interpreting architectural information. By assisting in the reconstruction of architectures from extracted information, Dali helps an analyst redocument architectures, discover the relationship between “as-implemented” and “as-designed” architectures, analyze architectural quality attributes and plan for architectural change.

References

[1]
Bass, L., Clements, P., and Kazman, R. 1998. Software Architecture in Practice. Addison-Wesley.
[2]
Biggerstaff, T. 1989. Design recovery for maintenance and reuse. IEEE Computer, 22(7):36-49.
[3]
Brooks, F. 1975. The Mythical Man-Month--Essays on Software Engineering. Addison-Wesley.
[4]
Buhr, R. and Casselman, R. 1996. Use Case Maps for Object-Oriented Systems. Prentice-Hall.
[5]
Garlan, D., Monroe, B., and Wile, D. 1997. ACME: An interchange language for software architecture, 2nd edition, Technical Report, Carnegie Mellon University.
[6]
Griswold, R. and Griswold, M. 1983. The Icon Programming Language. Prentice-Hall.
[7]
Imagix Corporation, http://www.imagix.com
[8]
Kazman, R., Abowd, G., Bass, L., and Clements, P. 1996. Scenario-based analysis of software architecture. IEEE Software, 47-55.
[9]
Kazman, R., Abowd, G., Bass, L., and Webb, M. 1994. SAAM: A method for analyzing the properties of software architecture. Proceedings of the 16th International Conference on Software Engineering, Sorrento, Italy, pp. 81-90.
[10]
Kazman, R. and Burth, M. 1998. Assessing architectural complexity. Proceedings of 2nd Euromicro Working Conference on Software Maintenance and Reengineering, Florence, Italy, pp. 104-112.
[11]
Kazman, R. and Carrière, J. 1996. An adaptable software architecture for rapidly creating information visualizations. Proceedings of Graphics Interface '96, Toronto, ON, pp. 17-27.
[12]
Kazman, R. and Carrière, S. J. 1998. View extraction and view fusion in architectural understanding. Fifth International Conference on Software Reuse, Victoria, BC, pp. 290-299.
[13]
Klein, M., Ralya, T., Pollak, B., Obenza, R., and Gonzales Harbour, M. 1993. A Practitioner's Handbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time Systems. Kluwer Academic.
[14]
Murphy, G. and Notkin, D. 1996. Lightweight lexical source model extraction. ACM Transactions on Software Engineering and Methodology, 5(3):262-292.
[15]
Murphy, G., Notkin, D., and Lan, E. 1996. An empirical study of static call graph extractors. Proceedings of ICSE 18, Berlin, Germany, pp. 90-99.
[16]
Murphy, G., Notkin, D., and Sullivan, K. 1995. Software reflexion models: Bridging the gap between source and high-level models. Proceedings of the Third ACM SIGSOFT Symposium on the Foundations of Software Engineering, Washington, DC.
[17]
Reasoning Inc., http://www.reasoning.com
[18]
Shaw, M., DeLine, R., Klein, D., Ross, T., Young, D., and Zelesnik, G. 1995. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering.
[19]
Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall.
[20]
Smith, C. and Williams, L. 1993. Software performance engineering: A case study including performance comparison with design alternatives. IEEE Transactions on Software Engineering, 19(7):720-741.
[21]
Software Emancipation, http://www.setech.com
[22]
Stonebraker, M., Rowe, L., and Hirohama, M. 1990. The implementation of POSTGRES. IEEE Transactions on Knowledge and Data Engineering, 2(1):125-141.
[23]
Tonella, P., Fiutem, R., Antoniol, G., and Merlo, E. 1996. Augmenting pattern-based architectural recovery with flow analysis: Mosaic--A case study. Proceedings of the 3rd Working Conference on Reverse Engineering, Monterey, CA, pp. 198-207.
[24]
UIMS Tool Developers Workshop, 1992. A metamodel for the runtime architecture of an interactive system. SIGCHI Bulletin, 24(1):32-37.
[25]
Wall, L. and Schwartz, R. 1991. Programming Perl. O'Reilly & Associates.
[26]
Wong, K., Tilley, S., Müller, H., and Storey, M. 1994. Programmable reverse engineering. International Journal of Software Engineering and Knowledge Engineering, 4(4):501-520.
[27]
Yeh, A., Harris, D., and Chase, M. 1997. Manipulating recovered software architecture views. Proceedings of ICSE 19, Boston, MA, pp. 184-194.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Automated Software Engineering
Automated Software Engineering  Volume 6, Issue 2
April 1999
98 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 April 1999

Author Tags

  1. architectural views
  2. software architecture
  3. source model extraction

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A Query Language for Software Architecture InformationSoftware Architecture10.1007/978-3-031-42592-9_23(337-345)Online publication date: 18-Sep-2023
  • (2018)Round-trip engineering with the Two-Tier Programming ToolkitSoftware Quality Journal10.1007/s11219-017-9363-926:2(249-271)Online publication date: 1-Jun-2018
  • (2018)General methods for software architecture recovery: a potential approach and its evaluationEmpirical Software Engineering10.1007/s10664-017-9543-z23:3(1457-1489)Online publication date: 1-Jun-2018
  • (2017)Variability Mining of Technical ArchitecturesProceedings of the 21st International Systems and Software Product Line Conference - Volume A10.1145/3106195.3106202(39-48)Online publication date: 25-Sep-2017
  • (2016)Identifying and quantifying architectural debtProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884822(488-498)Online publication date: 14-May-2016
  • (2016)Detecting, Tracing, and Monitoring Architectural Tactics in CodeIEEE Transactions on Software Engineering10.1109/TSE.2015.247921742:3(205-220)Online publication date: 11-Mar-2016
  • (2016)Evaluating the Effects of Architectural Documentation: A Case Study of a Large Scale Open Source ProjectIEEE Transactions on Software Engineering10.1109/TSE.2015.246538742:3(220-260)Online publication date: 1-Mar-2016
  • (2016)Assessing software product line potentialEmpirical Software Engineering10.1007/s10664-014-9358-021:2(411-448)Online publication date: 1-Apr-2016
  • (2014)Revealing the relationship between architectural elements and source code characteristicsProceedings of the 22nd International Conference on Program Comprehension10.1145/2597008.2597156(14-25)Online publication date: 2-Jun-2014
  • (2011)Semantic enrichment processInformation Systems Frontiers10.1007/s10796-010-9286-513:3(359-370)Online publication date: 1-Jul-2011
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media