Spring
Semester, 2008
Location: THH 212
Time: TTh 11:00am - 12:20pm
Class number: 30221D
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, participate in class discussions, and, of course, 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.
R. N. Taylor, N. Medvidovic, and
E. M. Dashofy. Software Architecture: Foundations, Theory, and Practice.
John Wiley & Sons, 2008.
To aid your note taking, we will
also make the lecture slides available on-line prior to each lecture. You will
be able to download them by going to the appropriate Lecture Topic in the Schedule.
Name
|
Description
|
Weight
|
|
Mid-term Examination |
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% |
|
Final Examination |
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 be sure to adhere strictly to these guidelines.
|
|
Lecture
Topic |
|
|
|
1 |
|
|
|
|
|
||
|
2 |
|
|
|
|
|
||
|
3 |
|
|
|
|
|||
|
4 |
|
|
|
|
5 |
|
|
|
|
|
|
||
|
6 |
|
|
|
|
7 |
|
|
|
|
|
|||
|
8 |
|
|
|
|
9 |
|
||
|
|
|
||
|
10 |
SPRING
RECESS |
||
|
11 |
|
|
|
|
|||
|
12 |
|
|
|
|
|
||
|
13 |
|
|
|
|
|
||
|
14 |
|
|
|
|
15 |
|
|
|
|
|
|
|
|
16 |
|
|
|
|
|
|
|
|