Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSCI 310 Software Engineering

PROJECT 2.1

Overview: In the remainder of this semester, your team must build an Android application (see a list of  four project descriptions attached to the end of this document). In this particular assignment, you must focus on requirements for the Android application assigned to you, and deliver a requirements                 specification using notations discussed during the lecture (and in Chapters 4 and 5 of the textbook).

Objective: The objective is to gain experience in gathering requirements from the customer, as well as specifying the requirements in a document.

Description: Each Android application described at the end of this document will have a customer (one of the four TAs) who has several requirements for you to meet. You will work with your customer closely throughout the semester, and your goal is to deliver a software that satisfies your customer.

For this assignment (Project 2.1), you will obtain the initial user requirements from short in-classroom presentations by the customers and to elicit the necessary information afterwards to convert them into system requirements. Refer to Chapter 4 of the textbook for the differences between user requirements and system requirements.

You  may  use email and/or visit your customer’s office  hours to clarify and  refine the  requirements. Please  allow  for  a  48-hour  response  time  during  weekdays  if  you  elect  to  email  your  customer specifically regarding project requirements, using “CS 310 – Project 2.1” as the subject of the email.

You may schedule a meeting with your customer if you demonstrate that there is a special need or circumstance. Your customer will determine if there is an actual need and justification for meeting (e.g., just because you got a late start on the assignment would not be a satisfactory reason).

Please note that

1.   your customer may not have the complete technical and/or domain knowledge, and thus may be unclear in the requirements;

2.   your  customer  may  change the  requirements  along the way;  customers  change their  minds frequently and they sometimes are guided by the IKIWISI (“I’ll know it when I see it”) principle;

3.   your customer may have conflicting requirements without realizing it; and

4.   your customer may have unreasonably hard-to-implement requirements.

In this particular assignment, your job is to communicate with your customer and elicit the requirements and complete the specification. Please feel free to negotiate the requirements with your customer, but be aware of your competitors (the other CSCI 310 teams) - if you cut too many corners to be able to complete the project, your customer may “purchase” another team’s solution.

Deliverable: Your team will deliver a requirements specification document. As a baseline, you must use a combination of plain English, with numbered paragraphs indicating different requirements and their   sub-requirements (as discussed during the lecture and in Chapter 4). You must also include at least one  of the system models (context diagram, process diagram, or use case diagram) discussed in Chapter 5.1  of the textbook.

Your requirements document must have the following sections:

1.    Project Title and Authors

