Exercise 1, SWE 2410: Automated Coffee Maker Equipment (ACME)
Working in groups of two or three, create a domain diagram around the
following problem description. It is not required to work in a group,
but generally people who work in groups do a better job of identifying
classes. We do want each student to turn in their own diagram so that
students get experience creating UML diagrams.
A senior design team has decided to build automated coffee maker
equipment (ACME) for a residence hall. The ACME has the following
high-level requirements:
- The system shall contain reservoirs for coffee beans, cream, sugar,
and vanilla syrup.
- The system shall detect the size of the cup placed under the
dispenser and fill that cup to 3/4 full with the selected beverage.
- The machine shall always dispense coffee. In addition, the user
shall select the additives to mix into the cup along with the
amounts of each.
- Additive amounts shall be expressed in units of "squirts"
(3 milliliters each), and the machine shall support up to 3
squirts of any one additive.
- The system shall have a reservoir holding 500 ml of water heated to
90 C. When water is dispensed, the reservoir will be refilled from a
hose connected to an open tap and a heating element turned on to
reheat the water.
- The system shall have a panel used to create the next drink order,
selecting additives and their amounts, and then have a dispense
button which fulfills the order when a coffee cup is inserted.
- If the panel has not been touched for 2 minutes, then the panel
shall reset to zero additives. The panel shall also reset after an
order is fulfilled.
- To fulfill an order, the system shall grind an appropriate amount of
coffee into a brew chamber, pump water to a preheat chamber where it
can be heated to 95 C, pumped from the preheat chamber into the brew
chamber, dispensed into a mixing chamber where the additives are
inserted, then poured into the cup.
- Each reservoir shall have a pump attached to its outlet tube, and
the pumps move liquid when activated and block movement when
deactivated.
- Each reservoir shall have a sensor for the amount of liquid in that
reservoir.
- The brew, preheat, and mixing chambers shall have sensors measuring
the amount of liquid each contains.
- The preheat chamber and the water reservoir shall contain
temperature sensors.
Working in groups, use the noun and verb technique followed by
appropriate refinements to capture the domain of this problem. You
should include classes, attributes, operations, associations,
generalizations (including abstract classes or interfaces),
multiplicities, and role names. Using EA, draw a class diagram capturing
this information. In addition, satisfy the following:
- Use proper naming conventions (upper case class names, lower case
attributes and methods).
- Ensure your class names (and names in general) are meaningful. For
example, RedPiece is not descriptive, but RedCapturePiece would
indicate a piece that captures others. Be sure to use singular names
unless the class represents a collection!
- The diagram must include inheritance, associations, and multiplicities
other than 1. There should be no part of the diagram that is
completely disconnected from another part - that is, you should be
able to trace a path from any class to any other by following
associations and generalization arrows.
- Do not use open diamonds. They are meaningless. You do not need
fill-in-diamonds (“needs-a”) associations for this assignment, but
they are not wrong to use in general.
- Do not document dependency relationships (dashed association
arrows). These capture temporary associations and are only appropriate
when thinking about implementations. This assignment is about capturing
a high level view of the project.
- While the realizes relationship (a dashed inheritance arrow) is useful
for Java projects, it is not particularly important when thinking at the
domain level. Just use standard generalization in this assignment.
- Give key attributes and methods for several classes, but you do not
have to be comprehensive. Think in terms of operations the hardware
implementation team would recognize like "activate" and
"reservoir".
To create this diagram in Enterprise Architect, follow the directions
here to install
it. Your instructor will describe how to use this tool to create a UML
diagram.
Because this is a domain-level diagram, it should not have types. To
remove them in EA:
- Right click on the diagram and select Properties
- Click on Features on the left
- Clear Show Operation Return Type
- Set Show Attribute Detail to Name Only
- Set Show Parameter Detail to None
When you are finished, follow these
directions
to create a .PNG of your project, convert that to a PDF, and upload it
to Canvas. It is important that you follow these directions; taking a
screen shot will not work because the image resolution is too low to
grade in Canvas.