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