Evaluate and choose appropriate software design patterns

Assignment Help Computer Engineering
Reference no: EM131479869

Object Oriented Systems Analysis and Design

Case

A hopeful (and slightly behind the times) startup company is pinning its hopes on a multiplatform distributed text-based chat application.
Signed up members connect to a server using their logonid and password, and are placed in public lobby. Their client is notified of all other currently connected members, and immediately starts receiving messages posted in the public lobby from other members. They continue receiving messages in that public area until they log out. All connected clients are notified whenever a member either connects or disconnects from the service.

While connected, members can also select a subset of other currently connected members and start private chat sessions with them. Messages sent between participants in private chat sessions appear only to those participants. Members can leave private chat sessions whenever they like, but the remaining members can continue chatting, until only one participant is left. Members can also be invited to join a private chat session that has already started.

Implement the message handling aspect of the server. You may assume that the networking aspects of the client are handled internally by the client object. Your job is to implement those aspects of the client that interface with the message handling system, and the server side message handling system itself.

In essence, you are allowed to assume that remote clients are represented by local Client objects, and you only need to organize calling methods on those objects and having those objects call methods in the message handling system. How you simulate new clients connecting and existing clients disconnecting is up to you. How you simulate clients is up to you.

Here is a list of the messages that need to be exchanged between client and server: your job is to make sure those messages get to the right chat session of the right client.
CONNECT(logonid) DISCONNECT(logonid) MEMBER_CONNECTED(logonid) MEMBER_DISCONNECTED(logonid)
SEND_MESG(chat_id, sender_id, message) RECEIVE_MESG(chat_id, sender_id, message) chat_id = NEW_CHAT(initiator_id, logonid_list) REQUEST_CHAT(initiator_id, logonid_list) INVITE_CHAT(target_id, chat_id) JOIN_CHAT(logon_id, chat_id) LEAVE_CHAT(logon_id, chat_id)

These messages are indicative only. You are not bound to implement this exact interface. You do need to implement the functionality as stated.

Luigi's Pizza makes pizzas. They make a variety of pizza bases, and cover them with a variety of sauces. They then add cheese, and a variety of toppings. Luigi's ‘schtick' is that all pizzas are customizable: customers order a pizza by ordering a base type, selecting a sauce, selecting a cheese, then selecting all the toppings they want. Each base type, sauce, cheese, and topping has its own cost, and the charge for a pizza is calculated by adding up all the component costs.

You job is to write a program that allows customers to order any combination of base, sauce, and whatever and as many toppings as they like, and to produce an itemized receipt with the correct cost for each pizza.

Here are the different bases, sauces and toppings that are available. Remember a pizza consists of 1 base type, one sauce, a particular type of cheese, and whatever toppings the customer wants.

Here are the different types of each component and their costs:

Bases:

 

 

Thin and Crispy

2.00

 

Regular

2.50

 

Deep Pan

3.00

 

Cheese Filled

4.00

Sauces

 

 

 

Tomato

1.00

 

Barbeque

1.50

 

Marinara

2.00

Cheeses

Mozarella

1.00

Buffalo

2.00

Goat

2.50

Cheddar

1.00

Toppings

Salami

1.00

Pepperoni

1.25

Ham

0.75

Bacon

1.00

Chicken

0.80

Ground Beef

1.20

Prawns

2.00

Dried Tomato

0.50

Capsicum

0.50

Olives

0.75

Jalapenos

0.75

Pineapple

0.50

Onion

0.50

Artichoke

1.00

Anchovies

1.50

Parmesan Cheese

1.00

Baby Spinach

0.75

Task

For each of the two small case studies provided, decide on an appropriate pattern or patterns to support, and explain that decision. Then, come up with a design to implement that solution and document your solution with a class diagram. Finally, implement a small test application to demonstrate your solution. Show how your solution works to support the described use case with a sequence diagram.

Deliverables

For each case study:

1. A paragraph explaining what pattern or patterns you have decided are appropriate for the solution in a Word compatible word processed document.

2. A class diagram showing your intended implementation classes

3. A ZIP file containing all your implementation source code arranged in the appropriate package hierarchy.

4. A text file containing output demonstrating how your solution supports the described use case.

Rationale

This assignment relates to the following learning outcomes:
- be able to evaluate and choose appropriate software design patterns to compose the design of a software system;
- be able to demonstrate use of a Computer Aided Software Engineering (CASE) tool to document the models in a system

Demonstrates an ability to evaluate a problem and choose an appropriate software design pattern.

Demonstrates a sound understanding of the chosen software pattern.

Demonstrates an ability to verify a design through implementation and testing.

Demonstrates an ability to document a design using a CASE package.

Presentation

Any text documents must be either in Word compatible Word processed documents, or standard ASCII text files.

Class diagrams should be saved as high resolution PNG files (NOT JPG) and included in a word processed document or submitted as a separate file. Do NOT submit Visual Paradigm project (*.vpp) files.

Source code should be packaged into a ZIP file that unpacks into the appropriate package structure.

Attachment:- object.zip

Reference no: EM131479869

Questions Cloud

Experience with programming and programming languages : What is your preference? What do you use them for? Do you think knowing programming languages is an important asset to have?
Write a program that will calculate the monthly payment : The user will NOT input the percentage rate, as this will be determined by the program code based on user input of loan amount and number of payments.
How to maintain capital mobility and the currency peg : In the late 1990s, several East Asian countries used limited flexibility or currency pegs in managing their exchange rates relative to the U.S. dollar.
Concept behind each of the five practices : Describe the concept behind each of the five practices with supporting evidence.
Evaluate and choose appropriate software design patterns : Demonstrates an ability to evaluate a problem and choose an appropriate software design pattern. Demonstrates a sound understanding of the chosen software
Write a research paper on host intrusion detection system : Write research paper on Host Intrusion Detection System. How can one protect against virus outbreaks in organization? What are the common causes of the problem?
Thoughtful comments on a classmate ideas : Develop and post your analysis and then share thoughtful comments on a classmate's ideas.
Is the introduction interesting and effective : Is the "introduction" interesting and effective? Does the paper have enough content to support the main idea? Does the paper have clear summary or conclusion?
Do these countries face policy trilemma discussed in text : Several countries have opted to join currency unions. Examples include those in the Euro area, the CFA franc union in West Africa, and the Caribbean currency.

Reviews

len1479869

5/1/2017 3:24:35 AM

Presentation Any text documents must be either in Word compatible Word processed documents, or standard ASCII text files. Class diagrams should be saved as high resolution PNG files (NOT JPG) and included in a word processed document or submitted as a separate file. Do NOT submit Visual Paradigm project (*.vpp) files. Source code should be packaged into a ZIP file that unpacks into the appropriate package structure.

len1479869

5/1/2017 3:24:20 AM

Criteria High Distinction Demonstrates an ability to evaluate a problem and choose an software appropriate design pattern. Choice of pattern or patterns completely appropriate, well justified and explained. Demonstrates a sound understanding of the chosen software pattern. Class diagram is completely consistent with chosen pattern or patterns. Implementation demonstrates completely correct use of patterns. Demonstrates an ability to verify a design through implementation and testing. Implementation exactly implements illustrated design. Test output comprehensively and unambiguously demonstrates correct operation. Demonstrates an ability to document a design using a CASE package. Class diagram exactly documents implementation with correct UML syntax. Sequence diagram exactly and correctly documents execution of software to support described use case.

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd