Extending Object-Oriented Applications with Hypermedia ... - CiteSeerX

0 downloads 0 Views 26KB Size Report
also CONICET and Dto Informatica, PUC-Rio, Brazil. Abstract. In this position paper we present an object-oriented framework aimed at enhancing object-.
Extending Object-Oriented Applications with Hypermedia Functionality G. Rossi (*), A. Garrido and A. Amandi LIFIA. Laboratorio de Investigación y Formación en Informática Avanzada. Dto. de Informática, Fac. Cs. Exactas, Universidad Nacional de La Plata. C.C. 11, (1900) La Plata, Buenos Aires, Argentina. E-mail: [grossi, amandi]@unlp.edu.ar (*) also CONICET and Dto Informatica, PUC-Rio, Brazil.

Abstract In this position paper we present an object-oriented framework aimed at enhancing objectoriented applications with hypermedia functionality. The major goal of this approach is the seamless integration of the application’s behavior with the navigational style of hypermedia applications. We briefly survey our previous experience on using hypermedia in object-oriented applications; we then discuss the rationale for building an object-oriented framework and present its outstanding features. We finally discuss some application areas and future work on extending the framework Introduction and Background In the near past we have been involved in some research projects in which we had to extend complex applications with hypermedia functionality in areas such as intelligent tutoring systems and cooperative software engineering environments. (See Rossi89a and Rossi89b). As it is stated in the workshop’s objectives, adding hypermedia support functionality to an application implies not only forward navigation but also capabilities for annotation, complex access structures (like guided-tours and indexes), etc. For example, integrating hypertext in an intelligent tutoring system may provide the learner and educator with an additional communication tool besides allowing a more flexible organisation for the concepts to be learned. In fact, current learning tools are usually hypermedia-based (See Amandi93). However, when the application itself has not been conceived as a hypermedia applications, as it is the case with most information systems, adding hypermedia support may be extremely complex or may be reduced only to trivial aspects (like interactive help systems). For dealing with the previously mentioned applications we extended the Smalltalk’s interface metaphor (the model-view-controller) allowing the construction of “hyper-views”, i.e. views that contain anchors and that can be “navigated”. We provided two navigation styles: transparent navigation in which the application is not aware of navigation operations and nontransparent navigation where the application is notified of link traversal operations. While the former can be applied to simple extensions such as allowing navigation inside a concept in a tutoring system the latter must be used when following a link implies either a change in the information (or knowledge) base or a different behavioural pattern in the application as may occur when beginning the exploration of a new concept that may require pre-requisites, perhaps encoded or represented as data-structures in the application.

Though this approach has been successful, merging the interface and navigational aspects of hypermedia (as it is usually the case in commercial packages) prevents building clean extensions either to the interface or the hypermedia model. Besides, as hypermedia has become a well-known and mature software domain, it is possible to build good abstractions of its underlying concepts such that they can be reused in different application areas. In this paper we present an object-oriented framework that allows extending an objectoriented application through a direct mapping of objects to nodes and links; this mapping allows viewing objects as nodes and accessing related ones by link traversal. The framework allows preserving the behavioural semantics of the applications as specified during design by providing communication paths for notifying objects about the occurrence of external events (interface operations for example).

An Object-Oriented Framework for Hypermedia A framework is an abstract design of a particular type of application or domain [Johnson88]. It usually consists in a set of abstract and concrete classes and the abstract specification of collaborations between objects [Johnson91]. Building object-oriented frameworks is difficult because they must represent a concrete domain in an abstract way, i.e. allowing different “instantiation” of the entire framework customised to the application using the framework. Designing a framework implies not only describing a set of classes but also defining a model of the relationships between the framework and other components of the application. One of the most widely known frameworks is the Model-View-Controller [Lalonde94] that allows implementing sophisticated graphical user interfaces by separating the application (Model), its views (View) and the interaction with the outside world (Controller). The MVC metaphor is prevalent in many object-oriented languages and architectures and its implementation in the Smalltalk environment allows defining new kinds of Views and Controllers thus easing the transition from “conventional” interfaces, and others using different kind of media for output and complex devices (data gloves, pens, etc.) for input. We have designed and implemented a framework for enhancing object-oriented applications with hypermedia functionality. The framework itself comprises a set of abstract classes such as Node, Link, Anchor, Context, Graph, Access Structure, etc. and abstract behavior specified as methods in each class (and corresponding sub-classes). We have also defined a model for communication between an application and the framework’s components and between the hypermedia framework and the MVC framework. For the sake of conciseness we will describe the collaboration model but will not address methodological issues. An application using the framework is conceptually divided in three levels: the object level, the hypermedia level and the visual level. In the object level the designer specifies the objects that model the application domain. If a semantically rich method is used, i.e. a method with explicit use of relationships like OMT [Rumbaugh91], links will directly reflect relationships between objects. In the hypermedia level, nodes are defined as objects’ views and links stand for associative objects or simple relationships. Different views (nodes) may be defined for the same object and the same node may be accessed in different contexts, thus providing different navigation alternatives (when different outcoming links have been defined in each context). Different access structures like maps and tours may be created for accessing nodes. Nodes are sensitive to events that usually occur in the visual level and their standard behavior , i.e. the one specified in the framework, is to notify the corresponding object, so that it can perform the necessary action. Be defining proper events and communication paths we can preserve the original application’s semantics. In the visual level we use a conventional interface tool or framework to specify nodes’ appearance (several graphical representations may be defined for the same node). Our current implementation uses the Model-View-Controller framework that has been extended with the concept of “sensible” area for dealing with non-rectangular anchors. Though the framework can be used with other interface metaphors requiring minimal re-coding, using the MVC has several advantages: first, as said before its use is prevalent in object-oriented systems, besides the interface “look and feel” is well suited for building hypermedia applications. We will not discuss this level in detail; see for instance [Krasner88].

