Course Details
Subject {L-T-P / C} : CS6423 : Software Design Pattern { 3-0-0 / 3}
Subject Nature : Theory
Coordinator : Durga Prasad Mohapatra
Syllabus
Introduction: Review of the software development context in relation to design patterns, Advantages of using classes, The uses of inheritance in software design, The principle of strong typing and substitution, Polymorphism with abstract classes and inheritance, introduction to UML, Design techniques for modifiability, The strategy Pattern, A case study: Designing A Document Editor- Design problems, document structure, formatting, embellishing the user interface. (14 hours)
Creational Patterns: Abstract Factory, Builder, Creational Patterns: Factory Method, Prototype, Singleton, Structural Pattern: Adapter, Bridge, Structural Pattern: Composite, Decorator, Structural Pattern: Façade, Flyweight, Proxy, Discussion of structural patterns, Behavioural Patterns: Chain of Responsibility, Command, Interpreter, Behavioural Patterns: Iterator, Mediator, Memento. (12 hours)
Behavioural Patterns: Observer, State, Strategy, Behavioural Patterns: Template Method, Visitor, Discussion of behavioural pattern, What to expect from design patterns, The pattern Community. (10 hours)
Course Objectives
- For recurrent applications, have knowledge on SOFTWARE DESIGN PATTERN
Course Outcomes
knowledge on SOFTWARE DESIGN PATTERN
Essential Reading
- Gamma, Erich Richard Helm, Ralph Johnson, and John Vlissides, Elements of Reusable Object-Oriented Software, Addison-Wesley , 2005
- Bruegge, Bernd Dutoit, Allen H, Object-Oriented Software Engineering using UML, Patterns, and JAVA, Pearson Education , 2007
Supplementary Reading
- Fowler, Martin, Patterns of Enterprise Application Architecture, Addison-Wesley , 2002
- Hohpe, Gregor and Bobby Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley , 2002
Journal and Conferences
- I1. Journal: EEE Transaction on Software Engineering, 2. Conference: Int. conference on Software Engg.
- 2. Journal: Journal of system software, 2. Conference: Software engineering and knowledge engineering