INTRODUCTION:
Overview of Object-oriented design, Overview of UML & OCL.Introduction to design patterns.Coupling and Cohesion. Why design patterns? Creational patterns: Singleton, Abstract Factory, Builder, Prototype. Structural patterns: Facade, Composite, Bridge, Proxy, Adapter, Decorator. Behavioral patterns: Chain of responsibility, Visitor, Observer, Iterator, Command, Mediator, Strategy, Interpreter, Memento. Patterns for concurrent and distributed systems: Event handling patterns. Synchronization and Concurrency patterns.Concurrency Controller pattern.Antipatterns: Common pitfalls and antipattern examples, Recovering from bad designs, Refactoring to patterns.
LEARNING OUTCOMES:
The aim of this course is to make the students competent in designing effective and maintainable complex software systems of high quality. To this end, students will learn and gain hands-on experience in designing software systems by reusing/applying design patterns. Design patterns are successful solutions to recurring problems that arise when building software systems. Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for the developers familiar with the patterns. In addition to mastering these good design abstractions, the students will also learn how to evaluate a design, identify common problems, and how to fix these problems through refactoring.
COURSE CODE: SE-4345
CREDIT HOURS: 03
PREREQUISITES: CMP-3310(SOFTWARE ENGINEERING)
TEXT BOOK:Design Patterns: Elements of Reusable Object Oriented Software, E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Addison -Wesley Professional
COURSE CONTENTS
Overview of Object-oriented design.
Overview of UML: Use cases, class diagrams, and other UML diagrams.
Object constraint language (OCL)
Introduction to design patterns
Coupling and cohesion, Why design patterns?
Creational patterns: Singleton, Abstract Factory, Builder, Prototype
Structural patterns : Facade, Composite, Adapter
Behavioral patterns :Chain of responsibility
Anti-patterns:
COURSE ASSESSMENT:
CLASS TIMING: BSSE 8th Reg + Self (Tuesday:8.00 - 09.30AM, 12:30 - 02:00 PM) (Thursday:Tuesday:8.00 - 09.30AM, 12:30 - 02:00 PM)