Updated 10/19/2009
CSSE 532
Software Architecture
Fall 2009
Location: Engr 305
Time: Thursdays 6:00-8:40 pm
|
Instructor |
R. Roshandel, Ph.D. Office: Engr 507 Phone: (206) 296-5512 Office Hours: Thursdays 5:00-6:00 pm or by appointment |
Overview
Over the past decade, software architecture
has become a critical part of the development of large and complex software systems,
and an important research area in the software engineering community.
Architecture description languages and formal modeling notations have been
proposed to model and analyze structural and behavioral properties of software
systems in terms of components, connectors, and their interactions. Such a
focus on architectural aspects of the system has shown significant return on
investment in terms of improving the quality of the software system in a
cost-effective way.
The topics covered in the class include:
-
Fundamentals of software architecture and architecture-centric software
development, architectural building blocks, and architectural styles;
-
Architectural modeling and analysis, evolution of software architecture,
product-line software architecture, and domain specific software architecture;
-
Quality and non-functional properties
Course Objectives:
-
Understand what software architecture is (and what it is not) and
understand the relationship to other artifacts in the SDLC
-
Understand basic terminology and common tools in architectural modeling,
analysis and evolution
-
Ability to evaluate different architectural alternatives from a variety
of functional and non-functional perspectives
-
Understand the role of software architects in a software development
project
Textbook and
Readings
· Required Book
·
Software Architecture:
Foundations, Theory, and Practice,
Taylor, Medvidovic, Dashofy, John Wiley & Sons, 2009, ISBN-10: 0470167742,
ISBN-13: 978-0470167748
· Other readings
·
Handouts and assigned
articles
·
Software Architecture in
Practice, Len Bass, Paul
Clements, Rick Kaman, Second Edition, Addison Wesley, 2003.
Academic service learning is defined for this course as a
credit-bearing educational experience in which students participate in an
organized service activity that meets identified community needs and reflect
critically on the service activity in such a way as to gain further
understanding of the course content and a broader appreciation of the
discipline while enhancing their personal development and commitment to social
justice.
Software engineering encompasses a
disciplined approach to planning, design, development and maintenance of large
and complex software systems. In an academic program, the concern is to ensure
that students learn about the fundamental concepts that would enable them to
apply these approaches and associated best practices to software systems.
Getting hands on experience on actual software systems (instead of toy case
studies) enable the abstract concepts to become concrete. Through the Academic
Service Learning projects, students will be able to focus on learning the
course material in the context of a real world project, reflect on their
learning, open avenues for discussion, and help a local non-profit organization
in their software needs. We take a project-based approach to service
learning which enables the students to work on various aspects of the service
learning project throughout the quarter. The project enables the students to
understand and master the course objectives.
Grading
Exams |
|
|
· Midterm · Final Exam |
20% |
|
Assignments · 3-5 Individual assignments throughout the quarter |
|
|
Team Project · ASL – High level architecture · ASL – Quality Assessment · ASL – Detailed Modeling and Analysis · ASL – Final Package and Presentation |
30% |
|
Class discussion and attendance |
10% |
Class Format
You are expected to read each week’s
articles in advance of the relevant class and skim through the assigned book
chapter. For those weeks that you are assigned an article, you should
reflect on the content of the paper and its relations to the course’s overall
content and submit a question, comments, or discussion points by midnight on
Tuesday before the class. We will spend 15-20 minutes of the class time
going over some of the questions and comments. You are also expected and
encouraged to participate in class activities and discussion, ask questions,
discuss and test your ideas. A midterm exam will test basic concepts as well as
your ability to apply the material in new problems. The final exam will cover
both concepts and open ended problems which require you to apply your
architectural knowledge to solve design problems.
Academic Integrity
Plagiarism is the unacknowledged use of the
work or intellectual property of other persons, published or unpublished,
presented as one’s own work. All students are expected to work on all
individual assignments independently. Collaboration on individual assignments
is considered cheating and will be penalized accordingly. Other examples of
behavior that is not tolerated in this class include copying all or part of
someone else’s work and submitting it as your own, sharing your assignment
solution with other students in the class, 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. All students are responsible for reading and following the
Seattle University Academic Honesty Policy. Students who violate University
standards of academic honesty are subject to disciplinary sanctions, including
failure in the course and suspension from the University.
The following detailed schedule is tentative and subject
to change.
|
Week |
Topic |
Readings |
Assignments and Exams |
|
1 9/24/09 |
Course Introduction Overview & Basic Concepts |
Taylor 1
|
HW 1 assigned |
|
2 10/1/09 |
Architecture in the
Context Project Discussion
|
Taylor 2 Matthew R. McBride, The
Software Architect, Communications of the ACM, Volume 50 , Issue 5 (May
2007). P. Kruchten. Mommy, Where Do Software Architectures Come from? 1st International Workshop on Architectures for Software Systems, Seattle, WA, April 1995. |
HW1 due |
|
3 10/8/09 |
Basic Concepts Prepare for the interview |
Taylor 3
Dashofy et. al. An Infrastructure for the Rapid Development of XML-based Architecture Description Languages. In Proc. of the 24th International Conference on Software Engineering (ICSE2002.) |
HW2 assigned |
|
4 10/15/09 |
Basic Concepts Interview:
Community Partner
|
Taylor 3
P. Kruchten. Architectural Blueprints—The “4+1” View Model of Software Architecture, IEEE Software 12 (6), November 1995, pp. 42-50. |
HW2 due |
|
5 10/22/09 |
Designing Architectures, |
Taylor 4
Malek et. al. "Providing Middleware-Level Facilities to Support Architecture-Based Development of Software Systems in Pervasive Environments." In proceedings of the 4th International Workshop on Middleware for Pervasive and Ad-Hoc Computing (MPAC 2006), Melbourne, Australia, November 2006. |
HW3 assigned |
|
6 10/29/09 |
Connectors, Modeling |
Taylor 5,6
|
Midterm Exam
|
|
7 11/5/09 |
Implementation Deployment |
Taylor 9,10 TBD |
HW3 due Project Assignment due (Sunday 11/8/09 midnight) |
|
8 11/12/09 |
Analysis, Non-functional Properties Quality and Dependability |
Taylor 8,12
Cooray D., Kilgor D., Roshandel R. Malek S., RESISTing Reliability Degradation through Proactive Reconfiguration, (under review) |
HW 4 assigned |
|
9 11/19/09 |
Evolution and Product Families, Domain Specific Software Engineering Standards Peoples, Roles, Teams |
Taylor 15,16,17
S. A. Hendrickson, A. van der Hoek, Modeling Product Line Architectures through Change Sets and Relationships. In Proc. of the 29th International Conference on Software Engineering (ICSE 2007). |
HW4 due
|
|
10 11/26/09 |
Happy Thanksgiving!
|
||
|
11 12/3/09 |
Take-home Final Exam |
||
|
Final
Exam Week 12/10/09 |
Project
Presentations |
||