### UML Assignment **DUE: Wednesday, October 11 at 10:00 pm** Submit via Github Place in folder project/iteration1 #### Resources - UML@Classroom (at lib.umn.edu) - UML graphics tool Lucid Chart - UML graphics tool Dia Diagram Editor (available on cselabs - module load soft/dia if not already available to you) #### Requirements **Create a UML class diagram** of the provided base code with the intent of providing a clear and accurate description of the classes and how they relate. Include inheritance, composition, and aggregation if appropriate. Also indicate associations in which classes interact in a fundamental manner, for example the event classes have associations with other classes. Provide only significant class members and methods. Do not include setters and getters. There are no absolute rules about creating a UML diagram, however the **class boxes and connectors should follow the standards.** Class boxes have the class name appearing in a top section, members in the middle section, and methods in the bottom section. Use open triangles for inheritance, filled in diamonds for composition, open diamonds for aggregation, and lines with and without arrows for associations. In addition to the typical "box" diagrams of classes, **annotate the document with important information**. For example, you might indicate critical data being shared, or identify a 1-to-many relationship, or perhaps provide a brief description of the type of association between classes. This should just be a few words to highlight the important aspects, not paragraphs. Also, **write one paragraph** that describes the software generally. It should provide a sense of the purpose of the software, as well as an overview of a few key elements of the code structure (e.g. the graphics viewer and arena classes). If you use some text that was provided with the code, then be sure and cite your source. The audience is programmers (including yourself). This diagram should have sufficient detail to help someone with no knowledge of this software to better understand the framework, but not so much detail that it is hard to separate the very important elements from the insignificant details. The UML diagram that you create will be shared with your peers as part of an in-class exercise. #### Assessment This is a writing-in-the-discipline assignment, and as such, it will be assessed based on typical criteria for writing. This includes good organization, clarity of ideas, a demonstration of understanding, depth of thought, and correctness. The most important thing is to clearly highlight the organization of classes, so pay close attention to the layout that you are presenting to the user. If you have a bunch of crossed lines, you probably need to reorganize the layout.