Skip to content

2. Project Requirements RSD

Yasser El Kabbout edited this page May 19, 2018 · 1 revision

In this section, we will be listing and discussing the Project's Requirements and anlyzing them.

1. Overall Description

1.1 Product Perspective

This product is a brand-new software in the market. It can be categorized as a Marketing/Sales product, more than a software engineering product. Once the product is developed and installed, no more software interaction and programming will be needed. Meanwhile, The maintenance side and the software life-cycle part will be continued. In addition, some store specific features can be added to the software when requested, like adding new functionalities. E.g. Controlling the products place within the store through a twitter pol.

1.2 Product Functions

The main product functions which the client and the store will benefit from are listed below.

  • Clients suggesting holiday lights colors to the store through twitter.
  • Store related tweets monitoring
  • Store related tweets analysis (holiday lights color related)
  • Automation of holiday lights color
  • Listing the favorite holiday lights color for each store

1.3 User Classes and Characteristics

Totally, the system will have 3 user classes:

  • The Client Perspective: The people or the store’s client who will be tweeting about their favorite holiday lights color.
  • The Store Perspective: The people or the store’s management who will be monitoring the hardware part of this project and where the lights are having place. -The Non-Client Perspective: The people who are not interested in the holiday lights of stores. They can however for fun, check the favorite holiday light color of each store by visiting a dynamic web page.
  • The Developer Perspective: The people or the person responsible about the software side development. Maybe the IT team in the store. These type of users are required in order to add any required new functionalities to the system.

1.4 Operating Environment

The software will be operating on Raspberry Pi 3, which will be connected to the holiday lights within the store. The Raspberry Pi 3 is running Linux (Raspbian) as an operating system and the backend side is developed in Python 3.6. Some cables and breadboards will be needed to connect the Raspberry Pi 3 to the Holiday Lights. For any web development part, HTML, javascript and PHP will be used.

1.5 Design and Implementation Constraints

We believe that the following constraints will be available.

Hardware limitations: We need the system to be using a Raspberry Pi 3 for financial concerns.

  • Timing requirements: We need the system to be done within 3-4 months.
  • Security concerns: We need to have a secure system, where the clients can not cause damage to our twitter account through this device.
  • Database Type: The database should be MySQL as our IT team is experienced with it.
  • Programming Languages: Only Java, JS, HTML, PHP, and Python can be used for this project. Our team can not handle any other programming language.
  • Design document: The design document should be handed to the client, as they may integrate some new features to the system.

2. External Interfaces Requirements

2.1 User Interfaces

For our system, we will have three type of user interfaces mentioned below.

2.1.1 Client’s User Interface

The only interface for the store’s clients people will be their twitter account. No actual GUI is needed as they will be interacting with the system through twitter.

2.1.2 Store’s User Interface

The store will have an application running our the raspberry pi 3(written in Python) used only to inject his twitter account details (the store’s account) so that the Raspberry Pi 3 can function properly.

2.1.3 Public people User Interface

A general user interface without a login page, will be available to the public to check the favorite holiday lights of each store. It will be a list mentioning the stores and their holiday lights’ color.

2.2 Hardware Interfaces

The only hardware interface of this project is the Raspberry Pi 3. It will act as an intermediary between the Python Program (software side) and the holiday Lights within the store. The data will be the users’ tweets. ##2.3 Software Interfaces The software interfaces used for this project are mentioned below.

The Linux operating system will be the host of all the software interfaces.

  • An API in the Backend side will control the data flow in and out from the internet to the database.
  • The database will be MySQL which is communicating directly with the Python program on the Raspberry Pi 3.
  • The Website (for the public) will be communicating with the database through the backend API.

2.3 Communications Interfaces

All the communications between the software interfaces will be communicated through the HTTPs and FTPs protocols. Please note that all of these connections should be encrypted for security reasons.

3. System Feautures

In this section, we will be discussing the functional requirements of this product.

3.1 Tweets Collection

3.1.1 Description and Priority

This is the most critical requirement. The tweets should be collected by the Python program at the very first hand. These tweets are the the ones addressed to the specified store. The program should be able to distinguish these tweets relatively. For example, a tweet for Amazon store, should not fall in the ebay store tweets.

3.1.2 Stimulus/Response Sequences

