SE3A04 Software Design II

 

SFWR ENG 3A04 SOFTWARE DESIGN II -LARGE SYSTEM DESIGN

(Version of August 19, 2013)

Instructor                  Teaching Assistants

Dr. Tom Maibaum                     Jason Jaskolka (jaskolj@mcmaster.ca)
Office: ITB 159 extension: 26627       Rokan Faruqui (faruqumr@mcmaster.ca)
E-Mail: tom@maibaum.org
Office hours: To be arranged.

Lectures: Monday, Wednesday 11:30-12:20, and Friday from 13:30 AM to 14:20 AM in T13/125

Tutorial 1: Thursday from 8:30 AM to 10:20 AM in ITB/139
Tutorial 1: Tuesday from 14:30 PM to 16:20 PM in ITB/139


Prerequisites Antirequisite

SFWR ENG 2AA4, 2C03 COMP SCI 3EA3

Course objective

The main objectives of this course are:

1Enhance students awareness of the importance of architecture design

2Provide students with opportunities to develop their own design style

3Emphasize design strategies and practical guidelines for designing large systems

4Explore a complete collection of widely used software architecture styles

5Discuss the trade-off attributes of the presented architectural styles


The course is quite practical in flavour and it does point to the use of the introduced concepts in software systems design. A certain degree of previous programming, design, and mathematical experience is essential for survival.

Textbooks

1. We strongly recommend the following textbook which is available at McMaster bookstore. Kai Qian, Xiang Fu, Lixin Tao, Chong-wei Xu, and Jorge Diaz-Herrera. Software Architecture and Design Illuminated, Jones and Bartlett Publishers, ISBN: 9780763754204.

Course Information on Web

At http://www.cas.mcmaster.ca/~maibaum/Toms_Mac_Site/Teaching.html you will find the latest version of the course outline, the slides used in class, the assignments, the material needed or used in the tutorial sessions (tutorial schedule, tutorial slides I and slides II), project description, project groups, and announcements. It is the student’s responsibility to be aware of the information in the course Web pages, and to check regularly for announcements.


Project and final exam

Project

A major component of this course is a team project. The milestones of the project will be marked by four deliverables that deal with the requirements, the architecture design, the detailed design and construction of a first team-prototype, and the final documentation and the construction of the final team system.

Each Team will agree on a software architecture and interfaces. The members of the team will complete a system adhering to those interfaces and must demonstrate a working system. A team must submit a unique deliverable per due date. Within a team, the grade assigned to a member is proportional to her/his contribution. With each deliverable, you must provide a statement that details the contribution of each team member and that is signed by all team members. The instructor reserves the right to re-evaluate the contribution of a student (to a single deliverable or to a set of deliverables) via an oral examination. After a re-evaluation of the contributions of a student, his previously assigned grades can be changed.

Each student is expected to keep a detailed and up-to-date log book that records all her/his contributions to the project, the interactions with the rest of the class regarding the project, and any external help, information, or ressource used in the project. The log book MUST be a physical book. Electronic log books will not be accepted. The instructor and the TAs can request a student’s log book at any time during the project and until the final grade is approved by the department. The quality of the book at the time of the inspection affects the student’s grade for the deliverables completed (previous grades can be changed) or being developed at that time.

Students are encouraged to use freely available tools for revision and version control, and for project organization and management.

The following table gives a tentative timetable for the deliverables of the project:


Your deliverables are due at the beginning of the tutorial or the lecture on the due date. Late deliverables will be marked with a late penalty of 20% of the full grade per day (unless you provide the instructor with a Course of Action for Missed Work form delivered by the Associate Dean Office).

The deliverables will be marked by the TAs. Any request for remarking must be first directed to the TA that has marked your work. After you have talked to your TA and still believe that you deserve a higher mark, then you can contact the instructor. When the instructor re-assesses a work or an exam, all the work aspects or exam questions will be reconsidered.

Surprise five-minute quizzes

