Starting from:

$30

CS342-Final Project Software Engineering 2 Solved

Topic 1: Analyze and Design a System Consider the following system:

“El-Abd on the go” is a machine that produces oriental desserts, as well as sells such desserts through an automated manner (like beverages vending machines). It has the capability of connecting to the internet. It enables buyers to order desserts through their cell phones. The buyers need to validate themselves during the process of making an order online. After the order is done, “El-Abd on the go” informs the credit card company to charge the buyer’s credit card. Subsequently, the system commences producing the ordered desserts to be ready at the time requested by the buyer. The buyer can get his prepared desserts from the pickup interface of the machine. This process involves the buyer communicating with “El-Abd on the go” machine using his cell phone, and validating himself to enable such communication. If “El-Abd on the go” is short on any needed cooking material (e.g., flour, vanilla, …etc.), a support agency is called.

 

You are required to prepare and submit all the following artifacts within a single pdf file:

1.     [Artifact 1]: Write down a requirements backlog for the above explained system. The requirements backlog needs to have at least 10 requirements, showing  elaborated details/more information on the above-mentioned system. Each requirement should span 2-3 lines of text.

2.     [Artifact 2]: Sketch an analysis level class diagram for the above system.

3.     [Artifact 3]: Provide an updated class diagram that utilizes at least three design patterns. You need to explain, in written English text, why you used those patterns specifically.

4.     [Artifact 4]: Divide the updated class diagram into a set of connected subsystems. For the created system decomposition, you need to:

a.     Explain why you performed that decomposition in such specific way.

b.     Comment on the coupling and cohesion of the different subsystems.

5.     [Artifact 5]: Create a component diagram to show the main components of the system. The diagram needs to clearly show the provided/needed interfaces by the different components.

6.     [Artifact 6]: Create a deployment diagram for the system.

7.     [Artifact 7]: Identify at least three design goals for the system. Each design goal should be explained in 2-3 lines of text. Map those design goals to the FURPS+ model. Write down your own suggestions, in English text, for how such design goals could be achieved.

 

 

 

 

 

 

 

Topic 2: JHotDraw Design Patterns and SOLID principles 
This project is about design patterns and SOLID principles. In this project, you will use JHotDraw version 7.5.1. JHotDraw is an open source graphics framework for structured drawing editors that is written in Java. For more details and for the source code, please visit https://sourceforge.net/projects/jhotdraw 

 

You are required to:

1.     Investigate the source code of version 7.5.1 of JHotDraw, in order to identify five different design patterns that have been used in implementing such framework. For each of the identified design patterns, you need to:

a.     Identify the exact location(s) of that patterns within the source code (in terms of files full canonical names (e.g., org.junit.TestCase.java, and involved classes’ methods)

b.     Sketch the class diagram of that identified pattern using the JHotDraw classes involved in such a pattern.

c.     Evaluate how appropriate is the use of such a pattern within its current context.

2.     Investigate the source code of version 7.5.1 of JHotDraw in order to identify five different violations of the SOLID principles. You need to cover at least three different SOLID principles. That means, it is not acceptable to identify five violations of the OCP only. For each of the identified SOLID violations, you need to:

a.     Identify the exact location(s) of that violation within the source code (in terms of files full canonical names (e.g., org.junit.TestCase.java, and involved classes’ methods)

d.     Sketch the class diagram of that identified violation using the JHotDraw classes involved in such a violation. You need to explain which SOLID principle was violated, and how it was violated

e.     Sketch an updated class diagram to fix that violation. You need to explain how you fixed the violation within the updated class diagram.

More products