SOA.pdf

University of Leicester

SOA: Service-oriented Architectures

Winter 2020

Reiko Heckel ([email protected])

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