Assessment Brief_8a69df06b39bbc713bc7c604b87b60df

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Module name: Software Development 3

CMP020N201
Lecturer: Dr Lisa Haskel, Dr Touseef Tahir

Coursework specification
PREPARATION
Before you begin this coursework, it is important to plan your activities and to manage the delivery of your milestones
in the context of the submission deadline. Therefore, you are strongly advised to READ THIS COURSEWORK
DOCUMENT CAREFULLY!

ACADEMIC MISCONDUCT
Your submission for this coursework will be scrutinized for plagiarism, collusion, and other forms of academic
misconduct. Please ensure that the work that you submit is your own, and that you have cited and referenced
appropriately, to avoid having to attend an academic misconduct hearing. You can find more information about
academic integrity and how to mitigate plagiarism here: https://roehampton.libwizard.com/f/academic_integrity

Overview

You will build a small application using Java.

The coursework should be delivered in 3 ‘sprints’. In each sprint, you will add new functionality
and improve your code using the knowledge you will gain as the module progresses.

Planning and documentation are as important as working code. We are looking for a professional
approach in which you consider readability, maintainability and conformance to standards as well as
correct operation. You will supply detailed documentation as well as code.

Please note that this is an individual piece of work. You will be asked to present your work in
person to a lecturer and answer questions about your solution. There will be one formative
assessment (not marked – to help you stay on track) and two summative assessments. Sprint 2 will
be marked in code reviews in class. You can only be marked for your sprint 2 if you have attended a
formative assessment meeting.

Task
Please choose one of these projects to develop in your coursework. You should choose one project
and stick to it throughout the module, fulfilling each of the sprint requirements in the context of
your chosen project. Think carefully about which topic interests you most as you will work on it
throughout the term.

Your overall aim is to produce well architected OOP code that shows an understanding of the
problem domain, created using standard OOP technique, and properly documented both within the
code and in accompanying design documents. For each sprint there will be well defined basic
requirements that must be met to achieve a pass, and advanced features that you can implement if
you are aiming for higher marks.
We expect your code to conform to established coding standards as detailed here:
https://google.github.io/styleguide/javaguide.html

Projects

SpareB&B
Users can book different kinds of accommodation. You can make any kind of accommodation
available, for example flats, hotels, luxury villas, sofas. Your accommodations may have different
facilities such as kitchens or washing machines.

ZipAbout
Users can rent shared lightweight electric transport vehicles – bikes, scooters, skateboards,
segway’s and other vehicles, perhaps yet to be invented. For some vehicles, users will need
equipment such as helmets, kneepads or gloves to use them.

LibraryOfStuff
Users can borrow all kinds of items - tools, sewing machines, phone chargers, bicycle pumps – little
things we often need but can’t lay our hands on. Items can be categorised by the part of the home in
which they are usually used: kitchen, garden, workshop, or ‘out and about’.

Sprint 1 – Basic Classes -


FORMATIVE assessment in lab sessions:
Hand-in deadline: 28 October to 4 November

 Consider the objects that can be booked, rented or borrowed in your application. Identify
their methods and properties.
 Use the OOP principles of Abstraction, Encapsulation, Inheritance and Polymorphism to
design your classes
 Create a class diagram showing the relationships between your classes.
 Write well documented java code to implement your classes.
Minimum requirements should be:
◦ a constructor
◦ some properties
◦ a print() method which gives some user-friendly output.
 Provide a Main class and main method which you can run in the console in which:
◦ At least 3 objects of different types are created in your code
◦ A user-friendly listing of the objects can be printed to the console
 For those aiming for higher marks, also consider the additional information eg. Facilities,
equipment, hobbies. Consider how composition can be used to model these in your system.
Add them to your class diagram and code.

Please hand in your work in Moodle and seek feedback during the week 5 and 6 lab sessions.
Sprint 2: Booking functionality
Deadline: 25 November 2024

Code reviews:

 Week 9 will be used for code reviews as per schedule below and your seminar slot is merged
with lab slot. It will be a 4-hour evaluation slot in the lab.
 All students must be present in the lab at 10 AM for the evaluation as per their timetable. This
