Phone: (250) 721-8697
E-mail: itraore@ece.uvic.ca
Office hours: Tuesday, Wednesday: 2:30-
4:00pm
Location: EOW 415
Time/Location:
ELL 162, 1:30-2:30pm, Tuesday, Wednesday,
Friday.
Students are advised to read the faculty of Engineering document Standards for professional behavior (http://www.engr.uvic.ca/policy/professional-behaviour.html), which contains important information regarding conduct in courses, in labs and in the general use of facilities.
Further Reading:
1.The Unified Software Development Process, by Ivar Jacobson, Grady Booch, James Rumbaugh, Addison-Wesley, 1998, ISBN: 0-201-57169-2.
2.The Rational Unified Process: An Introduction, Philippe Kruchten, Addison Wesley, 1998, ISBN: 0-201-60459-0
3.Applied Software Architecture, Christine Hofmeister, Robert Nord, Dilip Soni, Addison-Wesley 1999, ISBN: 0-201-32571-3.
4.Object-oriented Software Engineering, Bernd Bruegge, Allen H. Dutoit, Prentice Hall, 2000, ISBN: 0-13-489725-0
5.The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar Jacobson, Addison-Wesley 1999, ISBN: 0-201-57168-4
6.Metrics and Models in Software Quality Engineering, Stephen H. Kan, Addison-Wesley (2002), ISBN: 0201729156
7.CORBA 3 Fundamentals and Programming, 2nd Edition, Jon Siegel, Wiley 2000, ISBN: 0-471-29518-3, (899 pages).
- C++
Chapter 1: Introduction to Software
Architecture
Introduce software architecture with primary emphasis on the IEEE Recommended Practice for Software Architecture description. Concepts covered include:
Chapter 3: Architectural
Views
Part 3.1: Use Case View
Notation and documentation of the Use Case View of Software Architecture.
Part 3.2: Logical View
Notation and Documentation of the Logical
view of Software Architecture.
Part 3.3: Implementation, Process,
and Deployment Views
Notation and Documentation of the Implementation,
Process, and Deployment Views.
Chapter 4: Using Metrics to Manage
Software Risks
Presentation of software metrics, and
how they can be used to measure quality factors such as testability, maintainability,
reusability and so on.
Chapter 5: Patterns
Presentation of commonly used architectural
styles and patterns. Overview of design patterns. Introduction of the techniques
and notations provided by the UML for modeling design and architectural patterns.
Chapter 6: CORBA-based Architecture
Part 6.1: Introduction to CORBA
Introduction to distributed systems and
discussion of the issues surrounding distributed architectures; presentation
of the CORBA standard as an example of Distributed Object Architecture (DOA).
Part 6.2: CORBA-IDL
Presentation of CORBA Interface Definition
Language (IDL).
Part 6.3: Designing CORBA Systems
Techniques used to derive a CORBA System
from an OO design.
Part 6.4: Implementing CORBA Applications
Steps and methods used in implementing
a CORBA object-based application. Discussion of issues surrounding distributed
objects location in the network. Presentation of CORBA Naming and Trading
services as medium for locating distributed CORBA objects.
Chapter 7: Component-based Development
Part 7.1: Introduction to Component-based
Development
Introduction to component-based design
(CBD); link with software architecture. Components, connectors and protocols
design using the UML. Insight into standard component models.
Part 7.2: CORBA Component Model (CCM)
Presentation of the CORBA Component Model
(CCM); Extended IDL for CCM; CIDL code for CCM; Implementation issues and
examples.
Chapter 8: Specialized Software Architectures
This chapter will consist of presentations
on various issues surrounding or influencing software architecture. Selected
topics among the following issues will be covered:
- Real-time architecture design
- Fault-tolerant architecture design
- User interface design
- Integration of legacy systems in a software
architecture
- Embedded systems architecture design
- Secure software architecture design
- Version-control and configuration management
(VCCM)
- Project management (PM) and software
architecture
Lab:
Lab sessions are scheduled on Thursdays
and Fridays from 2:30 to 5:30.
The course project is divided in 6 small
components that will be performed during the different lab sessions; there
are, in principle, 7 lab sessions. The project consists of the design and
implementation of the software architecture of a Weather Mapping System (WMS).
Implementation will take place both in Java and C++ (combination of both
languages).
Each lab assignment consists of a theoretical
part and a practical part, which are defined in specific lab assignment statements
that are posted at least one or two weeks before the session.
Report and demo (if applicable) for each
assignment is due for the following session.
Session 0: Tool Presentation
This session is an introductory session;
there is no lab assignment for this session.
Introduction to working with an industrial
strength software development environment, namely Rational Rose: how to write
and maintain a UML specification; configuration management; architecture design;
CORBA-IDL document generation; Java code generation from a UML model etc.
Presentation of the Project: Weather Mapping
System.
Session 1: Use Case View
Design of the Use Case View. Risk Analysis.
Session 2: Logical View
Design of the Logical View of the Weather
Mapping System (WMS).
Session 3: Integrating Patterns in
the Architecture
Integration of selected architectural
and design patterns in the logical view obtained previously.
Session 4: Implementation, Process,
and Deployment Views
Design of the implementation, process,
and deployment views for the Weather Mapping System.
Session 5: Component and Interprocess
Communication Design
Generation from the previous architecture
design of CORBA Interfaces and Components Definitions.
Sessions 6: Implementation of WMS
Implementation of the Weather Mapping
System (Java & C++), with a particular emphasis on the interprocess
communication mechanism and the software components identified.
Lab Reports:
Lab reports should include:
Weeks
|
Units
|
Reading List (Coursepack) | |
1-5 May
|
Chap 1: Introduction
to Software Architecture
Chap 2: Design
Planning
|
Sections 1, 2, & 7 Sections 3-4 |
|
8-12 May
|
Chap 3: Architectural
Views
3.1: Use Case
View
3.2: Logical
View
|
Sections 5 & 7 | |
15-19 May
|
Sections 5-8 | ||
May 22
|
Victoria Day
|
||
22-26 May
|
Chap 4: Using
Metrics to Manage Software Risks
|
Section 9 | |
29-31 May
|
Chap 5: Patterns
|
Textbook: Chapters 1-3 | |
5-9 June, 12-16
June
|
Chap 6: CORBA-based Architecture
Part 6.1: Introduction
to CORBA
Part 6.2: CORBA-IDL
Part 6.3: Designing
CORBA Systems
|
Sections 10-11 | |
19-23 June
|
Part 6.4: Implementing
CORBA Applications
|
Sections 10-11 | |
June 30
|
Midterm Preparation
|
||
July 1
|
Canada Day
|
||
July 3-4
|
Reading break
|
||
July 5
|
Midterm Exam
|
||
3-7 July, 10-14
July 17-21 July
|
Chap 7: Component-based
Development
Part 7.1: Introduction
to Component-based Development
Part 7.2: CORBA
Component Model (CCM)
|
Sections 10-11 | |
July 20, 21
|
Project Demo (Place SENG Lab)
|
||
24-28
July
|
|
||
28th
July
|
Review-Final
exam preparation
|
Lab:
Lab 0: 12 May
Lab 1: 19 May
Lab 2: 26 May
Lab 3: 2 June
Lab 4: 9 June
Lab 5: 23 June
Lab 6: 30 June (project start)
Lab 7: 7 July (dedicated to the project)
Lab 8: 14 July (dedicated to the project)
Lab 9: 21 July (project demo)
Exams:
Activity
|
|
Lab Assignment
1: Use Case View
(due 26 May )
|
|
Lab Assignment
2: Logical View
(due 2 June)
|
|
Lab Assignment
3: Implementation, Process, and Deployment Views
(due 9 June)
|
|
Lab Assignment
4: Patterns
(due 23 June)
|
|
Lab Assignment
5: Component and Interprocess Communication Design
(due July 7th)
|
|
Project: Implementation
of WMS
(report/demo due 21 July)
|
|
Mid-Term Exam
(July 5th, 2006)
|
|
Final Exam
(THR 03 AUG 9:00 AM DSB)
|
|
Grading
The final grade obtained from the above
marking scheme will be based on the following percentage-to-grade point conversion:
90<= A+ <= 100
85<= A < 90
80<= A- < 85
75<= B+ < 80
70<= B < 75
65<= B- < 70
60<= C+ < 65
55<= C < 60
50<= D < 55
E < 50 Fail, conditional supplemental exam
N Fail, did not write examination
or otherwise complete
course requirements by the end of the term or session;
no supplemental examination.
Special Notice for SENG522 Students
Students registered
in SENG522 will follow the same lectures as students in SENG422. The main
difference between both courses will concern the evaluation method. There
is no mid-term exam for SENG522; instead the students will make a presentation
on specialized software architectures such as real-time systems software
architectures. Each student will select a topic (see chapter 8), and prepare
his presentation by following specific guidelines. The presentation will take
place during chapter 8.
Lab Assignments, and final exam are the
same for both courses, except a difference in teams composition:
-Assignment team: 1 student by team.
The following evaluation scheme will be
used for SENG522:
-(Lab) Assignments: 25% (with the same breakdown
as for SENG422)
-Project: 15%
-Seminar: 10%
-Final Exam: 50%
-Part 6.3: Designing CORBA Systems
-Part 6.4: Implementing
CORBA Applications
-Part 7.2: CORBA
Component Model (CCM)
Chapter 8: Seminars
on Specialized Software Architectures
-Hardware-Software
Co-design
-Real-Time
Architecture
Lab
Manual
- Weather
Mapping System: Requirements
-Lab 0: Tool Presentation
-Lab
1: Use Case View
Lab1-Solutions
- Lab
2: Logical View
-Lab
2-Solutions
- Lab
3: Implementation, Process, and Deployment View
Lab
3-Solutions
- Lab 4: Patterns
Lab
4-Solutions
- Lab 5: Component
and Interprocess Communication Design
Lab
5- Solutions
-Project: Implementation
of WMS
Lab Notes
-Requirements
and Guidelines
-Seminar Schedule
4. Exam Preparation
- Midterm Preparation Guidelines (only for SENG422)
The midterm will cover chapters 1-5
of the lecture notes; it will consist of the partial design of the architecture
of
a small software system; the questions
will follow the format of the lab assignments. The midterm will last 45min,
and is open book (e.g. lecture notes, assignments and solutions are allowed).
Sample questions will be provided in class.
- Final
Exam Review
5. Project Demo: July 21, 2006 2:30-5:30pm; please book a time slot;
a sign-up sheet will be posted in ELW A 233.
6. Final
Grades
Notices: