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.
Web engineering, conceptual models, code generation, design patterns, development methods, object orientation.
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).
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).
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.
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.
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.
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.
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)