During the lecture time or during the tutorial, the instructor can give a surprise five to ten minute quiz. There will be UP TO six surprise quizzes. If the class writes one quiz during all the term, it counts for 2% of the final grade. If the class writes more than two quizzes, the one with the lowest grade does not count, while each one of the others counts for 2% of your final score. If, for reasons accepted by the Associate Dean’s Office, you write only one quiz, that one quiz counts. If for accepted reasons you miss all the quizzes, your final exam will be worth 40%. There are no deferred quizzes.

Midterm exam

There will be one midterm exam. It will take place on Monday, October 21st. It will be a 50 minutes in duration and will cover material from the lectures, tutorials, project, and from the required textbook. The mid-term exam is worth 20% of the final grade.

Final exam

The final examination will be scheduled by the Registrar’s office in the usual way. It will be a three hours in duration and will cover the material of the lectures, tutorials, project, and of the required textbook. The final exam counts for (40 − 2 ∗ NumberOfQuizzesThatCount)% of your final score. For example, if the class writes 4 quizzes, only 3 quizzes count and the final exam will be worth (40-2*3)%=34%.


Policy Statements and Notes

1. Missed deliverable or exam: You must submit appropriate documentation (e.g. note from physician) to the Associate Dean office. It is your responsibility to follow-up with the instructor. A zero will be entered for the missed work unless the instructor receives a Course of Action for Missed Work form delivered by the Associate Dean Office before submitting the final grades to the faculty.

2. Tutorials: The class will be split into two groups. Each group will have a one hour tutorial per week. Attendance at tutorials is compulsory. You MUST attend your assigned session of the tutorial. More information on the schedule and the organization of the tutorial will be posted very soon on the course web-site.

3. The instructor reserves the right to adjust the grades for a deliverable, or the final exam by decreasing every score by a fixed number of points.

4. The instructor reserves the right to increase by a fixed number of points the final scores of all the students who handed in all the deliverables and attended all the tutorial sessions (except if the student misses a tutorial for a justifiable reason).

5. The instructor reserves the right to assign extra grades for extra work done by willing students. However, the work subject to extra grades should be advertised during the lectures.

6. A remarking request of a deliverable is considered by the TAs and the instructor only if it is made within the two weeks that follow the return date of the majority of the concerned deliverable.

7. The instructor reserves the right to require a deferred exam to be oral.

8. No responsibility for loss of deliverables can be assumed by either the instructor or the Teaching Assistants. Keep copies of your own contributions to the project, your reports, and your email exchanges with your team members.

9. Calculators are not needed for this course and their use will not be permitted during exams.

10. The lectures will not necessary follow the order in which the topics are presented in the detailed course outline. Regular class attendance is required.

  1. 11.Significant study, reading, and group discussions outside of class and tutorials are required.

  2. 12.12. Suggestions on how to improve the course and the instructor’s teaching methods are always welcomed.


Detailed course outline


1. Introduction to Software Architecture

2. Software requirements and its role in determining the architecture design

3. Software Architecture Design Space (Types of Software Structures, Software Elements, Software Connectors)

4. Models for Software Architecture (Architecture View Models, Architectural Description Languages (ADL))

5. Object Oriented Architecture (Introduction of Object Orientation, OO Analysis and Design, Design Principles)

6. Data Flow Architecture (Batch Sequential, Pipe & Filter Architecture, Process-Control Architecture)

7. Data Centered Software Architecture (Repository Architecture Style, Blackboard Architecture Style)

8. Hierarchy Architecture (Main/Subroutine Software Architecture, Master/Slaves Software Architecture, Layered Architecture, Virtual Machine)

9. Implicit Asynchronous Communication Software Architecture (Non-Buffered Event-Based Implicit Invocations, Buffered Message-Based Software Architecture)

10. Interaction Oriented Software Architecture (Model-View-Controller, Presentation-Abstraction-Control (PAC) Architecture)

11. Distributed Architecture (Client/Server, Multi-tier, Service-Oriented Architecture)

12. Component-Based Software Architecture (Principles of Component-Based Design)

13. Heterogeneous Architecture (Methodology of Architecture Decision, Quality Attributes, Selection of Architecture Styles, Evaluation of Architecture Designs, Case Study: an Online Computer Vendor Component)

14. Architecture design for security