Logic programming in Oz with Mozart
Proceedings of the 1999 international conference on Logic programming
PIROL: a case study for multidimensional separation of concerns in software engineering environments
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Database Systems Concepts
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Measuring the Coupling of Procedural Programs
AICCSA '01 Proceedings of the ACS/IEEE International Conference on Computer Systems and Applications
Quality of Service and Object-Oriented Middleware- Multiple Concerns and their Separation
ICDCSW '01 Proceedings of the 21st International Conference on Distributed Computing Systems
Using Intentional Source-Code Views to Aid Software Maintenance
ICSM '03 Proceedings of the International Conference on Software Maintenance
An Evaluation of Clone Detection Techniques for Identifying Crosscutting Concerns
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Aspect Mining Using Event Traces
Proceedings of the 19th IEEE international conference on Automated software engineering
Identifying Aspects Using Fan-In Analysis
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
Mining Control Flow Graphs for Crosscutting Concerns
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Mining business topics in source code using latent dirichlet allocation
ISEC '08 Proceedings of the 1st India software engineering conference
Aspect Mining in Procedural Object Oriented Code
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
Software Engineering: A Practitioner's Approach
Software Engineering: A Practitioner's Approach
EA-Miner: towards automation in aspect-oriented requirements engineering
Transactions on aspect-oriented software development III
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.01 |
Aspect Mining is a dynamic area of research in the field of Software Engineering. Aspects are concerns that are intermingled with other concerns thereby reducing the understandability, maintainability and scalability of the code. The concept of Separation of Concerns (SoC) is often achieved untill the Design Phase, but gets difficult in the later phases of the software development life cycle (SDLC). During program maintenance the maintenance team is left with an aggregation of procedures and variables, both of which may be generically called user-defined tokens. This paper proposes a graph-based approach to address the problem of SoC during program maintenance. This is done by the removal of some source code elements (e.g., user-defined-tokens), which can be responsible for tangled concerns and complex code. These user-definedtokens can be treated separately under the Aspect Oriented Programming paradigm. The paper proposes a graphical-model, which represents a procedural program and defines a mathematical- model to identify and remove the tangled and interleaving code-fragments. Thereafter these code fragments are traced back to the requirements engineering level through a formal traceability model. This process yields the corresponding user requirements that are associated with these scattered code fragments. These identified user requirements are put forward as Aspects, to be handled or re-engineered under the Aspect Oriented Programming paradigm.