1
CISC 323 Intro to Software Engineering
Topic 7: Software Architecture
Readings:
- in courseware
- taken from:
Software Architecture – Perspectives on an Emerging Discipline by M. Shaw and D. Garlan
CISC 323, Winter 2003, Software Architecture 2
Recall: Design Patterns
- A design pattern
- identifies and describes the key aspects of a solution to a
common design problem
✁Which classes, objects? How do they collaborate?
✁What is its impact on quality attributes and thus system requirements?
- allows the efficient communication of design expertise
A design pattern catalogue
- provides vocabulary/toolbox to discuss and weigh design
solutions
- allows designers to make informed decisions efficiently
CISC 323, Winter 2003, Software Architecture 3
Recall: Design Patterns (cont’d)
✂But also:
- A pattern only solves a single, local problem that the
system construction poses => A system could use/consist of several patterns
- Design patterns are not meant to describe the overall,
global architecture of a system
- While more abstract than code, some patterns are still
somewhat low-level and implementation-oriented, e.g.,
✁Iterator
✁Visitor
✁Builder
CISC 323, Winter 2003, Software Architecture 4
Software Architecture
✂“The architecture of a software system defines that system in terms of computational components and interactions among those components”.
- -- Shaw & Garlan, page 3
Examples for
- components: clients and servers, databases, filters, and
layers in a hierarchical system
- interactions: procedure/method calls, shared variable
accesses, client-server protocols, database protocols etc
✂An architecture shows
- global topology of system and its
- impact on the system requirements