Spring
Semester, 2008
Location: OHE 132
Time: TTh 12:30pm - 1:50pm
Class number: 30136D
and 30137D (DEN)
Instructor | Overview | Academic Integrity | Textbook and
Readings | Assignments and
Exams | Schedule
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!
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.
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%
|
Please refer to this document for guidelines on submitting your homework.
Week
|
Lecture Topic
|
|
|
1
|
|||
|
|||
2
|
|
||
|
|||
3
|
|
||
|
|||
4 |
|
||
5 |
|
||
|
|||
6 |
|
||
|
|||
7 |
|
||
8 |
|
||
9 |
|
||
|
|||
10
|
SPRING RECESS |
||
11 |
|
||
12 |
|
||
|
|
||
13 |
|
||
|
|||
14 |
|
||
15 |
|
||
|
|||
16 |
|||
| |||