The twitter user mentioning the store in a tweet and recommending his favorite holiday lights color. For example: @Amazon my favorite holiday color is Green!

3.1.3 Functional Requirements

  • REQ-3.1.3.1: The program will monitor the tweet mentions on the store’s twitter page then collect them in an array list. It will be doing so when the IT team at the store choose to run the Python Script on the Raspberry pi 3.
  • REQ-3.1.3.2: The program should be able to distinguish between the tweets targeting the store in study, and the tweets targeting other stores.
  • REQ-3.1.3.3: The program should be able to distinguish between the tweets related to the Holiday lights color the ones who are not. Some domain should be established. For example: @Amazon my favorite holiday color is White! @Amazon I love the colorful holiday lights!

3.2 Tweets Analysis

3.2.1 Description and Priority

This is a requirement with high priority. The tweets collected by the program should be analyzed to decide the winning holiday color for the store in study.

3.2.2 Stimulus/Response Sequences

The tweets collected in 4.1.

3.2.3 Functional Requirements

  • REQ-3.2.3.1: The program will analyze the collected tweets and specify whether it is recommending the white holiday lights or the colorful holiday lights. This will be done after the tweets are collected, when the IT team runs the program on the raspberry pi 3.
  • REQ-3.2.3.2: The program will count the tweets recommending the white holiday lights and the ones recommending the colorful holiday lights.
  • REQ-3.2.3.3: The program will decide the winning color, which is one having the most tweets (maybe green, yellow, white…).
  • REQ-3.2.3.4: The program will store the result as a String object.

3.3 Winner Color Activation

3.3.1 Description and Priority

This is a requirement with high priority. After the winner color is decided in 4.2, the program should change the holiday lights color after the IT team runs the program on the raspberry pi 3.

3.3.2 Stimulus/Response Sequences

The decision made in 4.2. The Winner Color.

3.3.3 Functional Requirements

  • REQ-3.3.3.1: The program will change the holiday lights color to the winner one. The color having the most votes will be the winner and will be activated. This should be done also after the IT team runs the Python Script on Raspberry pi 3.

3.4 Winner Color database storage

3.4.1 Description and Priority

This is a requirement with low priority. The result obtained regarding the winner color should be stored within the MySQL database.

3.4.2 Stimulus/Response Sequences

The decision made in 4.1, 4.2 and 4.3

3.4.3 Functional Requirements

  • REQ-3.4.3.1: The collected winner color for each store should be stored within the database.

3.5 Providing a simple web interface for the public

3.5.1 Description and Priority

This is a requirement with low priority. After the winner color is decided by the end of each run stage, a webpage should show the winner color related to each store in a tabular format. For example: Amazon --- colorful eBay --- white

3.5.2 Stimulus/Response Sequences

The decision made in 4.3

3.5.3 Functional Requirements

  • REQ-3.5.3.1: The program will provide an web interface for the public in order to check the winner color for each store, on each day. It should be updated regularly automatically through the database.

4. Other Non-Functional Requirements

5.1 Performance Requirements

  • The system shall be both resource-efficient and scalable. That is, as the number of users increases, the system, by adding new resources, should work as if there is only one user. This scalability should be satisfied in a distributed manner.
  • 5.1.1 the system shall have responsive user interfaces (for the public) so that it can be more accessible. It shall support modern web browsers such as Firefox or Chrome and their corresponding mobile versions.
  • 5.1.2 The system shall use and contain only open source technologies, libraries, and tools.
  • 5.1.3 The system shall expose an HTTP RESTful API which supports every user interactions which can also be done via the user interfaces of the system. This API shall have complete documentation.

5.2 Safety Requirements

  • 5.2.1 The system should not cause any damage to the store, or to the holiday’s lights connected to it.
  • 5.2.2 The system should be safe to use, and reporting any abnormal temperature changes within the lights or the raspberry pi 3.

5.3 Security Requirements

  • 5.3.1 The raspberry Pi 3 and the Python program should as secure as possible. Usage of encryption in all the data processing parts will be required.
  • 5.3.2 The twitter account connected to the raspberry pi 3 should not get any damage from the users’ tweets. It should be only collecting their tweets and ignoring any unsuitable ones.
Clone this wiki locally