University of Calgary Logo
Department of Electrical and Computer Engineering
 

Analysis and Design of Large Scale Software II
(SENG 401)
Course Outline

()

Instructor: Dr. Behrouz H. Far (Associate Professor, Faculty of Engineering)
   
Course/Year: Software Engineering Program/ 3rd Year
   
Department: Electrical and Computer Engineering
   
School Year: 2008 (Winter)
   
Timetable: Lecture: Mon., Wed., Fri., (13:00-13:50)
Lab1: Mon. 16:00-16:50
Lab2: Wed. 16:00-16:50
   
Room: Lectures: ICT116
Labs: ICT116
   
Background Courses: Prerequisite: Software Engineering 301
Corequisite: Computer Science 457
   
Lecture Format: Lecture (3x1 hour sessions per week, total 36 hours) +
Lab (2x1 hour session per week, total 24 hours)
   
Instructor's Contact: Office: ICT 543
Tel. (403) 210-5411
email. _far@ucalgary.ca
   
Teaching Assistants: Hamdy Ibrahim (Office. ICT532) Tel. 210-5439 hibrahi@ucalgary.ca
Note: For discussion related to the lab assignments, TAs and the course instructor can be reached either in the Lab or at their desks (shown above) during the official lab hours only. For contacts other than lab hours please use email or arrange an appointment in advance.
   
Course Outline: Course Outline (PDF format)


Announcements
  1. Nothing yet!


1. Course Description and Outline

Software architectures and design for non-functional software properties. Introduction to program comprehension skills including analysis of existing architectures.

This course will cover the scope of software paradigms with particular emphasis on software architecture. The students will learn through the combination of lectures, project work, exercises, and seminar presentations. A workshop (project) for software architecture specification and evaluation is designed to reinforce the presented material.
After completing this course the students will:

  • Have a working knowledge of software architectures
  • Know how to specify software architecture
  • Be aware of architecture evaluation models
  • Be aware of framework models
  • Be aware of reuse methods and techniques
  • Be aware of software product-line architectures

2. Course Web Site

