Skip to content

Software Requirements Specification (SRS)

AdroDude edited this page Jul 13, 2018 · 14 revisions

Software Requirements Specification

Risk Assessment

Risk Severity Solution
Inexperience with Software High Ensure team communicates effectively to reduce confusion
Time Constraint High Ensure team members are assigned tasks and communicate
Distracting Work Environment Low Use of non-distracting work spaces
Version Control Discrepancies Medium Use of programs such as Github and SourceTree to reduce issues
Unrealistic Goals Medium Ensure that all goals are initially attainable and reevaluate practicality of goals

Introduction

This requirements specification is based on the app "Acquanym"; an application designed to assist users with remembering people who they have recently met. Within this section, readers will find the overall goal of Acquanym, the project scope detailing all the functionality of Acquanym, and an overview of the app.

Goal

Acquanym assists users with developing and maintaining relationships with people they have recently met. This is achieved by alerting users to their acquaintance's location and distance, sharing basic details between acquaintances, and allowing users to write notes about their acquaintance. The app also assists users with meeting new people by listing other users within the immediate area. This project will contribute to further connecting people together and assist users with forming more meaningful relationships with others.

Scope

There are three main functions that constitute the scope of Acquanym: a map displaying nearby contacts and lists detailing nearby users and acquaintances.

The map function of Acquanym displays nearby acquaintances and updates their location over time. This assists users with locating nearby acquaintances.

The user list function helps users find nearby users or to search for a specific user. The distance from each user is displayed and users can be filtered out according to distance.

The acquaintance list function assists with searching for a specific acquaintance. Similar to the user list, acquaintances can be filtered according to distance.

Functions outside the scope of the product but were considered included augmented reality support to assist users with locating other users, a list of recommended acquaintances, the ability to 'upgrade' relationships from acquaintance to friend, and integration of Facebook events.

Overview

Acquanym assists users with remembering people they have recently met. This is achieved by adding other users as "Acquaintances" and taking notes on people you've recently met.

Use Cases

Use cases have not been used for the following reasons:

  • It will require detail description of functionality - something that is likely to change due to the nature of the project
  • Since this project is user-based, user stories provide more of a user focus (use cases focus more on the system functionality)
  • Time constraints prevent a full use case model from being designed

User Stories

User stories have been listed below:

  1. I want to locate my acquaintances around me so that I can meet them.
  2. I want to find people I've encountered so that I can remember them.
  3. I want to view nearby app users so that I know who I can connect with.
  4. I want to find a person by name so that I can add them.
  5. I want to sign in to my account so that I can view my acquaintances.
  6. I want to view my account settings so that I can update my visibility settings.
  7. I want to take notes about a recently added acquaintance so that I can remember details about them.
  8. I want to view my acquaintances' details so that I can remember them.

Non-functional Requirements

  • 5.1 Environmental Requirements A variety of software tools and development environments have been used to create Acquanym.

Software Tools

Tool Description Function
GitHub Web-based hosting service for version control using Git Up-to-date source code and version control
Android Studio Official integrated development environment for Google's Android operating system App Development
Source Tree Develops products for software developers, project managers, and content management Maintains version control
MySQL An enterprise-grade MySQL database service Stores user data

The non functional requirements have been listed below-

  1. Efficiency - it is expected that the algorithms and data structures used will make the app efficient
  2. Reliability - features of the application should be functional the majority of the time, with minimal downtime
  3. Security - the application should not be vulnerable to attacks from 3rd parties
  4. Privacy - confidential user data should not be visible to other users or applications
  5. Simplicity - users should be able to quickly learn how to use the application

Hardware Requirements

The user should have an android device as the app is only compatible with that platform for now.

Additional Requirements

The web server and database have limited storage space and may need to be upgraded to store larger quantities of data in the future

User Interface Prototype