Starting from:
$30

$24

PART #2: PROJECT DESIGN, IMPLEMENTATION, and REPORT

The goal of the second part of the project is to design two Vending Machines (VM) components using the Model-Driven Architecture (MDA) and then implement these VM components based on this design using the OO programming language. This OO-oriented design should be based on the MDA-EFSM (for both VM components) that was identified in the first part of the project. You may use your own MDA-EFSM (assuming that it was correct) or you can use the posted sample MDA-EFSM. In your design, you MUST use the following OO design patterns:

state pattern




strategy pattern




abstract factory pattern










In the design, you need to provide the class diagram, in which the coupling between components should be minimized and the cohesion of components should be maximized (components with high cohesion and low coupling between components). In addition, a sequence diagram should be provided as described on the next page (Section 4 of the report).







After the design is completed, you need to implement the VM components based on your design using the OO programming language. In addition, the driver for the project to execute and test the correctness of the design and its implementation for the VM components must be implemented.

 The Report and Deliverables

I: REPORT

The report must be submitted as one PDF-file (otherwise, a 10% penalty will be applied).

MDA-EFSM model for the VM components

A list of meta events for the MDA-EFSM
A list of meta actions for the MDA-EFSM with their descriptions
A state diagram of the MDA-EFSM



Pseudo-code of all operations of Input Processors of Vending Machines: VM-1 and VM-2



Class diagram(s) of the MDA of the VM components. In your design, you MUST use the following OO design patterns:



State pattern
Strategy pattern
Abstract factory pattern



For each class in the class diagram(s), you should:

Describe the purpose of the class, i.e., responsibilities.
Describe the responsibility of each operation supported by each class.



Dynamics. Provide two sequence diagrams for two Scenarios:



Scenario-I should show how the cup of latte is disposed of in the Vending Machine VM-1 component, i.e., the following sequence of operations is issued:



create(1), insert_cups(20), coin(0.5), coin(0.5), sugar(), latte()




Scenario-II should show how a cup of coffee is disposed of in the Vending Machine VM-2 component, i.e., the following sequence of operations is issued:



CREATE(1.5), InsertCups(1), CARD(10), CREAM(), COFFEE()




II: Well-documented (commented) source code




In the source-code you should indicate/highlight which parts of the source code are responsible for the implementation of the three required design patterns (if this is not indicated in the source code,

points will be deducted):
state pattern




strategy pattern




abstract factory pattern.




The source-code must be submitted on the Blackboard. Note that the source code may be compiled during the grading and then executed. If the source-code is not provided, 15 POINTS will be deducted.




III: Project executables




The project executable(s) of the VM components with detailed instructions explaining the execution of the program must be prepared and made available for grading. The project executable should be submitted on Blackboard. If the executable is not provided (or not easily available), 20 POINTS will be automatically deducted from the project grade.

More products