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.