Recitation III
- Review of XML and DTD
- XML Example
Worked Example
Build an ontology for tracking products used in an organizations using the use cases below. Start by defining the domain boundaries for the list of competency questions (use cases) below - that means that you only consider the classes that you need to support the use cases rather than all of the classes that you might think of for project management. Visualize the ontology as a UML Class Diagram using one of the tools identified above (and not LucidChart). The result of the effort should be a single UML Class Diagram that contains the necessary classes to support the use cases below and the requisite relationships (association, aggregation, generalization/inheritance) with multiplicities where known. In addition, the diagram should reflect the additional constraints revealed in discussions on the forum.
Note that a UML Class Diagram only contains "generic"/"abstract" concepts rather than concrete instances/examples. For example, your class diagram is going to contain a "Product" class to describe a generic, abstract product instead of Atlassian Jira used by the software development team. UML does have an object diagram that would allow you to visualize concrete instances but you would need multiple object diagrams to show all of the scenarios. In practice, you use object diagrams to provide example for people who may not understand abstract class diagrams.
Competency Question ("Use Cases")
Note that a UML Class Diagram only contains "generic"/"abstract" concepts rather than concrete instances/examples. For example, your class diagram is going to contain a "Product" class to describe a generic, abstract product instead of Atlassian Jira used by the software development team. UML does have an object diagram that would allow you to visualize concrete instances but you would need multiple object diagrams to show all of the scenarios. In practice, you use object diagrams to provide example for people who may not understand abstract class diagrams.
Competency Question ("Use Cases")
- As the CFO, I want to know all of the products that are currently used by various teams or units at the organization.
- As a CFO, I want to know the products that are are in use by consulting teams doing projects for clients.
- As a project manager, I want to know all the products that are used by my team.
- As a procurement specialist, I want to know the cost of each product, the vendor, the version, and the length and cost of the support contract.
- As a CFO, I want to know the total as well as annual cost of all support contracts.
Create a sample XML file with an associated DTD that would allow for the storage and transmission of information about projects in an organization. Specifically, an organization needs to track all of ongoing and completed projects, their project managers, budgets, expenditures, and allocated resources. For each resource it needs to track how many hours that resource is allocated to a project.