Systematic and Automated Development with Reuse *

Component-based Development (CBD) is based on the idea of building software systems by composing pre-existing software components. This particular activity within the CBD process is usually called development with reuse.

In previous work we introduced an alternative component composition approach based on pasive components which offer computation and connectors that encapsulate schemes to deal with communication and coordination among software components [3]. In our approach, both components and connectors can be reused to construct composite components and component-based systems in a systematic manner.

By analysing the communication and coordination needs in several component-based applications, a catalogue of connectors to support development with reuse has been defined [1]. To automate the development process, we have developed a working prototype of a visual composition environment [2]. The architecture of the development environment consists of five main elements: (1) a component repository, (2) a connector repository, (3) a visual assembler, (4) a code generator and (5) an execution environment.

The composition environment supports development with reuse by dragging, dropping and connecting pre-existing components and pre-existing connectors from the component and connector repositories into the visual assembler. Our uses reflection techniques to perform structural introspection on components' binaries and their interfaces to retrieve the information about the services that the components offer.

Once a composite component or a component-based system architecture is defined, the code generator generates the binary file representing it. This file is meant to be deployed and eventually executed on the execution environment, which is a JVM.

 

Look at some robotics control systems developed by using our approach and visual development environment here.

Despite the fact we have not considered any domain specific issues, our resulting control systems are not bad. Have a look here.

 

Related Publications

[1] P. Velasco Elizondo and K.-K. Lau. A catalogue of component connectors to support development with reuse. The Journal of Systems and Software, 83(7):1165-1178, Elsevier, July 2010.

[2] P. Velasco Elizondo. A Development Environment to Support Development with Reuse. Presented in the Tool Demo Track of the 11th International Conference on Software Reuse (ICSR). September 27-30, 2009. Falls Church, Virginia, USA.

[3] K.-K. Lau, P. Velasco Elizondo, Z. Wang. Exogenous Connectors for Software Components. In G.T. Heineman et al., editors, Proceedings of Eighth International SIGSOFT Symposium on Component-based Software Engineering. Lecture Notes in Computer Science 3489:90-106, Springer-Verlag, 2005.

* This work was supported by CONCyTEG under grant 08-02-K662-119. Period: Aug 08 - Jul 09.