Project 2

CIS 422 Software Methodologies - A. Hornof - May 4, 2021

Due Dates

The 3-Page Proposal

The 3-Page Proposal must include (a) an SRS Concept of Operations (see the SRS template) as well a discussion of the real-world users that you could work with to establish the requirements, (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 what is in the Proposal. It can be further developed. The project should evolve. But the 3-page proposal should identify a clear initial idea of what your group would like to do. All writing for this project must follow "Good Writing" as discussed in the course syllabus.

Overview

The initial 3-page SRS/SDS/Project Plan should identify a project that is appropriate for the given resources (time and personnel), and that can be decomposed into multiple modules for parallel development. The project should also be one for which realistic requirements can be established by interacting with real potential users of the system who are not CIS students.

It would be fine if your Project 2 built on your Project 1, with the real-world users being anyone who needed to schedule a vaccination, which ends up being everyone.

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 facts about the world, human needs, and technology.

Assertions require support. There are few ideas that you can state as assertions without providing support. Support usually comes in the form of (a) empirical data (such as through direct observation or user interviews) or (b) citations from reputable newspapers, peer-reviewed journal and conference papers, and technical documentation. But please 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,
  4. specify and plan for testing the installation process,
  5. provide extensive realistic sample data, and
  6. make it easy to see the machine working using all of its functionality.

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.
  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. Instructions must be provided to compile, run, and install all of the code necessary to use the system.
  5. Deviations from these requirements should be requested in writing. Cite the approvals in the final submission, such as "Approved in email from Anthony Hornof to Chi Zhu on 10-27-2020."

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)