SOA
University of Leicester
SOA: Service-oriented Architectures
Winter 2020
Reiko Heckel (reiko@mcs.le.ac.uk)
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 pro- grammes 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, scenar- ios 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 getAllRegistra- tionsForProgramme(“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 in- stance.
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 dia- gram.
[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 inte- grated 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-writ- ten 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