Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Extending ordinary inheritance schemes to include generalization
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Specification and Analysis of System Architecture Using Rapide
IEEE Transactions on Software Engineering - Special issue on software architecture
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Reuse of off-the-shelf components in C2-style architectures
ICSE '97 Proceedings of the 19th international conference on Software engineering
Adaptive plug-and-play components for evolutionary software development
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Integrating independent components with on-demand remodularization
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
Integrating Independently-Developed Components in Object-Oriented Languages
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
The convergence of AOP and active databases: towards reactive middleware
Proceedings of the 2nd international conference on Generative programming and component engineering
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Analysis of crosscutting across software development phases based on traceability
Proceedings of the 2006 international workshop on Early aspects at ICSE
A role-based crosscutting concerns mining approach to evolve Java systems towards AOP
Proceedings of the joint international and annual ERCIM workshops on Principles of software evolution (IWPSE) and software evolution (Evol) workshops
Classboxes: controlling visibility of class extensions
Computer Languages, Systems and Structures
Analysing Object Type Hierarchies to Identify Crosscutting Concerns
FGIT '09 Proceedings of the 1st International Conference on Future Generation Information Technology
Analysis of crosscutting in early software development phases based on traceability
Transactions on aspect-oriented software development III
Components meet aspects: Assessing design stability of a software product line
Information and Software Technology
Hi-index | 0.00 |
Traditional programming languages assume that real-world systems have "intuitive", mind-independent, preexisting concept hierarchies. However, our perception of the world depends heavily on the context from which it is viewed: Every software system can be viewed from multiple different perspectives, and each of these perspectives may imply a different decomposition of the concerns. The hierarchy which we choose to decompose our software system into modules is to a large degree arbitrary, although it has a big influence on the software engineering properties of the software. We identify this arbitrariness of the decomposition hierarchy as the main cause of 'code tangling' and present a new model called Caesar, within which it is possible to have multiple different decompositions simultaneously and to add new decompositions on-demand.