Mixin'Up components

Vugranam C. Sreedhar
2002 Proceedings of the 24th international conference on Software engineering - ICSE '02  
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
more » ... EL 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 pdnciples. . Recently we introduced a language called ACOEL (A Component-Oriented Extensional Language) for programming software components [22] . ACOEL is based on two principles: (1) strong encapsulation and (2) dyna~c and explicit composition of components. In ACOEL, a component is a unit of abstraction, and it consists of a set of typed input and out-1White-box and grey-box components are alternatives to black-box component, in which the internal features of the components are exposed.
doi:10.1145/581339.581366 dblp:conf/icse/Sreedhar02 fatcat:r6hfwuuuubedhbyb6flun6pdwu