Using and Extending the framework

As in other object-oriented frameworks, instantiating the hypermedia frameworks implies deciding which objects will be viewed as nodes, which conceptual relationships will be mapped to links and in which way nodes will be visualised. Communication paths between the hypermedia level and the object level are defined by providing methods (in the object level) and informing the corresponding node which is the actual mapping. Building a navigational view of an object-oriented information system can be done by coding or by using high-level tools as it is usual in interface design. In particular, the framework may be used to build “conventional” hypermedia applications, i.e. those in which the application objects are the nodes and links themselves. The framework may be extended in different ways such as defining new Node or Link sub-classes, defining classes for new kind of Access Structures, etc.

Experience with the framework We are now using the framework in two different areas: Software Engineering Environments [Oinas-Kukonen92] and Information Systems . We have prototyped a CASE environment for an object-oriented analysis and design method, OOSE [Jacobson92] and have enriched it with hypermedia functionality using our framework. We have also re-engineered an information system for an academic department that provided functionality for registering students to courses, maintained the Professor’s information base, etc. In this case combining the “standard” behavior with the navigational style of hypermedia has been straightforward though the original application had been conceived with a conventional interface. Related Work and Concluding Remarks Object-Oriented frameworks are the state-of-the-art solution for reusing large scale abstract designs in a particular application domain. In some mature areas (like user interface design) they have been used for years. Using a framework allows a designer to separate his application from the framework’s components thus allowing easy extension and maintenance. In this position paper we have proposed using an object-oriented framework for embedding hypermedia support features into an application. In this way we provide a clean separation between the application and the hypermedia world though preserving the application’s behavioural semantics by allowing the definition of communication paths between nodes, links and “nonhypermedia” objects. We have made some experiences with the framework showing its feasibility either for building new object-oriented applications or for re-engineering existing ones. Designers who were not experts in hypermedia found it easy to use and quickly understood the framework’s components and collaboration model. The key difference between our approach and other object-oriented views of hypermedia applications building like the ones in [Marmann92] or [Lange94] is that the hypermedia framework is only a component of a perhaps complex application that supposes the use of a collaboration model with the Object and Visual levels. In this way it is an excellent alternative for incorporating hypermedia features to traditional business applications. Though we have extensively proved it, our framework is still in its infancy and we believe it will grow with our experience. Though we believe that the class hierarchy of hypermedia components is rather mature we think that it will be extended with new classes. Extensive use of the framework will also show the need for new “instantiation” and documentation tools as well as it will give raise to new specialised frameworks.

References [Amandi93] A. Amandi, G. Rossi, M. Prieto and C. Leonardi. “Learning Object-oriented Concepts with Multimedia Technology”. Proceedings of the OOPSLA’93 Educators’ Symposium, Washington 1993. [Jacobson92] I. Jacobson, M. Christerson, P. Jonsson and G. Overgaard. “Object-Oriented Software Engineering”. Addison Wesley, 1992. [Johnson 88] Ralph E. Johnson y Brian Foote. “Designing Reusable Classes”. Journal of ObjectOriented Programming, June/July 1988, Volume 1, Number 2, pages 22-35.

[Johnson91] Ralph E. Johnson y Vincent Russo. “Reusing Object-Oriented Design”. Tech report UJUCDCS 91-1696, University of Illinois, May 13, 1991. [Krasner88] G. Krasner and S. Pope. “A cook-book for using the model-view-controller user interface paradigm in Smalltalk-80”. Journal of Object-Oriented Programming. Volum1, Number 3, pp 26-49, August/September 1988. [Lalonde94] Wilf Lalonde y John Pugh. “Smalltak V. Practice and Experience”. Prentice-Hall. 1994. [Lange94] D. Lange: "An Object-Oriented design method for hypermedia information systems", Proceedings of the 27 th. Annual Hawaii INternational Conference on System Science, January 1994. [Marmann92] M. Marmann and G. Schlargeter. "Towards a better support for hypermedia authoring: The HYDESIGN model", Fourth ACM Conferences on Hypertext. ECHT'92. ed. ACM Press, pag 232. [Oinas-Kukonen92] Harri Oinas-Kukkonen. “Empowering the Components and Routine Use of CASE Environments with Hypertext Functionality”. In the Proceedings of the 2nd Golden West International Conference of Intelligent Systems, Reno, Nevada, June 1-3, 1992, pp. 201-205. [Rossi89b] G. Rossi, A. Amandi, A. Torguet and A. Schiavonni. "Using Knowledge Based Hypertext in the Design of Environments for Collaborative Work" (G. Rossi, A. Amandi, A. Torguet y A. Schiavonni). Proceedings of the International Conference on System Science, Poland, 1989. [Rossi89a] G. Rossi."Exploring object orientation and hypertext in intelligent tutoring systems".XII Western Educational Computing Conference, USA, 1989. [Rumbaugh91]James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy and William Lorensen. “Object-Oriented Modeling and Design”. Prentice Hall, 1991.

Suggest Documents