On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
GENESIS: An Extensible Database Management System
IEEE Transactions on Software Engineering
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
The definition of Standard ML
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
The art of metaobject protocol
The art of metaobject protocol
A dynamic network architecture
ACM Transactions on Computer Systems (TOCS)
The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Combination of inheritance hierarchies
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
File-system development with stackable layers
ACM Transactions on Computer Systems (TOCS) - Special issue on operating systems principles
Composition of before/after metaclasses in SOM
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Subject-oriented composition rules
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Automated compiler generation for extensible data languages
Automated compiler generation for extensible data languages
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Composition Validation and Subjectivity in GenVoca Generators
IEEE Transactions on Software Engineering
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding type parameterization to the Java language
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adaptive plug-and-play components for evolutionary software development
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Concepts for a database system compiler
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Object-oriented framework and product lines
Proceedings of the first conference on Software product lines : experience and research directions: experience and research directions
What can we do about the unnecessary diversity of notation for syntactic definitions?
Communications of the ACM
Modularization and hierarchy in a family of operating systems
Communications of the ACM
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Mixin-Based Programming in C++
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Specifying Reusable Components Using Contracts
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Using C++ Templates to Implement Role-Based Designs
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
JTS: Tools for Implementing Domain-Specific Languages
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Role-oriented programming for software evolution
Role-oriented programming for software evolution
Implementing large-scale object-oriented components
Implementing large-scale object-oriented components
Achieving extensibility through product-lines and domain-specific languages: a case study
ACM Transactions on Software Engineering and Methodology (TOSEM)
Generic Implementation of Product Line Components
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
Proceedings of the 25th International Conference on Software Engineering
Refinements and multi-dimensional separation of concerns
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Towards Software Product-Lines — A Refinement-Oriented Generation Language
BT Technology Journal
Action systems in incremental and aspect-oriented modeling
Distributed Computing - Papers in celebration of the 20th anniversary of PODC
IEEE Transactions on Software Engineering
Feature-Oriented Programming and the AHEAD Tool Suite
Proceedings of the 26th International Conference on Software Engineering
Invited application paper: program generation considered easy
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
An adaptive object model with dynamic role binding
Proceedings of the 27th international conference on Software engineering
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Pluggable AOP: designing aspect mechanisms for third-party composition
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Tool support for feature-oriented software development: featureIDE: an Eclipse-based approach
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Aspectual mixin layers: aspects and features in concert
Proceedings of the 28th international conference on Software engineering
Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems
Integration, the VLSI Journal - Special issue: Low-power design techniques
Multilevel models in model-driven engineering, product lines, and metaprogramming
IBM Systems Journal - Model-driven software development
When to use features and aspects?: a case study
Proceedings of the 5th international conference on Generative programming and component engineering
Multi-agent system product lines: challenges and benefits
Communications of the ACM - Software product line
On the duality of aspect-oriented and feature-oriented design patterns
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Highly configurable transaction management for embedded systems
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Designing and managing evolving systems using a MAS product line approach
Science of Computer Programming
Reflective layer activation in ContextL
Proceedings of the 2007 ACM symposium on Applied computing
ACoM '07 Proceedings of the First International Workshop on Assessment of Contemporary Modularization Techniques
Lightweight scalable components
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
The jastadd extensible java compiler
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A small extension to Java for class refinement
Proceedings of the 2008 ACM symposium on Applied computing
Model checking for aspect-oriented software evolution
SEPADS'05 Proceedings of the 4th WSEAS International Conference on Software Engineering, Parallel & Distributed Systems
Evolving software product lines with aspects: an empirical study on design stability
Proceedings of the 30th international conference on Software engineering
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
Objects as Actors Assuming Roles in the Environment
Software Engineering for Multi-Agent Systems V
Integrating Component and Product Lines Technologies
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
Mixing source and bytecode: a case for compilation by normalization
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Code generation to support static and dynamic composition of software product lines
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
On the modularity of feature interactions
GPCE '08 Proceedings of the 7th international conference on Generative programming and component engineering
A Modeling Language for Program Design and Synthesis
Advances in Software Engineering
Cooperative aspect-oriented programming
Science of Computer Programming
Flexible features: making feature modules more reusable
Proceedings of the 2009 ACM symposium on Applied Computing
Sharing classes between families
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Proceedings of the 2005 conference on Self-Organization and Autonomic Informatics (I)
On Agility of Formal Specification
Proceedings of the 2007 conference on Information Modelling and Knowledge Bases XVIII
Feature-oriented programming with Ruby
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
An orthogonal access modifier model for feature-oriented programming
FOSD '09 Proceedings of the First International Workshop on Feature-Oriented Software Development
Refinement of Software Product Line Architectures through Recursive Modeling Techniques
OTM '09 Proceedings of the Confederated International Workshops and Posters on On the Move to Meaningful Internet Systems: ADI, CAMS, EI2N, ISDE, IWSSA, MONET, OnToContent, ODIS, ORM, OTM Academy, SWWS, SEMELS, Beyond SAWSDL, and COMBEK 2009
Efficient system-level prototyping of power-aware dynamic memory managers for embedded systems
Integration, the VLSI Journal - Special issue: Low-power design techniques
A calculus for uniform feature composition
ACM Transactions on Programming Languages and Systems (TOPLAS)
A comparison of design patterns and roles in the context of behavioural evolution
PCI'01 Proceedings of the 8th Panhellenic conference on Informatics
Building the core architecture of a NASA multiagent system product line
AOSE'06 Proceedings of the 7th international conference on Agent-oriented software engineering VII
Measuring and characterizing crosscutting in aspect-based programs: basic metrics and case studies
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Implementing software product lines using traits
Proceedings of the 2010 ACM Symposium on Applied Computing
Intensional changes: modularizing crosscutting features
Proceedings of the 2010 ACM Symposium on Applied Computing
Streamlining feature-oriented designs
SC'07 Proceedings of the 6th international conference on Software composition
Superimposition: a language-independent approach to software composition
SC'08 Proceedings of the 7th international conference on Software composition
Component models for semantic web languages
Semantic techniques for the web
Type safety for feature-oriented product lines
Automated Software Engineering
Proceedings of the 12th annual conference on Genetic and evolutionary computation
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
Categorizing and modeling variation in families of systems: a position paper
Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Tag and prune: a pragmatic approach to software product line implementation
Proceedings of the IEEE/ACM international conference on Automated software engineering
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Pure delta-oriented programming
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Dynamically adaptable software product lines using Ruby metaprogramming
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Mostly modular compilation of crosscutting concerns by contextual predicate dispatch
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Delta-oriented programming of software product lines
SPLC'10 Proceedings of the 14th international conference on Software product lines: going beyond
Intensional changes avoid co-evolution!
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
Implementing statically typed object-oriented programming languages
ACM Computing Surveys (CSUR)
Generic meta-modelling with concepts, templates and mixin layers
MODELS'10 Proceedings of the 13th international conference on Model driven engineering languages and systems: Part I
Reuse and combination with package templates
Proceedings of the 4th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
Metamodeling semantics of multiple inheritance
Science of Computer Programming
Compositional type-checking for delta-oriented programming
Proceedings of the tenth international conference on Aspect-oriented software development
Polymorphic bytecode instrumentation
Proceedings of the tenth international conference on Aspect-oriented software development
Flexible feature binding in software product lines
Automated Software Engineering
Reusable software components for accelerator-based clusters
Journal of Systems and Software
Managing the quality of software product line architectures through reusable model transformations
Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
An architecture for implementing application interoperation with heterogeneous systems
DAIS'05 Proceedings of the 5th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems
Can agent oriented software engineering be used to build MASs product lines?
WRAC'05 Proceedings of the Second international conference on Radical Agent Concepts: innovative Concepts for Autonomic and Agent-Based Systems
rbFeatures: Feature-oriented programming with Ruby
Science of Computer Programming
Access control in feature-oriented programming
Science of Computer Programming
Variant-preserving refactoring in feature-oriented software product lines
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Architectural aspects of architectural aspects
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
Towards the development of ubiquitous middleware product lines
SEM'04 Proceedings of the 4th international conference on Software Engineering and Middleware
Using step-wise refinement to build a flexible lightweight storage manager
ADBIS'05 Proceedings of the 9th East European conference on Advances in Databases and Information Systems
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
On the revival of dynamic languages
SC'05 Proceedings of the 4th international conference on Software Composition
General composition of software artifacts
SC'06 Proceedings of the 5th international conference on Software Composition
A feature composition problem and a solution based on c++ template metaprogramming
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Parameterized modules for classes and extensible functions
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Improving extensibility of object-oriented frameworks with aspect-oriented programming
ICSR'06 Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components
Aspect-Oriented development of crosscutting features in distributed, heterogeneous systems
Transactions on Aspect-Oriented Software Development II
Investigating framework product lines
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Abstract delta modeling: my research plan
Proceedings of the 16th International Software Product Line Conference - Volume 2
Object-oriented design in feature-oriented programming
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
Supporting multiple feature binding strategies in NX
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
Reusable graph transformation templates
AGTIVE'11 Proceedings of the 4th international conference on Applications of Graph Transformations with Industrial Relevance
Using roles to model crosscutting concerns
Proceedings of the 12th annual international conference on Aspect-oriented software development
Correctness of intrusive data structures using mixins
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
Subclack: feature-oriented programming with behavioral feature interfaces
Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and inHerItance
From types to type requirements: genericity for model-driven engineering
Software and Systems Modeling (SoSyM)
Generation of conjoint domain models for system-of-systems
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Implementing refactorings for FOP: lessons learned and challenges ahead
Proceedings of the 5th International Workshop on Feature-Oriented Software Development
Structural feature interaction patterns: case studies and guidelines
Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems
Hi-index | 0.01 |
A "refinement" is a functionality addition to a software project that can affect multiple dispersed implementation entities (functions, classes, etc.). In this paper, we examine large-scale refinements in terms of a fundamental object-oriented technique called collaboration-based design. We explain how collaborations can be expressed in existing programming languages or can be supported with new language constructs (which we have implemented as extensions to the Java language). We present a specific expression of large-scale refinements called mixin layers, and demonstrate how it overcomes the scalability difficulties that plagued prior work. We also show how we used mixin layers as the primary implementation technique for building an extensible Java compiler, JTS.