This is a project course that covers software architecture as described in
the computing literature. Students present papers from the literature. They carry
out a large project, usually in teams, that explore key topics in software architecture.
Three hours of lecture per week.
Basic concepts in software architecture. Nature of student presentations. Project overview.
Systems such a Linux, VIM and Apache. Processes for their design. Their architectures.
Approaches, definitions and examples providing a basis for the field.
Methods of extraction of software architecture from existing artifacts (mainly, from source code). Case studies of extractions.
Algebraic modelling and manipulation of large graphs. Elision. Linking. Views. Specifying constraints on connectivity.
Three and N tiered architecture. Heterogeneous implementation technologies.
Early papers on software architecture.
Standard layout algorithms: Sugiyama and spring.
Automatic clustering techniques to discover objects and subsystems.
Structure of inter and intra enterprise computer systems. Underlying communications and glue systems such as Corba.
Each student project is presented to the class.