Software Architecture and Design - Fruit-of-Binary-Tree/Documentation GitHub Wiki
Description
A public peer review allows a user to rate different papers and as well view the ratings on papers as well as commenting and view comments. Users will be able to see all of these comments and ratings and use them to get idea of how popular the paper is.
In creating the software system, react will be used as the framework which uses javascript and type-script language. React has fast rendering. It has one UI design and using a single code base has one user interface and can be used one both platforms which saves development time.
GitHub will be used as the software configuration management software. An issue tracker on GitHub will be used to keep track of any issues we approach and when it has solved. The Kanboard on GitHub will be used as our scrum task board which shows our product backlog and the tasks and features to be completed.
For the global architecture, we will be the Representational State Transfer (REST) architecture style. Representational State Transfer standardizes web systems. The public peer review software system will be a web-based software system.
For the react architecture, we will use a Model-View-Controller (MVC) architecture style, where the model manages the data and system logic, the view will present the model to the user and the controller accepts the user input and passes it to the model. In the model-view-controller architecture style, the components are separate and interact only through specific interfaces. So, the MVC style has low cohesion and allows the interface between data and the business logic and the user interface to communicate seamlessly. The MVC style is as well easy to modify.
A design pattern method to be used for the importing of questions will be the, Template Method. The template method pattern allows for an algorithm skeleton to be defined in a superclass as a series of high-level steps, with the implementation of these steps defined in subclasses.
Testing method that is used it vertical integration testing, which focuses on testing the user stories. Vertical Integration Testing, tests all the components needed to realize a particular user story. Using the user-acceptance tests, written in a Given-When-then form.
High-level architecture Diagram
Viewpoints: 4+1 Architectural View Model
Logic View
Description
The logic view is concerned with the functionality provided to the users. It will focus on decomposing of the system into a set of objects and classes. In the state diagram, it will show the different actions the user will be able to take and what the action does. In the class diagram, it shows the static views of the classes in the system.
Diagram: State Diagram
Diagram: Class Diagram
Development View
Description
This diagram describes the components used to make the systems functionality. The login component is an interface that will validate the user’s credentials and allow the user to login if successful. If the user has not registered to user the system, an interface is provided to register the user. Once login the user will be provided with an interface with the option of creating a new entry for a new paper, rate and comment on a paper, or to view a paper and the comments and rating. The create entry option has an interface that will allow the user to manually enter the name with the details of the paper. The view papers and feedback option will provide an interface for the user to view the ratings on that specific paper they chose. The logout option will navigate the user back to the login page.
Diagram: Component Diagram
Process View
Description
This activity diagram illustrates the basic interaction of the user with the system. Users will be given valid credentials with which they are expected to use to access the system by the system administrator. Only authorised users will be able to access the system. Upon login the user will be directed to the home page. From here they can navigate to Create New Entry or Rate Paper, they can also log out from the main menu. Create new entry allows the user to create a new entry for a paper. Rate and comment paper will allow a user to select a paper and rate that specific paper based on different categories. The user can then select to view a paper with its ratings and get an idea of what the quality of it is. In the sequence diagram, it represents how the objects in the system interact overtime.
Diagram: Activity Diagram
Diagram: Sequence Diagram
Physical View
Description
This deployment diagram illustrates the hardware and software components of the system. Our public peer review system will be accessible via a web browser. The react application will be hosted on a server along with the firebase database.
Diagram: Deployment Diagram
Scenarios
Description
The scenarios view, also known as use-case view, will show the interaction between the user and the public peer review system. In the public peer review system, a user will be able to, log-in to the system, create new entries for a paper, view paper with its rating and comments and review (rate) papers on different categories. The administrator will control access to the system, by controlling who is and who is not allowed to log-in into the system by the user's username and password. The database is where all the papers that are being created are stored.