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.
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.
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