CET211 (Intermediate S.D) PPW1/Sprint 1 Task and Submission
- Details
- Category: Level 2, Intermediate Software Development
- Published: Thursday, 21 January 2021 15:59
- Hits: 717
Task
CET211
Professional Practice Week One
29th October to 31stOctober 2018
Schedule of events
|
Date |
Time |
Description |
Location |
|
Monday 29th October |
9:00 AM |
Sprint 1 Release |
PR007 |
|
|
10:00 - 12:00 |
Tutorial Support |
As per usual tutorials (Cell B & G) |
|
|
5:00 PM |
Sprint 1 Submission |
Via Canvas |
|
Tuesday 30thOctober |
9:00 AM 13:00 |
Sprint 2 Release Sprint 1 Dropbox Closes |
Via Canvas --- |
|
Wednesday 31st October |
12:00 - 13:00 |
Tutorial Support |
Cell A and Cell B |
|
13:00 |
Sprint 2 Submission |
Via Canvas |
Monday9 AM – Sprint 1
- At 9am on Monday you will be issued with the first phase of your problem specification for CET211, andprovided with guidance for the week.
- Sprint one contains 3 tasks, all of which should be completed and submitted via canvas. Our recommended submission time for Sprint 1 is 5 pm on Monday, although the assessment space will remain open after thisuntil 13:00 on Tuesday 30thOctober. It is therefore up to you to manage your time effectively, and ensure you leave yourself adequate time to complete the second sprint.
- Canvas Submission: Sprint 1 Deliverables (UML model, Design Rationale, and prototype implementation)
Tuesday 9 AMto Wednesday 1 pm - Sprint 2
- At 9am on Tuesdayyou will be issued with Sprint 2 tasks.
- Sprint 2 deliverables should be uploadedby 1 pm on Wednesdayvia canvas.
- Canvas Submission: Sprint 2 Deliverables (Updated UML and prototype version 2)
Sprints should be submitted as single zipped folderswith all tasks clearly named.
CET211 IntermediateSoftware Development
Professional Practice Week 1
(2018/19)
Professional Practice Week 1 contributes 40% to your final module mark and assesses learning outcomes 1, 2,3 & 4.
The PPW is designed to reflect on and assess all learning outcomes for CET211. Over the duration of the assessment timeline you will be given a series of programming and related modelling tasks. Details of each will be released daily. We anticipate this assessment will constitute a maximum of 18 hours of work. You must submit all sprints as a single zip folder on canvas, by the time and day indicated in the schedule.
Scenario
Sunderland Despatch Agency (SDA) is a company which offers parcel collection and delivery services to local businessesin the North East region. SDA have experienced significant growth and have been reviewing and modelling the operation of their despatch depot to identify where they can make improvements.
Currently, parcels arriving for delivery are stored in a text file.As new parcels arrive at the sorting office, this file is updated manually. SDA have identified this as a point of inefficiency, and have requested a single-user, stand-alone system which will act as a proof of concept andenable thedespatch coordinatorto manage deliveries more effectively.
System development started in October 2018, but the original developer accepted a new position in Newcastle and was therefore unable to finish her work. Before starting her new post, a code hand over was carried out but related UML documentation and design rationale documents were not completed. The system has only been partially developed. Everything that was handed over has been shared with you, in a folder called handover.zip. The system is being implemented within an agile framework, and the remaining documentation and development tasks have been structured into two Sprints. It is your responsibility to complete these Sprints and submit all listed deliverables.
In addition to the code handover, you have been provided with information about the type of data stored in the system. The data fields recorded for each Parcel are listed in the table below:
|
Name |
Description |
Example |
|
Id |
Unique tracking number.. |
8990000 |
|
Arrival Date |
Date that the parcel arrived at the sorting office. |
10/02/16 |
|
Delivery Date |
Date that the parcel must be delivered. |
12/02/16 |
|
Recipient |
The person to whom the parcel will be delivered. |
Mr Peter Jones |
|
Delivery Address |
Location the parcel must be delivered to. |
9 St. Peter’s Close |
|
Postcode |
Postcode of the Delivery Address. |
SR6 0DD |
|
Weight |
The weight of the parcel in kilograms. |
0.6 |
Poster Tubes are a special type of Parcel which have the following additional data fields:
|
Circumference |
The circumference of the tube in centimetres |
12.5 |
|
Height |
The height of the tube in cm |
45 |
Sprint 1 – Released Monday at 9 am (20 marks)
Having looked at the existing code (DespatchManager.sln) your opinion is that it could be better structured by applying the principles of OOP and inheritance. You explained this to the management team and have stressed the importance of using OOP to enable simple code maintenance and future extension of system functionality.
The SDA management team have considered your recommendations and have tasked you with designing, documenting, and implementing a class hierarchy, to better represent parcels and poster tubesin the system.
Your deliverables for Sprint 1 are:
Deliverable 1.1 – Proposed UML Model.
Use your knowledg e of generalization and specialisation to create a UML Class Diagram which restructures the Parcel and PosterTubeclasses in DespatchManager.sln intoan inheritance hierarchy.Your UML model should not suppress any relevant detail. Class attributes, visibility, constructors, operations, and relationships should all be shown.
Deliverable 1.2 – UML Design Rationale.
Explain in detail (guideline 400 words) how your UML model uses object-oriented approaches. This should include:
- A definition of inheritance, and explanation of where your UML diagram demonstrates this relationship.
- A definition of polymorphism, and explanation of where your UML diagram demonstrates the ability to write polymorphic code.
- An evaluation of the advantages of object-oriented software design, including
- The use of Classes
- Inheritance (generalisation and specialisation)
- Polymorphism
Deliverable 1.3 – C# Prototype System.
Implement the code in your UML model, including the overridden ToString() methods. This purpose of the ToString() method is to provide a summary of all objects which need to be delivered.
As a proof of concept, write a small console based application which demonstrates how the system can make polymorphic ToString() method calls. Specifically, you should make a Collection of multiple Parcels, including tubes, and output the result of calling ToString() to the console. This C# application should be submitted as a single zipped Visual C# solution(version 2017).
To ensure adequate time resource for Sprint 2 tasks, the recommended submission date for Sprint 1 is Monday at 5 pm. Should you have any issues with meeting the Monday deadline, please ask one of your tutors.
Sprint 1 Marking Criteria
|
Deliverable 1.1 UML Design |
Classes correctly identified and reasonably structured. Attempt at generalization / specialization, but some errors evident. |
Diagram mostlycorrect in structure. Demonstration of generalization and specialization mostly correct. Inheritance relationship shown. |
Diagram correct in structure and function. All shared attributes and operations generalized. |
|
|
0 |
1-2 |
3 - 4 |
5 |
|
|
Deliverable 1.2 Design Documentation |
Simple description of UML design but lacks understanding or contains insufficient detail. |
Basic description of how OO approaches were utilised. |
Good description of how OO approaches were utilised with reasonable justification. |
Excellent description of how OO approaches were utilised backed up with detailed justification. |
|
0 |
1-2 |
3 |
4 |
5 |
|
Deliverable 1.3
C# Application Inheritance |
Some attempt to implement a multi class system demonstrating inheritance, but errors evident and / or the implementation does not adequately reflect the UML design |
Reasonable implementation of a multi class system with inheritance, and the program adequately represents the UML design presented. |
Excellent demonstration of a multi class system with inheritance. The program is a true representation of the UML design. |
|
|
1 to 2 |
3 to 5 |
5 |
|
Deliverable 1.3
C# Application Polymorphism |
Some attempt to implement polymorphism, but some errors evident and / or the implementation does not adequately reflect the UML design |
Reasonable implementation of polymorphism, and the program adequately represents the UML design presented. |
Excellent demonstration of polymorphism. The program is a true representation of the UML design. |
|
|
1 to 2 |
3 to 4 |
5 |
Submission details
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.
Programming deliverables should be submitted as Visual C# solutions (version 2017), containing your application.
All work should be clearly named according to the task, andzipped and uploaded to Canvas by the specified hand-in date, using the assignment icon provided in the assessment area.
Important Information
You are required to submit your work within the bounds of the University Infringement of Assessment Regulations (see the Programme Handbook). Plagiarism, paraphrasing and downloading large amounts of information from external sources, will not be tolerated and will be dealt with severely. Although you should make full use of any source material, which would normally be an occasional sentence and/or paragraph (referenced) followed by your own critical analysis/evaluation. You will receive no marks for work that is not your own. Your work may be subject to checks for originality which can include use of an electronic plagiarism detection service. You are not expected to put your commentary report through Turnitin (however the module leader reserves the right to do so if they deem it necessary). Where you are asked to submit an individual piece of work, the work must be entirely your own. The safety of your assessments is your responsibility. You must not permit another student access to your work. Where referencing is required, unless otherwise stated, the Harvard referencing system must be used (see the Programme Handbook).
Submission
Deliverable 1.1 – Proposed UML Model.

