Course: Professional Elective Professional Elective Year:
Subject Name: Software Design Pattern Subject Code:
CSPESE008T/P
Semester: L T P C
3 0 2 4
Course Objective:
To introduce to computational study of people's opinions, sentiments, emotions, moods, and attitudes.
This course contains:
Unit Content Hours
Introduction to Software Design Patterns:
What is a Design Pattern?, Design Patterns in Smalltalk MVC, Describing Design
1 Patterns, The Catalogue of Design Patterns, Organizing The Cato log, How Design 8
Patterns solve Design Problems, How to Select a Design pattern, How to Use a
Design Pattern.
A Case Study:
Designing a Document Editor, Design Problems , Document Structure, Formatting ,
Embellishing the User Interface, Supporting Multiple Look-and-Feel Standards,
2 8
Supporting Multiple Window Systems, User Operations Spelling Checking and
Hyphenation, Summary, Creational Patterns, Abstract Factory, Builder , Factory
Method, Prototype, Singleton, discussion of Creational Patterns
Structural Pattern:
3 Adapter Pattern, Bridge Pattern, Composite Pattern, Decorator Pattern 8
Facade Pattern, Proxy Pattern
Behavioural Patterns:
Visitor Pattern, Chain of Responsibility Pattern, Mediator Pattern, Memento
4 Pattern, Interpreter Pattern, Observer Pattern, Strategy Pattern, Command 8
Pattern, Iterator Pattern, Template Method Pattern, State Pattern
Design Patterns in Real-World Projects:
Case studies of design pattern implementations in popular frameworks and libraries,
5 8
Design patterns in enterprise-level applications, Design pattern considerations for
specific domains (e.g., web development, mobile development)
List of Experiments:
1. Implement a singleton class in a multi-threaded environment and evaluate its behavior
with concurrent access..
2. Design a system with observable and observer objects, and experiment with different
scenarios where observers register, unregister, and receive notifications.
3. Create a factory class that generates objects of different types based on a given input
or configuration. Experiment with different variations of the factory pattern, such as
simple factory, factory method, or abstract factory, and assess their impact on code
extensibility and flexibility.
4. Implement a base component and decorators that add additional functionality
dynamically. Experiment with different combinations of decorators and assess their
impact on code complexity, modifiability, and performance.
5. Design a system where different algorithms or strategies can be applied
interchangeably. Experiment with different strategies and measure the flexibility
achieved through the ability to switch between strategies without modifying the client
code.
6. Create a system where incompatible interfaces need to work together. Experiment
with different adapter implementations, including class adapters and object adapters,
and evaluate their effectiveness in enabling communication between incompatible
components.
7. Design a structure that represents a hierarchical collection of objects. Experiment with
adding, removing, and traversing elements in the composite structure and measure the
impact on code complexity, flexibility, and scalability.
8. Implement an abstract class with a template method and concrete subclasses that
override specific steps of the algorithm. Experiment with different variations of the
template method pattern and assess their impact on code reusability and modifiability.
Course Outcome:
At the end of the course, the students will be able to:
CO1 Construct a design consisting of a collection of modules. Create Exploit well-known design
patterns (such as Iterator, Observer, Factory and Visitor).
CO2 Distinguish between different categories of design patterns.
CO3 Ability to understand and apply common design patterns to incremental/iterative
development.
CO4 Ability to identify appropriate patterns for design of given problem.
CO5 Design the software using Pattern Oriented Architectures.
Text/Reference Books:
1. Design Patterns By Erich Gamma, Pearson Education.
2. Patterns in JAVA Vol-I (or) Vol-II By Mark Grand, Wiley Dream Tech.
3. Java Enterprise Design Patterns Vol-III By Mark Grand Wiley Dream Tech