Assignment 1, Tasks (NE Motor Rally)

CET203 Software Development Assignment 1 (2014/15)

This assignment contributes 30% to your final module mark and tests learning outcomes 1,2,3 & 4.

 

Deadline: Friday 7th November 2014 (5pm via Sunspace)

 

This assignment is designed to reflect on and assess concepts and skills carried forward from your level one C# programming and those introduced in Weeks 1 to 4 of this module.

This assignment is split into two parts. Part A which is a design task, and culminates in the creation of a UML diagram, is worth 10 Marks. Part B which is a C# programming task to be implemented in Visual Studio, is worth 20 Marks.

Part A

Part A of this assignment is based around the following description of a system needed to manage the drivers participating in the North East Motor Rally. You are required to analyse the description below and to produce an object oriented model for this system (documented as a UML class diagram).

The North East Motor Club are organizing their first motor rally in the spring of 2014. A field comprising both professional rally drivers (including some with company sponsorship) and amateur drivers will complete the 100 mile route incorporating the hills and coastal areas of the North East of England. As part of the software system which will manage the event a model is required which represents the key characteristics of the drivers and their completion of the rally.

Each driver is assigned a number when they enter the rally. A driver is described as e.g. “Driver 42” where 42 is their number. They finish the rally at a specified time recorded in hours, minutes and seconds. Their result status can be checked and will be displayed as either “Not completed” or “Completed in hh:mm:ss”.

Every driver is either an amateur driver or a professional driver.

Further to the above, a professional driver additionally has a competitive grading

(between 1 and 6) and is described as e.g. “Professional Driver 174 (Grade 2)”. To maintain their professional status they also need to keep a record of how many miles they have completed.

A sponsored professional is a kind of professional driver who also has a company sponsor, and is described as e.g. “Professional Driver 316 (Grade 5) sponsored by Sunderland University”.

All amateur drivers will be driving their own cars (whereas professionals will all be driving similar vehicles) so they are required to specify the engine size when entering. Amateur drivers are described as e.g. “Amateur Driver 203 with 1800cc vehicle”

There is an electronic finishing gate which processes each driver as they complete the rally and keeps a record of the total number of drivers who have completed the rally.

 

Assignment Tasks for Part A

 

Task 1 (10 Marks)

Propose an object oriented model to solve the specified problem and document this as a UML class diagram. You should include o data types of instance variables, parameters and method return values (when non-void) o visibility modifiers o parameterised constructors (where appropriate) o relationships such as generalisation/specialisation and dependency.

Hand drawn UML diagrams are acceptable but must be neat and clearly legible and then scanned for online submission. You may use a UML drawing tool e.g. Software Ideas Modeller for this task but if you do so then the UML notation used must be consistent with that covered in the module and you should export the diagram to either a PDF or Word document.

Submission/Feedback

You will be allocated a one-to-one session with one of the module tutors in Week 5 of the module to obtain formative feedback on your UML class diagram. The dates/times for these sessions will be posted on Sunspace, in the assessments area of the module space. Dates/times will be as posted and mitigation will be required if you are unable to attend your specified session.

You should complete your UML class diagram before this session and bring a paper (printed or handwritten) with you. Your tutor will have a look at it and provide you with informal verbal feedback which you may then use to improve the class diagram (if necessary) and submit your final version with the submission for Part B of the assessment on the specified hand-in date.

PART B

Part B of this assignment is based around the implementation of the model designed in Part A within a C# forms application.

Assignment tasks for Part B

 

Task 2 (10 Marks)

Implement the UML model from Task 1 as a series of classes in C# using Visual Studio (version 2013). You should apply ALL the coding conventions used in Sessions 1-4 including naming, layout and commenting: Marks will be explicitly awarded on this and poor presentation may adversely affect marks for other aspects if it obscures the correctness of otherwise satisfactory code. For this task you will be assessed on the classes derived from the model described but not the forms application to test it (see Task 3).

 

Task 3 (10 Marks)

Write a forms-based application which demonstrates how the classes created in Task 2 could be put together to process the drivers completing the rally. Your form should be a single form interface and provide the following functionality:

• Display a list of drivers entered in the rally (including those details specific to the different driver types)

• Simulate a selected driver completing the rally (by driving through the finishing gate and being assigned a finish time)

• Display the status and finish time (if they have completed the rally) for a selected driver  Display the total number of drivers who have completed the rally.

Submission

 

Task 1 should be provided as either a Word or PDF document (if you use a UML drawing tool then you MUST export to this format and not submit tool-specific files) and uploaded to Sunspace by the specified hand-in date, using the assignment icon provided in the assessment area.

Tasks 2 and 3 should be combined into a single Visual C# project (version 2013), which should be zipped and uploaded to Sunspace by the specified hand-in date, using the assignment icon provided in the assessment area.

Submission Date: Friday 7th November 2014, 5pm.

Notes, Hints, Tips and Caveats

Particularly for Part A:

- The expected solution will contain five classes, four of which are related in an inheritance hierarchy, the remaining one being related by a dependency. You are not expected to include any additional classes necessary for the forms part of the application developed in Task 3.

- There are no interfaces (in the sense of a C# “interface” declaration) in the expected solution but you are expected to make use of polymorphism in order to process climbers without concern for their specific variations.

- Consider how the phrase “is described as” might be related to the ToString() method.

- None of the classes is expected to receive input directly from the user, so any data required by constructors or methods should be passed as parameters.

Particularly for Part B:

- It is not necessary for your forms interface to provide the user with facilities to add new drivers to the entry list. A hard-coded list of sample drivers can be created when the form loads but should include a variety of driver types so that their different features can be checked.

- For testing purposes you can assume that there will be a maximum of 10 drivers (in total) in the rally.

- Drivers’ finish times should be initialised to zero and updated as they pass through the finish gate with values entered via your forms interface.

- Your implementation should be via a single-form interface but you may use message boxes if appropriate e.g. for the display of error messages relating to the validation of input data.

General:

- Do NOT attempt to elaborate your solution beyond what is specified, for example to present a more complete multi-form system. No credit will be given for such elaborations, and you could actually lose marks by compromising the elements which are required for assessment.