Apart from the well-known motivations for reusing software, productivity and quality, another one also plays a role. The average employee works in a research job for about five years and then moves on to another, most likely non-research, job. This implies that there is a high staff turnover. It is believed that the results of the domain analysis could be very useful in bringing new employees up to date with the activities of a department.
We have elected to study the construction of a repository for a department in the Laboratory rather than one for the whole Laboratory. The areas in which research is performed are quite diverse. To develop a single repository for the whole Laboratory was therefore, in our opinion, unrealistic. We do expect, however, that repositories for different departments will overlap, and we hope to devise mechanisms that will enable possible reusers to look over the boundaries of the repositories without becoming lost in the sheer quantity of components.
The repository will not only contain source code but designs and code templates as well. We also intend to provide links to the software that was used to test the various components. The 3Cs model (see [3]) will be used to define the structure of a reusable component.
A case study was started one of whose goals was to construct a repository for a department. It was decided to start this case study with a domain analysis. A priori it was decided that the ``deliverables''of the domain analysis consists of the following three items:
For reasons explained above, we will use natural language to document the components. To avoid some of the ambiguities that arise in natural language documentation, the author of the documentation is allowed to use only the technical terms that are listed in the glossary with the same meaning. So the glossary will become a constant ``terms of reference'' or context for the reader of the documentation. This will facilitate the ease of understanding.
Although the domain was not large, already early in the domain analysis phase it was observed that it would require a substantial effort. That the Laboratory is not a software production environment and the researchers not professional software developers hindered the analysis substantially. Since a full domain analysis would take probably too long, we are considering to follow the approach as given in [5].
Notwithstanding the above observation, the domain knowledge representation is much more an open problem than the domain analysis. We are still actively looking for a good ``tool.'' Due to the technical environment a great deal of technical notation exists. We need to have a way to be able to capture such notation, since it would facilitate the understanding of components a great deal. Therefore, we consider a hypertext-like environment in which it is possible to define cards using TEX a viable option. Furthermore, this hypertext-like environment should provide support for layered semantic networks. Such networks will be used to record the ``deliverables'' of the domain analysis.