ADAM: External Dependency-Driven Architecture Discovery and Analysis of Quality Attributes

被引:3
作者
Ganesan, Dharmalingam [1 ]
Lindvall, Mikael [1 ]
机构
[1] Fraunhofer Ctr Expt Software Engn, College Pk, MD 20740 USA
基金
美国国家科学基金会;
关键词
Documentation; Concerns; external entities; knowledge base; maintainability; testability; software architecture; module and runtime views; reverse engineering; quality; DESIGN; PATTERNS;
D O I
10.1145/2529998
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:51
相关论文
共 55 条
  • [1] Alur D., 2003, CORE J2EE PATTERNS
  • [2] [Anonymous], 1976, A discipline of programming
  • [3] [Anonymous], 2010, DOCUMENTING SOFTWARE
  • [4] [Anonymous], 2002, REPORT SOFTWARE ARCH
  • [5] Bauer Christian., 2006, Java Persistence with Hibernate
  • [6] DESIGN FOR TESTABILITY IN OBJECT-ORIENTED SYSTEMS
    BINDER, RV
    [J]. COMMUNICATIONS OF THE ACM, 1994, 37 (09) : 87 - 101
  • [7] Exploiting an event-based infrastructure to develop complex distributed systems
    Cugola, G
    Di Nitto, E
    Fuggetta, A
    [J]. PROCEEDINGS OF THE 1998 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1998, : 261 - 270
  • [8] Douglass B., 2003, REAL TIME DESIGN PAT
  • [9] Software Architecture Reconstruction: A Process-Oriented Taxonomy
    Ducasse, Stephane
    Pollet, Damien
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2009, 35 (04) : 573 - 591
  • [10] Fiutem R, 1999, J SOFTW MAINT-RES PR, V11, P339, DOI 10.1002/(SICI)1096-908X(199909/10)11:5<339::AID-SMR196>3.0.CO