CS 4471b & 9549b
Software Design and Architecture
Course Outline: Winter 2012
Course Venue and Time:
|
MC 320 |
Th |
10.30 AM – 1.30PM |
Name
|
Office Hours |
|
Prof. Nazim H. Madhavji
(Instructor) |
TH: 1.30 PM –2.30pm Catch me right after the class! madhavji@gmail.com |
COMPSCI 4471B - SOFTWARE DESIGN AND ARCH
|
☛NEW/RECENT ☛OLDER |
Date |
Description |
|
☛ |
|
o For all the course resources, please click here (restricted access):
click here. § Architecture lecture notes, Requirements lecture notes, Sample
questions, Drills, Project description & Enrichment Study Description,
Additional resources, etc. |
|
|
|
|
|
☛ |
3-Jan-12 |
o Homework: READ chapters 1, 2, 4, 5 and 7 from the class text. o Homework: READ/REFRESH RE book chapters 1, 2, 3, 4, 6, 8. |
Back to the
Top of the document
This
course focuses on “software architectures”. A software architecture is an
abstract representation of a software system, filtering out what is
traditionally considered design- and implementation-level issues (such as:
algorithm, design patterns, data representation and coding) and highlighting
such aspects as the system structure, inter-relationships and interaction among
these structures, and other “run-time” or “off-line” properties of the system
(such as reliability, performance, portability, inter-operability, etc.). Whereas the requirements of a system generally
state the functionality of the system and the expected behavior of the system
when used, the architecture of the
system describes how the desired functionality or quality is (to be)
implemented. It sets bounds for lower-level design of the system and gives a
technical context to future requirements of the system.
For
a large and complex (software-intensive) system, its architecture is a key
artefact and an essential means for controlling and evolving the system.
Among
the resources required to create a high quality system architecture include:
requirements of the system; organisational context; domain and technical
knowledge and experience; existing system and its architecture (if any);
appropriate stakeholders; architecting notations, methods, techniques, tools
and processes.
· The
learning objectives in this course are to become familiar with: the
notion of software architectures, different types of architectures, the role
they play in software-intensive systems and in system development, architecture
creation and evolution, architecture analysis, and documenting an architecture.
· Concepts presented in lectures
are complemented by assignments, class participation, projects
and self-study.
· This
is not a course where one writes thousands of lines of code in a programming
language, characterised typically by heroic efforts of getting the program to
work in the days approaching the project deadline. Rather, it is an
intellectual course where system-level decisions are represented in a
high-level notation that together form a system architecture. Such decisions
require circumspection of a wide variety of issues (user needs, domain issues,
business goals, technical challenges, management, regulatory and legal issues, socio-political
issues and others) that can affect the quality of the system. It also requires
collaboration with various stakeholders such as user representation,
requirements analysts, verification specialists, project managers, product and
release managers, designers and integrators, and others.
· In
those attending the course, it requires maturity, dedication, self-motivation, teamwork,
patience, willingness to learn from diverse sources (not only lectures), and
ability to communicate and share with others.
· Lectures
are, primarily, “triggers” for awareness of concepts in this subject and for
in-class interaction. Lectures, by themselves, are not adequate for learning
this subject. To seriously understand this subject beyond the class material,
students are expected to learn from identified sources, problem solving and
group work. In other words, much of “active learning” occurs outside the lecture
time.
· Individuals
can also pursue enrichment studies where
they can further their understanding about the subject, from a selected point
of interest, guided one-on-one by the instructor. Enrichment studies are
optional for undergraduate students and mandatory for graduate students.
· CS3307
-- Object-Oriented Design and Analysis
· Also, please note of the following
regulation from the university:
Unless you have either the requisites for this course or written
special permission from your Dean to enroll in it, you will be removed from
this course and it will be deleted from your record. This decision may not be
appealed. You will receive no adjustment to your fees in the event that you are
dropped from a course for failing to have the necessary prerequisites.
Note: Students who have been admitted to this course
without the normal prerequisites may not have been exposed to some of the
background material expected for this course; it is the responsibility of these
students to gain familiarity with this material on their own. These students
are encouraged to speak to the Professor.
For
the students who are not familiar with the cs4473a material (Requirements
Engineering), it is strongly recommend that you read at least the following:
Requirements Engineering, by Gerald
Kotonya and Ian Sommerville, Wiley, 1998.
· Chapters 1, 2, 3,
4, 6, 8
Example
packages students can use during the course are listed below. All modelling
must be done in UML.
Required Text book:
Software Architecture in Practice,
2nd edition
Len Bass, Paul Clements and Rick Kazman
Addison-Wesley, 2003
ISBN: 0-321-15495-9
Supplementary Text books:
Evaluating Software Architecture: Methods and Case Studies
Paul Clements, Rick Kazman, and Mark Klein
Addison Wesley, 2004
ISBN: 9-780201-704822
Documenting Software Architectures: Views and Beyond
Second Edition
Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers,
Reed Little, Robert Nord, Judith Stafford
Addison-Wesley
Professional, 2011
ISBN-10: 0321552687
ISBN-13: 9780321552686
Software Architecture, Perspectives on an emerging discipline
Mary Shaw and David Garlan
Prentice Hall, 1996
ISBN: 0-13-182957-2
Richard N. Taylor, Nenad Medvidovic and Eric Dashofy
Wiley, 2009
ISBN-10: 0470167742
ISBN: 978-3-540-28713-1
The art of software architecture, Design methods and Techniques
Stephen T. Albin
Wiley, 2003
ISBN: 0-471-22886-9
Large-scale software architecture, A practical guide using UML
Jeff Garland
Richard Anthony
Wiley, 2003
ISBN: 0-470-84849-9
Applied software architecture
Christine Hofmeister, Robert Nord and Dilip Soni
Addison-Wesley, 2000
ISBN: 0-201-32571-3
Software Engineering, An Object-oriented perspective
(Chapter 5 particularly)
Eric J. Braude
Wiley, 2001
ISBN: 0-471-32208-3
· All material covered in the course (including
lectures, assignments and projects, tools, books and other cited resources) is
examinable.
· The teaching staff
reserve the right to adjust (lower or raise) a student’s marks for the
tabulated components below based on their judgment of the student’s knowledge
and understanding of the subject matter during the term.
· Project
logistics:
o Projects will be carried out in groups.
o The membership of a group will be randomly assigned
and may not be appealed.
o At the instructor’s discretion, a group member’s
marks in the project would be weighted by his/her participation and significance
levels, judged – in part -- by the group peers, frequently
during the project – with the group maximum being the weight of one
during any single measure.
o It is the responsibility of each group member to:
1. act in a manner that would avoid personal or
other conflicts within the group,
2. contribute equitably to the project’s success in order to meet its goals.
o EXTREMELY
IMPORTANT: In the event a group member is asked to withdraw from his or her
group for reasons of discontentment on the part of any other member in the
group, attempts will be made to place the offending student in another group.
However, successful placement is not
guaranteed. In such a case, the student concerned would have no choice but to
withdraw from the course. PLEASE note that there is nothing else that can be
done within the parameters of operation of this course.
· The
grading criteria, as applied to each evaluation component, will be described on
the assignment as appropriate.
· The table below give details of the various
components of the course and their weights.
· Those who miss the quiz
or test will receive zero marks for this component (exceptions only as per the
university policy).
· Late submissions for
assignments and projects will not be accepted unless pre-approved by the
instructor, so please be forewarned to commence tasks upon assignment
(exceptions only as per the university policy).
· There will
be no makeup Quiz or Test, except for students requesting a Special Quiz or
Test for religious reasons. These students must have notified, by email, the
course instructor at least 2 weeks prior to the Quiz or Test.
If you miss the Quiz or Test for any other reason, follow the
procedure for Academic Accommodation for Medical Illness. If accommodation is
approved by your Dean’s office, the Quiz or Test component will be
redistributed to the other evaluation components of the course.
|
Sessional
dates 2011: 3rd
Jan. – 7th Apr. |
% |
Dates* |
|
Component |
% |
Dates* |
|
Homework: READ chapters 1, 2, 4, 5 and 7
from the class text. **** You are expected to read at least one chapter a
week. |
-5 to 0 |
On-going starting from day 1 till the end of the
course. |
|
Drill 1: Quality scenarios, Tactics Drill 2: Architecture Quiz |
10 10 15 |
12 Jan. – 2 Feb. 2 Feb. – 1 Mar. 16 Feb. (provisional) |
|
Project: creating and evaluating an architecture |
35 |
1 Mar. – 5
Apr. |
|
Test** |
30 |
15 Mar. |
|
Enrichment study*** (READ the document posted on the course
website) |
20 |
5 Apr. (firm deadline) |
* The stated
dates are approximate and are subject to change. Changes will be announced in
the class.
** If the test score is less than, or equal
to, 59% then the overall course grade can be no more than 69% (C).
*** The
Enrichment study is mandatory for cs9549
students; overall course grade will be normalized to a maximum of 100%.
For cs4471 students, the Enrichment study is optional
(bonus). Yes, you can “shoot” for 120% though the university will only record
up to a maximum of 100%. More importantly, you will learn a great deal through the
enrichment study AND it will be extremely useful for writing a letter of
reference of some significance. I highly recommend it!
****NOTE: Reading
the indicated chapters is important for deeper understanding in this course.
Quiz and test material will include this component even if actual class
lectures are lagging behind. Also, in-class question and answer sessions will be
held based on the assigned chapters; marks are negative to zero.
We will occasionally need to send email messages to the whole class, or to students individually. Email will be sent to the UWO email address assigned to students by Information Technology Services (ITS), i.e. your email address @uwo.ca. It is each student’s responsibility to read this email on a frequent and regular basis, or to have it forwarded to an alternative email address if preferred. See the ITS website for directions on forwarding email.
However, note that email at ITS (your UWO account) and other email providers such as hotmail.com or yahoo.com establish quotas or limits on the amount of space available to you. If you let your email accumulate there, your mailbox may fill up and you may lose important email from your instructors. Losing email is not an acceptable excuse for not knowing about the information that was sent.
Academic Accommodation for Medical Illness
· for work representing 10% or more of the overall grade
in the course:
If you are unable
to meet a course requirement due to illness or other serious circumstances, you
must provide valid medical or other supporting documentation to your Dean's
office as soon as possible and contact your instructor immediately. It is
the student's responsibility to make alternative arrangements with their
instructor once the accommodation has been approved and the instructor has been
informed. In the event of a missed final exam, a "Recommendation of
Special Examination" form must be obtained from the Dean's Office
immediately. For further information please see: http://www.uwo.ca/univsec/handbook/appeals/medical.pdf
A student requiring academic accommodation due to illness should use the
Student Medical Certificate when visiting an off-campus medical facility or
request a Record's Release Form (located in the Dean's Office) for visits to
Student Health Services. The form can be found here: https://studentservices.uwo.ca/secure/medical_document.pdf
Accessibility
Statement
Please contact the course instructor if you require material in an alternate format or if you require any other arrangements to make this course more accessible to you. You may also wish to contact Services for Students with Disabilities (SSD) at 661-2111 x 82147 for any specific question regarding an accommodation.
Scholastic offences are taken seriously and
students are directed to read the appropriate policy, specifically, the
definition of what constitutes a Scholastic Offence, at the following Web site:
http://www.uwo.ca/univsec/handbook/appeals/scholoff.pdf.
For individual assignments, you are encouraged to engage in
problem understanding with other class students or staff; however, the solution
and the actual details of the work must be your own individual effort.
The
standard departmental penalty for assignments that are judged to be the result
of academic dishonesty is, for the student's first offence, a mark of zero for
the assignment, with an additional penalty equal to the weight of the
assignment also being applied. You are responsible for reading and respecting
the Computer Science Department's policy on Scholastic Offences and Rules
of Ethical Conduct .
The University of Western Ontario uses software for plagiarism
checking. Students may be required to submit their written work and software in
electronic form for plagiarism checking.
The topic list is tentative. The actual topics will be dictated by the
dynamics of the class schedule.
|
Topic |
Chapter |
|
Course
Overview & Preliminaries |
|
|
Introduction
to software architectures |
Chapter 1 Chapter 2 |
|
Creating
an architecture |
Chapter 4 Chapter 5 Chapter 7 |
|
Analyzing
an architecture |
Chapter 11 Chapter 12 |
|
Documenting
an architecture |
Chapter 9 |
|
Software
product lines |
Chapter 14 |
|
Component-based
development |
Chapter 18 |
|
Reconstructing
a software architecture |
Chapter 10 |