University of Leicester
SOA: Service-oriented Architectures
Winter 2020
Coursework 2: From UML to XML and JSON
This model describes the data held by a module registration system. Programmes (such as
Advanced Computer Science) have modules to which students enrolled on these programmes
can be registered.
Operations
getModuleRegistrations(sid: Int): Student
Pre: Assumes sid of an enrolled student.
Post: Returns all module registrations of student matching sid including the student’s details.
getAllRegistrationsForProgramme(name: String): Programme
Pre: assumes name of an existing programme.
Post: Returns all module registrations of all students of the matching programme.
Assignment
The problems in Part A, B and C are independent of each other. While they use some of the
same class models and requirements, they are concerned with different operations, scenarios
and target languages. Therefore, your design choices to A, B and C can be different, too.
Part A: JSON – based on Part 2.5
Create a sample JSON object that could be returned as a result of invoking
getModuleRegistrations (12345678) as specified above, in the following steps:
1. Create a reduced class diagram containing only the elements relevant to this task.
[basic, 5 marks]
2. Create a class diagram defining the structure you want to use to represent the data in
JSON. This is analogous to an XML-specific class diagram, except that the target language
is JSON. What is the structure of the mapping you have to use?
[basic, 5 marks]
Student
name: String
sid: Integer
Module
code: String
registeredFor
*
Programme
name: String
academicYear: String
enrolledIn
* 1
*
*
*
3. Create the JSON object following the structure of your JSON-specific class diagram.
[basic, 10 marks]
Part B: XML – based on Part 2.1 - 4
Design a DTD that could support the data returned by an invocation of getAllRegistrationsForProgramme(“
Advanced Computer Science”) as specified above, following the
steps below. Take care to create a solution that minimises redundancy to ensure a compact
representation of the data.
4. Create a reduced class diagram containing only the elements relevant to this task. Justify
your choices. [basic, 10 marks]
5. Create an XML-specific class diagram and justify the chosen document structure using
the requirements from the scenario. [basic, 10 marks]
6. Derive the DTD and justify the style of mapping you have chosen for the attributes.
[basic, 10 marks]
7. Is the mapping from the class diagram in 5 to the DTD data preserving? Please justify
your answer. In particular
a. If the mapping does not extend data capacity, provide a valid object diagram
as counterexample and explain why there is no corresponding valid XML instance.
b. If the mapping does not reflect data capacity, provide a valid XML instance as
counterexample and explain why there is no corresponding valid object diagram.
[moderate, 20 marks]
Part C: Data Integration – based on Part 3.2
The class diagram below defines the data held by a timetabling system, allocating sessions
for modules held during a certain term, at certain times of the week, in certain rooms.
A personal timetable allocates to each student the timetabled sessions for the modules they
are registered in. To create such a personal timetable we need to integrate the data models
of the timetabling system and the module registration system.
The integration should satisfy the following requirements:
• All data representable with the two given models should also be covered by the integrated
model, i.e., both mappings from the given models to the integrated model
should extend the data capacity.
• The integrated model should be free of redundancy in the sense that every concept
should only be represented once.
• The integrated model should be able to represent consistent individual timetables
across several terms of up to five academic years.
Proceed along the following steps:
8. Identify the conceptual overlaps and conflicts between the two models in an itemised
list.
[moderate, 10 marks]
9. For each overlap or conflict you identified, explain it in a single sentence and say how
you chose to resolve it in the integrated model.
[advanced, 10 marks]
10. Create an integrated class diagram following the choices made under 9.
[advanced, 10 marks]
Submission and Mark Distributions
Submit by 4pm on Thursday, 27th February through via the module’s BlackBoard site. Upload
a single pdf document containing all your answers with the completed coursework cover
sheet as first page. This is individual work for 20% of the overall module mark. No hand-written
solutions please - use editors for diagrams and text.
The assignment contains a mix of basic, advanced and challenging questions. Jointly the
basic elements allow a pass mark of 50%. The advanced question are open-ended, requiring
your own judgment and reflection on the properties of different solutions.
Enjoy!
Room
building: String
number: String
Module
code: String
Session
weekday: Day
time: Time
InRoom
*
ofModule
1
1
*
Term
start: Date
end: Date
duringTerm
*
1
0 comments:
Post a Comment