Skip to content

System Design

Yasemin Alpay edited this page Oct 29, 2017 · 7 revisions

1. System Design

1.1. System Architecture

1.1.1. System Goals

  • Technical Overview

Living History application is an client-server application so it consists of a client side which is a mobile application executing both on Android and iOS platforms. On the other hand, a server side which is a Restful API makes required operations over data. In order to make this system available, Ubuntu servers, web service written in JAVA Spring platform and a client side written using React Native will be used.

1.1.2. System Architecture

For architectural design of Wild application, multi-tier architecture approach was chosen. The details of high level architecture are as following.

System Structure

The multi-tier approach provides variety of advantages to system and these positive sides can be summarized as follows.

  • Security: The system is divided different tiers and each of them runs on different physical servers; hence, for each layer, different security precautions can be applied. For example, the web server is hacked, application server can stay safe without being affected.

  • Scalability: Each tier is independent from each other; hence, middle-tier can be scaled if it is necessary.

  • Reuse and Maintenance: A single physical middle-tier can be shared by a number of clients; therefore, reuse and maintenance are increased substantially.

1.2. System Structure

1.2.1. Structure Model

Model-View-Controller(MVC) design pattern will be implemented during system development since separated presentation is essence of MVC; that is, separated presentation makes separation between domain and presentation clearly. Therefore, it is suitable choice for multi-tier architecture. View part of MVC will represent presentation tier of multi-tier architecture, controller is equals to middle-tier and finally model part is highly connected to database. Ultimately, structure model of application will look like as following figure abstractly.

Structure Model

1.3. Class Diagram

In respect of system structure model, class design also follows basic principles. Controller classes will communicate with database with repository classes and handover data transfer objects throughout the system.

Structure Model