(Version 1.0)
Ghinwa Jalloul
The American University of Beirut
Beirut-Lebanon jalloul@aub.edu.lb
Intent:
Reinforcing the concept of reuse by having student practice it.
Motivation:
Students in an OO teaching framework are repeatedly preached on the advantage
of reuse. One approach to reinforce this advantage beyond the use/reuse of library classes is to actually have students reuse existing designs and implementation.
Applicability:
It can be used in a OO Software Engineering Course, OOAD course or in other
advanced OO course that emphasizes reuse of various forms inparticular design
reuse. It requires availability of a pool (library) of project reports and corresponding
implementations that students can refer to for reuse.
Structure:
Apply steps 1 through 8 of the LINK pattern.
Based on the assessment of the submitted design, the instructor acting by
and large as the library manager refers the designers (students) to related designs from the existing project library for reuse purposes. Typically reuse is possible because applications fall into few general frameworks: Database oriented, GUI, games etc.
From this stage onward student follow the remaining steps of the LINK pattern referring as they do so to the existing library inorder to achieve as much reuse as possible in each stage of the cycle of their project development.
The report that is submitted must include a section that describes the kind and amount of reuse that has been done.
Consequences:
Applying this pattern allows the student to practice reuse beyond the use/reuse of existing library classes. For a course that relies on design patterns, it helps the student to appreciate the usefulness and the viability of these patterns.
Implementation:
A library of projects (including reports and implementations) must be implemented that will create the pool to which students can refer for reuse. Alternatively the LINK pattern could be applied in teaching an OOAD or an OOSE course to generate this pool.
The instructor must familiarize themselves with the existing pool of projects in order to be able to play the role of the library manager.
The implementation requirements of the LINK pattern apply to this pattern as well.
Example Instances:
This pattern has evolved as a result of applying the LINK pattern repeatedly in teaching an OO Software Engineering course.
Related Patterns:
The LINK pattern.
This pattern also relates in theme to the Tool Box pattern (#36).
The Reuse pattern goes beyond code reuse to design reuse.