Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Rubn Tous
Abstract
The aim of this document is to analyze the different known research works about the use of an Object Oriented Methodology in the design of web-based or other kind of hypermedia applications. Of these research works we will focus on the Object Oriented Hypermedia Design Method (OOHDM), an approach that considers Web applications as navigational views over an object model. We will study this methodology and its latest releases and add-ins, such as the adaptation of the Unified Software Process and the use of Design Patterns and Design Frameworks.
Objectives
There has been passed a long time from 1993, when D. Schwabe, F. Garzotto and P. Paolini released the first version of HDM (Hypertext Design Model) [1]. They identified the necessity to rationalize the process of capture an organize the structure of a complex subject matter to offer the users a clear and accessible way to access information. Even in its first release, HDM uses terminology from software engineering (as authoring-in-the-large), because hypermedia applications share some important features with software applications. The two kinds of applications have in common the existence of an underlying conceptual model, an user interface, and statedependent components. All those things must be modeled and some language and methodology must be used for obvious reuse and changeability reasons. The object oriented methodology has been used in software engineering since the early 70s, and nowadays has become the standard way to develop software applications. Since UML 1.0 (Unified Model Language) was released in 1997, it has become the standard language of the object oriented community. In 1995 D. Schwabe and G. Rossi published the first OOHDM specification, an object oriented methodology for hypermedia applications design. Since then, a lot of extensions and changes have been released, basically these are the reasons: 1) In 1995 UML was being forged as a convergence of other model languages (Boochs Booch method, Rumbaughs OMT (Object Modeling Technique) and Jacobsons OOSE (Object Oriented Software Engineering)). OOHDM took then some elements from those l nguages, and as UML has evolved, a OOHDM has adapted to be compliant with the UML specification. The evolution of the WWW, the most important hypermedia system nowadays, has forced the different design methodologies to adapt to the new environment. The people of OOHDM have published a lot of extensions of the methodology to satisfy the requirements of the new applications. The software engineering community has generated some new strategies, as Design Patterns and Design Frameworks, that can be applied to the design of new hypermedia applications, and must be reflected in OOHDM.
2)
3)
This work aims to distill the different OOHDM resources to identify what are the interesting features of the methodology and how could be applied to modern hypermedia design.
Why a model?
Its not the aim of this document to analyze the reasons to use a model in the design of hypermedia applications, but its interesting to remember the main one: Communication. A model provides a common
language between clients, analysts, designers and implementers. A way to document the architecture of applications that can be reused in other projects. A common way to name the things that facilitates the task of specify methodologies and to develop design tools. Communication is the reason because a model not only has to be rich in expressiveness, it has also to be easy to understand and to use.
The foundational document of Hypermedia Design Model, "HDM- A Model Based Approach to Hypermedia Application Design" was released in January of 1993. The model wasnt constrained to any particular hypermedia system, but all the samples introduced were implemented using an old version of Hypercard. In its older versions Hypercard was a hypermedia system with a very specific and limited capabilities that motivated a common design style when developing applications. The samples present in the foundational document of HDM have in common that, once implemented, they show to the user only one kind of media at a time (text, image, etc.). In my opinion this feature conditioned the process of defining the model and thats the reason because the most recent reviews and applications, focused on the Web, present a confusing terminology. In HDM the main object is the entity, an entity is composed by a hierarchy of components and each component can be shown under a set of different perspectives called units. This is very easy to understand if we consider for example an entity newspaper N, a component section S, a subcomponent article A, and two units: text and photo. Thats the style of old HyperCard applications and in that context the model terminology is very clear. Although, when trying to apply this concepts to a modern web page the concepts of unit, perspective and component becomes ambiguous. By other way, HDM is a very poor model to specify the underlying information structure of an application. The authors say that it is not intended to be a semantic model [1] but they are providing terminology to model the semantics of the core domain of the application, that they call hyperbase. They say that HDM share some similarities with the Entity Relationship (E-R) model, but that HDM Entities are much more structured than E-R Entities, which are essentially flat and do not have structural links [1]. With this affirmation they demonstrate an unknowing of the E model because E entities can have relationship with other entities, and this -R -R relationship can be of type part-of, providing a mechanism to structure entities in subparts. In fact E-R is more flexible because E-R entities can be composed by other entities while HDM entities can be only composed by its own components, that cannot be used as components for other entities. HDM offers a tree to structure the information but the people of the world of databases know since a long time ago that information must be modeled with graphs. In conclusion, HDM became obsolete when hypermedia systems and applications evolved, diverging from its original forms and requiring a more powerful and clear model.
Why Object-Oriented?
The core of a hypermedia application is information that, independently from how is presented or stored, ever has some implicit structure that allows to divide it into smaller parts. A systems design process implies the resolution of a comple x problem by partitioning this problem into less complex sub-problems. When partitioning a problem that is related to a considerable quantity of information its needed also to divide this information. The software engineering discipline has studied the modeling of information since its beginnings. In 1965 Ole -Johan Dahl and Kristen Nygaard released Simula, the first object-oriented programming language. The object-oriented paradigm is based on encapsulating information and its related processes into single units called objects. The Simula language was followed by others, as SmallTalk, Eiffel, C++ or Java. The new programming languages motivated a new design methodology where data modeling plays a very important role. As a part of this methodology was defined the Object Oriented Data Model, that shares some features with the Entity-Relationship model from the world of databases. In 1997 was released UML, a standard language for the Object Oriented Methodology that includes a standard graphical notation for describing a data model. UML, and overall its data model, proved to be very expressive and intuitive, and its success was absolute. Nowadays the UML data model is used in every application design and, in the world of databases, has substituted the E-R model. There are millions of persons familiarized with the Object Oriented Data Model and the UML notation: programmers, analysts, software architects, computer science students and in general anyone from the science and engineering fields. If the target of at model is to improve communication there is no doubt of what are the reasons to use a Object Oriented Methodology in hypermedia applications design.
UML
The Unified Modeling Language (UML) is a modeling language used to describe software systems. It was the evolution of various second-generation object-oriented methods and was developed during the 1990s, starting with Rational Software Corporation and three of the most prominent methodologists in the information systems and technology industry, Grady Booch, James Rumbaugh, and Ivar Jacobson. The language has gained significant industry support from various organizations via the UML Partners Consortium and was approved by the Object Management Group (OMG) as a standard in 1997. The last release of UML is the 1.3 version. It includes a lot of new features like a meta-model and XMI, a XML application to serialize UML models. Commonly, when people thinks in UML, they think in four different abstraction tools: The Use Cases Diagram, The Class Diagram, the Sequence Diagram and the Statechart Diagram. The Use Cases Diagram shows the relationship among actors and use cases within a system.
The Class Diagram shows the graph representing the classes, attributes and relationships of the system.
A Sequence Diagram presents an interaction, which is a set of calls between objects to effect a desired operation or result.
Statechart diagrams represents the behavior of entities capable of dynamic behavior by specifying response to the receipt of event instances.
its
Although there are a lot of other abstraction tools , less used, like Collaboration Diagrams, Activity Diagrams, etc.
Traditional Software Engineering methodologies do not provide the needed abstractions for specifying applications that embody the hypertext metaphor. From Software Engineering point of view, the concepts of linking and hypertext are just a part of the user interface design, and no specific abstraction tools have been provided to model them. By other hand, the increasing complexity of web applications, and the time constraints of the projects, evidence the need of a specific design methodology that provide a systematic approach and improve reusability. Experience in Software Engineering shows the success of object oriented approach specially in the case of large implementations. Nowadays many companies are transforming their old interactive applications to supply them with a web layer, which implies the addition of hypertext to the user interface. To design these kind of applications is needed to describe the navigational issues, but object oriented methods do not provide primitives for this purpose. The question now is: Is OOHDM a good adaptation of the Object Oriented Methodology to the hypermedia design field? Answer this question is one of the targets of this research work. Its important to remember that he first papers talking about OOHDM were re leased in 1993, four years before UML 1.0. Although, the latest releases and add-ins perform interesting changes and improvements that must be taken in consideration.
OOHDM methodology
Following I will describe and evaluate the sequence of steps to develop an Web application according to the latest releases of OOHDM. The next diagram shows the stages of the methodology:
stage is the Conceptual Class Schema, a graph of classes with the notation specified in UML. The Conceptual Class Schema shows the underlying structure of the information that is going to be presented to the users, independently of the presentation form. This schema has more relationship to the way the data will be stored than to the way it will be presented. The next figure shows a sample of a Conceptual Class Schema from [7]
The idea of patterns was originally developed by Christopher Alexander in the field of urban architecture, an was adapted to object-oriented software in October of 1994: ``Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.''[3] Design patterns can be also applied to Web design, avoiding that Web designers must face the same problems again. Following are described a set of some design patterns for designing Web applications.
Solution Provide intra-set navigation facilities, to let user traverse nodes without having to return to the index
Sample The web-site of the MOMA is a sample of this pattern. Paintings of a collection can be accessed by index or traversed using the arrows.
By other hand, the same book can appear in a list of books related to the subject J2EE. In that case the information about the back cover, excerpt and index is hidden.
Sample The web-site of Gamasutra (www.gamasutra.com) is a good sample of this pattern, the underlined red lines of text are the latest news in the world of videogame development.
Sample The web-site of the OMG (www.omg.org) is a good sample of this pattern, The green labels allow at any time to move to other unrelated part of the web.
Patterns allow the reuse of specific parts of architectures in Web applications, but combined with other design primitives they also may be used to express larger reusable design structures called frameworks. A framework is a reusable design for a family of applications in a particular domain. Frameworks must be customized by developers when applied to concrete applications. While patterns provide abstract reuse of design experience, frameworks allow reusing concrete designs in a domain. Web design frameworks are different from application frameworks because while the latter are programmed in a specific language, Web design frameworks are environment and language-independent. In [7] OOHDM is used as the basis architecture for specifying Web design frameworks, providing abstraction tools as a Generic Conceptual Model, a Generic Navigation Schema and a Generic Context Schema.
Another possibility is sub-classing, allowing a more subtle way of achieving genericity. In the sample we may create a sub-class of Product as shown below.
The Refine operator takes the query in the corresponding super-class and replaces Comment with its sub-class EditorialComment. With that we are saying that Books must only show editorial comments.
10 Conclusions
The first releases of OOHDM incorporate the power of object oriented models to hypermedia design. Although, in despite of presenting an interesting set of new and adapted diagrammatic tools for designing hypermedia applications, the method evidenced the lack of a systematic process in the development of such applications, becoming just a set of interconnected abstraction tools. In software engineering, the way the UML tools must be used is defined in the Unified Software Process, that clearly identifies the phases of the development of a software application, and how each phase must be mapped into the next . Last releases of OOHDM solve this problem providing an hypermedia adaptation of the Unified Software Process, that has been shortly described above. According to [8] we can obtain the design specification of a web-based application just gathering the requirements into User Interaction Diagrams and applying the method systematically. In addition, a set of design patterns, and a design framework notation have been incorporated, in parallel with what is happening in the world of software engineering, to improve reusability and optimize the development time. In conclusion, web designers have now a powerful but slightly complex object oriented methodology to develop Web applications and an useful set of patterns and frameworks to avoid reinventing the wheel.
11 References
[1] D. Schwabe, F. Garzotto, P. Paolini, "HDM - A Model Based Approach to Hypermedia Application Design", ACM Transaction on Information Systems, Vol. 11, #1, Jan. 1993, pp. 1-26.
[2] D. Lange, "An Object-Oriented design method for hypermedia information systems", Proceedings of the 27th. Annual Hawaii International Conference on System Science, January 1994.
[3]
Design Patterns, Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (The Gang of Four). D. Schwabe "A Diagrammatic Tool for Representing User Interaction in UML", Lecture Notes in Computer Science, forthcoming, Proc. UML2000, York, 2000. D. Schwabe "Systematic Hypermedia Application Design with OOHDM", March 1996 D. Schwabe, Gustavo Rossi, Fernando Lyardet "Patterns for Designing Navigable Information Spaces", 1999. D. Schwabe, Gustavo Rossi, Fernando Lyardet "Abstraction and Reuse Mechanisms in Web Application Models", 2000 D. Schwabe, Patricia Vilain, Natacha Gell "Modeling Interactions and Navigation in Web Applications", October 2000
[4]
[8]