Final project documents

Since assignment 2, you have been developing a system with different kinds of users, that stores/uses a collection of data. Separation/decomposition into subsystems includes a front end (User Interface), Control Subsystem, and back end (database or file storage).
  1. Send me your documents (files) electronically comprising your project:
    1. You can email me a compressed file (e.g. 7zip) or share via Google drive or via git or bitbucket (version control software), or you can send me the URL of your source code reposity, or URL of a website (e.g. on panther, Google sites) that has your documentation.
    2. With the exception of the critical self-reflection document (emailed to me individually), the rest of the documents are a group submission (one submission per group).
  2. Please name each file descriptively (e.g. Requirements) and use appropriate headings within each file:
    1. Previous project related assignments, which includes your project proposal, initial requirements, sprint plans (with done criteria and test plans for each sprint...), progress reports (with outcomes of tests...).
      • Requirements specification (answers the question "what"), including functional and non-functional requirements, and updates (e.g. you updated statuses of milestones following sprints). This is the final version of the requirements document you submitted for HW 5 which has: Requirement ID, sprint/milestone scheduled, priority (Must, Should, Could, Won't), and current status.
        • You may use your own format or table, or a requirements document template as a starting point. Include all functional and non-functional requirements. Functional requirements are features / actions performed by the system (which you have expressed in the form of user stories) and non-functional requirements are known as "quality attributes" (described in slides #2). Update as needed your glossary of terms (analysis objects (slide 29- of slides#2)). When writing/revising your requirements, try to follow the S.M.A.R.T. criteria.
      • User manual (what does the user need to know to use your system, step-by-step, with screen shots). Are there any programs other than yours that need to be installed, and configured? Your audience for this document is a non-technical user.
      • Technology choices (hardware and software) and tools for program development (design, implementation, testing, version control, etc), with rationales for decisions. If a decision was informed by experimentation or by scholarly research, describe your experiment or research.
      • Design (answers the question "how" will your system satisfy its requirements):
        • How your program's components fit together
        • ER / UML diagrams, e.g. use case and object diagrams (revised as needed) you submitted for assignment #3).
        • Discussion of issues, and evaluation of alternative solutions, i.e. rationale for your design decisions. If a decision was informed by experimentation or by scholarly research, describe your experiment or research.
        • Outline how to maintain your source code; you may do this by discussing how you designed for ease of maintainance (e.g. abstract data types, method decomposition, separation of model and view, boundary objects for front end and back end, allowing e.g. ease of switching later from a file system backend to a database backend). `
        • Did you use a design pattern? If yes, which one(s) ? Examples of creational patterns are: interfaces (that include method headers and comments) used by your system, Singleton pattern, Factory pattern (e.g. hw4 solution). Patterns are descibed further in slides#5 and here. `
        • Include any special configuration settings within your software that you used (e.g. an interface that has constants representing different settings/choices).
      • Implementation (the code itself, documented e.g. javadoc, preconditions and postconditions)
      • Testing
        • Test plan (describe how you are going to test your system: unit tests, integration tests, acceptance tests ; include both expected and alternate scenarios)
        • Test results (what were the results when you executed each of the tests in your test plan?)
      • Development log or consistent use of change management tool e.g. Bitbucket or github (regarding the software development (above steps), what was done when and by whom?
    2. If you created presentation slides (e.g. Powerpoint file), include this.
    3. References (e.g. course materials, textbooks, reliable online sources, tutorials and/or other sources that you referred to during the entire process of working on your project)