Object-oriented programming: an objective sense of style
OOPSLA '88 Conference proceedings 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
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
SanFrancisco component framework: an introduction
SanFrancisco component framework: an introduction
Product-line architectures, aspects, and reuse (tutorial session)
Proceedings of the 22nd international conference on Software engineering
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
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
A theory of mixin modules: basic and derived operators
Mathematical Structures in Computer Science
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Software release management for component-based software
Software—Practice & Experience
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
A basic model for components implementation of software architecture
ACM SIGSOFT Software Engineering Notes
A middleware-independent model and language for component distribution
SEM '05 Proceedings of the 5th international workshop on Software engineering and middleware
Some theoretical considerations for a suite of metrics for the integration of software components
Information Sciences: an International Journal
Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model Based on Boxes
The Common Component Modeling Example
An evolving hierarchical & modular approach to resilient software
Proceedings of the 2008 RISE/EFTS Joint International Workshop on Software Engineering for Resilient Systems
A generative programming approach to developing pervasive computing systems
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Proceedings of the 33rd International Conference on Software Engineering
Flexible type-safe linking of components for java-like languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
A new component-oriented programming language with the first-class connector
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Types for dynamic reconfiguration
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
An inheritance system for structural & behavioral reuse in component-based software programming
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Design-driven development methodology for resilient computing
Proceedings of the 16th International ACM Sigsoft symposium on Component-based software engineering
Hi-index | 0.00 |
Recently we proposed a language called ACOEL (A Component-Oriented Extension Language) for abstracting and composing software components. Components in ACOEL are black-box components, and each component consists of (1) an internal implementation containing classes, methods, and fields that is hidden to the external world, and (2) an external contract consisting of a set of typed input and output ports. Components in ACOEL interact with each other only via these ports. In this paper we extend ACOEL in two directions: (1) use mixins to customize the services provided by a component without exposing its internal implementation, (2) add support for virtual types and sub-type relation among components. We will show how mixins and virtual types together allows us to build adaptable applications based on black-box component principles.