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  

Students’ comments: click here.

Noteworthy points: click here

 

Quick Access:

Important Announcements

Course Description

Expectations

Prerequisites

Software Packages

Textbooks

Evaluation

Lecture topics

 

Important Announcements

 

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

Course Description

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.

 

Expectations

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

 

Prerequisites

·      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

 

Software Packages:

Example packages students can use during the course are listed below. All modelling must be done in UML.

 

Textbooks:

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

 

Software Architecture: Foundations, Theory, and Practice

Richard N. Taylor, Nenad Medvidovic and Eric Dashofy

Wiley, 2009

ISBN-10: 0470167742

 

Essential Software Architecture

Ian Gorton

Ian Gorton

Visit Amazon's Ian Gorton Page

Find all the books, read about the author, and more.

See search results for this author

Are you an Author? Learn about Author Central

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

 

 

Evaluation

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

 

Email Contact

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.

 

Ethical Conduct

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.

 

 

Lecture topics

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