A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Chiron-1: a software architecture for user interface development, maintenance, and run-time support
ACM Transactions on Computer-Human Interaction (TOCHI)
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
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
Extracting architectural features from source code
Reverse engineering
Visual modeling with Rational Rose and UML
Visual modeling with Rational Rose and UML
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Software architecture recovery of a program family
Proceedings of the 20th international conference on Software engineering
Using off-the-shelf middleware to implement connectors in distributed software architectures
Proceedings of the 21st international conference on Software engineering
Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Software engineering and middleware: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Towards a taxonomy of software connectors
Proceedings of the 22nd international conference on Software engineering
Workshop on standard exchange format (WoSEF) (workshop session)
Proceedings of the 22nd international conference on Software engineering
The Java Class Libraries: An Annotated Reference
The Java Class Libraries: An Annotated Reference
Competing on Internet Time: Lessons from Netscape and Its Battle with Microsoft
Competing on Internet Time: Lessons from Netscape and Its Battle with Microsoft
Architectural style requirements for self-healing systems
WOSS '02 Proceedings of the first workshop on Self-healing systems
Structural Redocumentation: A Case Study
IEEE Software
The 4+1 View Model of Architecture
IEEE Software
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
Object-Oriented Re-Architecturing
Proceedings of the 5th European Software Engineering Conference
A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems
COMPSAC '97 Proceedings of the 21st International Computer Software and Applications Conference
A Software Architecture Reconstruction Method
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
A hybrid process for recovering software architecture
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
A Reference Architecture for Web Servers
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
ACDC: An Algorithm for Comprehension-Driven Clustering
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Component Clustering Based on Maximal Association
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
A Tool Suite for Evolving Legacy Software
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
View Extraction and View Fusion in Architectural Understanding
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Architectural styles and the design of network-based software architectures
Architectural styles and the design of network-based software architectures
Separating architectural concerns to ease program understanding
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
ArchEvol: versioning architectural-implementation relationships
Proceedings of the 12th international workshop on Software configuration management
Coupling Patterns in the Effective Reuse of Open Source Software
FLOSS '07 Proceedings of the First International Workshop on Emerging Trends in FLOSS Research and Development
Identifying and Improving Reusability Based on Coupling Patterns
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
An Iterative Framework for Software Architecture Recovery: An Experience Report
ECSA '08 Proceedings of the 2nd European conference on Software Architecture
Search-Based Extraction of Component-Based Architecture from Object-Oriented Systems
ECSA '08 Proceedings of the 2nd European conference on Software Architecture
Identifying components in object-oriented programs using dynamic analysis and clustering
CASCON '09 Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research
Kadre: domain-specific architectural recovery for scientific software systems
Proceedings of the IEEE/ACM international conference on Automated software engineering
Software architecture recovery process based on object-oriented source code and documentation
ECSA'10 Proceedings of the 4th European conference on Software architecture
Improving system understanding via interactive, tailorable, source code analysis
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
Extraction of ownership object graphs from object-oriented code: an experience report
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Clustering methodologies for software engineering
Advances in Software Engineering
Obtaining ground-truth software architectures
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Ideally, a software project commences with requirements gathering and specification, reaches its major milestone with system implementation and delivery, and then continues, possibly indefinitely, into an operation and maintenance phase. The software system's architecture is in many ways the linchpin of this process: it is supposed to be an effective reification of the system's technical requirements and to be faithfully reflected in the system's implementation. Furthermore, the architecture is meant to guide system evolution, while also being updated in the process. However, in reality developers frequently deviate from the architecture, causing architectural erosion, a phenomenon in which the initial, "as documented'' architecture of an application is (arbitrarily) modified to the point where its key properties no longer hold. Architectural recovery is a process frequently used to cope with architectural erosion whereby the current, "as implemented" architecture of a software system is extracted from the system's implementation. In this paper we propose a light-weight approach to architectural recovery, called Focus, which has three unique facets. First, Focus uses a system's evolution requirements to isolate and incrementally recover only the fragment of the system's architecture affected by the evolution. In this manner, Focus allows engineers to direct their primary attention to the part of the system that is immediately impacted by the desired change; subsequent changes will incrementally uncover additional parts of the system's architecture. Secondly, in addition to software components, which are the usual target of existing recovery approaches, Focus also recovers the key architectural notions of software connector and architectural style. Finally, Focus does not only recover a system's architecture, but may in fact rearchitect the system. We have applied and evaluated Focus in the context of several off-the-shelf applications and architectural styles to date. We discuss its key strengths and point out several open issues that will frame our future work.