CS 578
Software Architectures

Spring Semester, 2011
Location: OHE 132
Time: TTh 3:30pm-4:50pm
Class number: 30137D and 30136D (DEN)


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


Instructor

Teaching Assistants


Overview

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

Textbook:

Supplemental Readings:


Assignments and Examinations

Name

Description

Weight

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.

25%

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.

25%

Homework

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.

30%

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.
20%

Assignment Submission Guidelines

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



Schedule (subject to change; check regularly)

Week

Lecture Topic

Readings (in course book unless otherwise noted)

Assignments and Exams

1

   
  • Chapter 1
 

2

  • Chapter 2
 
  • Chapter 3
 

3

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

4

   

5

  • Chapter 5
 
   

6

  • Chapter 6
  • Homework #1 due
 

7

  • Chapter 7
   

8

   
 
  • EXAM #1 (Location: MRF 340)
    March 3, 2011
    , 3:30pm-4:50pm PST

9

  • Chapter 8
 
  • Chapter 9
 

10

SPRING RECESS

11

 
  • Guest Lecture:
    David Kale
    Children's Hospital Los Angeles
    Location: OHE 132 3:30pm-4:50pm PST
  • Homework #2 due
  • Homework #3
 
  • Guest Lecture:
    Eric Dashofy
    Aerospace Corporation
    Location: OHE 132 3:30pm-4:50pm PST

12

  • Chapter 10
 
  • Chapter 11
 

13

  • Chapter 12
  • Homework #3 due
  • Chapter 13

14

  • Chapter 14
 
  • Chapter 15
 

15

   
  • Chapter 16
  • Chapter 17
 

16

   
   
  • EXAM #2 (Location: MRF 340)
    April 28, 2011, 3:30pm-4:50pm PST