Laboratory Experiments:
The student has to draw the necessary UML diagrams using any suitable UML drawing tool and implement a program in Java or C++ or C# to demonstrate the design pattern specified by the examiner. For analysis and design models -, Class Diagram, Use-Case, Sequence diagrams should be drawn.
NOTE: ANY SUPPORTING TOOL MAY BE USED.
1. Publisher-Subscriber:
Define a one-to-many dependency between objects so that when one object changes state all its dependents are notified and updated automatically. The Observer pattern is also known as Dependents, Publisher-Subscriber. The need to maintain consistency between related objects without making classes tightly coupled.
2. Command Processor:
The command processor design pattern separates the request for Service from its execution. A command processor component manages request as separate objects, schedules their execution and provides additional service.
3. Forwarder-Receiver:
Distributed peers collaborate to solve a particular problem. A peer may act as a Client, requesting services, as a server, providing services, or both. The forwarder-receiver design pattern provides transparent inter process communication for software system with a peer-to-peer interaction model. It introduces forwarder and receiver to decouple peers from the underlying communication mechanism.
4. Client-Dispatcher:
Provide a dispatcher component to act as an intermediate layer between clients and servers. The dispatcher implements a name service that allows client to refer to servers by name instead of physical locations, thus providing transparency. Each server is uniquely identified by its name and is connected to clients by the dispatcher. Client relay on the dispatcher to locate a particular server and to establish a communication like with the server.
5. Proxy:
A proxy object can act as the intermediary between the client and target object. The proxy object has the same interface as the target object. The proxy holds a reference to the target object and can forward requests to target as required. In effect the proxy object has the authority the act on behalf of client to interact with the target object.
6. Polymorphism:
When related alternatives or behaviors vary by type (class), assign responsibility for the behavior using polymorphic operations to the types for which the behavior varies.This interface will provide the behavior which varies according to the class type. All classes implementing this interface will write the method accordingly.
7. Whole-Part:
The idea of the Whole-Part pattern is to introduce a component that encapsulates smaller objects, and prevents clients from accessing these constituent parts directly. Define an interface for the aggregate that is the only means of access to the functionality of the encapsulated objects, allowing the aggregate to appear as a semantic unit.
8. Controller Design Pattern:
Use a controller as the initial point of contact for handling a request. The controller manages the handling of the request, including invoking security services such as authentication and authorization, delegating business processing, managing the choice of an appropriate view, handling errors, and the selection of content creation strategies.
Note 1: InthepracticalExaminationeachstudent has to pick onequestionfroma lot of all the 8 questions.
Note 2: Change of program is not permitted in the Practical Examination.
Note 3: In the Examination partial marks can be given for Class Diagram, Use-Case, Sequence diagrams
Course Outcomes (CO):
At the end of this course, the students will be able to
CO1: Understand the fundamental principles of Object-Oriented analysis, design, development and programming
CO2: Demonstrate and represent the UML model elements, to enable visual representation of the system being developed
CO3: Implement object oriented design model with the help of modern tool, Rational software Architect
CO4: Analyze and differentiate the static and dynamic behavior of the system for achieving the intended functionalities of the system
CO5: Evaluate Various design patterns for applicability, reasonableness, and relation to other design criteria