Software may contain functionality that does not align with its architecture. Such cross-cutting concerns do not exist from the beginning but emerge over time. By analysing where developers add code to a program, our history-based mining identifies cross-cutting concerns in a two-step process. First, we mine CVS archives for sets of methods where a call to a specific single method was added. In a second step, such simple cross-cutting concerns are combined to complex cross-cutting concerns. To compute these efficiently, we apply formal concept analysis—an algebraic theory. History-based mining scales well: we are the first to report aspects mined from an industrial-sized project like Eclipse. For example, we identified a locking concern tha...
Aspect-oriented re-engineering of legacy systems means to discover all parts of code that are involv...
Aspect mining improves the modularity of legacy software systems through identifying their underlyin...
A concern is an essential guideline and an important principle of software engineering development. ...
ABSTRACT Software may contain functionality that does not align with its architecture. Such cross-cu...
Aspect mining identifies cross-cutting concerns in a program to help migrating it to an aspect-orien...
As object-oriented programs evolve, they may suffer from the “tyranny of dominant decomposition”: Th...
As software evolves, new functionality sometimes no longer aligns with the original design, ending u...
As programs evolve, newly added functionality sometimes does no longer align with the original desig...
Cross-cutting concerns are pieces of functionality that have not been captured into a separate modul...
Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existin...
Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existin...
Inspired by our past manual aspect mining experiences, this paper describes a probabilistic random w...
Understanding a software system at source-code level requires understanding the different concerns t...
Understanding a software system at source-code level requires understanding the different concerns t...
Modularization of concerns is important for software development. Object oriented programming paradi...
Aspect-oriented re-engineering of legacy systems means to discover all parts of code that are involv...
Aspect mining improves the modularity of legacy software systems through identifying their underlyin...
A concern is an essential guideline and an important principle of software engineering development. ...
ABSTRACT Software may contain functionality that does not align with its architecture. Such cross-cu...
Aspect mining identifies cross-cutting concerns in a program to help migrating it to an aspect-orien...
As object-oriented programs evolve, they may suffer from the “tyranny of dominant decomposition”: Th...
As software evolves, new functionality sometimes no longer aligns with the original design, ending u...
As programs evolve, newly added functionality sometimes does no longer align with the original desig...
Cross-cutting concerns are pieces of functionality that have not been captured into a separate modul...
Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existin...
Aspect mining is a reverse engineering process that aims at finding crosscutting concerns in existin...
Inspired by our past manual aspect mining experiences, this paper describes a probabilistic random w...
Understanding a software system at source-code level requires understanding the different concerns t...
Understanding a software system at source-code level requires understanding the different concerns t...
Modularization of concerns is important for software development. Object oriented programming paradi...
Aspect-oriented re-engineering of legacy systems means to discover all parts of code that are involv...
Aspect mining improves the modularity of legacy software systems through identifying their underlyin...
A concern is an essential guideline and an important principle of software engineering development. ...