A UML Machine
Carefully planning a new application pays benefits throughout the development process. As you map out a new program, try to think about the “big picture,” and not get wrapped up in the coding details right away. In fact, you map out a new program in the same way you would map a long road trip: Start with the major roads between your point of origin and your destination. A county or state map works well, as does an online map zoomed out enough to allow you to see the entire route. This sort of map lacks detail–you cannot see if there is a grocery store at the corner in Ortonville in case you get the munchies—but that is not the purpose. You can worry about restaurants and sights once you get closer to your destination.
In the context of programming, UML class diagrams provide an overview of your programming goal without wrapping yourself around the metaphorical axle. UML class diagrams list the two essential components of a class: its fields and its methods. Consider the UML diagram below, which represents the TicketMachine class in your reading. Notice that a horizontal line separates the fields (above) from the methods (below). The symbols preceding each line indicate whether the fields or methods are designated private (–) or public (+).
TicketMachine
– price : int
– balance : int
– total : int
+ getPrice() : int
+ getBalance() : int
+ insertMoney (int amount) : void
+ printTicket() : void
+ refundBalance() : int
Think about a machine with which you are familiar, whether it be an ATM or the coffee machine at your office. All machines take some sort of input, generate an output, and can be described by some state. In the case of the TicketMachine class, input is provided via the insertMoney() method, output is generated by methods such as getPrice() and printTicket(), and the state is described by fields like balance. Think about the methods and fields that would best characterize your machine if it were a Java class, including the variable and return types for each.
Post the name of your machine and briefly describe it. Then, generate a UML class diagram for that machine, including at least two fields and at least four methods. Remember, methods can collect input, provide output, or govern the internal operations of the machine itself.
Grading Rubric
The response includes comments related to each part of the Discussion prompt.
The content of the posts is substantive and enhances the quality of the Discussion. The response illustrates a point with examples, presents new ideas, and asks questions that help further the Discussion. The response to colleagues’ posts is constructive and subject related.
The response provides insightful feedback to a response that agreed or disagreed with the original post. If the response disagrees with the post, the response includes a constructive rationale.
The post exhibits critical analysis of posted ideas by asking for evidence to support claims, providing evidence to support claims, and revisiting the Discussion to respond to other responses about the posting.
The post exhibits critical analysis of posted ideas by asking for evidence to support claims, providing evidence to support claims, and revisiting the Discussion to respond to other responses about the posting.

