Course Overview

In software development, a software architecture is the result of dividing a planned system into parts, with relationships among the parts; there are several kinds of architecture at different levels of detail. Designing an architecture is the bridging step between requirements analysis and implementation. This course will cover core concepts in software architecture, particularly the Unifed Modeling Language (UML), design patterns, and architectural styles.


Instructor: David Alex Lamb
Office: Goodwin 626
Office Hours:TBA

Calendar Description

Abstractions and patterns of interactions and relationships among modules. Design recovery; relationship of architecture to requirements and testing.
Learning Hours: 120 (36L;16G;68P)
Prerequisites: C- in (CISC 203/3.0, CISC-204/3.0, CISC-223/3.0 and CISC-235/3.0)
Exclusion: No more than 3.0 units from CISC 322 and CISC 326

The School has chosen to waive the C- requirement for classes completed before July 1, 2017, but if you got a D in one of these courses you may find this course quite difficult.

Course Reader

The course reader is available in the bookstore (use their search engine for details). It will be supplemented by some online readings available through OnQ. Much of its cost is for copyright permissions to allow us to use the readings in the course. There will be reading assignments to complete in many weeks, so you will very likely need your own copy instead of depending on sharing with someone else. This is the same reader as last year, but we will omit some and add a few more online readings.

OnQ Learning Management System

The course will depend heavily on OnQ, the University's Learning Management System. Enrollment is sychronized with SOLUS, so if you aren't on SOLUS, you can't submit term work.

You must apparently opt into the News forum if you want to receive email when announcements are made. You are responsible for everything announced on the News forum regardless of whether you opt in.

Role in the Curriculum

CISC 322 was originally the only course in software architecture -- optional in most plans, and required in Software Design (SODE).

When the Game Design option was created, it required a more specialized course, CISC 326 (Game Architecture), but the School had insufficient resources to offer both architecture courses. Thus in the early 2010's, 322 and 326 were listed in the calendar as alternatives in most plans (except Game Design, which requires 326) despite their somewhat different goals, and CISC 322 was not offered for several years.

Each of the two was more oriented to serving the needs of the particular courses that require it. In the case of CISC 322, these are CISC 498 (Information Technology Project) and CISC/SOFT 423 (Requirements Analysis). CISC 326 was originally more oriented to CISC 486 (Game Engine Development) and CISC 496 (Game Project) but has evolved into a more general architecture course.

In 2015-16 it became possible to offer CISC 322 again for a few years in its current specialized form.

Questions? Contact the instructor.
This page last modified