will ensure a smooth flow and allow the evaluations to stay on track.

Instructor Day Time Slot Lab

Dr. Touseef Tahir MONDAY 10AM-02PM DB 228 (David Bell Building)

Dr. Lisa Haskel WEDNESDAY 10AM-02PM DB 228 (David Bell Building)

Dr. Lisa Haskel THURSDAY 10AM-02PM DB 218 (David Bell Building)

Dr. Touseef Tahir FRIDAY 10AM-02PM DB 323 (David Bell Building)

50% of marks

Implement a booking system for your chosen project in Java. You do not need to implement
booking for specific dates or durations, but it should be possible for a user to book and release
items. Once an item is booked, it should not be available for booking by any other user.

NOTE: You do not have to capture any user input at this stage of development

Basic requirements

 Provide a set of user stories to cover your provided functionality


 Provide a class diagram showing the relevant classes and relationships.
 Your design and code should incorporate the sprint 1 requirements above plus basic booking
functionality
 Provide a Main class/method in which at minimum:

o At least 3 objects of different types are created directly in your code.


o At least 3 users are created directly in your code.
o In code, show that a booking can be made of an item by a user.
o Show in your code that if another user tries to book the same item, they are politely
informed that the item is unavailable
o User-friendly output can be printed showing correct information about items and the
booking status at any particular time.
Advanced requirements

Basic requirements plus...

 Your design incorporates the additional information e.g. Facilities, equipment, hobbies
for bookable items
 Include at least one design pattern, accompanied by a short explanation of how it has been
implemented, and/or
 Devise a feature of your own choice that demonstrates your deeper understanding of design
patterns. Perhaps by rewarding your application users in some way with loyalty points or a
random prize draw or perhaps by adding features to your application such as managing
cleaning or maintenance or providing output in different formats (these are just examples).

Marking scheme/ criteria

Sprint 2
Basic requirements (3rd – 2.2)

 The syntax of User stories conforms to syntax used in seminars


 User stories are correctly reflected in code
 Design conforms to OOP principles
 Class diagram is supplied and is correct
 Code runs correctly
 Class diagram is consistent with the code
 Coding standards adhered to
 Inheritance implemented correctly
 Encapsulation implemented correctly

Advanced features (2.1 and above)

 Association/aggregation used
 Design patterns used
 Additional features implemented
 Excellent coding standards and documentation
Sprint 3 - GUI development
Deadline 6 January 2025
50% of marks

Create and document a GUI for your application using JavaFX.

Basic requirements

Documentation/report

 Provide a schematic ‘wireframe’ that provided the specification for your GUI
 Provide a set of user stories and class diagrams that document the provided functionality
Provide screenshots of your finished application
 Write a conclusion to your report in which you identify the programming paradigms that
you have used to create your application eg. Object Orientated, declarative, functional, and
describe why each is suitable for different tasks.

Code

 Implement basic button and list functionalities taught in class with some original design and
formatting.
 Use the classes you have created in sprint 2 to create some basic functionality where you list
bookable items.

Advanced requirements

 Use the classes you have created in sprint 2, including your design patterns, to implement
the listing and selection of items, and feedback to the user. You may implement additional
features of your choice.
 Use Java streams to implement at least one part of your application
 Ensure that these additional requirements are covered in your documentation

Formative assessment available in weeks 11 and 12

Marking scheme/ criteria

Sprint 3

Basic requirements (3rd – 2.2)

 Button that can respond to a click


 Basic GUI design
 Use of classes from sprint 1
 List at least three bookable items displayed in the GUI generated by your sprint Java OOP
code
 Coding standards implemented
 All required elements of the report are supplied, and documentation is accurate, and the
report is well structured
 A basic understanding of different programming paradigms is demonstrated in the
conclusion

Advanced requirements (2.1 and above)

The above plus...

 User can select a bookable item and an action is performed


 Advanced features of your choice
 Excellent use of coding standards
 Excellent and complete production of the report with accurate documentation
 Use of functional programming styles in at least one place in your code
 Insightful and advanced understanding of different programming paradigms is demonstrated
in the conclusion

You might also like