System Architecture - coconutbmp/leash GitHub Wiki

High Level Outline

We decided upon a 3-tier architectural style with closed layers. This made the most sense, as it fits with the business rules; given requirements and allows us to easily make changes to the individual components later on in the development cycles of future sprints if need be. Some more precise reasons why we picked this architectural style include:

We had an idea of what server we would be using for the software to be and knew that it would provide greater scalability; security and maintenance.

Due to the separation of concerns into three layers, we could allocate members to primarily focus on separate aspects of the software solution. This reduces the number of people assigned to a more significant overall task and thus reduces confusion and communication problems between members.

It will be easier to maintain; upgrade and test due to the separate layers.

There are a few layers. This reduces the complexity and reduces the chances of the system drifting into a monolithic system.

As the layers are closed, a significant amount of processing must be done at each layer which prevents the formation of an architectural sinkhole.

Our 3-Tier Client-Server Architectural Style can be described as follows:

Presentation layer: This will be used to handle the user interface and will be rendered on the user’s browser. The languages that will be used to accomplish this task are: XML and Java

Application layer: This will be used to handle the logic of the system and make network requests. The languages that would be used to accomplish this task are Java and PHP and we'll make use of the OkHttp package in Java for the requests.

Database layer: This will handle the storage and retrieval of the data from a database. The Database Management Service that we decided to use is AWS RDS. We'll be using MySQL to query the database.

Some 4+1 Architecture Diagrams


Scenarios: Use Case Diagram

UseCaseDiagram

Physical View: Deployment Diagram

Screenshot (25)

Process View: Activity Diagram

image

Process View: Sequence Diagrams

FinalSequence1 FinalSequence2 FinalSequence3

Logical View: State Diagrams

image Logical View: Class Diagram ClassDiagram1

Development View: Component Diagram

image