Software Design and Architecture Patterns

Instructor: Raman Ramsin Certificate: Official (bilingual)
Term: Summer 2025 Prerequisite: Object-Oriented Programming
Schedule: Sunday and Tuesday 17:30-19:00 Online Class: Online Class

General Objective

The objective of this course is to familiarize students with patterns and their applications in software engineering. While learning about common design and architectural patterns, students will also become familiar with anti-patterns. Due to the multitude of patterns, the course emphasizes detailed introduction of widely-used patterns while ensuring sufficient familiarity with foundational structures, basic principles, complexity management methods, and pattern analysis techniques.

Topics

Assessment

References

  1. E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
  2. E. Freeman, E. Robson. Head First Design Patterns. 2nd ed. O'Reilly Media, 2020.
  3. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern-Oriented Software Architecture: A System of Patterns. Vol. 1. Wiley, 1996.
  4. M. Richards, Software Architecture Patterns, 2nd ed. O'Reilly Media, 2022.
  5. C.J. Neill, P.A. Laplante, J.F. DeFranco. Antipatterns: Managing Software Organizations and People. 2nd ed. CRC Press, 2012.