Extending an OO Method to Develop Web Applications

Joan Fons
Dept. Information Systems and Computation
46022 Cami de Vera s/n
Technical University of Valencia, Spain
jjfons@dsic.upv.es
Vicente Pelechano
Dept. Information Systems and Computation
46022 Cami de Vera s/n
Technical University of Valencia, Spain
pele@dsic.upv.es
Oscar Pastor
Dept. Information Systems and Computation
46022 Cami de Vera s/n
Technical University of Valencia, Spain
opastor@dsic.upv.es

ABSTRACT

This work presents an overview of the OOWS method, an OO software production method that provides conceptual modelling extensions (in terms of models and abstraction primitives) to facilitate the web application specification. The method provides a set of techniques for the conceptual modelling of functional, navigational and presentation requirements of dynamic web applications, and proposes a strategy to allow going from the problem space (conceptual model) to the solution space (final software product) in an automatic way.

Keywords

Web engineering, conceptual models, code generation, design patterns, development methods, object orientation.

1. INTRODUCTION

The term Web Engineering is used to refer to those methods, techniques and tools that have arised to provide methodological support to undertake the development of web applications [2]. Approaches of this kind (1) introduce new models and abstraction mechanisms to capture the essentials of web applications and (2) they give support for the development process and implementation of a web solution. Following this strategy, many different approaches have appeared to deal with the web application development process. Mainly they define these set of characteristics that a web development method must include: requirement specification, conceptual modelling of system behavior and dynamics, navigation and presentation specification.

The proposal discussed in this paper provides a concrete contribution in this context. We introduce a conceptual modelling centred method that integrates navigational design and classical OO conceptual modelling, providing systematic code generation. Taking conceptual models as an input, a precise methodological guide is defined for going systematically from the problem space to the solution space (represented by the final software product).

2. THE OOWS METHODOLOGICAL APPROACH

OOWS (Object Oriented Web Solution) is the extension of the OO-Method that introduces the required expressivity to capture navigational and presentation web application requirements and defines a full software development process for the web.

OO-Method [3] is an OO software production method that provides an object-oriented conceptual modelling technique that includes model-based code generation capabilities and integrates formal specification techniques and conventional notations.

The proposed software production process comprises two major steps: specifying the system and developing the solution. At first, a full specification of the user requirements is built in the specifying the system step. A strategy oriented towards generating the software components that constitute the solution (the final software product) is defined in the second step (see Figure 1).

Methodological Approach
Figure 1: Methodological Approach

The real contribution of the method are: first, the set of techniques that are applied in each step and second, the definition of a precise methodological guide for systematically going from conceptual models to final web applications.

2.1 SPECIFYING THE SYSTEM

Conceptual models are built to appropriately capture the requirements of web applications. The modelling tools that are used by the method allow to specify structural, functional, navigational and presentational requirements of dynamic web applications. The modelling process is divided into two steps:

1. Functional Requirements Elicitation. Techniques based on use cases and scenarios (see Figure 1 dashed box number 1) are applied to build a conceptual schema (class, sequence and state diagrams are built). See detailed information in [1].

2. Conceptual Modelling Activities. A set of models allow to capture and represent the requirements of a Web System from three different points of view (see Figure 1 dashed box number 2):

- a Semantic Model that defines the system structure (its classes, operations and attributes) and structural relationships between classes (specialization, association and aggregation) by means of a Class Diagram,

- a Dynamic Model that describes the different valid object-life sequence for each class of the system using State Diagrams. Also in this model object interactions (communications between objects) are represented by Sequence diagrams,

- a Functional Model that captures the semantics of state changes, using a textual specification derived from an OO formal specification [2] to define service effects.

And finally, the two new models introduced by the OOWS approach (see Figure 1 dashed box number 3):

- a Navigational Model that is built to represent the navigational requirements taking the class diagram as an input. It specifies the navigational semantics of the system by means of a Navigational Diagram (called Navigational Map) for each kind of user. It gives support for the management of user taxonomies, personalisation issues, specificacion reuse, etc. An example of a Navigational Map can be see in Figure 2,

- a Presentational Model that captures the presentational requirements using a set of predefined patterns. It is strongly based on the navigational model.

Navigational Map
Figure 2: Navigational Map

2.2 DEVELOPING THE SOLUTION

This step defines a precise methodological guide for systematically going from the problem space to the solution space. In order to achieve this purpose we introduce a two step method that:

1. Architectural Design: A multi-tier architectural style is proposed taking into account the nature of the web services and their associated middleware architecture.

The tiers of the selected architectural style are the following (see Figure 1):

- Presentation Tier: it includes graphical user interface components (web pages and visual widgets in this case) for interacting with the user (visualizing the data, providing access to services and facilitating navigation). This tier formats the data for different kinds of user interfaces.

- Application Tier: it defines the business logic in the form of XML web services by implementing the structure and funtionality of the classes in the conceptual schema.

- Persistence Tier: it implements the persistence and the access to persistent data in order to hide the details of data repositories to upper tiers.

2. Implementation: A set of correspondences (transformation rules) between the conceptual abstractions and the software elements that implement each tier of the architecture are defined, making intensive use of design patterns. This implementation strategy gives support to some of the new characteristics and constraints that XML Web services provide.

3. CONCLUSIONS AND FURTHER WORK

The ideas presented in this paper extend a current OO method to develop web applications. Two models have been introduced to properly capture web application requirements (navigational and presentation models). They have been integrated into an existing model-driven approach (OO-Method) that is capable to generate code from conceptual schemas.

The method proposes a multi- tier architectural style based on web services to build web applications. These applications are systematically obtained by defining correspondences between the conceptual abstractions and the software components that implement each tier of the architecture using design patterns. This method has been successfully applied to several web projects.

4. ACKNOWLEDGEMENTS

This research work has been sponsored by the CYTED Program, Project VII.18, WEST and the FEDER-CICYT Project with ref. TIC 1FD97-1102 and the Technical University of Valencia, Spain.

5. ADDITIONAL AUTHORS

Manoli Albert (Technical University of Valencia, Spain, email: malbert@dsic.upv.es) and Pedro Valderas (Technical University of Valencia, Spain, email: pvalderas@dsic.upv.es)

6. REFERENCES

  1. E. Insfran, O. Pastor, and R. Wieringa. Requirements Engineering-Based Conceptual Modelling. Requirements Engineering, 7(2):61–72, 2002.
  2. S. Muruguesan and Y. Desphande. Web Engineering. Software Engineering and Web Application Development. Springer LNCS - Hot Topics, 2001
  3. O. Pastor, J. Gomez, E. Insfran, and V. Pelechano. The OO-Method Approach for Information Systems Modelling: From Object-Oriented Conceptual Modeling to Automated Programming. Information Systems, 26(7):507–534, 2001.