The schedule will be updated throughout the semester as needed.


Week Beginning Description Homework Due - All individual homework is due on Blackboard by the  beginning of class unless otherwise stated.

All Team homework is due in class unless otherwise stated.
Slides
1/21/2009 Class  overview, Project overview

- Pressman: Ch 1: Software engineering overview
- Booch: Ch 1: Why we model
- Booch: Ch 2: Introduction to UML

Top Jobs
None IntroductionToUML
Ch01.ppt
1/28/2009 - Pressman: Ch 2: Software Process

- Booch: Ch 4: Classes (Class Diagrams)
Team: None
Individual: Picture Assignment on Blackboard

HW#1 : Pressman ch 1 exercises: 5, 6, 11
Ch02.ppt
CMMI Case Study

Class Diagrams

BookstoreExample4.jpg

We-Grow Descrption
2/4/2009 - Requirements (Pressman Ch7), User Stories, and Use Cases (Booch Ch 17-18)

Alistair Cockburn link

Team: Team Formation

HW#2: Using the generic process framework in section 2.2 (page 24 in the Software Engineering book). Write a process description of your choosing and map your steps to the process framework steps. Pick a process that you can map at least one activity to each generic framework step. Include in your description for each process framework activity, a work task and the work product produced.

Ch 7

UseCases.ppt
UseCaseTemplate
UseCaseDiagram
UseCaseExample

2/11/2009 - Pressman: Ch 3: Prescriptive Software Models

- Booch: Activity Diagrams


Team:  SRS - Use Cases

HW#3: Create  a class diagram for the Programmer Match system that identifies meaningful classes of objects in that problem domain and relationships among those classes. Do both parts one and two.
Ch 3


Activity Diagrams
2/18/2009
Guest Speaker: Benjamin Booth on SCRUM in practice

- Pressman: Ch 4: Agile Methods
- Extreme Programming

- Do the planning game


HW#4: Swimlane diagram

Extreme Programming

Ch 4

2/25/2009 - Pressman: Ch 8: Analysis Modeling
Team:  SRS - Functional/Non-functional requirements


HW#5:
1. Explain the differences between the spiral model and the incremental model of software development. Give an example of a project that would be well suited for each model.
2. Provide 3 reasons you think requirements frequently get added, removed, modified.
3. How do agile approaches attempt to solve the problem of requirements constantly changing?
Ch 8 - Analysis Modeling
3/4/2009
Midterm!


Review
3/11/2009 Spring Break



3/18/2009 - Booch: Sequence Diagrams

- CRC Modeling


Sequence Diagrams

CRC Modeling
CRC ATM Sample
CRC Hangman Sample
3/25/2009
- Risk management

- Pressman: Ch 21: Project Management


Team: Design

HW#6:
1. Sequence Diagram:
  • Find a sequence diagram on the web, copy it into your homework (just copy the image, you do not need to redraw it)
  • Explain the scenario depicted briefly (this will be similar the objective of a use case (1-2 sentences))
  • For each method in each class, write the method name, the collaborators for that method, and a brief sentence describing in english what that method does. (Get this info from the diagram!)
  • NOTE: Pick a diagram with at least two real classes (not actors) that depicts a real process, so your class names should NOT be "class1" or "sample1", etc... Overall you must document at least 5 methods... so make sure in total you end up with at least 5 methods.
2. Draw a state diagram for an automated cookbook built in to a microwave. Decide what capabilities you think it should have.

3. Pressman exercise 8.11

Project Management

ScheduleExample.pod

Software Leadership
4/1/2009
- Pressman: Ch 13: Testing Strategies

- Pressman: Ch 14: Testing Techniques
Team: Schedule  Testing Techniques

Unit Testing
4/8/2009 - Testing Continued

- Guest Speaker: Ben Booth (Scrum/Agile)
Team: Prototype UI

HW#7: Pressman ch 13: exercises 3, 4

FindBugs (http://findbugs.sourceforge.net/) is a static analysis tool. For this homework, go to the Bug Descriptions on the FindBugs website. Find a bug description that represents a bug that, without using FindBugs, would be considered a runtime problem that could be found using traditional system testing. (Traditional system testing is black-box testing.) For that bug provide the description from the FindBugs website, and your own interpretation of what that means. I only expect one or two sentences here.

Repeat the above process for:
a. A coding or logic problem that could not be found by traditional system testing
b. A performance problem that may or may not be detectable by system testing

Can FindBugs be used instead of testers? Should FindBugs be used at all? Explain.

Agile in Practice.pdf
4/15/2009
- Pressman: Ch 22: Software Metrics
Team: Test Cases

Individual:  HW#8: Pressman ch 22: exercises: 5, 12

Ch 22

Cyclomatic Complexity
4/22/2009 - Pressman: Ch 9: Design Engineering

Other topics in SWE
- Refactoring or others
Team: Nothing due

Individual: Final Essay Revision Due Today. No essays will be accepted after this date!

HW#9: JUnit Homework
Design

Refactoring
4/29/2009 Final Exam Review and Team Presentations

Team: Final project including all revised documents and source code (see project description)

Individual: Team evaluation and description of lessons learned in the group project.
Final Review

Final Review Slides
5/6/2009 FINAL EXAM Wed  7:30 p.m.–10:15 p.m.  Same classroom