Skip to content

Latest commit

 

History

History
59 lines (42 loc) · 2.95 KB

File metadata and controls

59 lines (42 loc) · 2.95 KB

FlightManager

An Exemplary Stateful Web Application

Flight Manager is a mid-size stateful web application, developed at the Software Technologies Lab of the University of Florence and it provides an exemplary implementation of a sound and widely adopted combination of architectural patterns.

The application structure implements a 3-tier stateful architecture, outlined in the UML Deployment Diagram of Fig. 1.

Fig. 1 Flight Manager Architecture

The Data Source is implemented by a Relational Database Management System (RDBMS), connected to the Domain Model (represented in the class diagram of Fig. 2) by a Data Access Layer, featuring a Data Access Object (DAO) for each main Entity (for a total of 6 DAO classes), which exploits services of an Object Relational Mapping (ORM) framework.

Fig. 2 Class Diagram

The Presentation Layer is organised in a User Interface made of XHTML pages (represented in the page navigation diagram of Fig. 3) and a Business Logic Layer that features Controllers implementing the navigation logic and other components maintaining information accumulated along the user interaction (roughly, 30 classes).

Fig. 3 Page Navigation Diagram

Flight Manager is implemented adopting specifications of the Java/Jakarta Enterprise Edition (JEE) ecosystem. In particular, ORM relies on the Java Persistence API (JPA, here provided by Hibernate), and interface XHTML pages are based on Java Server Faces (JSF). DI and Automated Contexts Management for objects running in the Business Logic layer is implemented using Contexts and Dependency Injection (CDI, here provided by the Weld reference implementation).

Use Cases

Flight Manager features functions in the context of an online flight booking system supporting registered and unregistered users (Use Case Diagram of Fig 5) and also administrator user (Use Case Diagram of Fig 5). For each use case a different test suites fulfilling different coverage criteria was developed on top of the related managed components Data Flow Graphs obtained through the methodology depicted in "Model-Based Testing of Web Applications with automated lifecycle management of injected components" paper.

Fig. 4 Use Case Diagram for Regular Users

Fig. 5 Use Case Diagram for Administrator Users