Software Release
This document describes your team’s final submission for the term.
Requirements
At this time of this submission, your project should be complete, with all features delivered and tested. Your project should be complete and consistent, meaning that what is described in your GitLab project and documentation reflects the features that you ultimately delivered.
For this submission, you are required to address the items below.
| Section | Description |
|---|---|
| A. Revise Documentation | Complete and revise your documentation |
| B. Finalize your Source Code | Merge branches, finalize unit tests, comment code |
| C. Update your GitLab project | Close sprints, update and reassign issues |
| D. Produce a Software Release | Generate an installable version of your product |
These items are described in more details below. All of these items should be stored in your GitLab project.
A. Revise Documentation
Your project documentation will consist of the up-to-date versions of the documents that you have been generating all term, as well as some new documents.
Documentation should be stored as Wiki pages in your GitLab repository, and linked from the README file. Documents should be named after the sections provided e.g., as wiki pages names “User Documentation”, “Design Diagrams” and so on.
You should have the following documents in your GitLab repository.
README file
The README.md file in your source code repository is the landing page for your project. The contents of this file should reflect the final state of your project. You should have most of these contents already fleshed out, but new items are marked as such as explained in later sections.
Your README.md should contain the following sections and contents:
README Contents
1. Description (link)
- The product title or name,
- A brief product description,
- Team names and contact info,
- A screenshot of your main window/screen (new, embedded),
- A link to a YouTube video showcasing your project (new, link),
- Acknowledgements (new, embedded).
- Releases (new, see below)
2. Project Information (link)
- Team Contract (unchanged, link to earlier submission),
- Project Proposal (unchanged, link to earlier submission),
- Meeting Minutes (link to updated log files from the entire term),
- Developer Logs (link to updated log files from the entire term),
- Team Reflections (new, link to Wiki page).
3. User Guide (link)
- Getting Started (new, see below),
- Usage Guide (new, see below).
4. Design Documents (link)
- ERD Diagram (link to updated diagram),
- Class Diagrams (new, see below).
5. Grading Instructions (link)
- Any additional information that your TA might need to grade your project.
Description
Much of this information should already be in your README.me file. New contents include:
- Add a screenshot depicting your main window or screen. This should just be illustrative of what your application looks like.
- Create a video walkthrough of your application (1m to 2m in length) and post it on YouTube.
- This should be a brief introduction to your features for a new user. Link to the video here.
- The video should be publically accessible from the link.
- Acknowledgements should list any external sources that you used for your project. This includes but is not limited to:
- A list of external source code references that you used, following our external contribution guidelines. This could be snippets from a website, or GitHub, or even source code copied from a book.
- A list of third-party libraries that you used (name/link is sufficient).
Project Information
This section should link to your existing documentation.
Additionally you need to add a Team Reflections wiki page. Generating this should be a team activity, and it should be a maximum of 1 page.
- What features did you not complete?
- Why did you drop them? How did you choose?
- Discuss the software engineering practices that you used:
- What “best practices” did you adopt? Which ones were effective? Which ones were not effective?
- Did you as a team adapt or change as the project progressed? If so, how and why?
- In your next project, what would you do differently?
- Discuss technical/design challenges:
- What design/solution are you particularly proud of, and why?
- What was the most difficult technical challenge you faced as a team, and how did you overcome it?
User Guide
You are required to write a guide for new users, which supplements the introductory video that you created (above). This should be one or more Wiki pages.
You should have a Getting Started guide that includes:
- Details on what platform and/or device is supported.
- Instructions on how to install your product. A bulleted list is accepted as long as it’s clear.
- For desktop, this should include steps on how to run the installer.
- For Android, discuss setting up the AVD and dragging the APK into it the launch it.
- If there are any other instructions e.g., how to launch your server, include them here.
You should also have a Usage Guide that provides guidelines on how to use your main product features.
- If your product is complex, you should include diagrams or screenshots.
- This section should be sufficient to explain to a new user how to use your product.
Design Documents
This section should include the following diagrams.
- Entity-Relationship Diagram showing your final database schema.
- UML class diagrams for the main classes in your application.
- Focus on your “most important” classes:
entities,modelsandview models. You do not need to create diagrams for external systems like your database or the user interface compose functions (although you do need to diagramview modelclasses, and it should be clear in your diagram which screen each one is supporting). - Make sure that you illustrate where the classes “fit” in a Layered Architecture e.g., organise classes into layers.
- Focus on your “most important” classes:
Grading Instructions
This section should include anything else that your TA might need to know before grading your project. e.g.,
- “You need to set the environment variable AUTH_TOKEN” to a valid GitLab token…"
- “We have a web service that needs to be launched, and here’s the instructions for doing that.”
B. Finalize Your Source Code
All of your code should be committed and merged to the main branch of your Git repository.
- Your project should be buildable from the
mainbranch, either via Gradle or within an IDE. - Installers should be buildable from
mainusing Gradle tasks. If there are manual steps required to build your project, they must be documented in grading instructions. - Unit tests must be included for all
entities,modelsandview models.
C. Update your GitLab Project
Your project in GitLab should accurately reflect the state of your project.
- Issues should be assigned to the appropriate sprint milestones.
- A
completedsprint should only contain the issues that were closed during that sprint. - Issues that are still unresolved should not be assigned to a Sprint.
- A
- Issue status is correct i.e. completed and merged features should be marked as closed in GitLab.
- If an issue remains open, then the code for that issue should NOT be merged back into
main, but should remain on a feature branch.
D. Product a Software Release
You should follow the software release process. This will result in an installable version of your software and release-notes wiki page containing details.
Make sure to link this page to your README file as well.
Submission
The deadline is 11:59 PM on the final day of the term; see the schedule for details. You do not need to actually submit anything; we will grade what is posted in your GitLab project at the deadline.
Grading
The grading scheme is available in Learn under Resources > Rubrics.
This is the final deliverable in the course. Per University Policy, the grades for this final submission will not be released in Learn. Your final course grade will be released along with other course grades at the end of the exam period.