UML Components Lab: Practice and Assignments

Resources

UML modeling tools that support UML 2.0 Component Diagrams

Lab Assignments

Following lab assignments are proposed UML_A and UML_B:

Assignment UML_A

Goal: Drawing UML Component Diagrams

Credits: by doing correctly and in time this assignment you can obtain a maximum of 1 lab points)

Deadline: Week 4

Requirements: Represent the strucure of a software system by using UML 2.x Component Diagrams. Use a medium-sized system (it can by i.e. your own bachelor project or any other open source system). The recommended UML tool is Visual Paradigm Community Edition, but you can use other tools as long as they support component diagrams. In your assignment, you have to use in your diagram all the important elements of UML 2.x component diagrams: provided interfaces, required interfaces, ports, internal structure, connectors. No credit will be given for doing other types of diagrams (class diagrams, package diagrams, etc) instead of component diagram.

Assignment UML_B

Goal: Comparing the capabilities of different UML tools for components

Credits: by doing correctly and in time this assignment you can obtain a maximum of 1 lab points)

Deadline: Week 5

Requirements: Represent the strucure of a software system by using UML 2.x Component Diagrams. Use a medium-sized system (it can by i.e. your own bachelor project or any other open source system). Use at least 3 different UML tools of your choice (one of the tools can be the tool used for assignment UML_A). Compare the tools from the point of view of their capabilities of supporting the standard UML 2.x elements for component diagrams. The comparison can be in form of a table having the standard UML component diagram elements on the rows and the tools on the columns. Every entry in this table can have one of the values: not supported, fully supported (according to the standard), or supported in a custom way. If a certain element is supported by a tool X in a custom way, this has to be explained/commented (example: tool X supports provided/required interfaces, but using only stereotype notation, not as lollipop and socket; Tool Y does not provide delegation connectors, but they can be replaced with dependency relationships in diagrams; etc ...)