a.    Your assigned team number (from 01 to ##)

b.    Optionally a cool name you select for your team

c.    A list of all team members (names and USC ID numbers)

2.    Preface

3.    Introduction

4.   Glossary

5.    User Requirements Specification

a.    User stories -- at least five (5) user stories

6.   System Requirements Specification

a.    Functional Requirements -- detailed “use case scenario” for each user story

b.    Non-functional Requirements -- at least two (2) non-functional requirements

7.   System Model (one of the diagrams below)

○     Context Diagram (see Figure 5.1 of the textbook for an example)

○     Process Diagram (see Figure 5.2 of the textbook for an example)

○     Use Case Diagram (see Figure 5.3 of the textbook for an example)

Grading Rubric: The assignment will be graded out of a maximum of 100 points.

      High-level checks (10 points)

o PDF format; has all required team information; each requirement is uniquely numbered; has a table of content; has page numbers

      Preface check (2 points)

o Describe the project in a nutshell

      Introduction check (3 points)

o Motivate the need; outline the main functions; related to similar software

     Glossary check (5 points)

o Define the key technical terms used in the remainder of the document

      User requirements check (20 points)

o Have at least five (5) user stories

o User stories covering the essential functionalities of the application

     System requirements check (50 points)

o Have detailed “use case scenarios” for five (5) user stories

o Have at least two (2) non-functional requirements

     System model check (10 points)

o At least one (1) of the three types of diagrams mentioned

Project 1. Covid + Tracker = Covider (Customer: Negar Abolhassani)

Description:

Contact tracing is a tried and tested method for containing epidemics. It involves the identification of        people who have come into close contact with an infected person, testing them for infection, and, in case   of an infection, tracing their own contacts to reduce the spread of infection throughout the population.        However, manual contact tracing is labor-intensive and error-prone for handling COVID- 19. Hence, there has been extensive interest in the development of digital COVID-19 tracking apps around the world.          At USC we stepped up to develop an easy-to-use Android app named Covider to help our Trojan family.   The goal of this app is to keep our community safe against Covid-19 while making sure that the campus    stays open and active. Using this app every trojan provides trustworthy and updated information to keep    the trojan family informed and to help them make COVID-safe decisions.

The current version ofthe app has two types ofusers: students and instructors. It (1) performs COVID- 19 risk assessment, (2) tracks and reports COVID-19 information, and (3) helps with risk management.

To fulfill these three requirements, Covider should implement the following features:

1.   Risk Assessment: Covider estimates and displays the risk of COVID-19 exposure at different locations on campus.

a.   App behavior: When users open the app, they should be able to receive information about the risk of COVID-19 in USC buildings. The app is expected to display USC buildings     both on a map and as a list. Two types of locations should be marked distinctly: (1) each   user’s frequently visited locations, and (2) locations that they should visit based on their    daily schedule. When a user clicks on each building, the app should show the COVID-19  exposure risk level at that building, its entry requirements, and how to satisfy them.

b.   Important Notes: You should define the risk factor based on the information that users enter. The entry requirements are defined by the university and are entered into the      database by admins.

2.   Track and Report: Covider tracks users' movements and their health status to alert people if they are exposed to COVID-19.

a.   App behavior: Users should be able to enter COVID-related information in the app. In

general, we are interested in two types of information: (1) users’ health information, and   (2) COVID safety measures at USC buildings. For (1) each user must fill out a form          about their health state daily to report the symptoms they have or COVID test results. If a user reports symptoms or a positive test result, the app sends notifications to people that    were in contact with them during a specific time frame. Depending on the user’s risk of    having covid, their close contacts may be mandated or recommended to do a COVID test. For (2) they should be able to check-in at different USC buildings. They also may answer a few questions about covid safety measures in each place with their check-in to inform    the community and also help with computing the risk factor.

b.   Important Notes: Close contact definition should be done by you based on the check-ins and work/class schedules.

3.   Risk Management: it lets instructors monitor the health status of students to determine how to hold the class to minimize the risk of COVID-19.

a.   App behavior: Instructors should be able to see the health status ofthe students in their classes over different time periods (e.g. daily, weekly, monthly). Based on the health     history of students, instructors can assess the risk of holding their class in person and     decide how they want to hold their class (i.e. remotely, hybrid, or in-person). The app    provides instructors to notify students about their decision immediately. Also, when an  instructor reports symptoms or a positive test, the app lets everyone know that the          instructor holds all classes remotely by sending notifications.

To develop the three features mentioned above, Covider needs the following basic features:

1.   Each user should have their own profile.

2.   Each profile contains the personal information ofusers such as test records and class/work schedule.

3.   A list of USC buildings and their relevant information should be provided and entered into the database.

Each group member is responsible for implementing one of the main three features, but implementing the basic ones is everyone’s responsibility.

Project 2. USCDoorDrink (Customer: Zunchen Huang)

Description:

Coffee and tea lovers at USC always feel they need a cup of coffee or tea to refresh during school time.

Now they only use general map apps to find favorite spots to sip and relax. However, there should be much more in an app than just pointing out the way to coffee shops and tea houses. For example, general map apps cannot record which type of coffee or tea you drink. Also, due to covid situation, many students may  prefer  their  drinks  delivered  to  their  door!  Thus,  a  customized  Android  application  named “USCDoorDrink” would be popular.

USCDoorDrink is not just a map app. It should implement the following features:

Basic Features:

It supports two types of users – coffee/tea drinkers and sellers. A user should have his or her own profile. Basic profile information should be loaded whenever the user login.

Feature 1:

When users open the app, they should see a map that shows where they are. On the map, they can see markers for nearby coffee shops and tea houses. When the users click, the app should show the route from the store to their home and time needed for delivery. Several means to reach the destination should be provided, e.g., biking or driving. The users should also see information of the store, e.g., menu and discount. When they order, they can click the item on the menu and the app should store the details ofthe order and both customers and sellers can see the orders.

Feature 2:

When the deliveryman arrives at the user’s home address, the app should record trip information: when and how long it took. Coffeeholics/teaholics may drink too many cups for a day. They need to be alerted when  the  caffeine  intake  is  too  much.  Quote  from  USDA  “Currently,  strong  evidence  shows  that consumption of coffee within the moderate range (3 to 5 cups per day or up to 400 mg/d caffeine) is not associated with increased long-term health risks among healthy individuals.”

Feature 3:

Coffee and tea lovers need to know their spending history. They should be able to tell during a time period (daily, weekly, monthly) which places they visited, which beverages they drank, etc. The app should  show them  a  chart when  they want  to  access  their history  data. Users  get recommendation notifications from their history.

Each group member is responsible for implementing one of the main three features, but implementing the basic ones is everyone’s responsibility.

Project 3. USCRecApp (Customer: Yannan Li)

Description:

USC requires users to make reservations before accessing any of the USC recreation centers (e.g., Lyon Center). “USCRecApp” is an app to help students make reservations online.

Basic Feature:

There is one type of user. Every user has a profile including the name, student id, and photo.

Feature 1:

When users open the app, they will see a map showing all the USC recreation centers. When users click    one recreation center, the app will show a booking page of this recreation center (defined in Feature 2).     The upcoming appointments are also seen in a small window at the corner. When users click the window, the app will show a summary page (defined in Feature 3).

Feature 2:

On the booking page of a certain recreation center, there are serval time slots and each time slot contains several spots available. Users can book times ifthere are available spots. The recreation center                 availability also adjusts accordingly. If a time slot is unavailable, the user can click the "remind me"        button and will be added to the waiting list.

Feature 3:

On the summary page, users can track their booking information: upcoming bookings and previous      bookings. Users can cancel upcoming bookings and the canceled bookings will be no longer shown.     Accordingly, the center availability will be updated and all the people in the waiting list (if applicable) will be notified.

Each group member is responsible for implementing one of the main three features, but implementing the basic ones is everyone’s responsibility.

Project 4. Easy Team Up (Customer: Zhaoxu Zhang)

Description

How do you find a partner to form a study group or do sports together? Post into different chat groups or message others one by one? No matter which, it is going to make the organizing work laborious and        difficult to manage. Even more, people who might be interested might be dismissed because they missed the chat message or you don’t even know them. And you, at the same time, lose a chance to meet with a  new friend.

To facilitate this situation, in this project, we are going to create an Android app that provides a platform   for students to team up or gather together. In this app, users can post invitations for their events and           everybody else could see and join it. This is going to help students manage their social events more easily and also expose them to more social opportunities. Following are the features that need to be                      implemented in this project. Each group member is responsible for implementing one ofthe three main     features, but implementing the basic one is everyone’s responsibility.

Basic Feature

The app should support user sign up and login and provide a profile to each user. In the profile, the user is able to set photos and other personal information.

Feature 1: View Active Events

Users are able to view all public event invitations. This can be displayed: (1) in a list (2) in a map where each event was marked based on their location. By clicking the event, users can view the details ofthe    post. The user can choose to sign up for events and choose time slots that work for themselves. This       action will notify the owner of the post. After the due time, the app will determine the time for an event  satisfying most participants and notify everyone ofthem.

Feature 2: Create Event Invitations

The user can create event invitations. In the invitation, they can specify the type of event, proposed time   slots, due time and other information specific for different types of event. They can also invite someone   (by searching user ID) to join the event in the post. Each post can be made public which can be joined by all people or private which only invited people can view and join.

Feature 3: Manage Invitations

Users can track their event history including posts created by them, they received and the events they        signed up for. For their own posts, they can also make changes to it before the due time, which will notify all participants. For invitations they received, they can choose to accept or reject. They can also withdraw from the event they signed up for, which will notify the owner.

Each group member is responsible for implementing one of the main three features, but implementing the basic ones is everyone’s responsibility.