SYSTEM DESIGN

29 May 2018

Logo

After gathering all the requirements from our customer and analysing over them as a team, we moved on to the next phase. In the System Design phase, the different functionalities of the application were represented as UML diagrams.

Behavior Diagrams

For every operation within the app, it’s respective Behavioral diagram was drawn. This basically denoted a ‘Start’, ‘Operation’ and ‘Stop’ stage. This gives a detailed analysis over the sequence of actions. The flow of each operation was represented under this Behavior Diagrams.

Also, since there could be mutiple operations, one foreground activity might, after completing its defined operation, stay and work on the background for another activity to run in the foreground. These cases of parallel processing were represented. An insight over multiple users operating on the app, was studied.

Add a new activity

Add Activity Behavior Diagram

The above figure represents a Behavioral diagram for Adding a new activity. Once the user is Authenticated with the correct PIN, he goes ahead with Adding a New Activity. Next, the user adds activity details such as, Name, Category and Start time & End time. Then the user Saves the Activity within the app.

On contrary, if the PIN is wrong, the user is given 3 trials and then exited from the app.

Share over social networks

Share Activities Behavior Diagram

The above figure represents a Behavioral diagram for Sharing the activities over social networks. Once the user is Authenticated with the correct PIN, he chooses to Review Activities. Next, he chooses the details to share such as, Activity name, Category and Time range filter. Then the user Selects the target recipients and Social networks to share the data. Lastly the user clicks on the Share button.

On contrary, if the PIN is wrong, the user is given 3 trials and then exited from the app.

Export data

Export Activities Behavior Diagram

The above figure represents a Behavioral diagram for Exporting the activity data. Once the user is Authenticated with the correct PIN, he chooses to Review Activities. Next, he chooses the details to export such as, Activity name, Category and Time range filter. Then the user clicks on Export option where he is asked to choose the output type. He can choose among .jpg image file, .csv excel format spreadsheet or .txt notepad format text table. Lastly the user confirms and exports the data as desired.

On contrary, if the PIN is wrong, the user is given 3 trials and then exited from the app.

Interaction diagram

Interaction Diagram

An Interaction diagram denotes the sequence of actions in an UML format. The possible flow of actions that an user attends to, for Exporting data is denoted by this figure.

5 Objects are denoted here as checkpoints along with their respective Timelines and the Messages between them. The time taken to respond to a PIN authentication is also depicted, as Duration constraint. There are 2 directional Arrows. One leading from left to right towards the Activation bar which stands for an action signal and similarly, another leading from right to left for a respond signal.

Class diagrams

A Class Diagram depicting the different functionalities of the application is shown below.

Class Diagram

It is noticed that ‘Activity’, ‘Category’, ‘DataBase Helper’ and ‘Settings’ are our main classes. They have been mapped to the respective behavior diagrams as well.

Each class consists of the Attribute part and the Method part. The Attribute part depicts the different values used in the class and its corresponding data type. Similarly, the Method part depicts the different funtions that make use of the Attributes. It also defines the return types of the functions. Every Method can make use of either one or more than one Attributes.

As seen in the above figure, there are different ways of declaring an Attribute.

’+’ denotes a public declaration which indicates that the attributes are available to other classes as well, without restrictions.

’-‘ on the contrary denotes a private declaration which indicates that the attributes are secure and available within that particular class.

A typical cardinality as denoted in the class diagram (the relation between “Category” and “Activity”) - A category might contain more than one activity but an activity always belongs to at least one category.

Design Pattern

Our main design pattern will be MVC (Model View Controller). There are 3 aspects of this design pattern:

Model View Controller

  1. Model: Activity, Category
  2. View: Activities
  3. Controller: DB Helper

The DB Helper is used to control all the communication with DB and also to update the views which eventually allow us keeping our concerns separate.

Design Pattern

The reasons for choosing MVC design pattern:

  1. Decoupled and reusable code
  2. Making architectural decisions becomes easier
  3. Easy debugging
  4. Easy adaptation for the changing environment

Development strategy

Actilog Plan

Development phase was monitored through GitHub, where we placed our user stories as the integral design parameters for the software system, depending upon the relevance of each user story it was assigned to each of the members in group and moved to ‘in progress’. Once the design was completed each user stories that was assigned to each team member was reviewed during sprints within the presence of whole team.

Actilog Progress

A shared ZenHub portal was used by the team to monitor the progress of the project. We also regularly updated the different issues we faced and maintained a schedule to meet and resolve the same.

Summary of Changes

The requirement phase was constantly updated for each meeting with our customer. It was made sure that the development team and our customer were on the same page. We ensured that the exact requirements of our customer was met.

Below are the changes that were implemented as the application development progressed.

A new post on Implementation of our Design and also details of our progress is in the upcoming sprints.