Project 2 - Building on Geospatial Data for Social Distancing

CIS 422 Software Methodologies - A. Hornof - May 7, 2020

Addendums

Please see the Project 2 Addendums for new information on the project.

Due Dates

The 3-Page Proposal

The 3-Page Proposal must include (a) an SRS Concept of Operations, (b) an SDS system overview, software architecture, and list of technology intended to be used, and (c) a project timeline. Each of these three items must be on a separate page of the proposal. You are not committing to exactly what you write in the proposal. The project should evolve. But the proposal should identify a clear initial idea of what your group intends to do in Project 2. All writing for this project must follow "Produce Good Writing" as discussed in the course syllabus.

Overview

Project 2 needs to build on Project 1, but it can do so in many different ways. Project 2 could introduce new functionality such as ideas discussed in the Project 2 Student Idea Generation document (PDF). You may build on the ideas of other students, but you should provide attribution.

Project 2 could also be a complete redo of Project 1 provided that Project 2 introduces substantial new requirements and a substantial new design; and perhaps even a new plan for managing the project. New requirements and design could include, for example:

  1. Removing fragile and unnecessary dependencies.
  2. Design for installation by designing for continuous monitoring and reporting of the status of individual components and inter-module connections.
  3. Addressing privacy and security issues inherent in Project 1.

Your Requirements Analysis Must be Valid and Sound: Don't Make Stuff Up

Build systems that address real human needs. Do not build systems that rely on your guesses regarding (a) human needs and (b) technology that might help address human needs. Don't make stuff up. Your Concept of Operations, Use Cases, and all other aspects of your SRS must be based on correct and real understandings of things like (a) how COVID-19 is transmitted, (b) spreading patterns of COVID-19, (c) human technology usage patterns, and (d) human activity patterns during the COVID-19 pandemic. These understandings can come from, for example: (a) interviews, (b) peer-reviewed research papers, and (c) newspaper articles from reputable sources (such as the New York Times or the Washington Post). Direct observation in public settings would also be a valid source of data but, for health and safety, this cannot be recommended during the pandemic.

Assertions require support. There are few ideas that you can state as assertions without providing support. Support usually comes in the form of empirical data (direct observation) or citing of the research literature. For example, even the seemingly obvious assertion that "People do not generally keep their phones open to a single browser application when visiting a store" needs to be supported by citing empirical data (such as from interviews), a research study that analyzes cell phone use during shopping, or direct observation (after the pandemic ends).

Note how the Project 1 Project Description provides a form of a requirements analysis, and builds the case for a need for technology systems to assist with social distancing. Note how the project description develops an understanding of peoples' needs and the technology currently available to meet those needs. The understanding was gained by studying articles from reputable online newspapers, peer-reviewed journal and conference papers, and technical documentation. This, plus with conducting user interviews, is the sort of approach you should take to develop your Project 2 SRS Concept of Operations.

Don't make stuff up.

Design for Installation

Requirements and Design can focus on ease-of-installation by designing for continuous monitoring and reporting of the status of (a) individual components and (b) inter-module connections. For example, you could generate requirements that:

  1. minimize black-box dependencies,
  2. require components to continuously component status and failures,
  3. dictate aspects of the installation process, and
  4. specify and plan for testing the installation process.

Here is a summary of some Common Issues in Project 1, and Ideas for Project 2 (PDF), from the class lecture on May 8, 2020.

Your System Could Prioritize Privacy and Security

These links discuss the privacy and security concern that has arisen over applications like that proposed in Project 1. A careful reading and analysis of articles such as these could support a Concept of Operations for privacy and security requirements in Project 2.

We need mass surveillance to fight covid-19—but it doesn’t have to be creepy - Genevieve Bell. This author, Genevieve Bell, is an anthropologist who, for many years, headed Intel's human-computer interaction (HCI) group in Hillsboro, Oregon. Dr. Bell is highly regarded in the field of HCI for her deep qualitative exploration of people and their relationship to technology.

Can We Track COVID-19 and Protect Privacy at the Same Time? - The New Yorker

Does Covid-19 Contact Tracing Pose a Privacy Risk? Your Questions, Answered - Wired

Clever Cryptography Could Protect Privacy in Covid-19 Contact-Tracing Apps - Wired

Technical Requirements

This section presents a minimum set of technical requirements. Your projects should generate many more than just these.

  1. The delivered system should be complete. For example, if the system will use a server to collect data, the system must include full instructions on how to set up such a server. The steps involved, and the instructions must be at least as simple as this: MySQL - Using mysqlctl
  2. Systems should use standard libraries to the extent possible. For example, if written in Python, the systems should primarily use the Python Standard Library. Written permission must be obtained to use any libraries or packages beyond the standard libraries for a language. Permission to use the Google Maps API is granted to all.
  3. Installing and running the system should require little or no software to be installed. To this end, no virtual environments, and no gaming engines such as Unity, should need to be installed.
  4. Flask may be used in venv on ix.
  5. Instructions must be provided to compile, run, and install all of the code necessary to use the system.
  6. Deviations from these requirements should be requested in writing as described in the Project 1 Addendum. Cite the approvals in the final submission, such as "Approved in email from Anthony Hornof to Fred Chappelle on 10-27-2019."

Project Handouts

Comment Your Code
Evaluation Criteria
How to Present
How to Submit
Initial Group Meetings
Instructor Meetings
Peer Evaluation Form (PDF)
SRS & SDS Templates

Miscellaneous Links

NRL Dual Task SRS
System Documentation
UML Notation (Kieras) (PDF)
UML Notation (Fowler) (PDF)