skip to main content
research-article

ADAM: External dependency-driven architecture discovery and analysis of quality attributes

Published: 04 April 2014 Publication History

Abstract

This article introduces the Architecture Discovery and Analysis Method (ADAM). ADAM supports the discovery of module and runtime views as well as the analysis of quality attributes, such as testability, performance, and maintainability, of software systems. The premise of ADAM is that the implementation constructs, architecture constructs, concerns, and quality attributes are all influenced by the external entities (e.g., libraries, frameworks, COTS software) used by the system under analysis. The analysis uses such external dependencies to identify, classify, and review a minimal set of key source-code files supported by a knowledge base of the external entities. Given the benefits of analyzing external dependencies as a way to discover architectures and potential risks, it is demonstrated that dependencies to external entities are useful not only for architecture discovery but also for analysis of quality attributes. ADAM is evaluated using the NASA's Space Network Access System (SNAS). The results show that this method offers systematic guidelines for discovering the architecture and locating potential risks (e.g., low testability and decreased performance) that are hidden deep inside the system implementation. Some generally applicable lessons for developers and analysts, as well as threats to validity are also discussed.

References

[1]
D. Alur, J. Crupi, and D. Malks. 2003. Core J2EE Patterns, 2nd Ed. Sun Microsystems Press.
[2]
C. Bauer and G. King. 2006. Java Persistence with Hibernate. Manning Publications.
[3]
R. Binder. 1994. Design for testability in object-oriented systems. Commun. ACM 37, 9, 87--101.
[4]
P. Clements, F. Bachmann, L. Bass, G. Garlan, J. Ivers, R. Little, R. Nord, and J. Stafford. 2010. Documenting Software Architectures: Views and Beyond. 2nd Ed. Addison-Wesley, Professional.
[5]
G. Cugola, E. Di Nitto, and A. Fuggetta. 1998. Exploiting an event-based infrastructure to develop complex distributed systems. In Proceedings of the International Conference on Software Engineering. 261--270.
[6]
E. W. Dijkstra. 1976. A Discipline of Programming. Prentice Hall, Inc.
[7]
B. Douglass. 2003. Real-Time Design Patterns. Addison-Wesley, Professional.
[8]
S. Ducasse and D. Pollet. 2009. Software architecture reconstruction: A process-oriented taxonomy. IEEE Trans. Softw. Eng. 35, 4, 573--591.
[9]
R. Fiutem, G. Antoniol, P. Tonella, and E. Merlo. 1999. ART: An architectural reverse engineering environment. J. Softw. Maintenance 11, 5, 339--364.
[10]
M. Flower, M. Beck, J. Brant, W. Opdyke, and D. Roberts. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional.
[11]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. 1995. Design Patterns. Addison-Wesley.
[12]
D. Ganesan. 2012. Software architecture discovery and testability, performance, and maintainability of industrial systems. Ph.D. thesis, Free University of Amsterdam.
[13]
D. Ganesan, T. Keuler, and Y. Nishimura. 2009a. Architecture compliance checking at runtime. J. Inf. Softw. Technol. 51, 11, 1586--1600.
[14]
D. Ganesan, M. Lindvall, R. Cleaveland, R. Jetley, P. Jones, and Y. Zhang. 2011. Architecture reconstruction and analysis of medical device software. In Proceedings of the Working Conference on Software Architecture. 194--203.
[15]
D. Ganesan, M. Lindvall, D. McComas, and M. Bartholomew. 2009b. Verifying architectural design rules of the flight software product line. In Proceedings of the Software Product Line Conference. 161--170.
[16]
D. Ganesan, M. Lindvall, D. McComas, M. Bartholomew, S. Slegel, and B. Medina. 2010a. Architecture-based unit testing of the flight software product line. In Proceedings of the International Software Product Lines. Lecture Notes in Computer Science, vol. 6287, Springer-Verlag, Berlin, 256--270.
[17]
D. Ganesan, M. Lindvall, D. McComas, M. Bartholomew, S. Slegel, B. Medina, R. Krikhaar, C. Verhoef, and L. Montgomery. 2012. An analysis of unit tests of a flight software product line. Sci. Comput. Program. 78, 12, 2360--2380.
[18]
D. Ganesan, M. Lindvall, L. Ruley, R. Weigand, V. Ly, and T. Tsui. 2010b. Architectural analysis of systems based on the publisher-subscriber style. In Proceedings of the Working Conference on Reverse Engineering. 173--182.
[19]
D. Garlan and D. Notkin. 1991. Formalizing design spaces: Implicit invocation mechanisms. In Proceedings of the 4th International Symposium on Formal Software Development Methods. Lecture Notes in Computer Science, vol. 551, Springer-Verlag, Berlin, 31--44.
[20]
D. M. German and A. E. Hassan. 2009. License integration patterns: Addressing license mismatches in component-based development. In Proceedings of the International Conference on Software Engineering. 188--198.
[21]
Y.-G. Guéhéneuc and G. Antoniol. 2008. DeMIMA: A multilayered approach for design pattern identification. IEEE Trans. Softw. Eng. 34, 5, 667--684.
[22]
D. R. Harris, H. B. Reubenstein, and A. S. Yeh. 1995. Reverse engineering to the architectural level. In Proceedings of the International Conference on Software Engineering. 186--195.
[23]
I. Jacobson. 1992. Object Oriented Software Engineering. Addison-Wesley, Professional.
[24]
T. Kamiya, S. Kusumoto, and K. Inoue. 2002. CCFinder: A multi-linguistic token-based code clone detection system for large scale source code. IEEE Trans. Softw. Eng. 28, 7, 654--670.
[25]
G. King, C. Bauer, M. Andersen, E. Bernard, and S. Ebersole. 2009. Hibernate reference documentation. http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/best-practices.html.
[26]
R. Koschke. 2007. Survey of research on software clones. In Proceedings of the Dagstuhl Seminar.
[27]
R. Koschke, P. Frenzel, A. Breu, and K. Angstmann. 2009. Extending the reflexion method for consolidating software variants into product lines. Softw. Quality J. 17, 4, 331--366.
[28]
R. Krikhaar. 1999. Software architecture reconstruction. Ph.D. Thesis, University of Amsterdam.
[29]
P. Kruchten. 1995. The 4 + 1 view model of architecture. IEEE Softw. 12, 6, 42--50.
[30]
P. Lago, P. Avgeriou, and R. Hillard. 2010. Software architecture: Framing stakeholders' concerns. IEEE Softw. 27, 6, 20--24.
[31]
A. Lai, G. Murphy, and R. Walker. 2000. Separating concerns with Hyper/J: An experience report. In Proceedings of the Workshop on Multi-dimensional Separation of Concerns in Software Engineering. 79--91.
[32]
M. Lindvall, W. C. Stratton D. E. Sibol, C. Ackermann, W. M. Reid, D. Ganesan, D. McComas, M. Bartholomew, and S. Godfrey. 2012. Connecting research and practice: An experience report on research infusion with software architecture visualization and evaluation. J. Innovations Syst. Softw. Eng. 8, 4, 255--277.
[33]
M. Lippert and C. V. Lopes. 2000. A study on exception detection and handling using aspect-oriented programming. In Proceedings of the International Conference on Software Engineering. 418--427.
[34]
O. Maqbool and H. Babri. 2007. Hierarchical clustering for software architecture recovery. IEEE Trans. Softw. Eng. 33, 11, 759--778.
[35]
R. C. Martin. 2005. The test bus imperative: Architectures that support automated acceptance testing. IEEE Softw. 22, 4, 65--67.
[36]
N. R. Mehta, N. Medidovic, and S. Phadke. 2000. Towards a taxonomy of software connectors. In Proceedings of the International Conference on Software Engineering. 178--187.
[37]
N. C. Mendonca and J. Kramer. 2001. An approach for recovering distributed system architectures. Autom. Softw. Eng. J. 8, 3/4, 311--354.
[38]
H. A. Muller, M. A. Orgun, S. R. Tilley, and J. S. Uhl. 1993. A reverse engineering approach to subsystem structure identification. J. Softw. Maintenance 5, 4, 181--204.
[39]
G. C. Murphy, D. Notkin, and K. Sullivan. 2001. Software reflexion models: Bridging the gap between design and implementation. IEEE Trans. Softw. Eng. 27, 4, 364--380.
[40]
G. Naccarato. 2002. Introducing nonblocking sockets. O'Reilly Media.
[41]
D. Notkin, D. Garlan, W. Griswold, and K. Sullivan. 1993. Adding implicit invocation to languages: Three approaches. In Proceedings of the Symposium on Object Technologies for Advanced Software.
[42]
H. Obbink, P. Kruchten, W. Kozaczynski, R. Hilliard, A. Ran, H. Postema, D. Lutz, R. Kazman, W. Tracz, and E. Kahane. 2002. Report on software architecture review and assessment (SARA). http://kruchten.com/philippe/architecture/SARAv1.pdf.
[43]
D. L. Parnas, P. Clements, and D. Weiss. 1985. The modular structure of complex systems. IEEE Trans. Softw. Eng. 11, 3, 259--266.
[44]
N. Roodyn and W. Emmerich. 1999. An architectural style for multiple real-time data feeds. In Proceedings of the International Conference on Software Engineering. 564--572.
[45]
D. Schmidt. 1995. Using design patterns to develop reusable object-oriented communication software. Commun. ACM, 38, 10, 65--74.
[46]
M. Shaw and D. Garlan. 1996. Software Architecture. Prentice Hall.
[47]
M. Shtern and V. Tzerpos. 2012. Clustering methodologies for software engineering. Adv. Softw. Eng. Article ID 792024.
[48]
W. Stratton, D. Sibol, M. Lindvall, and P. Costa. 2007. The SAVE tool and process applied to ground software development at JHU/APL. In Proceedings of the 31st IEEE Software Engineering Workshop. 187--193.
[49]
P. Tarr, H. Ossher, W. Harrison, and S. M. Sutton. 1999. N degrees of separation: Multidimensional separation of concerns. In Proceedings of the International Conference on Software Engineering. 107--119.
[50]
R. N. Taylor, N. Medvidoric, K. M. Anderson, E. J. Whitehead, Jr., and J. E. Robbins. 1996. A component- and message-based architectural style for GUI software. IEEE Trans. Softw. Eng. 22, 6, 390--406.
[51]
N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. Halkidis. 2006. Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32, 11, 896--909.
[52]
J. Waldo, G. Wyant, A. Wollrath, and S. Kendall. 1994. A note on distributed computing. Tech. rep. TR-94-29, Sun Microsystems.
[53]
C. Wohlin, P. Runeson, M. Höst, M. Ohlsson, B. Regnell, and A. Wesslén. 2000. Experimentation in Software Engineering. Kluwer Academic Publishers.
[54]
A. S. Yeh, D. R Harris, and M. P. Chase. 1997. Manipulating recovered software architecture views. In Proceedings of the International Conference on Software Engineering. 184--193.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 23, Issue 2
March 2014
319 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/2600788
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 April 2014
Accepted: 01 September 2013
Revised: 01 August 2013
Received: 01 March 2013
Published in TOSEM Volume 23, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Concerns
  2. external entities
  3. knowledge base
  4. maintainability
  5. module and runtime views
  6. quality
  7. reverse engineering
  8. software architecture
  9. testability

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)19
  • Downloads (Last 6 weeks)10
Reflects downloads up to 09 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media