Assignment Bulls and Cows
Assignment Bulls and Cows
Note that the weightings total 50% of your CS207 class mark, reflecting the weighting for this semester.
Failure to comply with the instructions detailed in this specification will result in a minimum 10% mark reduction penalty for the appropriate submission. Late
submissions: as this is continuous assessment for which sample solutions will be released shortly after the first two deadlines, it will not be possible to
accommodate late submissions after the sample solutions are released. Late submissions prior to sample solutions being released will be penalised at 10%
for the first day or part thereof according to University lateness policy and 5% thereafter. Late submissions for the final report will be penalised as per
University policy. Where an individual within a team has extenuating circumstances they should contact the lecturer as soon as possible and an appropriate
course of action will be determined.
Page 1 of 8
There is a lot of information in this document. Please take the time to read it carefully.
Assessment Overview
The purpose of this assignment is to provide the opportunity to follow the software development lifecycle within a team. This is an important aspect of being
a professional in the field as it provides structure and consistency, resulting in projects which are more likely to be successful.
An important challenge here is to explore how the software development lifecycle can be applied in a given context. In the assessment for this semester of
Advanced Programming you will be asked to follow a software development lifecycle process in order to develop a Java program to allow users to play bulls
and cows. This will be completed in teams of five which can be chosen by students so long as it is within their allocated lab group. No requests to change lab
group can be accommodated as personal circumstances will have already been taken into account.
Background
Bulls and Cows is a code breaking game. The aim of the game is to decipher a secret code by trial and error. This code can either be a word or numbers. For
the word version of the game the word must be an English word. For the numbers version all numbers must be unique for both the code and each guess. For
each guess the number of matches will be given. This will be split into bulls, matches in the right position, and cows, matches in the wrong position. For
example:
- Secret number: 1359
- Guess: 1395
- Matches: 2 bulls and 2 cows (The bulls are 1 and 3, the cows are 9 and 5).
Tasks
The aim is to develop software in Java which allows the user to play Bulls and Cows with the computer. The functionality will be similar to
https://www.mathsisfun.com/games/bulls-and-cows.html but not identical. The software should also maintain the state of completion of secret codes which
the user attempts to decipher, and details about the players including a scoreboard showing player statistics such as number of secret codes successfully
deciphered.
Page 2 of 8
The assignment comprises multiple tasks to be completed in teams of 5. The assessment is designed to be completed by a minimum of 4. Due to class size it
may be necessary to have some teams of 4. Students will be able to select their own team from those in their lab group. The tasks involved are as follows:
To write the user stories, it will be necessary first to elicit the requirements through conversation with the lecturer who will act as the product owner and
customer. Requirements elicitation will take the form of questions posed to a Myplace forum. Each team will be permitted to ask one question but will be
also be able to see all other teams questions. The deadline for submitting your question will be at the end of the last lab of the week, i.e., Thursday 13th
February at 1pm.
Note you will be best placed to perform well if you commence thinking about the requirements prior to asking a question, as general requirements can be
gathered from the details provided in the background. The answers provided serve to provide further clarification where required. Questions similar to “what
are the user stories” will not be answered, but will still count as the question for your team.
In addition to the requirements elicitation session, each team will be allocated a teaching assistant or demonstrator who will act as product owners by proxy
for the lecturer. Your team will check in with your allocated product owner in each of the labs commencing from week 3 and further clarification can be
sought from them. You can of course ask questions of any tutor or demonstrator in the lab who isn’t nominally assigned to your team.
Submission of the list of user stories should be to the appropriate slot on MyPlace by the deadline shown in Table 1. The submission should be a single page
PDF, and should only be submitted by one member of the team though it is the whole team’s responsibility to ensure that the submission made is agreed
upon and on time. The submission slot will be configured as a team submission, meaning all team members will be able to see the submission and hence
check it.
This submission will be marked and feedback provided in person in the labs, see the dates in Table 1. In the lab you will be asked to show the user stories you
submitted on MyPlace, and asked to suggest acceptance criteria for a subset of user stories. The combination of your responses and the submission will be
assessed for your mark in this aspect. See the related marking scheme later in this document.
Page 3 of 8
The class diagram should identify the appropriate classes, associations, and an initial attempt at identifying appropriate attributes and operations. It should
not include any user interface classes at this stage. You should also include a 1 paragraph rationale for any specific design decisions made (i.e. the “why” of
those decisions). This can be included as a note in the diagram or as additional text beneath the diagram.
Submission should be via the appropriate slot on MyPlace by the deadline shown in Table 1. The submission should be a single page PDF, and should only be
submitted by one member of the team though it is the whole team’s responsibility to ensure that the submission made is agreed upon and on time. The
submission slot will be configured as a team submission, meaning all team members will be able to see the submission and hence check it.
The class diagram will be marked and feedback provided in person in the labs, see the date in Table 1.
Task 3–Implementation, Testing, and Final Report Iterations 1-3 (2 weeks each)
After class diagrams have been submitted, a sample solution will be released. This must be used as the basis for your implementation. All .java files, including
JUnit java files, for each iteration should be submitted to MyPlace in addition to the commits to the GitLab working repository. Submission to MyPlace is to
ensure a timestamped copy of code at the point of submission for each iteration.
Note: further details of how we will be using GitLab will be released closer to the implementation stage.
Also note that code should not make use of external libraries or frameworks with the exception of JUnit for testing.
Page 4 of 8
This report should detail the state of functionality your program achieved, details of the tasks involved in completing the project which team members
completed those tasks, a summary of how you worked together as a team, and finally details on lessons learned whilst completing the project and what you
would do differently in a team project next time. A suggested Word template will be available on MyPlace.
Peer Assessment
The aggregated and weighted coursework mark for the project may be adjusted proportionately to represent individual contributions to the work. This means
that you will be provided “interim” marks at each stage, but these will not be collated, adjusted for individual contribution and finalised until the end of the
class.
Adjustments based on individual contribution will be established using a peer evaluation form, review of commits to GitLab, and a workload report submitted
by each team. Team members are required to agree a single A4 page workload record and include in the final written report as detailed above.
Team members are required to complete their own personal assessment of their team mates. This will be established using a peer assessment activity on
MyPlace. Each member of the team must complete the peer assessment activity on MyPlace by the final deadline detailed in Table 1.
This involves allocating a score of 1-5 to each team member, including yourself, to reflect the individual’s contribution to the project. A score of 1 means there
was little or no contribution, a score of 5 means they made a significant contribution to the project. If you do not to submit a peer assessment, then it will be
assumed all team members made a significant contribution to the project.
Marking Schemes
User Stories
A maximum of 23 marks is available for the initial user stories and acceptance criteria. Marks will be distributed as follows:
Page 5 of 8
will be randomly selected by the markers. Thus, you should attempt to create at
least two acceptance tests per user story you identify.
Class Diagram
A maximum of 18 marks is available for the high level design. Marks will be distributed as follows:
Appropriate No submission Classes and properties Classes and properties appropriately Classes and properties Classes and properties
identification identified are mostly identified are somewhat appropriate, appropriately identified are identified are
of classes, with inappropriate for the clear areas for improvement such as mostly appropriate, with perhaps appropriate with clear
clear, narrow cryptogram system. Perhaps properties not representing clear one class which is unnecessary, or and narrow
responsibilities multiple classes where the responsibilities and unnecessary some properties do not represent responsibilities.
responsibilities aren't clear. classes clear responsibilities
Does the No submission Most features cannot be Many features can be achieved using The features can be achieved The features can be
design include achieved using this design this design. This could be e.g. a model using this design, perhaps with clearly achieved using
all the classes class such as something to manage only a minor issue such as an this design
needed to the players is missing attribute which is missing
provide all the
features
Is the design No submission Some elements of a cohesive Overall good cohesion in some areas, Overall a design which is very Overall design is highly
appropriately overall design, but mostly but instances of attributes and cohesive, but perhaps one or two cohesive with attributes
cohesive minimal cohesion. Many operations in the wrong class or are instances where cohesion could and associations in a
instances of attributes and missing. have been improved. single class related to a
operations in the wrong class single purpose.
or are missing.
Is the design No submission Design is very highly coupled There is some instances of Inappropriate coupling is kept to a
appropriately inappropriate coupling minimum
loosely
coupled
Page 6 of 8
Syntax is No submission Syntax is mostly incorrect, Syntax is mostly correct, with one or Syntax is correct
correct with many clear errors two errors such as incorrect
cardinality notation
Implementation
Marked in 3 iterations. At the start of each iteration the product owner will select the user stories from the product backlog which should be implemented in
that iteration. Each iteration will be marked according to the following criteria and weighted according to the weighting provided in Table 1:
Page 7 of 8
appropriate
commands
Supplementary Material
One possible tool for creating your class diagram is VioletUML, available from http://alexdp.free.fr/violetumleditor/page.php . It is free to download, and can
be run from the JAR file thus doesn’t need to be installed. You are free to use other software should you so desire.
Page 8 of 8