ELEC 372
Engineering Software Structures

Weekly Breakdown



Lecture notes are provided on line as a convenience to you. These notes consist only of the slides we present in class, so are not a substitute for taking notes in class. We cannot guarantee that we will be able to provide technical assistance should you have difficulties downloading these files, which in some cases are rather large. All readings refer to books described on the main course page.
 
Jan 8-12 Introduction to Software Engineering
(Lecture Notes)
No tutorials this week

Readings:

  • Required:
    • Read Booch, chapter 1; chapter 2 (pp. 27-59)
    • Familiarize yourself with the JBuilder environment, either in the lab or on your home machine
  • Optional:
    • Familiarize yourself with the Java constructs for classes and inheritance. E.g., see Eckel chapters 1 and 2
    • Start to familiarize yourself with the UML notation, e.g. from Fowler chapters 1 and 2. (Don't be concerned if Fowler's presentation seems a little abstract at this point in the course.)
Jan 15-19 Object-Oriented Design and Object-Oriented Programming
(Lecture Notes)
Tutorials begin this week
Read Assignment 1
Jan 22-27 Object-Oriented Design and Object-Oriented Programming
(Lecture Notes)
Readings:
  • Required:
    • Read Booch, Remainder of chapter 2, chapter 3
    • Dictionary source code from lecture (tree.zip)
  • Optional:
    • Read Booch, chapter 4
Jan 29-Feb 2 Software Process
(Lecture Notes)
Assignment 1 Due Monday Jan 29
Feb 5-9 Software Quality
(Lecture Notes)
Read Assignment 2
Feb 11-17 Design Patterns
(Lecture Notes)
Midterm Examination Feb 12, 2001, 6:00-7:00 PM.
Location is by family name:
  • A-K: WLH 205
  • L-R: DUP 217
  • S-Z: MCL 315
As aids, you may bring one sheet of 8.5x11" paper (letter size) with writing on both sides. If English is not your first language, you may bring a language dictionary. No other aids will be permitted.
Feb 19-23 Reading Week  
Feb 26-Mar 2 Design Patterns
(Lecture Notes)
Assignment 2 Due Monday Feb 26
Readings:
  • For information on design patterns, see Gamma et al.: 
      • Adapter, pp. 139-150 
      • Facade, pp. 185-194
      • Abstract Factory, pp. 87-96
      • Flyweight, pp. 195-206
      • Iterator, pp. 257-271
    • For information on sequence diagrams, see:
      • Booch, pp. 217-219 (where they are called interaction diagrams)
      • Fowler et al., pp. 104-106
    Read Assignment 3
    Mar 5-9 Software Architecture
    (Lecture Notes)
    For information about software architecture styles, see 
    • Shaw and Garlan, chapter 2 
    • Bass/Clements/Kazman, chapter 5 
    For information on quality attributes and their relation to software architecture, see
    • Bass/Clements/Kazman, chapter 4
    For more explanation on TCP/IP as an example of a layered architecture, see the following. Note that this article is interesting and clearly written, but has far more information in it than is required in this course: 
    Mar 12-16 Software Architecture
    (Lecture Notes)
    Assignment 3 Due Monday Mar 12
    Code example of event-based architecture style from lecture: draw.zip. The version given in lecture is abridged, while this version is runing code.
    Mar 19-23 Software Architecture
    (Lecture Notes)
     Read Assignment 4
    Mar 26-30 Usability Engineering
    (Lecture Notes)
    You may find this exam from the course CISC 322 to be useful in preparing for the final in this course. While these courses did not cover identical material, there was considerable overlap:
    April 2-6 Review Assignment 4 Due Friday Apr 6