Monday, April 18, 2016

Design Patterns Course outline - University of Sargodha

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.
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. Introduction to Aspect-Oriented design: Aspects, themes, concerns
1.      Overview of Object-oriented design.
2.      Overview of UML: Use cases, class diagrams, and other UML diagrams.
3.      Object constraint language (OCL)
4.      Review of "Getting started using the use cases to capture requirements" by J. Rumbaugh
5.      Introduction to design patterns : Coupling and cohesion, Why design patterns?
6.      Reading assignment: The paper "Design Patterns: Abstraction and Reusable of Object
Oriented Design" by E. Gamma, R. Helm, R. Johnson, and J. Vlissides
7.      Creational patterns: Singleton, Abstract Factory, Builder, Prototype
8.      Structural patterns : Facade, Composite, Bridge, Proxy, Adapter, Decorator
9.      Behavioral patterns :Chain of responsibility, Visitor, Observer, Iterator, Command,
Mediator, Strategy, Interpreter, Memento
10. Patterns for concurrent and distributed systems: Event handling patterns (ref. 3).
Synchronization and Concurrency patterns (ref. 3 &4) . Concurrency Controller pattern
11.  Anti-patterns: Common pitfalls and antipattern examples. Recovering from bad designs.
Refactoring to patterns

Textbooks:
1.     Design Patterns: Elements of Reusable Object Oriented Software, E. Gamma, R. Helm,
R. Johnson, and J. Vlissides, Addison -Wesley Professional, 1995
2.      Java Design Pattern Essentials by Tony Bevis, Ability First Limited; 2nd Edition (October
11, 2012). ISBN-10: 0956575846
Reference Material:
1.     Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML by Mark
Grand, 2nd Edition, Volume 1, Wiley, (2002) . ISBN-10: 0471227293
2.      Object-Oriented Software Engineering: Using UML, Patterns, and Java by B. Bruegge
and A. H. Dutoit, 2nd Edition, Prentice Hall, (2003). ISBN-10: 0136061257
3.      Refactoring to Patterns by J. Kerievsky, Addison-Wesley, (2004). ISBN-10: 0321213351
4.      A System of Patterns: Pattern-Oriented Software Architecture by Buschmann, F.,
Meunier, R., Rohnert, H., Sommerlad, P. & Stal, M, Wiley & Sons, (1996). ISBN-10:
0471958697
5.      Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
by D.C Schmidt, M. Stal, H. Rohnert and F. Bushmann, Wiley & Sons, (2000).
6.      Aspect-Oriented Analysis and Design: The Theme Approach, S. Clarke and E.
Baniassad, Addison-Wesley Professional,(2005). ISBN-10: 0321246748
7.      Aspect Oriented Software Development with Use Cases, I. Jacobson and Pan-Wei Ng,
Addison-Wesley Professional, (2004). ISBN-10: 0321268881


Note: This content is obtained from official documents of University of Sargodha and applied on BS Computer Science for Main Campus, Sub Campuses, and Affiliated Colleges.

0 comments:

Post a Comment