James C. Browne, Kevin Kane and Nasim Mahmood
This paper describes a programming model where programs are generated by composition of components based on the roles the components play in the execution of the program and two instantiations of this programming model. In this context, roles are specifications of the properties, behaviors and modes of interaction (semantics) of the components and the requirements of the components upon their environment. Components and their roles are specified in terms of ontologies derived from domain analyses of the application areas for the programs. The relationships between roles, naming models, programming models, coordination models and compositional development are explored.