Software Architecture Document Assignment 2 - Amel94/ITC303-XCoders GitHub Wiki

Software Architecture Document 1.1 Overview

The report will present a detailed analysis of the architecture of Online Examination system. Further sections cover the architectural representation of the project including architectural representation, architectural goals and constraints and use case realizations. The later sections cover the detailed specific details of the 4 main views (logical view, process view, deployment view and implementation view) of the system. Furthermore, the document describes the data view and performance, quality views.

  1. Architectural Representation

This section details the architecture using the views defined in the “4+1” model. The views used to document the Resource Allocation System application are:

2.1 Scenarios

Audience: All the stakeholders of the system, including the end-users. Area: Describes the set of scenarios and/or use cases that represent some significant, central functionality of the system. Describes the actors and use cases for the system. Other than the basic workflow the documents addresses the exception cases, exception outputs, and other related use cases.

2.2 Logical view

Audience: Designers, Programmers, Testing staff Area: Functional requirements, object hierarchy, system layers Describes the design of object model. Also describes the subsystems of the system and their relationships.

2.3 Process view

Audience: Integrators, Programmers Area: Non-functional requirements, describes the design's concurrency and synchronization aspects. Elaborates the run time behavior of the system.

2.4 Development view

Audience: Programmers, Code testers Area: Software components: describes the modules and subsystem divisions of the system.

2.5 Physical view

Audience: Database administrators, System engineers, Deployment managers Area: Persistence: describes the architecturally significant persistent elements in the data model. Describes the mapping of the software onto the hardware and shows the system's distributed aspects

  1. Logical View

3.1 Overview

3.1.1 Subsystems

Resource Allocation System can be divided into 4 main sub systems.

  1. User management subsystem
  2. Resource management subsystem
  3. Project management system
  4. Booking management system

3.1.1.1 User management sub system

This sub system provides the facilities that covers all the user management functionalities. Main use cases that comes under this subsystem includes • User login • New user creation • Update User

Each user that interacts with the system is an actor of these use cases. Depending on the access levels, some actions will not be permitted.

3.1.1.2 Resource management subsystem

This subsystem involves the details of the employees. Main use cases that come under this subsystem includes • Add Resource • Update Resource • Delete Resource

3.1.1.3 Project management subsystem

This subsystem involves the project details of the system. Main use cases that come under this subsystem includes • Add Project • Update Project • Delete Project

3.1.1.4 Booking management subsystem

This subsystem involves the booking details of the system. Main use cases that come under this subsystem includes • Add Booking • Update Booking • Delete Booking

3.1.2 Layering

OES system is divided into 3 layers. The layering model of the Resource Allocation System application is based on a responsibility layering strategy that associates each layer with a particular responsibility. This strategy has been chosen because it isolates various system responsibilities from one another, so that it improves both system development, reusability and maintenance.

  1. Deployment View

Being a web application, this system is hosted in a remote server. The database will be hosted in some other hosting space. Except for the statistical graph generation, all the processing is done in the backend, so that the client computer doesn’t have to spend much of CPU power. In case of statistical graphs generation, all the data processing will be done in the front end, so that the client computer will need a particular level of performance.

  1. Implementation View

2.1 Overview

Resource Allocation System is a web application that follows the MVC architecture pattern. Main reason to use this pattern is to separate functions into layers thus improve the maintainability and reusability. View layer contains the graphical user interfaces (web pages). The actions of these web pages are handled by controller classes. Controller classes invokes and instantiates objects of model classes that contains the business login. Separating software packages in this manner reduces the complexity. The model classes can be subdivided in to two layers. Business layer and the data access layer. Data access layer is manipulated using HIBERNATE framework. Business layer contains the main entity classes such as Student, Lecturer and etc. The object relational mapping is done using the HIBERNATE framework. For each entity in the database there exists a class in the software that provides data access operations to that entity.