The SENG401 course home page contains links to up-to-date course information, problem assignments, announcements, as well as laboratory and examination scheduling. The SENG401 course home page is available through the B.H. Far's home page at the URL:
(http://www.enel.ucalgary.ca/People/far/Lectures/SENG401/)

3. Allocation of Marks

Criteria Total mark Other info
Midterm Examination 20% The midterm examination will be scheduled at a time near the end of February or beginning of March. Midterm examination takes about one hour to complete.
The students' understanding of the subject will be evaluated by one or two quizzes randomly scheduled throughout the course.

Quizzes and/or student presentations 10% The students' understanding of the subject will be evaluated by one or two quizzes randomly scheduled throughout the course. They will also be evaluated by a group presentation for the design patterns that will be scheduled during March.

Laboratory Reports and projects 30% See Assignments schedule below.
Final examination 40% The final examination will be scheduled by the Registrar's Office at a time in the two-week period following the end of classes in April. The final examination takes about 3 hours to complete.
The final exam covers all distributed materials.

A student must receive at least 50% on the final examination to pass the course.

4. Problem Assignments and Laboratories

During the course the students are grouped into teams composed of 3 members. Assignments correspond to the major course topics are:

Assignment A1: Conceptual View
Assignment A2: Module View
Assignment A3: Execution View
Assignment A4: Code View
Assignment A5: Evaluating Architecture
For the architecture project each team (1) will receive a requirements document; and (2) a document template. The team shall submit one report for each assignment.
The reports shall be handed in for check and marking. The reports are reviewed and a group discussion will be held in the laboratory hours. Additional discussion and review hours can be arranged by the students, TAs and the instructor.

Assignment no. Submission Deadline Other info
A1 Submission Date:
13/Feb/2008
(Wed) 4:00 PM

Architecture Project A1:
Conceptual View
(Group assignment)
  • A1-A4 Requirement document: MS Word or PDF format.
  • A1 Project Specification: PDF format.
  • A1 Project template: MS Word or PDF format.
  • A1 Marking key: PDF format.
NOTE: Report submission guideline:
  1. Submit one copy per team.
  2. Submit one paper copy to the designated drop box (2nd floor ICT building). This copy will be marked and returned back to you.
  3. Submit one electronic copy by emailing it to the TA who is advisor to your team. The contact address is on top of this page.
A2 Submission Date (Revised):
12/Mar/2008
(Wed) 4:00 PM
Architecture Project A2:
Module View
(Group assignment)
  • A2 Project Specification: PDF format.
  • A2 Project template: MS Word or PDF format.
  • A3 Marking key: PDF format.
A3 Submission Date (Revised):
26/Mar/2008
(Wed) 4:00 PM
Architecture Project A3:
Execution View
(Group assignment)
  • A3 Project Specification: PDF format.
  • A3 Project template: MS Word or PDF format.
  • A3 Marking key: PDF format.
A4 Submission Date (Revised):
9/Apr/2008
(Wed) 4:00 PM
Architecture Project A4:
Code View
(Group assignment)
  • A4 Project Specification: PDF format.
  • A4 Project template: MS Word or PDF format.
  • A4 Marking key: PDF format.
A5 Submission Date:
16/Apr/2008
(Wed) 4:00 PM
Architecture Project A4:
Code View
(Group assignment)
  • A5 Project Specification: PDF format.
Project Presentation 2-9-16/Apr/2008 Group presentation
(Group assignment)
Documents Assignments A1-A4 Requirement document (PDF format)
Assignments (PDF format)


6. Detail Contents

Regular Sessions
1st week
Notes
(PDF format)
Introduction (2 sessions)
  • Course outline
  • Course prerequisites
  • Course study materials
  • Basic Concepts and Motivation
  • Software paradigms
  • Software architecture
  • Why software architecture?
  • Who is a software architect?
Contents equivalent to Chapter 1 of Applied Software Architecture and Chapters 1-2 of Software Paradigms books.
1st week
Notes
(PDF format)
Design Patterns: Quick Review (1 session)
  • Design pattern introduction
  • Creational patterns
  • Structural patterns
  • Behavioral patterns
2nd week
Notes
(PDF format)
Introducing Architectural Analysis (2 sessions)
  • Introduction to architectural views
  • 4 principles of software architecture
  • The 4 views architecture
  • The 4+1 views architecture
  • Course assignments
3rd week
Notes
(PDF format)
Software Architecture: Global Analysis (2 sessions)
  • Global analysis: introduction
  • Global analysis: details
  • Case studies
Contents equivalent to Chapter 2-3 of Applied Software Architecture book.
4th week
Notes
(PDF format)
Software Architecture Views: Conceptual View (3 sessions)
  • Introduction to conceptual view
  • Examples and case studies
  • Project assignment case study
Contents equivalent to Chapter 4 of Applied Software Architecture book.
5nd week
Notes
(PDF format)
Software Architecture Patterns (Styles) (4 sessions)
  • Introduction to architectural patterns (AP)
  • Components, connector, attributes, interface, configuration
  • AP1: Data flow systems
  • AP2: Call-and-return systems
  • AP3: Independent components
  • AP4: Virtual machines
  • AP5: Data-centered systems
  • Other architectural patterns
  • Case study
Contents equivalent to Chapters 12-17 of Software Paradigms book.
6th week
Notes
(PDF format)
Software Architecture Views: Module View (3 sessions)
  • Introduction to module view
  • Module, subsystem, layer and interface
  • Examples and case studies
  • Project assignment case study
Contents equivalent to Chapter 5 of Applied Software Architecture book.
Review
Midterm review and midterm examination (2 sessions)
  • Midterm review questions
  • Review of the course (29/Feb/2008)
  • Midterm examination (Winter 2008) (3/Mar/2008)
Midterm exam scope:
  1. Architecture Styles (Chapters 12-17 of Software Paradigms book)
  2. Software Architecture views: Conceptual view only with focus on central design tasks (Chapter 1-4 of Applied Software Architecture book)
7th week Notes
(PDF format)
Software Architecture Views: Execution View (3 sessions)
  • Introduction to execution view
  • Platform elements, runtime entities, communication paths and mechanisms
  • Examples and case studies
  • Project assignment case study
Contents equivalent to Chapter 6 of Applied Software Architecture book.
8th week Notes
(PDF format)
Software Architecture Views: Code View (3 sessions)
  • Introduction to code view
  • Source components, intermediate components, deployment components, build procedure, configuration management
  • Examples and case studies
  • Project assignment case study
Contents equivalent to Chapter 7 of Applied Software Architecture book.
9th week Notes
(PDF format)
Software Architecture Views: RUP Views (2 sessions)
  • The 4+1 views architecture
  • Use-case view
  • Logical view
  • Process view
  • Component view
  • Deployment view
  • Implementation view
10th week Notes
(PDF format)
Architectural Evaluation Techniques (4 sessions)
  • Architecture Tradeoff Analysis Method (ATAM)
  • Cost-Benefit Analysis Method (CBAM)
  • Other methods
11th week Notes
(PDF format)
Components, Frameworks and Product Lines (4 sessions)
  • Components
  • Frameworks
  • Framework examples
  • Software product lines
Contents equivalent to Chapters 20-23 of Software Paradigms books.
Final
Course
Review

Review and final examination (2 sessions)
  • Final review of the course (14-16/Apr/2008)
  • Final examination (Winter 2008): Friday April 25th, 3:30-6:30 PM, ENE 322


7. Textbooks and Suggested References

Reference Materials: The course handouts are the major source of information. The handouts, slides and extra reading materials will be distributed on each session. All the handouts and other materials are also downloadable from the course web page.
   
Main Textbook:
This book is used as the main textbook for the course.
   
Additional Textbook:
This book is used as additional textbook.
  • Software Paradigms, S.H. Kaisler, (440 p.), John Wiley & Sons, 2005.
    ISBN 978-0471483472.
    Chapters 12-17 and 20-23.
   
Additional Textbook:
This book is recommended as additional textbook.
   
Additional Textbook:
This book is recommended as additional textbook for architectural evaluation.
   
Additional Textbook:
This book is recommended as additional textbook.
   
Here is an additional list of textbooks that may be found useful:
  1. Addison-Wesley - .NET Patterns Architecture Design and Process (2003)
  2. Addison-Wesley - Analysis Patterns Reusable Object Models (2002)
  3. Addison-Wesley - Anti Patterns (1998)
  4. Addison-Wesley - Beyond Software Architecture Creating and Sustaining Winning Solutions (2003)
  5. Addison-Wesley - C# Design Patterns A Tutorial (2002)
  6. Addison-Wesley - C++ Network Programming Vol1 Mastering Complexity with ACE and Patterns (2001)
  7. Addison-Wesley - Concurrent Programming in Java Design Principles and Patterns 2Ed (1999)
  8. Addison-Wesley - Design Pattern Java Companion (1998)
  9. Addison-Wesley - Design Pattern Java Workbook (2002)
  10. Addison-Wesley - Design Patterns Explained A New Perspective on Object-Oriented Design 2Ed (2004)
  11. Addison-Wesley - Designing Software Product Lines With UML from Use Cases to Pattern-Based Software Architectures (2004)
  12. Addison-Wesley - Enterprise Integration Patterns - Designing Building and Deploying Messaging Solutions (2003)
  13. Addison-Wesley - Enterprise Patterns and MDA Building Better Software with Archetype Patterns and UML (2003)
  14. Addison-Wesley - Java Design Pattern (2000)
  15. Addison-Wesley - Java Design Patterns A Tutorial (2000)
  16. Addison-Wesley - MDA Distilled Principles of Model-Driven Architecture (2004)
  17. Addison-Wesley - MDA Explained The Model Driven Architecture Practice and Promise (2003)
  18. Addison-Wesley - Mastering The Requirements Process 2Ed (2006)
  19. Addison-Wesley - Pattern-Oriented Analysis and Design Composing Patterns to Design Software Systems (2003)
  20. Addison-Wesley - Patterns For Effective Use Case (2002)
  21. Addison-Wesley - Patterns of Enterprise Application Architecture (2002)
  22. Addison-Wesley - Real Time Design Patterns (2002)
  23. Addison-Wesley - Software Configuration Management Patterns Effective Teamwork Practical Integration (2002)
  24. Addison-Wesley - The Joy of Patterns Using Patterns For Enterprise Development (2001)
  25. Addison-Wesley - Use Cases Patterns and Blueprints (2004)
  26. Addison-Wesley - Visual Basic Design Patterns VB60 And VB .NET (2001)
  27. Apress - Ajax Patterns and Best Practices (2006)
  28. Apress - Bug Patterns in Java (2002)
  29. Apress - Foundations of Object Oriented Programming Using .NET 2.0 Patterns (2005)
  30. Apress - Web Service Patterns Java Edition (2003)
  31. Auerbach - Software Architecture Design Patterns in Java (2004)
  32. CMU-SEI-2000-SR-004 Software Architecture Documentation in Practice - Documenting Architectural Layers (2000)
  33. CMU-SEI-96-TR-025 Recommended Best Industrial Practice for Software Architecture Evaluation (1997)
  34. CMU-SEI-96-TR-036 Principles for Evaluating the Quality Attributes of a Software Architecture (1996)
  35. CRC - Software Architecture Design Patterns in Java (2004)
  36. Cambridge - More Process Patterns Delivering Large-Scale Systems Using Object Technology (2001)
  37. Elsevier - Object-Oriented Construction Handbook (2005)
  38. IBM - Introduction to Design Patterns in C# (2002)
  39. IBM - Patterns - Service Oriented Architecture and Web Services (2004)
  40. IBM - Patterns Model-Driven Development Using IBM Rational Software Architect (2005)
  41. IEEE 1471-2000 Recommended Practice For Software Architecture Description of Software-Intensive Systems
  42. Idea - Management of The Object Oriented Development Process (2006)
  43. Manning - A Little Java A Few Patterns
  44. McGraw-Hill - Practical J2EE Application Architecture (2003)
  45. Microsoft - Application Architecture for .NET Designing Applications
  46. Microsoft - Caching Architecture Guide for .NET Framework Applications
  47. Microsoft - Data Patterns
  48. Microsoft - Enterprise Solution Patterns Using Microsoft .NET 2Ed
  49. Microsoft - Testing Software Patterns
  50. MorganKaufmann - Content Networking Architecture Protocols and Practice (2005)
  51. MorganKaufmann - Java Web Services Architecture (2003)
  52. MorganKaufmann - System Architecture with XML (2003)
  53. MorganKaufmann - Web Services And Service Oriented Architecture (2003)
  54. NewRiders - UML Pattern Language (2000)
  55. OReilly - Ajax Design Patterns (2006)
  56. OReilly - Building Java Enterprise Applications Vol I Architecture
  57. OReilly - J2EE Design Patterns
  58. Prentice-Hall - Advanced J2EE Platform Development Applying Integration Tier Patterns
  59. Prentice-Hall - Applied Java Patterns
  60. Prentice-Hall - Applying Uml and Patterns An Introduction to OOAD and RUP 2Ed
  61. Prentice-Hall - Core J2EE Patterns Best Practices and Design Strategies 2Ed
  62. Prentice-Hall - Practical Guide to Enterprise Architecture (2003)
  63. Prentice-Hall - Seamless Object-Oriented Software Architecture Analysis and Design of Reliable Systems (1994)
  64. Prentice-Hall - Service-Oriented Architecture A Field Guide to Integrating XML and Web Services (2004)
  65. Prentice-Hall - Software Architect Bootcamp (2000)
  66. Sun - Core J2EE Patterns
  67. Wiley - Anti Patterns Refactoring Software Architectures and Projects in Crisis (1998)
  68. Wiley - Component-Oriented Programming (2005)
  69. Wiley - Convergent Architecture Building Model-Driven J2EE Systems with UML (2002)
  70. Wiley - EJB Design Patterns - Advanced Patterns Processes and Idioms (2002)
  71. Wiley - J2EE Antipatterns (2003)
  72. Wiley - J2EE Best Practices Java Design Patterns Automation and Performance (2003)
  73. Wiley - Java Enterprise Design Patterns Patterns in Java Vol3 (2002)
  74. Wiley - Large Scale Software Architecture (2003)
  75. Wiley - Model Driven Architecture Applying MDA to Enterprise Computing (2003)
  76. Wiley - Modelling Complex Projects (2002)
  77. Wiley - Pattern Classification 2Ed
  78. Wiley - Pattern-Oriented Software Architecture Vol 1 (1996)
  79. Wiley - Pattern-Oriented Software Architecture Vol 2 (2000)
  80. Wiley - Pattern-Oriented Software Architecture Vol 3 (2004)
  81. Wiley - Server Component Patterns Component Infrastructures Illustrated With EJB (2002)
  82. Wiley - Software Paradigms (2005)
  83. Wiley - The Art of Software Architecture Design Methods and Techniques (2003)
  84. Wiley - Web Application Architecture Principles Protocols and Practices (2003)


All the slides and notes can be viewed on-line using Netscape Navigator or MSIE (version 3.x or later) browsers. Copies of the slides in Portable Document Format (PDF) is available for on-line download. Please note that the course downloadable materials are provided solely for the internal use for the registered students of this course. External and industrial participants may contact the author for availability of the materials.
All Unix, PC and MAC users can download, view and print the PDF version of the documents using Adobe's Acrobat Reader.


This page was created by Dr. B.H. Far.If you may find omissions, glitches, have suggestions for improvement of the material presented here, please contact me.
  Copyright Terms. THIS DOCUMENT AND ITS ENTIRE CONTENTS ARE COPYRIGHT 2001 BY DR. B.H. FAR. COPYING, REPUBLISHING AND DISTRIBUTING THIS DOCUMENT IN WHOLE OR IN PART IS PROHIBITED BY LAW. IF YOU DESIRE TO REPUBLISH PARTS OF THIS DOCUMENT IN ELECTRONIC FORM, PLEASE CONTACT THE AUTHOR.