Re-engineering legacy systems to add hypermedia
functionality
Harri Oinas-Kukkonen & Janne Kaipala(1)
University of Oulu
Department of Information Processing Science
Linnanmaa, FIN-90570 Oulu, Finland
Tel. (358) 81 553 1900, Fax. (358) 81 553 1890
Email: hok@rieska.oulu.fi, jka@rieska.oulu.fi
http://rieska.oulu.fi/~hok/
Abstract
Many software systems in need of renovation, called often legacy systems, are vital for
organizations, but yet cannot be replaced by other systems. Software re-engineering has been
proposed as a means for improving these kinds of systems. This paper addresses the
improvement of legacy systems through hypermedia functionality, in which the essential idea
is to treat information as small pieces of information and to allow their flexible combination
and use by human users. The re-engineering process for incorporating hypermedia
functionality into a software system and the key issues in it are described in this paper
through a full-blown CASE toolset playing the hypothetical role of a legacy system, the
process comprising reverse engineering, re-engineering analysis, re-engineering design, and
implementation.
SUBJECT SYSTEM DESCRIPTION
The subject system discussed in this paper, playing the hypothetical role of a legacy system,
is a full-blown CASE toolset implemented in VisualWorks/Smalltalk [1, 2]. It provides rich
support for various method-driven tasks, in particular modelling, but remains inflexible in
representing relationships between pieces of information, which are created at will. Therefore
new requirements arose for enhancing the user-friendliness of the tools, e.g. linking the
deliverables of the system development phases, and the toolset was regarded as a legacy
system for enabling the discussion of the re-engineering process in this paper, even if it is not
a "legacy system" in the literal meaning.
In addition to basic model editing tools that manipulate models based on well defined method
specifications, one needs tools that enable the creation, modification and deletion of
navigational hyperlinks between models or parts of them. Thus, the toolset was improved
with hypermedia functionality [3], known as Linking Ability [4], in order to provide a means
for reading and examining collections of documents in a non-linear manner.
RE-ENGINEERING PROCESS
The re-engineering process in our case comprised reverse engineering of the subject system
and forward engineering (analysis, design and implementation) of the subject system with the
added functionality.
Reverse engineering
In the reverse-engineering the source abstraction level was a set of Smalltalk classes,
attributes, methods and messages, and the target abstraction level was the object-oriented
design of the subject system using Coad & Yourdon [5, 6] methodology, the code being
inspected by printing the methods either to the screen or to paper for investigation. These
abstraction levels can be mapped, because the core concepts are either explicitly or implicitly
supported by both of them. Classes, attributes, methods and inheritance relationships can be
found explicitly from the code. Abstract classes are not explicitly supported in Smalltalk, but
when a class has no instances during the program execution it can be considered as an abstract
class. Identifying aggregations or whole-part relationships, was not difficult either, since it
was rather easy to find out the three basic forms of it from code: assembly-parts, container-
contents and collection members. The attributes typed as collections or data model
components were looked for. Message passing and instance connections may also be found
implicitly from the code. The visible result of reverse engineering comprised the design
diagrams of the underlying data model and tool architecture, i.e. what are the components of
the subject system (classes and attributes) and how they relate to each other in
particular in terms of aggregation and inheritance.
Re-engineering analysis
The starting points for the re-engineering analysis included the reversed design of the subject
system and the analysis and design of the new functionality. Some of the new functionality
interacted with the subject system through sending messages, while some of the functionality
was autonomous in this sense, having thus no effect on the integration. The visible output of
this step consisted of the object-oriented analysis of the enhanced system.
Data model issues. In principle, the source for a hyperlink may be any data model
component. Links are attached to the representation of the link source, i.e. there is one and
only one visible instance of the link. When using hypermedia functionality approach in such
an analytical and complex field as system development, it is important to enable the target to
be an individual point within a graph as well, i.e. an object or a relationship in addition to a
graph. A support functionality must not include a very heavy versioning for and by itself, but
the versioning support needs to be consistent with the subject system.
User interface issues. The hyperlinks are highlighted for the users to notify them,
their sources being presented in the display through coloured link markers, i.e. specialized
symbols in diagrams, matrices or tables. Since the links are one-directional and there is no
explicit graphical representation for link targets in the diagrams, link traversal and the
incoming link list are the only means for link target notification. The display of node
candidates for hypermedia is taken care by the model editing tools. When hypermedia
functionality is incorporated into a software system the user interface style of the
subject system has to be adopted for hypermedia, too, e.g. the way for using windows and
mouse.
Collaboration issues. In the case of hypermedia re-engineering, the subject system
dictates and also provides most of the multiuser features needed. However, in our case an
optimistic concurrency control was used in the subject system repository. The
prevention of accessing sensitive data is ensured by the repository system through
the checking of personal passwords when opening the system.
Re-engineering design
The programming language enabled and/or dictated some of the key design principles, e.g. the
class-metaclass distinction and single inheritance. Multiple inheritance would have enabled the
design diagram nodes to inherit attributes and methods from hypermedia nodes. Single
inheritance enables this kind of subclassing, only if both classes were inherited from the same
object hierarchy.
Data model issues. Because the data model components were valid link sources and
targets, some attributes and methods were added to subject system classes. A method was
added to inform the user of the outgoing and incoming links that may be deleted with the
deletion of data model components. A message for opening nodes was also added.
User interface issues. To achieve a consistent linking mechanism with respect to all
nodes, the user interface classes for representing target system nodes were renovated.
Methods for determining the link targets were added to data model nodes, and nodes were
associated in the programming environment's own user interface classes. In addition link
menus and respective methods were added to these classes.
Implementation
The re-engineering implementation by itself was a straightforward task, the design being
transformed to code by object-oriented programming. The implementation utilized the
standard Smalltalk browsers for writing the code, some user interface methods being
automatically created by the programming environment.
CONCLUSIONS
The limited or sometimes even lacking features of legacy systems pose a challenge for
software engineers and information system developers. The goal of this paper has been to
discuss how the incorporation of hypermedia functionality into software systems takes place,
and what challenges await the developers that participate in the re-engineering efforts. The re-
engineering process comprises reverse engineering, re-engineering analysis, re-engineering
design and implementation.
The reverse engineering in our case consisted of the manual building of object-
oriented design diagrams of the subject system through code investigation. The key issue was
the recognition of classes and their attributes, and the aggregation and inheritance relationships
between the classes, since they provided the meta-model of the possible hyperspace. The key
issues tackled in the re-engineering analysis included the definition and representation
of link sources/targets, and concurrency control. The user interface style and node
representation, as well as versioning, and access control were adopted from the subject
system. Re-engineering design included the definition of the interface between the
subject system and the hypermedia functionality, and the transformation of the data model
objects into hypermedia nodes by extending the classes with attributes and methods to handle
the link information. Hypermedia functionality was implemented without any third-
party classes. Some methodology, programming environment and programming language
dependent features were utilized, but other object-oriented methodologies and programming
environments, which support inheritance and allow the addition of attributes and methods to
existing classes, could probably be used in a similar manner.
References
1 Lyytinen K., Kerola P., Kaipala J., Kelly S., Lehto J., Liu H., Marttiin P.,
Oinas-Kukkonen H., Pirhonen J., Rossi M., Smolander K., Tahvanainen V.-P. &
Tolvanen J.-P. (1994) MetaPHOR: Metamodelling, Principles, Hypertext, Objects
and Repositories. University of JyvŠskylŠ, Department of Computer Science and
Information Systems, Technical Report Series TR-7, November, 39 pages + 1 appendix.
2 Kelly S., Lyytinen K., Rossi M. (1996) MetaEdit+: A Fully Configurable
Multiuser and Multitool CASE and CAME Environment,
The 8th Conference on Advanced Information
Systems Engineering, Heraklion, Greece, May 20-24, 1996.
3 Oinas-Kukkonen H. (1995) Developing Hypermedia Systems - The
Functionality Approach, Data Management Systems, Proceedings of the Basque
International Workshop on Information Technology, IEEE Computer Society Press, Los
Alamitos, CA, pp. 2-8.
4 Oinas-Kukkonen H. (1996) Hypermedia functionality in modelling tools,
Second International Workshop on Incorporating Hypertext Functionality into Software
Systems (HTF II), ACM Hypertext Ô96 Conference, Washington D.C., March 16, 17,
1996.
5 Coad P. & Yourdon E. (1991a) Object-Oriented Analysis, Prentice-Hall,
Englewood Cliffs, New Jersey.
6 Coad P. & Yourdon E. (1991b) Object-Oriented Design, Prentice-Hall,
Englewood Cliffs, New Jersey.
(1) The current address of the second author is University of Jyvaskyla, Department of Computer Science and
Information Systems, Seminaarinmaki, FIN-40350 Jyvaskyla, Finland.
Copyright
Oinas-Kukkonen, Kaipala © 1996. The authors assign to educational and
non-profit institutions a non-exclusive licence to use this
document for personal use and in courses of instruction provided that
the article is used in full and this copyright statement is reproduced.
The authors also grant a non-exclusive licence to New Jersey Institute
of Technology to publish this document in full on the World Wide Web
and in printed form with the workshop papers, and for the document
to be published on mirrors on the World Wide Web. Any other usage is
strictly prohibited without the express permission of the authors.
This paper appears in the
Proceedings of the Second International Workshop on Incorporating Hypertext
Functionality into Software Systems, held in conjunction with the
ACM Hypertext '96
conference, Washington, U.S.A.