The University of Aberdeen
The Computing Science Department

Assessment and Exam

1 two-hour written examination (75%) and continuous assessment (25%). In order to pass the course, candidates must obtain a pass mark (CAS > 8) in the examination and in the overall combination of examination and continuous assessment (with the above weights).

In course Assessment - due at noon on Friday 10 May 2013

This exercise, worth 25% of your overall mark, is part of the formal assessment of the course, and the work done must be your own. You should look at the section on Cheating and Plagiarism in your student handbook.


For the assessment you will need to complete three components of a business application using your skills in  Java, or Ruby and Rails, and XML. Your goal will be to build an integrated business application that has a customer facing website using server-side Java, and a Java backend for the office staff to use (or do both in Ruby and Rails if you'd prefer). Lastly, you will need to write out how the XML ordering process would be integrated into the system for your suppliers.

You should do this assessment in partnership with one other person.

One of you does the customer facing side, and the other person does the back office side. The two of you both need to determine which shared components that you both can use together. This could include components such as a login system, beans to model your objects like customers, and whatever you're selling.
If you do this assessment on your own, then I will take this into account when marking it.


You will create a business of some sort using open data, which you mix with your own data about customers and their orders. You can use this list of open data sources to get your started. Obviously, there are other sources too. You will want it to work for the demonstration that you need to do in week 11 or 12.

You can sell whatever you like, except for sandwiches. 

In addition to using a large number (over 1000 items in your catalogue), you must also have at least 10 orders from customers. How you design the tables and store the data about customers, orders and products is up to you.

I am not too concerned about the look and feel of the websites (you are not designers after all). However, the navigation should be complete and consistent, as well as allow for the functionality specified below, plus any other extra functionality that you feel is appropriate.

Customer Facing Side

The customer facing website will use a web application tied to the database that lets customers order products from you. Customers must be able to browse your product offerings, and to place an order for your products. This is worth a third of the marks.

Use this MVC with Java Guide to keep you on track

Back Office Side

The business office backend should allow using the application to be able to browse customers, customer orders, and to manage products in the database. This is worth a third of the marks.

A note about the functionality

There are different issues here if you did this in Java, or you did this in Ruby and Rails. Read the appropriate part below to make the most of this.

Java Issues

With respect to Java, this assessment application swaps around what you did in the practicals. This means that all of the functionality that you need to use is in the practicals, but you will need to look for it. If you're not sure about how to do something, then look through the practicals, and the slides for that week. You should find what you need in one or both places.

We've gone through how to take input from forms (text, radio buttons, drop-down boxes, and checkboxes) and pass the parameters onto functions in the page, as well as onto other pages. Similarly, we've also looked at how to display tables from databases on a page, as well as how to use data from databases in to fill in the drop-down lists. While we didn't do drop-down lists in Java, you can see how the principle works to make it work in Java: set up a method to call the SQL of just the two columns from the table, and put the results into a vector of objects that you then unpack to display on the JSP.

We also looked at sessions in both languages, as well as how to use a Model-View-Controller design pattern to make the whole application more manageable. You just need to look through the lectures and practicals to find what you need and then adapt it to your needs. If, as noted above, the functionality is shown in the other language, then you need to pause, and work out what's happening so that you can implement it in the other language.

Ruby and Rails Issues

Ruby and Rails does a lot for you with respect to enabling the creation, edit and deleting of items from the database. You only need to set up the links for users to use these, and to enable some sort of authentication. The big issue for you is how to merge the menus so that you have sensible navigation in the application and don't keep coming back to a 'home' page because you lack a global navigation system in your application.

XML Part

The XML part does the following (and is worth a third of the marks):

a) in a text document explains why you use an XML system to send order details to the shipping department.

b) provides an XML Schema (in a file called order.xsd) for an order which would be received by the shipping department from the online customer facing website.

c) provide a sample XML order (in a file called order.xml) which would be sent to the shipping department from a customer's order.


Due by 12 noon on Friday 10 May (end of week 12)

You will also be asked to demonstrate your application in the practical sessions during either week 11 or 12

You must put all of your files into one unzipped folder of the format username_cs3530 and to then upload this to the CS3530 MyAberdeen assignment page along with a PDF with your name, and your partners name on it explaining the design and development of the application.

Do NOT email in your submission.


The assessment will be marked according to these guidelines:

CAS 9 - the application will meet the minimum requirements so that customers can browse products and place orders, while staff can browse orders and add new products, and the XML components are also correct, and the navigation for the websites are sensibly implemented.

CAS 12 - the above, plus there is code reused where possible, and the XML components are more precisely implemented.

CAS 15 - all of the above, plus there is a separation of concerns used in the code, so that not everything sits in the webpages themselves. The XML components will be more complex structures, and the reasoning for its use more detailed and specific.

CAS 18 - all of the above, with the separation of concerns fully implemented in all areas of the applications.

In general, more complex applications, with greater attention to detail, will do better than those that don't. If you provide appropriate extra functionality into your site, then that will be taken into account too.

Marking guide still to be done

This is what I will use to mark your assessments. Note that each of the four sections counts for 25%, so don't ignore a section. Looking at it you will see tick boxes for a variety of features noted in the text above describing the assessment requirements, and in the marking section. If you achieve all of the bold parts, then you will have a bare pass, CAS 9. Some of the boxes are either/ or type of things, so don't try to fill them all in. For example, you can't have both 'puchase on separate page' and 'purchase on catalogue page' ticked. 


There will be an exam in May/June and you can use this paper from last year for revision.