Course Info
CPSC 3720 Software Engineering (Spring 2009)

Contents: outline, class schedule, readings, assignments.
Exam topics.

Lectures

Two 75 min lectures are scheduled each week for this course according to the following time table.

Day Time Location
Tue, Thr 13:40-14:55 E 575

Grades

Requests for changing grades for an assignment are accepted only in writing. Fill out this form, attach your marked assignment to it, and deliver them to your instructor no later than one week after your assignment was marked and returned to you.

Course outline

[pdf]

Schedule, Study guide, Readings

Most topics studied come with a short study guide, a list of (exam) questions that you should reflect on. Use these questions to prepare for the final exam.

Items related to the project are highlighted in maroon .

Week Dates Topic Resources
1 J 8 Introduction Study guide
2 J 13,15 Introduction (c'ed)
Project management, introduction
Project teams formed (J13)
Project communication: [slides]
3 J 20,22 Communication (c'ed)
Requirements elicitation (J22)
4 J 27,29 Introduction to UML
Feasibility study document due (J29)
[part 1]
[part 2]
5 F 3,5 Requirements elicitation
UML class, statechart, interaction diagrams
6 F 10,12 UML diagrams (c'ed)
Demo Prototype 1 (Feb 12)
Assignment 1 due (Feb 10)
8 F 24,26 Process models
Architecture or system design
Assignment 2 due (Feb 24)
9 M 3,5 Requirements document due (F26)
10 M 10,12 Architecture (c'ed)
Detailed design and metrics
[Design mesaures]
11 M 17,19
12 M 24,26 System and object design document (M24)
13 M 31, A 2
14 A 7,9 Final project demo (A7)
Project presentation, project report document due (A9)
15 A 14,16 Paper presentations (A14,15)

Assignments

Papers for presentations

Each student is responsible for a 15 min presentation from one of the papers listed below. The presentations will take place in the last week of classes, on April 14 and 16.

Choosing papers: choose among the papers without named presenters.

Order of presentations: you will present the papers in the order given on the course web page. First 5 on April 14, the rest on April 16.

  • Software Development: An Outsider's View, Kyle Eischen, 2002.
    [PDF]
    - gives an interesting discussion on what software development means and balances the craft vs science views.
    Presenter: Lizhao He
  • Exploratory testing explained, Bach, 2003.
    [PDF]
    - describes an "agile" testing approach.
    Presenter:
  • Ten unmyths of project estimation, P. Armour, 2002
    [PDF]
    - a pragmatic article that discusses the practical difficulties of project estimation and challenges some fundamental assumptions in this area.
    Presenter: Henry Chung
  • How to design practical test cases, T. Yamaura, 1998
    [PDF]
    - a how-to article on test-case design by a reputable author, known for delivering software with very few faults.
    Presenter: Michael Karst
  • Software debugging, testing, and verification, B. Hailpern and P. Santhanam, 2002
    [PDF]
    - a general article on verification and validation and one of the few articles that addresses both testing and static verification techniques.
    Presenter: Devin Forbes
  • Get ready for agile methods, with care, B. Boehm, 2002
    [PDF]
    - a thoughtful critique of agile methods that discusses their strengths and weaknesses; written by a very experienced software engineer.
    Presenter: Edward Moloughney
  • Turning software into a service, Turner et al., 2003
    [PDF]
    - an overview paper on the development of service oriented software systems (systems like cheaptickets.com); it is focuesd on design rather than development processes.
    Presenter: Gezim Hoxha
  • First Principles of Interaction Design:
    [URL]
    - a collection of recommendations on designing user interfaces, sorted alphabetically. For a more structured and rigorous introduction, take Kevin's HCI course.
    Presenter: Tom Rutheford
  • All I Really Need to Know about Pair Programming I Learned In Kindergarten, Williams, 2000.
    [PDF]
    - a practical and easy to read paper discussing pair programming (an agile development technique) from the perspective of the developers.
    Presenter: Mitchell Roberts
  • Essence of CMM, J. Bamberger, 1997.
    [PDF]
    - a short and easy discussion on a software engineering standard called the "Capability Maturity Model" which also gives insight into some of the most frequent challenges that software companies are facing. CMM was replaced by CMMI, but we are only interested in the main concepts behind CMM(I). Check out the CMMI webpage.
    Presenter:

Links

  • Software bugs: article on "wired.com" about 10 famous software bugs.
  • Ariane 5 accident report .
Course info
Project info

[Instructor's page]