21CS741 Software Architecture And Design Patterns

21CS741 Software Architecture And Design Patterns

Course Learning Objectives

CLO 1. Learn How to add functionality to designs while minimizing complexity.
CLO 2. What code qualities are required to maintain to keep code flexible?
CLO 3. To Understand the common design patterns.
CLO 4. To explore the appropriate patterns for design problems

SYLLABUS COPY

MODULE - 1

Introduction: what is a design pattern? describing design patterns, the catalog of design pattern, organizing the catalog, how design patterns solve design problems, how to select design pattern, how to use a design pattern. A Notation for Describing Object-Oriented Systems

Analysis a System: overview of the analysis phase, stage 1: gathering the requirements functional requirements specification, defining conceptual classes and relationships, using the knowledge of the domain. Design and Implementation, discussions and further reading.

MODULE - 2

Design Pattern Catalog: Structural patterns, Adapter, bridge, composite, decorator, facade,
flyweight, proxy.

MODULE - 3

BehavioralPatterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Template Method

MODULE - 4

Interactive systems and the MVC architecture: Introduction, The MVC architectural pattern,
analyzing a simple drawing program, designing the system, designing of the subsystems, getting into
implementation, implementing undo operation, drawing incompleteitems, adding a new feature, pattern-based solutions.

MODULE - 5

Designing with Distributed Objects: Client server system, java remote method invocation,
implementing an object-oriented system on the web (discussions and further reading) a note on input and output, selection statements, loops arrays.

Course outcome

At the end of the course the student will be able to:
CO 1. Design and implement codes with higher performance and lower complexity
CO 2. Be aware of code qualities needed to keep code flexible
CO 3. Experience core design principles and be able to assess the quality of a design with
respect to these principles.
CO 4. Capable of applying these principles in the design of object oriented systems.
CO 5. Demonstrate an understanding of a range of design patterns. Be capable of
comprehending a design presented using this vocabulary.
CO 6. Be able to select and apply suitable patterns in specific contexts

Suggested Learning Resources

Textbooks
1. Brahma Dathan, Sarnath Rammath, Object-oriented analysis, design and
implementation, Universities Press,2013
2. Erich Gamma, Richard Helan, Ralph Johman, John Vlissides , Design Patterns, Pearson
Publication,2013.


Reference
1. Frank Bachmann, RegineMeunier, Hans Rohnert “Pattern Oriented Software
Architecture” –Volume 1, 1996.
2. William J Brown et al., “Anti-Patterns: Refactoring Software, Architectures and Projects in
Crisis”, John Wiley, 1998.

FOLLOW US

Scroll to Top