Sprint 2: Domain
The goal is this iteration is to build your Domain classes: those classes and data structures that serve to model the problem that you’re solving e.g., a Recipe class for your recipes, or a Model class to hold the state of the card game that your users are playing.
You will wire these up to your user interface, and add “test data” so that your application is interactive, within the context of this hard-coded data. You are not expected to have a functional database or service yet.
Finally you should add unit tests that cover your user interface classes and domain classes.
How do you work around “missing” components i.e., how do you display data when you don’t have a data class to read the data? You create mock classes for components that you haven’t implemented yet. These mock classes provide hard-coded test data for your unit tests, and make it easier to write tests for classes that are in-progress. They allow you to finalise the interface and build out the implementation over time.
In this sprint, you will need to write mock classes for your Data layer.
Requirements
For this sprint, you should complete the following:
- You should have a layered architecture with
UI,DomainandDatalayers (expecting theDatalayer to be empty, except for test classes). - In your
Domainpackage, add data classes (business objects) relevant to your project e.g.,Recipeclass for a Recipes application;Postclass for a social media application. Also add aModelclass that loads and manipulates your domain objects as necessary. - You should have a “reasonable number” of unit tests in place against your
User InterfaceandDomainclasses. Your unit tests should pass.
Submission
After the demo, you will need to ensure that your work is complete so that it can be graded. This means that all documentation should be updated (issues, wiki pages, team meeting minutes), and all source code should be frozen (changes pushed, everything merged to main).
The deadline is 6:00 PM on the listed time and date. You do not need to actually submit anything; we will grade what is posted in your GitLab project at the deadline.
The content that is in GitLab should be the same as what you presented in-class. You are allowed to make small corrections but please avoid making major content changes between the demo and the submission.
Grading
The grading scheme is available in Learn under Resources > Rubrics.
Deliverables are normally graded by the following week’s lecture, and the grade and feedback will be posted under Submit > Dropbox. Any questions related to this should be sent directly to your TA.
See grading policies for more information.