Computer Science 121 - Software Development (Spring 2007)

Last updated: 18 Mar 2007

Lecture, Reading and Exam Schedule

Week Day Date Discussion Topic Reading* Projects Slides
1 T 01/16 Introduction McC 1-2
pdf
R 01/18 Software management McC 28.2
Wingerd: SCM Best Practices
Gnu: make (Ch 2-7,10)
subversion (Ch 2-4)
P1: code management pdf
Q&A
2 T 01/23 Quality
Quality Assurance
McC 3.1, 20
Rakitin: What is Quality?
Rakitin: What is Software Quality Assurance?
Kampe: What is a Post-Mortem?
Kerth: Anatomy of a Retrospective
pdf
Q&A
R 01/25 S/W Process Models McC 1
Wiki: Process Activities (that section only)
Wiki: Waterfall Model
Wiki: Iterative models
Wiki: Rational Unified Process
pdf
Q&A
3 T 01/30 Agile Process, XP McC 3.2
Big Requirements up Front
Wiki: Agile Process
Wiki: eXtreme Programming
Wiki: XP practices
pdf
Q&A
R 02/01 Team Structure,
Dynamics,
Processes
McC 21.1-2, 28.1, 28.5, 33
Kampe: Project Work Partitioning
Williams: Pair Programming
Rosenberg: Problems w/Pair Programming
CACM: Global Software Development(ref)
P2: Requirements pdf
Q&A
4 T 02/06 Requirements McC 3.3-4, 4
Wiki: Requirements Analysis
Kampe: User Requirements
Wiegers: Requirements Traps
Wiegers: Prioritizing Requirements
pdf
ppt
Q&A
R 02/08 Users, Roles,
and Use Cases
Sisson: User Characterization
Nielsen: Task Analysis
Wiegers: Developing Use cases
Wells: User Story Cards
UML use case diagrams
pdf
ppt
Q&A
5 T 02/13 System Models
(behavioral)
Wiki: UML introduction
UML activity diagrams
UML interaction diagrams
UML state diagrams
pdf
ppt
Q&A
R 02/15 System Models
(structural)
UML class diagrams
UML package diagrams
UML object diagrams
UML component diagrams
requirements elicitation pdf
ppt
Q&A
6 T 02/20 System Models
(analytical & prototypes)
Kampe: Why we model
Ambler: Agile Modeling Principles
requirements elicitation pdf
ppt
Q&A
R 02/22 U/I Design usability.net: User Centered Design
Talin: U/I Design Principles
Nielsen: Web U/Is are different from GUIs
Butler: Web U/Is aren't different from GUIs
Withrow: Content Architecture
Relationship Navigation Analysis(ch 4-5)
Wiki: Usability Testing
Kampe: CLI Design
pdf
ppt
Q&A
7 T 02/27 Principles of Architecture SEI: S/W Architecture (modern)
McC 3.5-6
McC 5
P3: Design pdf
ppt
Q&A
R 03/01 Evolving an Architecture Zubek: Much Ado About Patterns
Garlan: Intro to S/W Architecture (ch 1-3)
Foote: Big Ball of Mud (Intro - Piecemeal)
pdf
ppt
Q&A
8 T 03/06 Component Designs McC 6, 7,9
pdf
ppt
Q&A
R 03/08 MID-TERM EXAM all the above info
9 T 03/13 SPRING BREAK recommended reading
McC 10, 12-19
R 03/15
10 T 03/20 Maintainability McC 11,30.2, 31,32
JavaDoc
pdf
ppt
Q&A
R 03/22 Robustness McC 8
Kampe: HA taxonomy
Kampe: S/W HA
pdf
ppt
Q&A
11 T 03/27 Testability & Test Cases McC 22
Bach: Testability
Berteig: Good Test Cases
Wiki: Black Box testing
Parekh: White box testing
Cornett: Code Coverage
pdf
ppt
Q&A
R 03/29 Integration Strategy
Testing Methodology
McC 29
Kampe: Integration Strategy
Fowler: Continuous Integration
Kampe: The Train Model
Wiki: Software Testing
Wiki: Test Driven Development
Kampe: Test Harnesses
pdf
ppt
Q&A
12 T 04/03 Design Reviews McC 21.1,21.3-4
Wieger: Inspections
Wieger: Peer Reviews
Wieger: 7 Deadly Sins
P4: Test Plan pdf
ppt
Q&A
R 04/05 Bugs & Debugging McC 23
Wiki: Defect Tracking
Black: writing a bug report
Bugzilla Manual (sections 5.3-5.13)
pdf
ppt
Q&A
13 T 04/10 System Testing
Performance
McC 24-26
Wiki: System Testing
Scenario Based Testing
Kampe: Load & Stress Testing
Kampe: Testing and Bug Discovery
Kaner: Release Phases
Rothman: Release Criteria
Gnu: Gprof
Solaris: TNF tracing
pdf
ppt
Q&A
R 04/12 Task Estimation
and Risk Assessment
McC 27, 28.3
Kampe: S/W Estimation Principles
Wiki: COnstructive COst MOdel Peters: S/W Project Estimation
Wiegers: Risk Assessment & Management
pdf
ppt
Q&A
14 T 04/17 Project Scheduling
and Tracking
Kampe: SMART Milestones
Wiki: Gantt Charts
Wiki: PERT Charts
Wiki: Work Breakdown Structure
Wiki: Earned Value Analysis
Idiot's Guide to Open Workbench
pdf
ppt
Q&A
R 04/19 Project Management Francis: Effective Management
Wiki: Project Management
Wiegers: Successful Project Management
Junk: Cost, Schedule, Features & Quality
P5: Design Review pdf
ppt
Q&A
15 T 04/24 Metrics and
Process Improvement
McC 28.4
Wiki: Process Improvement
Wiki: Best Practices Benchmarking
Wiki: Capability Maturity Models
Wiki: Root Cause Analysis
Wiki: Six Sigma
Wiki: ISO 9000
Wiki: Software Metrics
Kaner: SWE metrics
pdf
ppt
Q&A
R 04/26 FINAL EXAM everything since midterm info
16 T 05/01 final comments course evaluation (counts as a quiz) design review
17 F 05/11 P5 due

*There will be daily quizzes on the assigned reading

Project Schedule

# project type assigned due
1 Version control and construction automation individual 1/18/2007 2/01/2007
2 From concept to validated requirements team 2/01/2007 2/27/2007
3 Develop a software design team 2/27/2007 4/03/2007
4 Develop test plans individual 4/03/2007 4/19/2007
5 Prepare and conduct a design review team 4/19/2007 5/11/2007

Supplementary Reading

I realize that I am assigning a great deal of reading for this class. You should realize that:

  1. I have taken some trouble to find brief and relatively pure treatments of the key subjects. Any normal text would have include much more and less critical material.
  2. I have tried to avoid discussions of interesting but tangential subjects that are often covered in texts.
  3. The assigned readings are, for the most part, only trivial introductions to subjects about which much more can be said.

If you decide that you are interested in going deeper into some of these subjects, or exploring related subjects that didn't quite make the cut for this course, I have tried to assemble a collection of good papers that can help you take the next step in understanding. These are not assigned reading and I will not base test questions on their treatments.



For information about these pages, contact Mark Kampe.