Class and Package Diagram (Interact with Character)
- Due 4 Mar 2022 by 14:00
- Points 17
- Submitting a file upload
The following pages may be of use for this assignment:
- Assignment Input: System Description
- Assignment Input: Domain Model
- Assignment Input: Interaction Diagrams (Interact with Character)
- Example: Assignment Input: Class Diagram (Interact with Object)
- Module: Object Oriented Design
- More on Packages: The Big Picture: Components and Packages
The use case "Interact with Character" has the following system events:
initiateConversation(theCharacter)
This event instructs the :Game that the player wishes to start a conversation with a specific character. The game checks whether the character is accessible (e.g. player has the phone number to the character, an address for text messages, or is at the same scene as the character, and then connects the player with the character using the appropriate CharacterInterface.
sendQuery(theQuery)
In this event the player sends a text query to the character that is currently active (as per the most recent initiateConversation event). The character parses the query, checks where in the game plot the player is, formats a response along with conversational avenues that the player can pursuit in their next sendQuery() call.
acceptGameObject()
The response may include a GameObject that the character prepares (e.g. a pathology report, a note with the character's phone number, etc.) and offers to the player. In this event, the player accepts to take the object and it gets put into their inventory.
endConversation()
This terminates the current conversation. When relevant, the character records into persistent storage that they have had the conversation (e.g. about a particular clue) with the player.
Tasks:
- Based on the domain model and the interaction diagrams presented, create a package diagram containing the major components in this system (each component is expressed as a package). Briefly describe the responsibilities for each of the components. When deciding which components to include, you may think in terms of that
- you may want to separate e.g. anything dealing with characters from other gameObjects
- you may want separate components for different types of characterInterfaces (e.g. conversation, text messaging),
- you may want to place storage-related functionality into a separate component
- you may want the "gameplay" (plot etc.) in a separate component
- ... and so on.
- Given the provided sequence diagrams for initiateConversation() and sendQuery():
- Add the involved classes to the right component in your package diagram
- Add the used methods to the right classes.
- Ensure that the relations between the involved classes are there, correct, and with the right multiplicity indicators.
Note: If you disagree with the provided domain model, then good. You are more than welcome to create a better design for the game and use this instead.
Also Note: If you have done the assignment "Instantiated Architecture Style" (which students in some course codes (but not all) do), you already have an overview of the components (or modules (or packages)) to start with. Use this as a starting point and then sort the domain concepts into the appropriate packages. You may need to create new packages in this process.
Rubric
Criteria | Ratings | Pts | ||||||
---|---|---|---|---|---|---|---|---|
Completeness
The extent to which all requested aspects of the assignment are accounted for.
threshold:
pts
|
|
pts
--
|
||||||
UML Notation
Adherence to the standard UML notation.
threshold:
pts
|
|
pts
--
|
||||||
Workable Design
The produced design artefact(s) will, if implemented as described, result in a workable system that addresses the right requirement(s).
threshold:
pts
|
|
pts
--
|
||||||
Coupling and Cohesion
The degree to which responsibilities are assigned to objects/classes/design elements so that the system's overall coupling remains within reasonable levels, and each object/class/design element has a high cohesion.
threshold:
pts
|
|
pts
--
|
||||||
Use and Description of GRASP Patterns
The extent to which GRASP patterns are correctly used AND documented.
threshold:
pts
|
|
pts
--
|
||||||
Total points:
17
out of 17
|