Assignment 3
Post your questions to the Piazza forum, read replies, and collaborate on the forum with your colleagues. Additional constraints will be revealed in discussions. You are required to accommodate those constraints in your model. This is similar to uncovering additional information by consulting subject matter experts as you realize that there is missing, incomplete, or contradictory information given.
Question 1 (10 Points)
Information Scientists and Business Analysts often use tools for much of the work they do. Often, they need to first find or select a tool. Do some research on tools that allow you to create UML Class Diagrams. One example is ArgoUML. Find three tools and write a short description/review of each listing the tool's name, whether it's free or whether a free version is available, company URL, and how well it supports UML Class Diagrams (based on what you can gather from the website; you do not have to install each tool.) Do not include LucidChart in your list of tools.
Question 2 (30 Points)
Build an ontology for tracking projects 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 "Project" class to describe a generic, abstract project instead of the Ravix project managed by Jill. 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 "Project" class to describe a generic, abstract project instead of the Ravix project managed by Jill. 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 a director, I want to know all of the projects that are currently ongoing at the organization.
- As a director, I want to know the projects that are ongoing or have been completed for a particular client.
- As a project manager, I want to know all the projects to which I have been assigned.
- As a team member, I want to know the projects to which I'm assigned.
- As a team member, I want to know the number of hours I am assigned to some project.
- As a client, I want to see the project team that's working on one of my projects.
- As a director, I want to know which projects are not presently on time or on budget.
Question 3 (60 Points)
Create an XML file that implements the ontology from above in XML with an appropriate DTD. This is a specific set of instances -- you can invent them as you see fit. Be sure to view the XML to ensure it is valid. Define constraints as needed but be sure your UML model from Question 2 reflects them. You may want to use an editor such as Sublime, JEdit, RStudio, or Aptana Studio to help you create the XML. Do some exploring to find a suitable tool.
What to Submit
- Submit the reviews of your UML tool reviews, screen shots of your UML Class Diagram represented ontology, and the XML file in a single PDF.
- In addition, submit the XML file containing sample instances based directly on the ontology and the DTD defining the XML tag rules.
Scoring
Total Number of Earnable Points: 100
Approximate Time to Complete: 4-6 hours
Due Date: see Calendar or Blackboard
Approximate Time to Complete: 4-6 hours
Due Date: see Calendar or Blackboard