IEEE Transactions on Software Engineering
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
The Unified Modeling Language user guide
The Unified Modeling Language user guide
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Subject-oriented design: towards improved alignment of requirements, design, and code
Proceedings of the 14th 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
Modeling of software concerns in Cosmos
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
The 4+1 View Model of Architecture
IEEE Software
Advanced Separation of Concerns
ECOOP '01 Proceedings of the Workshops on Object-Oriented Technology
Software Architecture in Practice
Software Architecture in Practice
Mylar: a degree-of-interest model for IDEs
Proceedings of the 4th international conference on Aspect-oriented software development
Workshop on the Modeling and Analysis of Concerns in Software (MACS 2005)
ACM SIGSOFT Software Engineering Notes
Mapping concern space to software architecture: a connector-based approach
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
Concern modeling in the concern manipulation environment
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
IEEE Software
Using task context to improve programmer productivity
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Mining early aspects from requirements with ea-miner
Companion of the 30th international conference on Software engineering
Proceedings of the 15th workshop on Early aspects
ConcernLines: A timeline view of co-occurring concerns
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
ACM SIGSOFT Software Engineering Notes
Explicit Concern-Driven Development with ArchEvol
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
A survey of automated code-level aspect mining techniques
Transactions on aspect-oriented software development IV
A design perspective on modularity
Proceedings of the tenth international conference on Aspect-oriented software development
GitBAC: Flexible access control for non-modular concerns
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Generalization refactorings for reusable aspects
Proceedings of the 51st ACM Southeast Conference
Hi-index | 0.00 |
The principle of separation of concerns has certainly stood the test of time in guiding the field of software engineering, leading to an amazing variety of approaches available to programmers to actually separate and manage concerns in their software. In this paper, we provide a novel perspective on these approaches, a perspective that is guided by the observation that the underlying goal of any approach should not be to always separate concerns, but instead to minimize the impact of concern scattering and tangling. Reframed as such, we survey and relate existing work, highlight fundamental limitations of the four canonical approaches to minimizing the impact of concern scattering and tangling, and provide an agenda for future work -- at both the code level and beyond.