This is an Individual coursework project, and no group work is permitted. You will be assessed via a piece of
coursework consisting of two components:
▪ The Implementation aspect will constitute up-to 50% of your mark.
▪ The Report aspect will constitute up-to 50% of your marks.
This assessment has been designed to assess the following learning outcomes:
▪ LO1 – Critically evaluate the role of patterns and frameworks in the design of an enterprise application
▪ LO2 – Compare potential technologies for the development of an enterprise application
▪ LO3 – Implement a distributed application using appropriate technology and frameworks
How Long Will This Assignment Take?
You should spend approximately 20 hours on this assignment. Don’t leave this work until the last couple of days
before the submission date. We know that there can be some odd issues with Payara / Netbeans (and I’ve seen
similar issues with Eclipse, so it is a general problem). Make sure you identify problems early so they can be
addressed. It is sensible to use the same versions of NetBeans and Payara as at the University or on the Virtual
Machine on your personal PC. Where fixes are identified in the lab, use them.Task
You are to develop a simple RESTful web service for the UCLan’s new Service Orientated Architecture. You
will be responsible for creating the service which will manage Tutors, Modules and Lab Sessions. To
accompany the service, you are also to write a report which describes and evaluates key enterprise
School of Psychology and
Computer Science UCLan Coursework Assessment Brief 2020-
Module Title: Distributed Enterprise Applications
Module Code: CO3409 Level 6
Development of a REST API This assessment is worth
50% of the overall module
Implementation (50% Weighting)
Create a RESTful web service that fulfils the following criteria.
1Manage tutors, their hashed passwords and the salt that was combined with the password
before hashing.A No Tutor may have the same salt as any other Tutor.BSuggested operations: add, remove, update, and list Tutors’ userIDs, and check password
E.g. Add (ID, password, name): adds user, password hashed with unique salt, and the salt.
Prevents Errors: ID not uniqueC Only validated Tutors can carry out the CRUD operations. Anyone can check a password, by providing
ID and hashed password.D No passwords should be saved to the database in plain text or a reversible manner.
2Manage modules and their assigned Module LeaderA No module may have the same Module Leader as any other. However, the Module Leader does not
have to be in the Tutor table.BSuggested operations: add, remove, update, and list modules details
Example: Add (uniqueName, moduleUserID, description) that prevents errors such as: Name not
unique and Module Leader not uniqueC Only validated Tutors can carry out the CRUD operations.
3Manage Lab Sessions, the subject, and the Tutor responsible for delivery.A No Lab Session may have the same Tutor as any other. However, the Tutor responsible does not
have to be in the Tutor table and the Module does not have to be in the Module table.BSuggested operations: add, remove, update, and list lab sessions details
Example: Add (description, moduleName, tutorUserID), adds unique ID, description and
moduleLeadID and Prevents errors such as: Responsible tutor not unique.C Only validated Tutors can carry out the CRUD operations.
Please Note: The specifications are vague. This is deliberate. You have flexibility to interpret the
specifications sensibly to allow you to demonstrate the necessary understanding of REST services, enterprise
beans and transactions. However…
▪ You must use ORM or JDBC for persistence.
▪ The service must be implemented using Enterprise Beans and entities must be persisted using a
▪ Assume that all services may be used concurrently. If necessary, use transactions to ensure that any
checks and subsequent update operations are carried out atomically.
▪ There should be a web front end.
▪ You must also check the quality of your code using an appropriate testing strategy and provide evidence
of the use of FindBugs and Unit testing (for some aspects of your implementation).
Report (50% Weighting)
Your report will consist of two parts: evaluation of enterprise technologies and testing.
1. Evaluation of Enterprise Technologies
This aspect of the report should provide a comparative analysis and evaluation the following enterprise
technologies defined in the table below.
RESTProvide a detailed description of each of each, their advantages & disadvantages
supported by references both academic and industrial.ORM
JDBCProvide a detailed description of each of each, their advantages & disadvantages
supported by references both academic and industrial.Evaluation of other
Issues / ChallengesA detailed discussion of other issues / challenges related to this exercise that are
important to Distributed Enterprise Systems: looking at issues discussed in class
may help to identify relevant topics.Please note: This aspect of the document should not exceed more than 4 pages.
This aspect of the report requires you to define a suitable testing strategy for determining if the REST the
RESTful webservice you have developed satisfies the requirements described above. You should provide
sufficient evidence which may include screen shots and messages (requests/responses) surrounding the
▪ CRUD Operations
▪ Error Handling
▪ Evidence of Unit Testing using JUnit
▪ Evidence of Static Analysis using the FindBugs tool.
Please note: There is no size limit on this aspect of the report. However, you must provide sufficient evidence
of testing but remember to be sensible.
A summary of the marking criteria for each component is defined below. Full details surrounding the grade
boundaries can be found in the University’s Assessment Handbook located here. For a detailed breakdown of
the individual criteria please click here.
Implementation (50 Marks)C.1 CRUD ▪ Add, Delete items
▪ Persistence (ORM or JDBC)
▪ Retrieve and use information
▪ Update information
▪ Safety to concurrency25C.2 Error Handling ▪ Detecting error conditions
▪ Sensibly reporting error conditions15C.3 Demonstrating Code
Quality▪ Development of at least two unit-tests using JUnit
▪ Application of good coding practices10Report (50 Marks)C.4 SOAP vs REST ▪ Provide a detailed description of each of each, their
advantages & disadvantages supported by references
both academic and industrial.10C.5 ORM vs JDBC ▪ Provide a detailed description of each of each, their
advantages & disadvantages supported by references
both academic and industrial.10C.6 Evaluation of other
Issues / Challenges▪ A detailed discussion of other issues / challenges related
to this exercise that are important to Distributed Enterprise
Systems: looking at issues discussed in class may help to
identify relevant topics.10C.7 Testing ▪ Use of mocking to demonstrate behaviour (e.g to mock
the check for a valid tutor).
▪ Testing CRUD operations.
▪ Error Handling
▪ Evidence of Unit Tests and results using JUnit
▪ Evidence of Static Analysis using the FindBugs tool20Total Marks 100
PREPARATION FOR THE ASSESSMENT
Before attempting this assessment, it is highly recommended that you revisit the “Four L’s”:
• Lectures – This includes the slides, notes and recording.
• Lecture notes – Any notes you took during the lectures.
• Lab worksheets – Read over all lab worksheets.
• Lab projects – Ensure all projects have at least stage one implemented.
Combined these provide all the necessary information for you to successfully complete this assessment. All
resources are available on the CO3409 Blackboard area under Module Materials.
RELEASE DATES AND HAND IN DEADLINE
Assessment Release date: 18 / 01 / 2021 | Assessment Deadline Date and time: 08 / 03 / 2021 by 23:59:59
Please note that this is the final time you can submit – not the time to submit!
Your feedback/feed forward and mark for this assessment will be provided on 29 / 03 / 2021
Please take your time when reading this section, as this contains specific information on how you should submit
your coursework. Where you see you should replace this with your full name. Please ensure
that you follow the submission requirements defined below.
A zip folder should be named _CO3409_CW_2020.zip and should contain the following files
and folders listed below:
• Folder named Implementation containing your project.
• Your Report named _CO3409_Report.docx.
• A completed Assignment coversheet found on blackboard.
You must submit your coursework submit a .zip file online through the appropriate link on Blackboard, by the
hand in date stated at the beginning of this document. Please ensure you check the contents of your zip folder
• Late submissions: Except where an extension of the hand-in deadline date has been approved, work
that is handed in within 5 working days late will receive a maximum mark of 40%. Work handed in later
than this will receive 0%.
• Academic Malpractice: The consequences of academic malpractice in assessments are serious. This
includes plagiarism, collusion and allowing other students to access your work. This will not be tolerated.
Details surrounding the coursework regulations can be found in the University’s “Assessment
Handbook” located here.
Below are tips that you may find useful when working on this assessment:
• Do not leave this assessment to the last minute.
• If you have any questions regarding this coursework, ask the module leader or module tutors.
• Give yourself plenty of time to submit prior to the submission deadline.
• Use pen/cil and paper to work out the flow of your application.
• Revisit the “Four L’s”: Lectures, Lecture notes, Lab worksheets and Lab projects.
HELP AND SUPPORT
• Support will be provided via Microsoft Teams (CO3409 channel), Email and you will also have the opportunity
to ask questions during lectures / labs.
• For support with using library resources, please contact our subject librarian Bob Frost [email protected]You will find links to lots of useful resources in the My Library tab on Blackboard.
• If you have not yet made the university aware of any disability, specific learning difficulty, long-term health or
mental health condition, please complete a Disclosure Form. The Inclusive Support team will then contact to
discuss reasonable adjustments and support relating to any disability. For more information, visit the Inclusive
• To access mental health and wellbeing support, please complete our online referral form. Alternatively, you
can email [email protected], call 01772 893020 or visit our UCLan Wellbeing Service pages for more
• If you have any other query or require further support you can contact The , The Student Information and
Support Centre. Speak with us for advice on accessing all the University services as well as the Library
services. Whatever your query, our expert staff will be able to help and support you. For more information,
how to contact us and our opening hours visit Student Information and Support Centre.
• If you have any valid mitigating circumstances that mean you cannot meet an assessment submission deadline
and you wish to request an extension, you will need to apply online prior to the deadline.
Disclaimer: The information provided in this assessment brief is correct at time of publication. In the unlikely
event that any changes are deemed necessary, they will be communicated clearly via e-mail and a new version
of this assessment brief will be circulated.