This assignment will also help you gain some experience with the integrated development environment that you will be using this semester in this course. Some of the tools you will be using this semester will be new to some of you, and we will discuss aspects of them as the semester progresses. However, at this point, regardless of whether you have used the tools in the past, you should be able to figure out everything that you need for this assignment.
This asignment will also, hopefully, lead you to improve the process that you use during the construction phase of the software engineering lifecycle. For example, it will hopefully get you to start earlier, work on a regular schedule, test properly, and ask questions appropriately.
Finally, this assignment will expose you to the kinds of software engineering documents you will be reading and writing throughout the semester, and the kinds of questions that you may need to ask while carefully reading these documents.
They are in the process of developing a suite of products called forScore for judged competitions of various kinds (e.g., sporting events like diving and gymnastics, singing contests, dance competitions). These products will be used by the organizers of the events, the broadcasters of the events, and the viewers/audience. They have hired you to construct several interfaces/classes that will, ultimately, become part of these products.
These classes/interfaces will initially be used by an application
that can be used to score the required program for one diver in a
sanctioned intra-departmental 1-meter springboard diving competition
(like the one that the Computer Science Department has scheduled for
later in the semester). For example, running this application with
the command-line parameters
8.5 9.0 5.0 8.0 7.5 7.5 8.0 4.0 9.0 7.5 Bernstein
should
generate the following output.
Results for Bernstein ALB BEL CAN DJI ESA | Raw Forward Dive - Pike 8.5 9.0 5.0 8.0 7.5 | 24.0 Forward Somersault - Tuck 7.5 8.0 4.0 9.0 7.5 | 23.0 Points: 63.4
As another example, running this application with the command-line parameters
4.5 4.0 9.0 5.5 5.0 6.0 6.5 9.5 6.0 6.5 Fox
should generate
the following output.
Results for Fox ALB BEL CAN DJI ESA | Raw Forward Dive - Pike 4.5 4.0 9.0 5.5 5.0 | 15.0 Forward Somersault - Tuck 6.0 6.5 9.5 6.0 6.5 | 19.0 Points: 46.1
The terms that perspecTV uses when discussing forScore and its functionality are described in the following document.
When using scrum, time is divided into time intervals called sprints that typically last 1-2 weeks, and product features are organized into stories. perspecTV categorizes stories as either epics, abstract stories that might take several releases (developed over the course of many months) to completely realize, and sprintable stories that describe what will be completed in a single sprint (and included in the product at the end of the sprint). The sprintable stories (which are what you are concerned with for this assignment) for forScore have been collected in the following document (along with some epics that are not part of this assignment).
Your team at perspecTV used the sprintable stories to create a set of tasks for this assignment. The other members of your team completed some of the tasks and have left others for you to complete. The complete set of tasks is contained in the following document.
The tasks that are "checked" have already been completed by other team members, the evidence for which is contained in the following documents.
IndividualScorer
in
the app
package) for this release
DifficultyTable1mS
class (in the
diving
package) for this release
Position
enum
Missing
class
Score
class
SizeException
class
DropRule
class
TotalSystem
class
WeightedTotalSystem
class
You must complete the tasks that have not been "checked-off". The code you write must be consistent with the documents prepared by the team.
testing
and each test class must include
the word "Test" in its name.
For any project you should start as follows:
IndividualScorer
class) so that you understand how the classes you are
implementing will be used.For this particular project, you should then:
Position
enum.Position
enum.Missing
class.Missing
class.Score
class.Score
class.SizeException
class.ScoringSystem
interface.WeightedTotalSystem
and
TotalSystem
classes should be related (if
at all).WeightedTotalSystem
or
TotalSystem
class (whichever one you think
should be implemented first).
WeightedTotalSystem
or
TotalSystem
class (whichever one you think should be
implemented second).
Rule
interface. (You should
really have done this when you stubbed-out everything
else.)DropRule
class.DropRule
class.
IndividualScorer
)..zip
file that
contains:
testing
.
The .zip
file you submit must contain
the diving
,
scoring
, and testing
directories/folders at the
top level.
There is no limit on the number of submissions and no penalty for excessive submissions.
Note that your submission will not be graded if it does not comply with the specifications. So, if you are unable to complete the assignment, your submission should include a stubbed-out version of all of the components. (This will allow you to get credit for the components that you do implement correctly.)
Points will be deducted for code that is unclear, inelegant, and/or poorly documented.
The course "Help" page on Eclipse explains how to provide an application with command-line arguments. You also may want to refer to and/or complete the "review labs" at the top of the syllabus.
.zip
file. So, you must not compress the
directory/folder containing these directories/folders, you must compress
the directories/folders containing the packages. In other words,
if you have a directory named src
that contains the directories
diving
, scoring
,
and testing
, you must not
compress src
, you must
compress diving
, scoring
,
and testing
.
Help with creating .zip
files is available on the CS Wiki.
In particular, see:
Copyright 2024