10-08-2012, 03:25 PM
Composing analysis patterns to build complex models: Flight reservation
Composing analysis patterns.pdf (Size: 722.82 KB / Downloads: 68)
Abstract
In previous work we developed the concept of Semantic Analysis Patterns (SAPs). SAPs are mini-applications realizing a few use cases selected so as to make them as generic as possible. One of the objectives of this approach is to make SAPs a convenient way for inexperienced modelers to build complex object-oriented models. In this paper we show the use of SAPs to build complex analysis patterns from the combination of simpler patterns. We also claim that this approach provides models that are also extensible and reusable. We present here a case study (a flight reservation system) showing how SAPs can be composed to build complex models in a convenient way. In developing our set of patterns we created one pattern and specialized some existing patterns in the context of flight reservations. These patterns provide a common structure, that has to be present in any flight reservation system, but they also can be of independent value.
Introduction
When dealing with the specification, design, or implementation of a number of similar applications, common parts can be found. These parts can be specified as patterns that are independent from a particular specification, implementation details, or implementation language. Sometimes such modules are not so simple: a general module that can satisfy different purposes is not trivial. Moreover, the more complicated modules often vary slightly from application to application. As the number of applications increases, their management becomes increasingly difficult and unwieldy. In previous work [Fer00a], we developed the concept of Semantic Analysis Pattern (SAP), which emphasizes functional aspects of the application model as opposed to improving flexibility as in most design and analysis patterns. The main purpose of this type of pattern is to serve as a starting point when translating requirements into a conceptual model.
Requirements as common context
A flight reservation system is a commonly used system. Typically a customer places an order for seats in a combination of connected flights from an origin to a destination airport. The customer and the system need to check the feasibility of flight connections and their schedule. Because of the complexity of this application, it is difficult to build it as one unit. We show here that by composing some simple patterns we can build this application as a SAP in a systematic way. The atomic or component patterns correspond to specific functions of the system and can be either new patterns or existing patterns, perhaps specialized for the application. Because of the way the whole application is built, the resulting model is also flexible and reusable. The final composite system could also be the basis for a framework.
Forces
For each right to go from one place to another in a particular flight we need to have a description. A TicketUnit is a representation of that right.
A TicketUnit defines a seat reservation for a flight corresponding to a particular span. The seat may not be defined when the ticket is issued.
To produce the Ticket Unit the availability of a seat and the feasibility of a connecting span and its connecting flight must be confirmed.