|
 |
 |
 |
 |
CSS3202: SOFTWARE ARCHITECTURE AND DESIGN PATTERNS
|
Core/Elective: Core Semester: 2 Credits: 4
|
Course Description |
This course introduces the essential concepts of software architecture. Software architecture provides the most fundamental basis for communicating design decisions, establishing effective work breakdown structures, and creating software product lines. Architecture is, increasingly, a crucial part of a software organizations business strategy.
|
Course Objectives |
To understand the relationship between system qualities and software architectures
To appreciate the role of abstraction, modelling, architecture, and design patterns in the development of a software product.
To understand design, development, documentation and evaluation of software architecture
To apply design patterns in software development
|
Course Content |
1. The architecture Business Cycle (ABC) – Roots of Software architecture - Software architecture definitions and importance – Architectures and quality attributes -Architectural Styles - Architectural views: Need for multiple views – Some representative views – Conceptual View – Module view – Process view – Physical view – Relating the views to each other – The Software Architecture analysis Method (SAAM)
2. Architecture Frameworks: Technical Architecture Framework for Information Management (TAFIM) - The Common Object Request Broker Architecture (CORBA)
3. Architecture based development: Architecture based activities for software development – Understanding the domain requirements - Developing (selecting) the architecture – Representing and Communicating the architecture - Architecture Description Language (ADL) - Software architecture evaluation – Implementing based on architecture and assuring conformance
4. Architecture-based development Product lines - Case study of J2EE/EJB - Future of software architecture
5. Design Patterns: Patterns vs. Frameworks – advantages of patterns – using patterns to solve problems – review of pattern families – Categories of patterns: Creational, Structural, Behavioural patterns – Future work
|
REFERNCES |
1. Software Architecture in Practice(2nd Ed): Len Bass et al, AW (1998)
2. Evaluating Software Architectures: Methods and Case Studies: Clements et al, AW (2001)
3. Documenting Software Architectures: Views and Beyond : Clements et al, AW (2002)
4. Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach, Bosch et al, AW (2000)
5. Design Patterns: Elements of reusable Object Oriented Software – Erich Gamma et al, AW, (1994)
6. Materials from http://sei.cmu.org/architecure
|
|
 |
 |
 |
 |
|
|
|
|
|
|