Supporting software evolution with intentional software views
Proceedings of the International Workshop on Principles of Software Evolution
Maintaining software through intentional source-code views
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Proceedings of the 24th International Conference on Software Engineering
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Dimensions of reengineering environment infrastructures
Journal of Software Maintenance: Research and Practice
Proceedings of the 2004 ACM symposium on Applied computing
Hybrid aspects for weaving object-oriented functionality and rule-based knowledge
Proceedings of the 3rd international conference on Aspect-oriented software development
Efficient Relational Calculation for Software Analysis
IEEE Transactions on Software Engineering
Relational programming with CrocoPat
Proceedings of the 28th international conference on Software engineering
Inter-language reflection: A conceptual model and its implementation
Computer Languages, Systems and Structures
Co-evolving code and design with intensional views
Computer Languages, Systems and Structures
Identification of design motifs with pattern matching algorithms
Information and Software Technology
Towards Abstract Interpretation for Recovering Design Information
Electronic Notes in Theoretical Computer Science (ENTCS)
A browser for incremental programming
Computer Languages, Systems and Structures
Hi-index | 0.00 |
Most current-day software engineering tools and environments do not sufficiently support software engineers to declare or to enforce the intended software architecture. Architectures are typically described at a too low level, inhibiting their evolution and understanding. Furthermore, most tools provide little support to verify automatically whether the source code conforms to the architecture. Therefore, a formalism is needed in which architectures can be expressed at a sufficiently abstract level, without losing the ability to perform conformance checking automatically. We propose to codify declaratively software architectures using virtual software classifications and relationships among these classifications. We illustrate how software architectures can be expressed elegantly in terms of these virtual classifications and how to keep them synchronized with the source code.