Lecture notes in 2-up PDF format will be posted here before each lecture. Reference materials for the lecture, either from the textbook or the two supplemental books will be listed as well as pointers to some supplemental papers.
Lecture 1 (9/6/2006): Introduction to Software Engineering
notes 2-up for printing
What is Software Engineering? historical perspective, problems
with software, software myths
Slides covered: Intro #1-19
References:
Standish
Group report 1994
Standish Group report 1999
Fred Brooks, "No Silver Bullet - essence and accident in Software
Engineering",
IEEE Computer 20, 4 (April 1987), pp. 10-19.
Lecture 2 (9/11/2006): Tools
notes 2-up for printing
Introduction to Eclipse, Downloading Eclipse and Java JDK,
CVS - version control, Ant - a build tool for Java
Slides covered:
Lecture 3 (9/13/2006): Intro, cont; Teams & User Interfaces
notes 2-up for printing
Egoless programming, Role of team leader, Models of teams
Slides covered: Intro #20-35, Teams&UIs #1-10
References: SOM Ch 22; PRE Ch 12;
An interesting website about GUI Blooprs.
Lecture 4 (9/18/2006): Teams & User Interfaces, cont;
User interfaces - 3 golden rules, kinds of users, Details: menus,
display guidelines, Error handling, Help
Software Process
notes 2-up for printing
What is software process?
Slides covered: Teams&UIs #10-23; SW Process #1-4
References: LAR: Chs 1-3; PRE Ch 2-3
Barry Boehm, "A Spiral Model of Software Development and Enhancement",
IEEE Computer, vol.21, #5, May 1988, pp 61-72;
(related article appeared in ACM SIGSOFT Software Engineering Notes (SEN),
August 1986).
Drasko Sotirovski, "Heuristics for Iterative Software
Development", IEEE Software, May/June 2001.
Lecture 5 (9/18/2006, recitation): SW process, cont.
Some sample processes: waterfall, prototype, spiral,
iterative and incremental
Slides covered: SW Process #4-36
References: LAR Chs 4-6;
Lecture 6 (9/20/2006): SW Process, cont.
What is the UP and how does it work?
Requirements Analysis
notes 2-up for printing
Categories of requirements, Requirements in the UP,
Use cases -- what they are and how to form them?
Slides covered: SW Process #36-50; Reqs #1-22
References: LAR Chs 5-6
Lecture 7 (9/25/2006): Reqs, cont.
More on use cases,
an ATM example
Slides covered: Reqs #23-28
References: LAR Chs 6-7
Lecture 8 (9/27/2006): Requirements Analysis-2
notes 2-up for printing
System sequence diagrams, relations to use cases, supplementary
specification
Domain Models
notes 2-up for printing
What are domain models, conceptual classes, associations,
attributes, implementation issues
Slides covered: Reqs2 #1-27; Domain Models #1-14
References: LAR Chs 7,9,10
Monday (10/2/2006): recitation and lecture are CANCELLED
Lecture 9 (10/4/2006) GUI demos from project
Lecture 10 (10/9/2006) Domain Models, cont.
associations, attributes, implementation issues
Slides covered: Domain Models #15-45
References: LAR Chs 9,11,31
Lookahead: readings on layered architectures and modular design
CLASS CANCELLED 10/11/2006
Lecture 11 (10/15/2006 3:30pm) Makeup lecture(for Oct 11th)
Domain Models-2
notes 2-up for printing
generalization, conceptual superclasses and subclasses, contracts
High-level Software Architecture
notes 2-up for printing
software architectural styles: pipe & filter, event-based,
data-centric,
process control, object-oriented, layered, Parnas'
information hiding,
KWIK index architectures to hide design
decisions
Slides covered: Domain Models-2 #1-19; High-level SW Arch #1-13;
References: LAR (domain model) Chs. 11,31; (high-level
architecture) LAR Chs. 13,33,
PRE Ch 10.1-10.3; plus Parnas papers shown in Lecture 10
Lookahead: readings on design principles, LAR Chs 17,18;
readings on UML interaction diagrams, LAR Chs 15,16;
Lecture 12 (10/16/2006) High-level software architecture,
cont.
Examples of layered architectures, model-view separation principle
OO Design Principles
notes 2-up for printing
Slides covered:High-level SW Arch #14-29; OO Design #1, 5-10
References: LAR Ch 17
Lecture 13 (10/18/2006) OO Design Principles, cont.
assigning responsibilities to objects and classes,
5 GRASP design patterns: Expert, Creator, Low Coupling, High Cohesion,
Controller (Facade & Use-case versions)
Slides covered:OO Design #11-41
References: LAR Ch 17
Lecture 14 (10/23/2006) UML Interaction diagrams
notes 2-up for printing
Interaction diagrams -- what are they? what are their basic elements?
Choice: communication vs sequence diagrams, when to use?
ATM Example worked through domain diagram, design class diagram,
some communication diagrams
Slides covered: UML Interact #1-16
References: LAR Chs 15-16,18-20
Lookahead: LAR Ch 18 study particularly the design of the POS
system
and the choices that were made. Ch 25 more useful patterns;
Lecture 15 (10/25/2006) Design2
notes 2-up for printing
Design class diagrams, navigability of associations, going to code
from design artifacts,
ATM design example revisited
Slides covered: Design2 #1-24
Slides changed: Design2 #3,24,31
References: LAR Chs 18-20
Lecture 16 (10/30/2006)Design2, cont.
going from design to implementation
Design3 notes 2-up for
printing
use of polymorphism, Liskov substitutability principle (LSP),
protected variations: encapsulation, abstraction, polymorphism, indirection
Design Patterns notes 2-up for
printing
What are design patterns? Adaptor pattern
Slides covered: Design2 #25-35; Design3 #1-24; Patterns
#1-8
Slides Changed: Design3 #14
References: LAR Ch 25
Lookahead: LAR Ch 26
Lecture 17 (11/1/2006) Patterns, cont.
Structural Patterns:
Adaptor -- more uses, pluggable adaptors,
Bridge
separating implementation from creation, Facade
Slides covered: Patterns #8-33
Diagram and
code of Bridge pattern
(from Prof Nasko Rountev, Ohio State University)
References: 1. LAR Ch 26
2. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns:
Elements of Reusable OO Software, Addison-Wesley 1995, Ch 4
on the web
3. Eric Freeman, Elizabeth Freeman, Head First Design Patterns,
O'Reilly, 2004
Lecture 18 (11/5/2006, Makeup for Nov 8th lecture) Design Patterns2
notes 2-up for printing
Creational Patterns: Abstract factory, Singleton,
Behavioral Patterns: Observer
Slides covered: Patterns2 #1-23
References: 1. LAR Ch 26,36(Abstract factory),37(Facade,State)
2. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns:
Elements of Reusable OO Software, Addison-Wesley 1995, Ch 3,5
on the web
3. Eric Freeman, Elizabeth Freeman, Head First Design Patterns,
O'Reilly, 2004
Lecture 19 (11/6/2006) Testing
notes 2-up for printing
basic principles, traditional testing strategies, how they apply to
OO,
Slides covered: Testing #1-19
References: 1. PRE Ch 13-14
2. G. Myers, The Art of Software Testing, Wiley 1979
(11/8/2006) LECTURE CANCELLED
Lecture 20 (11/13/2006) Testing2
notes 2-up for printing
white box testing, control-flow and dataflow methods,
black box testing with equivalence partitioning of input,
OO testing metrics (polymorphism)
Slides covered: Testing2 #1-35
References: 1. PRE Ch 13-14
2. S. Rapps and E. Weyuker, "Selecting SW Testing Data Using Dataflow
Information",
IEEE Transactions on Software Engineering, April
1985, Volume SE-11
3.
Wikipedia article on testing
Lecture 21 (11/15/2006) Testing2, cont.
testing OO programs for coverage of polymorphism
More on Design Patterns (see lecture 18 for slides)
Behavioral Patterns: Observer, Iterator, State, Visitor
Creational Patterns: Abstract factory, Singleton,
Slides covered: Testing2 #35-43; Design2 #1-10, 24-35
References: 1. LAR Ch 26,36(Abstract factory),37(Facade,State)
2. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns:
Elements of Reusable OO Software, Addison-Wesley 1995, Ch 3,5
on the web
3. Eric Freeman, Elizabeth Freeman, Head First Design Patterns,
O'Reilly, 2004
Lecture 22 (11/15/2006) discuss feedback from Overall Design
Documents in teams,
Testing3 notes 2-up for printing
state-based testing, difficulties posed by inheritance,
testing interacting classes, regression testing
Slides covered: Testing3 #1-13
References:
Lecture 23 (11/27/2006) Testing3, cont.
Please download Testing3 from Lecture 22 again, because Slides 22-28
are new.
testing interacting classes, regression testing,
design of GUI tests
Slides covered:
References:
Some references for GUI testing info on the Web
GUI Testing
Checklist
short paper by Prof Atif Memon, CS professor at University of
Maryland
a short paper by Paul Gerrard on GUI Testing from EuroSTAR'97
Lecture 24 (11/19/2006) Guest Lecturer:
Ms. Rashi Rai, Merck Corp.
Lecture 25 (12/4/2006) Change Impact Analysis
notes 2-up for printing We will have a short class on Weds, Dec 6th to present
guidelines for the project demos.
Using tests (i) to better understand the effect of program
changes
and (ii) to locate bugs in programs
References:
1. M. Stoerzer, B.G. Ryder, X. Ren, and F. Tip,
"Finding Failure-Inducing Changes in Java Programs using Change
Classification",
in Proceedings of the 14th SIGSOFT
Conference on the Foundations of
Software Engineering,
November 2006.
2. X. Ren, O. Chesley, and B.G. Ryder,
"Identifying Failure Causes in Java Programs: An Application of Change
Impact Analysis",
IEEE Transactions on Software
Engineering,
Volume 32, No 9, September 2006.
There will be
no class on Monday, December 11th (team project work).
There will be an 'open office hours question session ' recitation
on Monday, Dec 11th in our classroom.
Project demos
on December 14, 15, 16th.