Work Hours
Everyday: 北京时间8:00 - 23:59
Cardiff School of Computer Science and Informatics
Coursework Assessment Pro-forma
Module Code: CM1202
Module Title: Developing Quality Software
Module Leader: Dr Daniel J. Finnegan
Teaching Team: Dr Nervo Verdezoto Dias, Dr Carolina Fuentes Toro
Assessment Title: Resit Coursework
Date Set: Monday 19th July 2021
Submission Date and Time: Monday 9th August 2021 @ 09:30 UK time
Return Date: Within 4 weeks of the submission date.
If coursework is submitted late (and where there are no extenuating circumstances) a mark
of FAIL will be given for the assessment.
Your submission must include the official Coursework Submission Cover sheet, which can be
found here:
https://docs.cs.cf.ac.uk/downloads/coursework/Coversheet.pdf
Submission Instructions
Submit your coursework, electronically via Learning Central by the deadline above using the
following table as a guide to the number of files to submit and their file types.
Description Type Name
Coursework for
deliverables 1, 2,
and 3.
Compulsory One PDF (.pdf) file [student number]courseworkresit.pdf
Coversheet Compulsory One PDF (.pdf) file [student number]coversheet.pdf
This assignment is graded as either a PASS or a FAIL. Please note there is a strict 3-page
limit, and the font should be Calibri size 11. References do count towards this limit.
Appendices are not allowed.
Any deviation from the submission instructions above (including the number and types of
files submitted) may result in a mark of FAIL for the assessment.
Staff reserve the right to invite students to a meeting to discuss coursework submissions.
Assignment Scenario:
Background to the problem
At the start of the university’s academic year, Senior Personal Tutors throughout Cardiff
University spend considerable time assigning new students (undergraduate and
postgraduate) to personal tutors. Although the assignment might seem random, students are
assigned to appropriate staff where possible. For example, within the School of Computer
Science and Informatics (COMSC), students on specialist degrees are assigned to staff within
those research groups; also, where possible students are placed in personal tutor groups that
consist of students on one degree programme.
The current COMSC process – before students can be assigned to personal tutors, at the start
of the year, the Senior Personal Tutor needs to obtain a list of staff who will undertake
personal tutor duties, this list is provided by the head of school. The list changes year to year,
as new lecturers are employed, leave, or go on a period of research leave. We then decide
which staff members will have undergraduate (UG) tutees and postgraduate (PG) tutees and
how many tutees each staff member will be assigned. PG tutees are assigned following
enrolment, however UG tutees are assigned at the start of September once UCAS and clearing
has finished when the UG Senior Personal Tutor is provided with a spreadsheet, CSV file listing
all the new UG students from an admissions tutor. In addition to being assigned new students
tutees, personal tutors will have to be reassigned for other current students, if academic staff
have left or are on research leave for that year.
During the academic year, Senior Personal Tutors will need to search for the personal tutor
for a particular student, provide staff with an up-to-date list of their tutees, and provide the
School’s management team with the number of tutees each staff member has been assigned
per year or degree group. The tutor list also needs updating when students withdraw.
Occasionally students are individually reassigned tutors on request, this is usually if they
transfer degree programmes.
At the end of the academic year following the examination boards, the Senior Personal Tutor
will update the CSV files to be ready for the next academic year.
Task: Imagine you have been asked by COMSC to develop a prototype for a personal and
academic tutor system: a stand-alone application to be used by the School’s Senior Personal
Tutor. COMSC’s aim is to reduce the Senior Personal Tutor’s workload at a very busy time
of year, allowing more time to co-ordinate the other enrolment activities. For the PG Senior
Personal Tutor this is even more important given that currently they have an even quicker
turnaround time. Additional potential benefits that COMSC hopes to achieve are a more
reliable up-to-date list and the opportunity for more advanced personal tutor assignment
algorithms.
The prototype must assist the Senior Personal Tutor to undertake the tasks mentioned above
in ‘Background to the problem’. These include, but are not restricted to, the following use
cases:
- assigning new students to tutors,
- searching the personal tutor list for individual students,
- displaying lists of tutees for a particular personal tutor,
- providing information on the quota of tutees each staff member has been
assigned per year or degree group.
Deliverables: - Requirements specification
a) Develop a list of functional requirements with brief descriptions indicating the features
you would like to provide in your application (see scenario above). Requirements should
be listed using the MoSCoW notation and be written so that they can be validated /
acceptance tested.
b) Non-Functional Requirements
Provide a list of the most relevant non-functional requirements for the application along
with acceptance criteria. It is very important that these requirements are written so that
they are testable. - Class Diagram
Create a class diagram modelling your system prototype. Your diagram should contain a
complete set of classes such that the requirements from the sections ‘Background to the
problem’ and ‘Task’ above are met. The diagram should include the classes and (possibly
different types of) relationships between classes to capture the structure of the proposed
system. For each class include representative attributes and methods. Describe how your
class diagram will support ALL the major system functional requirements. This description
for the complete class diagram should be a maximum of 1 A4 page. - Reflective Report
Choose ONE of the following topics:
- Code Reliability
- Risk Assessments and Reporting
- Black and White Box Testing
Write a reflective report on your chosen topic. Your report should introduce, discuss, and
provide a personal reflection on your chosen topic. You should keep the following in mind
when preparing your report:
Introduction of your interest
Your introduction need not be extensive: two or three paragraphs is enough. Be sure to make
use of your academic source and of your learning artefact (see below) to introduce your
subject.
Learning Artefact
Provide at least one research article/professional whitepaper that highlights the importance
of your chosen topic. If providing more than one you can use the same or different types of
reference.
Your report should be no longer than 1 A4 page. It is important to write reflectively. For
example, consider the following while writing your report: - Write reflectively, not descriptively. DO NOT write like this: “Modularity means
systems are modular in nature. Modularity is not just a feature of hardware but
software too. I learned a lot about writing modular programs and which will help me
in the future”. Instead, YOU SHOULD write like this: “Learning about modular program
structuring was fun, and I learned a lot. At first, I assumed modularity was something
hardware engineers focused on as each component of the computer system is
manufactured independently and then slotted into one another when building the final
system. However, I now understand how modularity can help with structuring
software too. The most important take home message for me was the need to divide
and conquer. Once a system has been decomposed to a set of smaller components,
each with their own responsibility and computational purpose, the system is easier to
comprehend. This will prove useful in future software projects where I’ll need to
develop complex systems with hundreds or thousands of lines of code.” - Give enough detail so that the reader can understand what you have learned about
your chosen topic. Try writing a draft first and then passing it to a friend (NB: not
another student from the School of Computer Science and Informatics at Cardiff
University) or family member and ask them to read it and then say back to you what
you learned. If they are right, then your draft is good. If they are wrong, then you
should revise. - Reference and index figures. Every figure appearing in your report should be indexed
e.g., Figure 1, Figure 2, and use descriptive captions. They should also be referenced
in the text. If they are not, then the implication is they are not discussed and therefore
should not be included. If they are discussed, then they should be referenced. All
figures should also have a caption.
Criteria for assessment
Credit will be awarded against the following criteria.
Task 1: Requirements Specification
Rating Requirements Validation/Testing
Pass Functional and nonfunctional requirements are
fully specified and
demonstrate a good
understanding of the
system’s expectations.
Requirements are written with
partial validation and acceptance
criteria, demonstrating a good
understanding of evaluation and
testing.
Fail Little/no attempt at
specifying the functional
and non-functional
requirements is made,
demonstrating a lack of
understanding of the
system’s expectations.
Little/no attempt at writing
requirements with validation and
acceptance criteria, demonstrating
a lack of understanding of
evaluation and testing.
Task 2: Class diagram
Hints: - Use clear and concise class names
- Appropriate attributes and methods with associations and relationships
- Correct syntax
- The explanation will be also used in assessing completeness of the diagram.
Rating Modelling Conventions Explanation Completeness
Pass The model is a good
attempt at following
UML modelling
conventions and
contains a few errors in
modelling syntax.
The explanation
demonstrates
how the class
diagram supports
all the major
system functional
requirements but
is limited and/or
difficult to follow
in some sections.
The UML model is a
good attempt at
meeting the
requirements of the
project and little of
the important
information is
missing.
Fail The model does not
follow UML modelling
conventions and has
many errors in
modelling syntax OR no
UML model has been
given.
No explanation
has been given or
the given
explanation fails
to demonstrate
how the class
diagram supports
the system
function
requirements.
The model meets
few of the
requirements of the
project and much of
the important
information is
missing OR no UML
model has been
given.
Task 3: Reflective Report
Rating Reflective Writing
Pass The report demonstrates clear understanding and appreciation of
the chosen topic. Writing is clear, concise, and features enough
detail indicating you have engaged with the topic and what you
have learned.
Fail The report is vague, unclear, and/or demonstrates a lack of
understanding and appreciation of the chosen topic. Writing is
incoherent, verbose, and/or does not feature enough detail to
indicate what you have learned about the topic.
To pass, you MUST achieve a ‘Pass’ rating in all 3 tasks in this coursework.
Learning Outcomes Assessed
All learning outcomes specified in the module description are assessed in this assignment.
Feedback and suggestion for future learning
Feedback on your coursework will address the above criteria. Feedback and marks will be
returned via email from the Module Leader