Professional Documents
Culture Documents
OOSD Coursework
OOSD Coursework
OOSD Coursework
Page 1 of 16
Coursework Specification
Module Details
Module Code UFCFB6-30-2
Module Title Object-Oriented Systems Development
Module Leader James Lear
Module Tutors James Lear
Year 2022-2023
Main sit or resit Main Sit
Component/Element Number A - Main sit
Total number of assessments for (1) Part-I: The first covers the analysis and design of a software
this module system.
(2) Part-II: The second covers the coding and testing of the
design created in the first assignment.
Weighting 100%
Element Description Group project: This assignment is to be completed in groups of
up to three students.
Dates
Date issued to students 24th October 2022
Date to be returned to students Within 20 working days of the final demonstration session.
Submission Deadline (1) Part-I: December 8, 2022 14:00hrs
Demo session in the teaching week starting 9th January 2023
(during the scheduled practical session).
(2) Part-II: March 23, 2023 14:00hrs
Demo sessions in the teaching weeks starting 17th April 2023
(during the scheduled practical session) and 24th April 2023
(during the scheduled lab session).
This assessment is NOT eligible for 5 calendar day late
submission window
Submission Place Blackboard
Submission Time 14:00
Submission Notes (1) Part-I: Please submit a PDF document containing the UML
(Please read carefully) Use Case diagram, Class diagram, and Sequence Diagrams.
Please ensure the diagrams are readable.
(2) Part-II: Please submit a portfolio as a zip file containing
your programming Java code, a PDF report on Agile practices,
Test cases used in your program in the form of a table, suitable
program running screenshots capturing success/failure
scenarios, and the individual written report.
Please note that all members of a group must be present during
the demonstration sessions, and all members must upload both
part I and part II individually.
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 2 of 16
Feedback
Feedback provision will be On the spot verbal feedback during the demo session and as
appropriate written feedback uploaded to Blackboard.
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 3 of 16
Contents
The assignment is worth 100% of the overall mark for the module.
The assessment is designed to allow you to use your learning and play to your strengths. You can always seek
advice and/or interim verbal feedback from your tutors during practical sessions.
Broadly speaking, the assignment requires you to design and implement a moderately realistic Object-
Oriented System. You will produce detailed Object models and designs from system requirements; using the
modelling concepts provided by UML. You will then map the designs into Java code and perform thorough
testing.
Working on this assignment will help you to understand more clearly the concepts, problems, and
techniques of Object-Oriented Systems, and how these can be used to design and implement a reasonably
large size software systems while working in a team (to a professional standard).
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 5 of 16
This scenario concerns the development of a luxury camp site accommodation system. Initially an overview
of the business is provided, followed by a detailed system specification.
Overview
With the rise and popularity of staycations the owner of a camp site has expanded their enterprise to include
various types of luxury camping accommodation. The camp site is located on over five acres of land, zoned
into four distinct areas: hilltop, wild meadow, woodland and lakeview. A map of the camp site is provided in
Figure 1 for illustrative purposes.
The camp site has four different types of luxury accommodation: yurts, cabins, geodesic domes and
shepherd huts. Each individual area is associated with an individual accommodation type. The yurts are
positioned in the woodland, the hilltop accommodates the shepherd huts, the traditional log cabins surround
the lake edge, and the modern geodesic domes are located in the woodland. The accommodation information
is detailed in Table 1 below:
When a guest checks in they provide their name, mobile phone number (in case they need to be contacted on
site) and whether they require a breakfast every day. The owner of the camp site cooks all breakfasts and
delivers them early in the morning.
When a guest checks out of their residence the accommodation is refreshed and cleaned in preparation for
the next guest. The owner hires dedicated cleaning staff for this purpose.
The owner of the camp site currently uses Airbnb to take initial bookings for their luxury accommodation,
however, they find they must record additional information to assist in the daily running of their business.
The owner now requires an on-site software system to replace their traditional “pen and paper” approach.
The system specification follows:
System Specification
The system is located “on-site” and both the owner of the camp site and the cleaning staff will use the
system on a daily basis to assist in the running and operation of the business.
Although the owner would very much like you to design the Graphical User Interface (GUI), they envisage
the core functionality will appear similar to the example in Figure 2.
The system has the following GUI needs. Please be creative in your GUI design by using labels, text fields,
check boxes, combo boxes, buttons, images and tables:
The owner and cleaning staff require a mechanism to determine “at a glance” the state of the
accommodation in each area. Therefore, the system must include the functionality to display an overview or
summary of the four areas and their associated accommodation. Figure 2 uses a GUI table to display this
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 7 of 16
summarization information, partitioned by the selected area. Be creative and use different GUI controls as
you see appropriate.
Table 2 below describes the GUI column headings and their valid values:
To assist in the preparation of breakfasts the owner requires a mechanism to calculate the number of
breakfasts each day.
Likewise, the cleaning staff require a method to show the number of residences that require cleaning each
day. Preferably the statistics should be partitioned or grouped by the area (see Figure 2).
3. Guest Check In
From the perspective of the owner, on guest arrival, the system must provide a check in facility. Firstly, the
owner selects the corresponding accommodation row in the GUI table. The following detailed
accommodation information is displayed for the residence (also see Figure 2).
• The unique accommodation number and the associated accommodation type (as described above).
• Accommodates – The number of guests the accommodation can sleep (detailed in Table 1).
• Price Per Night – The daily price of the accommodation (detailed in Table 1).
During check in the owner enters the guest information, detailed in Table 3, into the system. This creates a
guest booking in the system. The guests may then use the accommodation for the duration of their stay.
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 8 of 16
Attribute Description
The First and Last Name of This is the guest who originally booked the accommodation.
the Primary Guest
Telephone Number The telephone number for guest contact during their stay.
Check In Date and Number The check in date and the number of nights stay requested.
of Nights
Number of Guests The total number of guests in the guest booking. This number must
not exceed the number of guests the accommodation can sleep. An
error message should be displayed if this occurs
Breakfast Required Indicates whether the guest specified a breakfast during the check in
process.
A guest check in can only be performed if the accommodation is in the “Available” state. That is, the
accommodation is “Clean” and not in a “Requires Cleaning” state. If the accommodation requires cleaning
an error message must be displayed.
The owner requires the system to provide a facility to check out a guest from their accommodation on guest
departure (button in Figure 2). The status of the accommodation after check out must be automatically set to
“Requires Cleaning”.
5. Cleaning Status
The cleaning staff interact with the system daily to view the number of rooms that require cleaning and set
the individual residence to “Clean” when they have finished their duties (see below in Figure 3).
You are the leader of a team of three developers who have been asked to design and implement a system
which enables the Owner and the Cleaning Staff to manage the “day to day” running of the luxury camp site,
exhibiting the functionality described above.
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 9 of 16
You are tasked with producing the following deliverables for the scenario given above.
- Team Communication: The essence of our project is effective communication among team
members either through face-to-face or online conversation …
- Continuous Team Iterations: The development phases of our project are more flexible as we
continuously iterate between design and implementation compared to a conventional development
methodology which it too rigid and strict …
- SOLID: Our main objective is to establish practices that develop software with consideration for
future maintenance and extension. We adopt the SOLID principles of software design to assist with
correct design choices.
- Work Plan (Not mandatory but recommended): Project backlog, SPRINT Cycle and details.
Task 5: Implementation
Develop the system using Java and JavaFX considering all the functionalities described above. You may
either “hand code” the JavaFX GUI or use Scene Builder to design and implement your interface.
You should be creative and come up with your own User Interface Design. The design in Figure 2 is merely
an example.
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 10 of 16
Task 6: Testing
Testing is typically a part of the program development – you should use a test strategy to test your system
thoroughly. You should create test cases for all Use Cases identified and create test cases to exercise any
validation you have implemented. Deliberately feed your system out of range or incorrect data to attempt to
make it fail.
Produce a table of test cases as illustrated in Table 4. For the “Actual Result” column you may optionally
provide or refer to a screenshot of your application. One example test case has been provided for you.
(a) the evidence of your work produced for the above activity with an outline
(b) reflection on your contribution to the work in relation to skills and knowledge acquired.
(c) provide a brief reflection on how persistence of data could be achieved technically to store the
accommodation information and changes to the system.
(d) reflect on the use of the design patterns used in your system
UFCFB6-30-2 SB – Object-Oriented Systems Development
Page 11 of 16
Section 3: Deliverables
You must use the Blackboard electronic submission system to submit your work. Each student will have to
upload complete package individually. Electronically submitted deliverables include:
Note: All submitted work will be checked for Plagiarism using SafeAssign or other suitable
software/approaches. Every student undertaking an assignment or other piece of assessed work is required
to take, and will be deemed to have taken, full responsibility for all the work submitted by the student. In
particular, this includes responsibility for any assessment offence (e.g., Plagiarism, collusion) committed.
Assessment offence such as plagiarism or collusion will result in 0 marks.
diagrams) or and Message and Message Activation Bars, and Message and Message and Message
(10%) diagrams Arrows are only Arrows are correct and Message Arrows are Arrows are only Arrows are
are mostly partially correct (overall less than Arrows are only correct (overall partially correct correct (100%
wrong (overall less than 50% complete). partially correct less than 70% (overall less than complete).
(overall 40% complete). (overall less than complete). 85% complete).
less than 60% complete).
30%
complete).
Demo and Absent 0.0
Individual Inadequate (barely able to explain the analysis/design and/or work done) 0.0-3.0
Q&A Good (good explanation of analysis/design and/or work done) 3.1-6.0
(10%) Very Good (very good explanation of analysis/design and/or work done) 6.1-8.0
Excellent (excellent explanation of analysis/design and/or work done) 8.1-10.
13
UFCFB6-30-2 SB – Object-Oriented Systems Development Page 14 of 16
14
UFCFB6-30-2 SB – Object-Oriented Systems Development Page 15 of 16
Testing (10%) Little or no Partially tested, Partially tested, Partially tested, Almost tested, Almost tested, Completely
test cases (overall less than (overall less than (overall less than (overall less than (overall less than tested, (overall
(overall less 40% tested). 50% tested). 60% tested). 70% tested). 85% tested). less than 100%
than 30% tested).
tested).
Individual Q&A Absent 0.0
(10%) Inadequate (barely able to explain the analysis/design and/or work done) 0.0- 3.0
Good (good explanation of coding/testing and/or work done) 3.1- 6.0
Very Good (very good explanation of coding/testing and/or work done) 6.1- 8.0
Excellent (excellent explanation of coding/testing and/or work done) 8.1- 10.0
Individual No submission 0.0
report (10%) Inadequate (barely covers individual contribution evidence or reflection) 0.0-3.0
Good (reasonable examples of individual contribution evidence and reflection on learning) 3.1- 6.0
Very Good (good examples of individual contribution evidence and reflection on learning ) 6.1-8.0
Excellent (Excellent examples of individual contribution evidence, reflection on learning) 8.1-10.0
15
UFCFB6-30-2 SB – Object-Oriented Systems Development Page 16 of 16
16