next up previous
Next: 2 Position Up: Architectural Jigsaw Patterns Previous: Architectural Jigsaw Patterns

1 Background

Some of our colleagues are working on a project, the aim of which is to design and build a low-cost PC-based solution for real-time viewing of 3D medical images. They raised the issue: How to document a complex system which is implemented in a mixed environment, e.g., C++ and Java? The documentation should give an overview of the system architecture and classify interfaces between interacting subsystems. Our first approach to this issue was to use the module system of the functional programming language ML [Paul91,Ullm94] and CML (Concurrent ML) [Repp93] for the architecture description, because the module concepts of ML are simple, yet general enough to define an architecture without introducing the low level data structures of C-based C++ or Java.

The system architecture uses general architecture concepts, i.e. it is composed of components which connect through interfaces to connectors [GaSh93,AlGa94]. The ML signature is used to define an interface and ML functor concepts are used to define components and connectors. The interfaces define access functions [Parn72] to an environment. The connectors are structures or objects defining and implementing the interfaces. The components are structures implementing functions of the system assisted by access functions in the interfaces. We thus isolate the interface implementation in the connector.

In order to visualize these ML textual descriptions we developed a graphical notation, called jigsaw patterns , which gives a view of the system architecture. We applied jigsaw patterns to the description of the architecture of the prototype ``3D-Med'' system which is implemented in C++ and Java. The notation helped in the discussions about the project and has been taken over by the team which is currently exploring its use in associated projects. We feel that jigsaw patterns has the following benefits compared with the box-and-line diagrams which are often used to describe a system architecture:

In the following two sections, we present and discuss the jigsaw patterns technique. We use the``3D-Med'' system example to illustrate the application of the technique. In the last section we compare the notation to a few architecture description languages (ADLs) [GAO94,LKAVBM95,SDKRYZ95,AlGa94].


next up previous
Next: 2 Position Up: Architectural Jigsaw Patterns Previous: Architectural Jigsaw Patterns

Hongyan Sun and Anders P. Ravn
Sept. 2, 1997