Value: 20% of the Course Mark
...
In this sprint, you will be expected to:
Revise your requirements list to include a series of non-functional requirements;
Finalise your Software Architecture Design and API Design;
Create a data model for your service;
Implement a first version of the service (MVP) using test-driven development; and
Deploy the service on the internet.
2. Non-Functional Requirements
In addition to the requirements you analysed in Sprint 1 from the initial service specification, you can start documenting your thoughts about the following considerations:
Security. Your security considerations should include, but are not limited to the following:
Authenticity - Access to the service functionality of the API must be protected using an appropriate series of authentication and authorisation mechanisms;
Accountability - all activity on the API (calls to endpoints) should be tracked and kept in a log.
The infrastructure on which the service is deployed needs to be secure (physically and electronically, as much as possible).
Document any relevant content inside a confluence page called Security.
Performance. The API endpoints should take a minimal amount of time to complete. In most cases this will be relatively straightforward. In some, where computations are more complex, you will need to spend time designing your algorithm with pseudocode to determine the algorithmic complexity and reduce it as much as possible. Document any relevant content inside a confluence page called Performance.
3. Software Architecture & API Design
...
All team members must be added. You will also need to add your mentor (who will provide you with their username for the platform) and se2021-bot as administrators of the repository.
You are required to use Git to keep track of your code.
All students are required to fill out this declaration form regarding academic integrity.
5.3 Code Quality
You will be marked on the quality of your code at a module / class / file / package level as well as the quality of the code itself. You should make logical design decisions, write robust code and adhere to Software Engineering design principles, including but not limited to the following:
...
The board shows the truth of your team’s progress;
Tasks are updated, added to and adjusted as necessary as the project progresses;
Tasks are updated across the kanban columns; and
Tasks are completed according to their assigned priorities.
8. Marking Criteria
Criteria | Description |
---|---|
Breadth & Depth of Implementation (35%) | This is a qualitative mark that your mentor will give based on how much of your service you have implemented, and the quality of what you have implemented. Considerations that are taken into account:
|
Software Design & Architecture (30%) |
|
Software Quality (20%) |
|
Deployment (5%) |
|
Project Management & Communications (10%) |
|
9. Submission
Place a link to your repository inside a Confluence page called Codebase.
...