In this section I describe a prototype environment that is being developed to
support reuse courses at UW Aberystwyth. This development is part of the
larger TIPSE teaching environment project.
The approach to reuse education proposed in this position statement is a
traditional lecture course backed up with practicals.
I envisage a lecture course covering the key principles of reuse at
different levels of the lifecycle, together with an explanation of the
tools and techniques that can be used to achieve this. This course would
be applicable to advanced undergraduates, postgraduates and could be collapsed
into a one week intensive course for industry.
The component description environment will be used as the practical
element of the course. This gives the course participant the chance
to use some of the tools and techniques, learning their use first hand.
The most important part of the environment is support for a
design level language for component description.
Using the design level ensures that the student does not immediately
think of the reusable component as source code, but as a representation
of an idea, and as a relationship between a set of other ideas.
Around this central reusable component representation and it's
associated editor, there are reuse tools allowing the reuser to browse,
select and edit reusable components in textual and graphical form.
Finally there are a series of source code language editors and translation
programs allowing a mapping too and from the design level description.
Going back to the summary in the section above, we can see how the
component description and environment I have just described will provide
a support for reuse education.
- transparently embody the principles of reuse.
The principles of reuse are perhaps a matter of philosophical debate.
However
the language I have briefly introduced implements the 3C model of the
reusable component, and the environment contains tools which display the
key ideas of reuse, cataloging, browsing, selecting, and configuring
components.
- ideally be widely used in
practice and contain state of the art research work.
The environment is extensible and can therefore contain both those tools
and techniques widely used in practice together with recent research.
- not be at the implementation level.
║The component language is at the design level.
- be easy to understand in itself.
║The component description language has been designed to be
║orthogonal, with a relatively small set of constructs. Each
║language mechanism and
║construct has a well defined syntax and distinct semantic
║purpose.
- present a complete, workable system.
║The combination of the component description language with the
║environment tools gives a complete solution. The small scale of
║the toolset insulates the student from the learning curve of
║larger industrial strength environments. The environment has a
║similar look and feel to the support environment that the
║students will have used on other courses.
- relate to the students' other work, and thus demonstrate the
applicability of reuse.
The provision of the mapping programs enable a student to
transfer the component descriptions into implementation language
scripts, in our case C++ and Ada. This translation enables the
student to relate the design level reuse work to source code in
languages that they know and understand. The ability to produce
more than one language is an advantage, clearly demonstrating that
reuse is not language specific, and enabling students to see the
relationship between semantically similar mechanisms in different
languages.