A laboratory for teaching object oriented thinking
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Software—Practice & Experience
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Preventive program maintenance in Demeter/Java
ICSE '97 Proceedings of the 19th international conference on Software engineering
Frameworks = (components + patterns)
Communications of the ACM
Maintaining the consistency of class libraries during their evolution
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A new approach to compiling adaptive programs
Science of Computer Programming
Assuring Good Style for Object-Oriented Programs
IEEE Software
Maintaining Object-Oriented Software
IEEE Software
Real-Life Object-Oriented Systems
IEEE Software
Specifying Reusable Components Using Contracts
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Import is Not Inheritance - Why We Need Both: Modules and Classes
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Role-oriented programming for software evolution
Role-oriented programming for software evolution
Traversals of object structures: Specification and Efficient Implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Components and generative programming (invited paper)
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Software engineering tools and environments: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Building modular object-oriented systems with reusable collaborations (tutorial session)
Proceedings of the 22nd international conference on Software engineering
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
Calculating in an object-oriented iterator-view-generator framework
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
Techniques and language constructs for developing generic informations systems: a case study
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Dynamic and selective combination of extensions in component-based applications
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Using multidimensional separation of concerns to (re)shape evolving software
Communications of the ACM
Composing crosscutting concerns using composition filters
Communications of the ACM
ACM Transactions on Software Engineering and Methodology (TOSEM)
Workshop on multi-dimensional separation of concerns in software engineering
ACM SIGSOFT Software Engineering Notes
A toolkit for weaving aspect oriented UML designs
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Dynamic weaving for aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Integrating independent components with on-demand remodularization
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Towards constructing component-based software systems with safe dynamic adaptability
IWPSE '01 Proceedings of the 4th International Workshop on Principles of Software Evolution
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
A Version Model for Aspect Dependency Management
GCSE '01 Proceedings of the Third International Conference on Generative and Component-Based Software Engineering
Propagating Class and Method Combination
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
UML-F: A Modeling Language for Object-Oriented Frameworks
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Difference-Based Modules: A Class-Independent Module Mechanism
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Increasing Reusability in Information Systems Development by Applying Generic Methods
CAiSE '01 Proceedings of the 13th International Conference on Advanced Information Systems Engineering
A Flexible Approach for Instance Adaptation During Class Versioning
Proceedings of the International Symposium on Objects and Databases
JAC: A Flexible Solution for Aspect-Oriented Programming in Java
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
A Hybrid Approach to Separation of Concerns: The Story of SADES
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Relational Database Support for Aspect-Oriented Programming
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
From Object-Oriented to Aspect-Oriented Databases
DEXA '00 Proceedings of the 11th International Conference on Database and Expert Systems Applications
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Object Teams: Improving Modularity for Crosscutting Collaborations
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
An enhanced role model for alleviating the role-binding anomaly
Software—Practice & Experience
Proceedings of the 25th International Conference on Software Engineering
Implementing Collaboration-Based Designs Using Aspect-Oriented Programming
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
HydroJ: object-oriented pattern matching for evolvable distributed systems
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Language support for incremental integration of independently developed components in Java
Proceedings of the 2004 ACM symposium on Applied computing
Software Process Representation and Analysis for Framework Instantiation
IEEE Transactions on Software Engineering
Josh: an open AspectJ-like language
Proceedings of the 3rd international conference on Aspect-oriented software development
A software engineering approach to develop adaptive RBF neural networks
Design and application of hybrid intelligent systems
IEEE Transactions on Software Engineering
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
Variability management with feature-oriented programming and aspects
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
OPM vs. UML—Experimenting with Comprehension and Construction of Web Application Models
Empirical Software Engineering
Designing runtime variation points in product line architectures: three cases
Science of Computer Programming - Special issue: Software variability management
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Proceedings of the 4th international conference on Aspect-oriented software development
Aspectual mixin layers: aspects and features in concert
Proceedings of the 28th international conference on Software engineering
Software extension and integration with type classes
Proceedings of the 5th international conference on Generative programming and component engineering
Foundations of incremental aspect model-checking
ACM Transactions on Software Engineering and Methodology (TOSEM)
Modelling code mobility and migration: an OPM/Web approach
International Journal of Web Engineering and Technology
Decomposing Verification Around End-User Features
Verified Software: Theories, Tools, Experiments
Modules for crosscutting models
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Using SDL for modeling behavior composition
SDL'03 Proceedings of the 11th international conference on System design
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Lifted Java: a minimal calculus for translation polymorphism
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
A compositional approach to service validation
SDL'05 Proceedings of the 12th international conference on Model Driven
Architectural point mapping for design traceability
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
General composition of software artifacts
SC'06 Proceedings of the 5th international conference on Software Composition
Transactions on Aspect-Oriented Software Development I
Demeter interfaces: adaptive programming without surprises
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.03 |
In several works on design methodologies, design patterns, and programming language design, the need for program entities that capture the patterns of collaboration between several classes has been recognized. The idea is that in general the unit of reuse is not a single class, but a slice of behavior affecting a set of collaborating classes. The absence of large-scale components for expressing these collaborations makes object-oriented programs more difficult to maintain and reuse, because functionality is spread over several methods and it becomes difficult to get the "big picture". In this paper, we propose Adaptive Plug and Play Components to serve this need. These components are designed such that they not only facilitate the construction of complex software by making the collaborations explicit, but they do so in a manner that supports the evolutionary nature of both structure and behavior.