Deliverable 1.2 – UML Design Rationale.
- A definition of inheritance, and explanation of where your UML diagram demonstrates this relationship:
Inheritance is the ability to create classes based on the basic layout of other classes.
Inheritance allows classes to gain all of the properties of its parent, while being able to add new properties to the child class. This allows us to create classes that complete basic tasks, while creating a child class allows for the use the basic functions of its parent, but still separating it to perform other more complex tasks. This creates more efficient software as fewer resources need to be used and set up, to create complex programs.
- A definition of polymorphism, and explanation of where your UML diagram demonstrates the ability to write polymorphic code.
Polymorphism means that a class can take up many forms based on their relationships between the parent class and the child class. The child class can interact with anything that is included within the parent.
- An evaluation of the advantages of object-oriented software design, including
oThe use of Classes
oInheritance (generalisation and specialisation)
o Polymorphism
The classes and their relationship with other classes can be used to create and plan out how a software functions in a way that is easy to understand, while also accurately representing the programs overall functionalities. Correctly identifying and representing classes means that a program can run using the least amount of steps required to complete the various tasks, making as efficient and effective of a system as possible.
Being able to use inheritance also means that we can create one class or multiple classes that serve more than one purpose, without them having to be functionally different. The ability to use classes in such a way can be used to set up various types of data that are always expected to be present, while child classes that inherit from their parents can be used to transform them into objects that perform very different functions from one another.
Polymorphism is an important aspect of inheritance. The ability to create classes based on a more generalised parent class can be used to create sets of rules for child classes to follow. This can be used to create shortcuts as every child class can perform all the tasks a parent can. Creating programs in this way means that necessary functions and tasks required to be performed do not have to be recreated multiple times, for every instance it is required to be used, this exploits shortcuts that can be used in a system, to make it perform more efficiently and less work can still produce the same results.
Deliverable 1.3 – C# Prototype System.