Software maintenance and evolution: a roadmap
Proceedings of the Conference on The Future of Software Engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Understanding Object-Oriented Programs through Declaratice Event Analysis
ECOOP '98 Workshop ion on Object-Oriented Technology
Declarative Reasoning about the Structure of Object-Oriented Systems
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Ciao: a graphical navigator for software and document repositories
ICSM '95 Proceedings of the International Conference on Software Maintenance
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Complex code querying and navigation for AspectJ
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Visualisation-based tool support for the development of aspect-oriented programs
Proceedings of the 5th international conference on Aspect-oriented software development
Semantics of static pointcuts in aspectJ
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A comparison of logic-based infrastructures for concern detection and extraction
Proceedings of the 3rd workshop on Linking aspect technology and evolution
A declarative framework for analysis and optimization
CC'07 Proceedings of the 16th international conference on Compiler construction
JQuery: a generic code browser with a declarative configuration language
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
CodeQuest: scalable source code queries with datalog
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Hi-index | 0.00 |
In this paper we discuss an approach to support declarative reasoning over aspect-oriented (AO) programs, adopting AspectJ as a representative technology. The approach is based on the transformation of source code into a set of facts and rules, stored into a Prolog database. Declarative analysis allows us to extract complex information through its rich and expressive syntax. Our approach has two contributions. First, it aims to improve the comprehension of AspectJ programs. The type of knowledge provided is categorized in three main groups: i) general knowledge, ii) bad smells, and iii) quality metrics. The second contribution is the provision of dependency analysis of AspectJ programs. To that end, we identify dependencies in aspect-oriented programs, and translate them into Prolog rules. Expected beneficiaries of our approach include system maintainers who can obtain comprehension and perform dependency analysis through querying the Prolog database during the change planning stage of system evolution.