CS 578
Software Architectures

Spring Semester, 2014
Location: OHE 100C
Time: TTh 5:00pm - 6:20pm
Class number: 30137D and 30136D (DEN)

Instructor | Overview | Academic IntegrityTextbook and ReadingsAssignments and Exams Project Schedule


Teaching Assistants


Software architecture has become increasingly important in the last 15 years in the software engineering community. At the heart of every well-engineered software system is its software architecture. Software architecture deals with the high level building blocks that represent an underlying software system. These building blocks are the components (units of computation in a system), the connectors (models of the interactions between software components), and the configurations (arrangements of software components and connectors, and the rules that guide their composition). Software architectures that are found particularly useful for families of systems are often codified into architectural styles.

This course will afford the student a complete treatment of software architecture, its foundation, principles, and elements, including those described above. The class is centered around reading assignments, and homework that will test comprehension and understanding of the course material. A class project will require the student to leverage the architectural techniques learned during the course (e.g., architectural recovery, architectural styles, domain specific software architectures) to, coupled with programming/implementation effort, design and implement a real-world software system.

In addition to foundations, and practical experience with software architectures, the class will also introduce the student to the state-of-the-art in software architecture research, future trends and state-of-the-practice. Students are expected to attend class regularly, and participate (as directed) in all class discussions, and most importantly, have fun!

Academic Integrity

Students must work independently on all individual assignments; collaborating on individual assignments is considered cheating and will be penalized accordingly. All USC students are responsible for reading and following the USC Student Conduct Code, which prohibits plagiarism. Some examples of behavior that is not allowed are: copying all or part of someone else's work (by hand or by looking at others' files, either secretly or if shown), and submitting it as your own; giving another student in the class a copy of your assignment solution; consulting with another student during an exam; and copying text from published literature without proper attribution. If you have questions about what is allowed, please discuss it with the instructor.

Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the University. Since dishonesty in any form harms the individual, other students, and the University, policies on academic integrity have been and will be strictly enforced.

Textbook and Readings


Supplemental Readings:

Assignments and Examinations




Examination #1

Assesses your understanding of fundamental software architecture themes and concepts. The focus is on the topics covered in the first half of the course.


Examination #2

Tests your understanding of issues in transferring architectural decisions to designs and implementations. The focus is on the topics covered in the second half of the course.



Establishes your understanding of course material, and ability to use information gleaned from the course mateial to think critically about different facets of software architecture.


Course Project A group assignment that provides experience with topical architectural recovery techniques, architectural styles, connectors, and the engineering of an important class of emerging domain-specific software systems: grid computing platforms.

Assignment Submission Guidelines

Please refer to this document for guidelines on submitting your homework.

Schedule (subject to change; check regularly)


Lecture Topic

Readings (in course book unless otherwise noted)

Assignments and Exams


  • Chapter 1


  • Chapter 2
  • Chapter 3


  • Chapter 4 through 4.3.2
  • Chapter 4, sections 4.3.3 through the end




  • Chapter 5
  • Chapter 6
  • Homework #1 Due (Thursday February 13, 2014)


  • Chapter 7


  • Chapter 8


  • Chapter 9


  • EXAM #1 (Location: THH 102)
    March 13, 2014
    5:00pm-6:20pm PST


SPRING RECESS (March 17-22, 2014)


  • Chapter 10
  • Chapter 11
  • Homework #3 Due (Wednesday April 2nd, 2014)


  • Chapter 12



  • Chapter 13
  • Chapter 14


  • Chapters 15


  • Chapter 16
  • Chapter 17


  • EXAM #2 (Location: THH 102)
    May 1, 2014 5:00pm-6:20pm PST