Assignment 2, Tasks (Media Rental System)

CET203 Software Development Assignment 2 (2014/15)

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


Deadline: Friday 27th February 2015 (5pm via Sunspace)


This assignment is designed to reflect on and assess concepts and skills carried forward from assignment 1 and those introduced in Weeks 5 to 15 of this module.

This assignment is split into two parts. Part A (worth 12 marks) is a design & reporting task, which culminates in the creation of a UML diagram, design rationale and user guide. Part B (worth 28 marks) is a C# programming task to be implemented in Visual Studio.


For this assignment you are required to conceive, develop, and document, a small prototype software system, which illustrates important concepts and techniques from the module syllabus. You are free to choose a scenario of your own choosing for your system, however, you may find it useful to think of this project as a case study which could be used as supplementary teaching material on this module – as such it needs to be a clear, correct and vivid illustration of the principles it illustrates. On the other hand it should avoid undue complexity which may obscure those principles from the perspective of the reader/student.

The purpose of this assignment is to show that you can apply the concepts of object oriented modelling creatively, as well as describing such a model using UML and implementing it in the C# language. To achieve this, rather than merely solving an artificially circumscribed set problem, you are challenged to construct a piece of work which effectively illustrates those concepts listed in the criteria below. By doing this you will demonstrate a deeper understanding of the concepts, and their applications, which we have been studying.

The key criteria for an acceptable system are:

o it must illustrate the separation of concerns into classes with appropriate use of interfaces/polymorphism

o it must use at least one collection class from the Generics Collections Framework o it must demonstrate object persistence though saving/reading data to/from a file o it must incorporate the use of exception handling, including the declaration, throwing, and catching, of a new exception type

o it must be an executable multi-form system, containing at least two forms which interact with each other

The software system developed should constitute a small fully-working system, but it is not a requirement that the final software system be so complete and complex that it constitutes an application of commercial quality. It may be a viewed as a prototype system to demonstrate the potential for a larger more fully-featured system and may thus have many undesigned and uncoded parts. It may, for example, comprise a group of classes which would form part of a larger system (like many of the examples presented in the module e.g. the

SubscriberGameTimeManagerSystem or SITs case study projects). However; while only a prototype system is required, this prototype must provide a fully functioning demonstration of the features which have been implemented by means of a suitable executable forms application.

Before commencing the implementation tasks for this assignment you MUST obtain approval for your proposed system as specified in the Submission & Feedback instructions below.

Part A - Design


Write a report, in either Word or PDF format, which contains the following sections:


UML Class Diagram (5 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 an image file which can be embedded within the report document.

Design Rationale (5 marks)

A one page (approx. 500 words) explanation of how you have separated your concerns.

This must also include a description of where and how you have incorporated the following concepts into your approved system, including the names of any classes which use them:

o Collection class(es) from the Generics Collections Framework o Object persistence through saving/reading data to/from file o Declaration, throwing, and catching, of a new exception type

User Guide (2 marks)

A short user guide (200 words maximum) for your application including the details of where any data files and output reports are stored. [Please note this user guide attracts very few marks but will be used to help the marker run and assess your system.]

Part B – Implementation

C# Application (20 marks)

Implement the system modelled in your UML diagram for Part A as a C# forms application using Visual Studio (version 2013). You should apply ALL the coding conventions used in the module 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.

Your application should be multi-form (containing at least two forms which interact with each other) and should be designed with an interface suitable for users with limited computing experience.

Appropriate exception handling should be included to ensure that the application is robust, in addition to the required example of your own customised exception class.

Unit Testing (8 marks)

Create appropriate unit tests, using the Microsoft Testing Framework, to automate the testing of the file reading functionality of your application. These unit tests must be integrated into your overall Visual Studio Solution.

Submission & Feedback


Proposal Approval

Before commencing the implementation tasks for this assignment you MUST obtain approval for your proposed system from your allocated marker by completing the attached proposal form (Appendix A).

You should discuss your proposed scenario with your designated marker during tutorial sessions and make any changes, based on their feedback. Your tutor may provide additional instructions regarding times within tutorial sessions that are allocated to proposal checking and these must be adhered to.

Your proposal will be signed off at your feedback session (see below) but it is recommended that you obtain provisional approval from your designated marker earlier than this date, to confirm that it is an appropriate scenario and give yourself as much time as possible designing your system.


Feedback on UML Design

You will be allocated a one-to-one session with your designated marker in Week 17 of the module (w/c 02/02/2015), 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 proposal document and UML class diagram before this session and bring paper (printed or handwritten) copies with you. Your tutor will provide you with informal verbal feedback which you may then use to improve your UML class diagram (if necessary) and submit your final version with the submission for the remainder of the assessment on the specified hand-in date. Your tutor will also sign your proposal document to confirm that they have approved your scenario, subject to any changes identified during the session.


Final Submission

Part A should be provided as a single document in either Word or PDF (if you use a UML drawing tool then you MUST export it as an image and embed it in the report rather than submitting toolspecific files) and uploaded to Sunspace by the specified hand-in date, using the assignment icon provided in the assessment area.

Part B should be submitted as a single Visual C# solution (version 2013), containing both your application and unit tests. It should be zipped and uploaded to Sunspace by the specified hand-in date, using the assignment icon provided in the assessment area.

Your project must not be recognisably based on examples from the course. Zero credit will be given for work which is a thinly disguised version of one of these!


Submissions which have not been approved by your marker or which deviate from the agreed proposal will not be accepted and will receive no marks.

Submission Date: Friday 27th February 2015, 5pm.



CET203 Software Development Assignment 2

Proposal Form


Briefly describe the scenario to be designed/implemented showing how it illustrates the constructs listed below:


Designated Marker Approval

Illustrates separation of concerns and use of interfaces

[Interface here is in the context of data types/polymorphism (Unit 3b)]

Yes / No

Illustrates use of a collection class from the Generics Collection Framework

Yes / No

Illustrates data persistence through saving/reading to/from a file

Yes / No

Illustrates the use of a customised exception type

Yes / No

Is a multi-form system with at least two interacting forms

Yes / No


Signed: _____________________________________________ Date: ______________


Designated Marker: Liz Gandy Linda White Chris Knowles Simon Kendal