Reference no: EM132563299
Scenario
This scenario is about order management system for United Shop at Baththaramulla. Customer make order. Customers can be either corporate customer or personal customer. Both of them has name and address private type attributes. Corporate customer has contact name and credit limit private attributes. Personal customer has credit card number attribute. That also private. There is a association between employee and corporate customer. Zero or more corporate customer create from employees. An employee can or cannot be corporate customer. order is composed of customer. The order could contain extract one customer, while each customer can make many orders. There is an association between order and order line. Order line has 2 attributes which are private. They are quantity and price. An order can have zero or many order line. Order line and product has association.
Research Project Brief
Question 1. Assume you work as a junior programmer in Sinha Developers. Currently you are assigned to a development project which is based on Object Oriented Programming. The team leader has assigned you the task to develop a report comprising of the following:
i. Examine the object-oriented programming paradigm characteristics and develop a professionally formatted report that would include these characteristics
• Encapsulation, polymorphism, constructors/destructors, sub objects, abstract/concrete, interface, method, redefinition, generics/templates, containers
• Include the information about class relationships like generalization/Inheritance, realization, dependency, aggregation, composition etc.
ii. Determine the design patterns from each of the creational, structural and behavioral pattern types.
iii. Analyse the relationship between OOP paradigm and the design pattern s.
Question 2. You are working in Sinha Developers to help improve their documentation for their software development. Your role is to alleviate this situation by developing a series of UML diagrams to reflect the given scenario and to develop new diagrams for future implementation.
You will be required to analyse the existing scenario and then build accurate UML class diagrams. You can make assumption when it is needs. Once completed you will also need to identify possible situations where design patterns would be beneficial and then develop the UML diagrams reflecting the design patterns. (P2, M2, D2)
Question 3. You are required to implement design patterns using an IDE such as Eclipse or net beans with Java language. Use an IDE (Eclipse) to develop a small application that implements based on UML class diagram create in Q2. (P3, M3, D3)
Question 4. There are range of design patterns - creational, structural and behavioural pattern types. Analyze given scenarios (a) to (d) and identify the most appropriate design pattern from a range.
a) You are a member of a programming team, and have been asked to design the class structure for a custom aircraft design system in a computer game. An aircraft will have two basic properties: its name and capacity. Each aircraft can then be customised with various additions. An aircraft may optionally have one or all of a first-class cabin, a viewing area, a communications system and/or a booster rocket. A first-class cabin means the aircraft can have first-class passengers, a viewing area is a place where passengers can watch the scenery below, a communications system is so passengers can talk to people on the ground, and a booster rocket enables the aircraft to move twice as fast. For example, the aircraft GoodCruiser has a capacity of 100 passengers, a first-class cabin and a booster rocket. The aircraft RuthlessRogue has a capacity of 20 passengers, a viewing area and a communications system.
One member of your team quickly begins outlining a set of classes on the whiteboard:
// The generic aircraft
class Aircraft { private int capacity; private String name; }
// An aircraft with an added first-class cabin
class FirstClassCabinAircraft extends Aircraft { }
// An aircraft with an added viewing area
class ViewingAreaAircraft extends Aircraft { }
// An aircraft with an added communications system
class CommunicationsSystemAircraft extends Aircraft { }
// An aircraft with an added first-class cabin and communications system class FirstClassCabinCommunicationsSystemAircraft extends Aircraft { }
What is wrong with the design? Which design pattern would be suitable to remove deficiencies in the design.
b) Consider a scenario of a database server. We want to efficiently manage and restrict the number of connections to databases. Which design pattern would be suitable in this case?
c) Consider a scenario of database transactions. There are different types of database transactions, e.g. add record, update record and delete record etc. If transaction fails, then there is an option of rollback transaction. Which design pattern is suitable to handle these types of transactions and also provides the ability to encapsulate these processes?
d) Consider a scenario of house building. There are two options to build house i.e. Wooden House and Glass House. However, the processes / steps for building any two of them are same which include operations such as build foundation, build pillars, build walls and build windows etc. Although, the processes / steps are same but implementation is different for wooden and glass houses. Which design pattern would be suitable to implement this scenario?