Object-oriented software engineering
Object-oriented software engineering
Design for testability in object-oriented systems
Communications of the ACM
Reverse engineering to the architectural level
Proceedings of the 17th international conference on Software engineering
Using design patterns to develop reusable object-oriented communication software
Communications of the ACM - Special issue on object-oriented experiences and future trends
A Component- and Message-Based Architectural Style for GUI Software
IEEE Transactions on Software Engineering - Special issue: best papers of the 17th International Conference on Software Engineering (ICSE-17)
Manipulating recovered software architecture views
ICSE '97 Proceedings of the 19th international conference on Software engineering
Exploiting an event-based infrastructure to develop complex distributed systems
Proceedings of the 20th international conference on Software engineering
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
An architectural style for multiple real-time data feeds
Proceedings of the 21st international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
ART: an architectural reverse engineering environment
Journal of Software Maintenance: Research and Practice
Towards a taxonomy of software connectors
Proceedings of the 22nd international conference on Software engineering
A study on exception detection and handling using aspect-oriented programming
Proceedings of the 22nd international conference on Software engineering
A Discipline of Programming
An Approach for Recovering Distributed System Architectures
Automated Software Engineering
The 4+1 View Model of Architecture
IEEE Software
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Adding Implicit Invocation to Languages: Three Approaches
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
Formalizing Design Spaces: Implicit Invocation Mechanisms
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
A Note on Distributed Computing
A Note on Distributed Computing
Java Persistence with Hibernate
Java Persistence with Hibernate
Design Pattern Detection Using Similarity Scoring
IEEE Transactions on Software Engineering
The Modular Structure of Complex Systems
IEEE Transactions on Software Engineering
Hierarchical Clustering for Software Architecture Recovery
IEEE Transactions on Software Engineering
SEW '07 Proceedings of the 31st IEEE Software Engineering Workshop
DeMIMA: A Multilayered Approach for Design Pattern Identification
IEEE Transactions on Software Engineering
License integration patterns: Addressing license mismatches in component-based development
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Software Architecture Reconstruction: A Process-Oriented Taxonomy
IEEE Transactions on Software Engineering
Architecture compliance checking at run-time
Information and Software Technology
Extending the reflexion method for consolidating software variants into product lines
Software Quality Control
Verifying architectural design rules of the flight software product line
Proceedings of the 13th International Software Product Line Conference
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Architecture-based unit testing of the flight software product line
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Architectural Analysis of Systems Based on the Publisher-Subscriber Style
WCRE '10 Proceedings of the 2010 17th Working Conference on Reverse Engineering
Architecture Reconstruction and Analysis of Medical Device Software
WICSA '11 Proceedings of the 2011 Ninth Working IEEE/IFIP Conference on Software Architecture
Clustering methodologies for software engineering
Advances in Software Engineering
Innovations in Systems and Software Engineering
An analysis of unit tests of a flight software product line
Science of Computer Programming
An analysis of unit tests of a flight software product line
Science of Computer Programming
Hi-index | 0.00 |
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.