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"
(approximately 3 milliliters), 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.
- 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 on Canvas.