0% found this document useful (0 votes)
4 views

Software Design Pattern

The course 'Software Design Pattern' focuses on teaching design patterns in software development, covering various types such as creational, structural, and behavioral patterns. It includes practical experiments to implement these patterns in real-world scenarios and aims to equip students with the ability to apply design patterns effectively in software design. By the end of the course, students will be able to construct designs using well-known patterns and identify appropriate patterns for specific design problems.

Uploaded by

ankit.kmp1408
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Software Design Pattern

The course 'Software Design Pattern' focuses on teaching design patterns in software development, covering various types such as creational, structural, and behavioral patterns. It includes practical experiments to implement these patterns in real-world scenarios and aims to equip students with the ability to apply design patterns effectively in software design. By the end of the course, students will be able to construct designs using well-known patterns and identify appropriate patterns for specific design problems.

Uploaded by

ankit.kmp1408
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

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

You might also like