CS 578
Software Architectures

Fall Semester, 2010
Location: OHE 100C
Time: MW 12:30pm -1:50pm
Class number: 30270D


Instructor | Overview | Academic IntegrityTextbook and ReadingsAssignments and Exams | ProjectSchedule


Instructor

Teaching Assistant


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


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:


Project Information

Details will be announced later.


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 from the course material to think critically about different facets of software architecture.

30%

Course Project A group assignment that provides hand-on experience with an advanced software architecture topic.
20%

Assignment Submission Guidelines

Submit your homework to csci578@gmail.com.


Schedule (subject to change; check regularly)

<\TR>

Week

Lecture Topic

Readings (in course book unless otherwise noted)

Assignments and Exams

1

  • Course introduction
   
  • Chapter 1
 

2

  • Chapter 2
 
 

3

  • No Class (Labor day)
   
  • Chapter 3

4

  • Chapter 4
  • Chapter 4
 

5

  • Chapter 4
 
  • Homework #1 Q&A

 

 

6

  • Chapter 5
  • Chapter 6
 

7

  • Chapter 6
 
  • Chapter 6
 

8

  • Exam #1 Review
   
EXAM #1 (October 13, 2010)

9

  • Chapter 8
  • Chapter 8
 

10

  • Exam #1 Recap
 
  • Chapter 9
 

11

  • Chapter 9
 
  • Chapter 10
 

12

  • Chapter 11
  • Chapter 12

13

  • Chapter 13
  • Chapter 13
 

14

  • Chapter 14
 
   

15

EXAM #2 (November 29, 2010)
 
  • Final Project due (December 1, 2010)
The University of Southern California does not screen or control the content on this website and thus does not guarantee the accuracy, integrity, or quality of such content. All content on this website is provided by and is the sole responsibility of the person from which such content originated, and such content does not necessarily reflect the opinions of the University administration or the Board of Trustees