Software Architecture Analysis


Software architecture is the study of large software systems, from the perspective of their structure. This is in contrast to traditional computer science approaches to the design and creation of software systems, which emphasize data structures and algorithms over structure.

The study of software architecture concerns itself with achieving non-functional qualities (portability, scalability, performance, modifiability, integrability, etc.) in large systems. Software architectural analysis, in particular, looks at how to analyze existing systems, or designed (but not yet built) systems, with a view to predicting its non-functional qualities.

I have been approaching the problem of achieving software quality through architecture-level analysis in four ways:

This has led to the development of: SAAM, a scenario-based method for analyzing software architectures with respect to its non-functional qualities; SAAMtool, a tool that supports the SAAM method; a theory of "unit operations", which are primitive architectural design operations; and a set of primitives for describing architectural mechanisms. Further elaboration of these topics can be found in the papers below.
My papers on Software Architecture.

Bibliography of research on Software Architecture

Other Web sites on Software Architecture.

Courses in Software Architecture.


Maintained by: Rick Kazman (rnkazman@cgl.uwaterloo.ca)
You are visitor number [888888] since April 28, 1996.
Go to Rick Kazman's home page. Go to the UW Software Engineering Lab