CS 180: Software Engineering

Spring Quarter 2004: March 29, 2004 - June 4, 2004


Less: Basics Coordinates Books Schedule Project Teams Presentations Assessment More: Scores Policies

Basics

Catalog Description: A study of software engineering techniques for the development, maintenance, and evolution of large software systems. Topics include requirements and specification; system design and implementation; debugging, testing, and quality assurance; reengineering; project management; software process; tools; and environments.

Prerequisite(s): CS 141: Intermediate Data Structures and Algorithms. Let me emphasize that you should have good writing skills to pass this course as a significant portion of the work will be reports of various kinds. You should also have reasonable presentation skills, or at least you should be willing to develop them.

Time Requirements: Four units (12-16 hours/week): lecture (3 hours/week), laboratory (3 hours/week), individual study (6-10 hours/week; includes reading, writing, and hacking).


Coordinates

Instructor: Peter H. Fröhlich
Office Hours: Monday, Wednesday, Friday, 11:10 am - noon (email for additional appointments) Location: Surge, Room 341

Lectures: Monday, Wednesday, Friday, 5:10 pm - 6:00 pm
Location: Sproul Hall, Room 2340

Assistant: Timothy Mauch
Office Hours: Tuesday, 1:00 pm - 2:00 pm (email for additional appointments)
Location: Surge, Room 282

Lab: Friday, 11:10 am - 2:00 pm
Location: Surge, Room 283

Assistant: Dragomir Yankov
Office Hours: Friday, 1:00 pm - 2:00 pm (email for additional appointments)
Location: Surge, Room 282

Lab: Friday, 2:10 pm - 5:00 pm
Location: Surge, Room 283

Mailing List: cs180@lists.cs.ucr.edu (Archive)


Books

Required

Daniel Steinberg, Daniel Palmer: Extreme Software Engineering. Prentice Hall, 2004. Succinct introduction to eXtreme Programming (XP), an agile, iterative development process based on user stories, pair programming, testing first, and other interesting concepts.

Martin Fowler: UML Distilled. Addison-Wesley, 3rd edition, 2003. Succinct introduction to the Unified Modeling Language (UML) and also a concise summary of basic software engineering and software construction concerns. The 2nd edition is also good enough for the course, and it's available much cheaper.

Recommended

Andrew Hunt, David Thomas: The Pragmatic Programmer: From Journeymen to Master. Addison-Wesley, 1999. A wealth of practical advice on various topics relevant to software construction, including design, implementation, testing, debugging, etc. Organized in 46 relatively small "lessons," extensively cross-referenced, including 70 "rules" and several check lists on a reference card. You can download additional material for this book here. An errata is available.

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. The standard reference for object-oriented design patterns: well-documented solutions to recurring design and implementation problems. The case study in chapter 2 is also a great introduction to object-oriented design and programming.


Schedule (Tentative!)

Note the word tentative above. Things seldom go according to plan, and I expect changes here and there as we go along. Please also read the notes below. Most importantly: Keep in mind the actual Project Schedule available below, it contains details on when which assignments are due.

Week Lecture Lab Exam Reading
1 Welcome [Lecture 1], Introduction to XP [Lecture 2], Core XP Practices [Lecture 3] LaTeX [The Not So Short Introduction to LaTeX], Crossword Puzzle Exercise - S 1-2, F 1
2 Core XP Practices [Lecture 4], Pair Programming [Lecture 5], Test-Driven Development [Lecture 6] Subversion, Testing with xUnit/PyUnit, Map Drawing Exercise - S 3-4, F 2
3 Requirements & Use Cases [Lecture 7], Domain Analysis (Static) [Lecture 8], Domain Analysis (Dynamic) [Lecture 9] Requirements Case Study, CRC Cards, UML Tools - S 5, F 3, 9, 12
4 Management [Lecture 10] [Lecture 11], Case Study: File System [Lecture 12] Requirements Q&A, Acceptance Testing (FIT framework) - S 6-7, F 4-5
5 Guest Lecture (Dan Berger), Midterm Review Open Lab: TBA, Midterm Review [Midterm]
[Solution]
S 8-9, F 6-8
6 [Lecture 13] [Lecture 14] [Lecture 15] - - S 10-11, F 10-11
7 [Lecture 16] [Lecture 17] [Lecture 18] - - S 12-13, F 12-14
8 Patterns [Lecture 19] Patterns [Lecture 20] Cleanroom Process [Lecture 21] - - S 14-15, F 15-17
9 Components [Lecture 22], COM [Lecture 23] (Dan Berger), Legal Issues [Lecture 24] - - S 1-15, F 1-17
10 [Lecture 25] Comprehensive Review Open Lab: Final Presentations [Comprehensive]
[Solution]
S 1-15, F 1-17

Notes

Open Lab means you can attend any lab section offered that week; you don't have to attend the one you're enrolled in, and you can attend all of them as well.

The terms "S c" and "F c" refer to chapters in the required texts by Steinberg and Fowler; for example, "S 1" refers to chapter 1 in Steinberg, "F 4" refers to chapter 4 in Fowler. It's a good idea to review/skim the material "around" assigned chapters as well.

Some topics we go over in lecture or lab are not covered in the text; I will try to provide additional references for those. Also, some parts of the book are assigned as reading only and are not covered in lecture or lab (unless you ask about what you have read).

You are expected to do the assigned reading before a topic is covered in lecture or lab; reading assigned in the week of an exam is part of the exam.


Project

The project in this "new and improved" version of the course is a little complicated. First, here's a description of the overall schedule, processes, and artifacts.

Here's a description of the actual project, at least of the most fundamental requirements. Your clients will definitely have their own ideas on top of these, so beware.

There will be future revisions of both of these documents, but they should be reasonably complete for now. Yes, we practice some form of XP ourselves. :-)


Teams

Team Members List Subversion Client
MGB Nhat (Administrative Lead), Chris (Technical Lead), Kha (Turnin Person), Chao, Vinh, Nicholas, James, Alex mgb@bloat.org https://www.cs.ucr.edu/svn/cs180/mgb/ Brian
Enko Ryan (Administrative Lead), Nicholas (Technical Lead), Jorge (Turnin Person), Zachary, Thomas, Julian, Joshua enko@bloat.org https://www.cs.ucr.edu/svn/cs180/enko/ Titus
8th Dimension Po (Administrative Lead), Jacob (Technical Lead), Marcos (Turnin Person), Grace, Cheuk, Van, Eric, Jingren dimension@bloat.org https://www.cs.ucr.edu/svn/cs180/dimension/ Timothy
VAM Sejal (Administrative Lead), Angelina (Technical Lead), Manka (Turnin Person), Varun, Manas, Roshan, Dereck vam@bloat.org https://www.cs.ucr.edu/svn/cs180/vam/ Victor
SRT Amar (Administrative Lead), James (Technical Lead), Pauline (Turnin Person), Yi, Randy, Erick, June, Ruben srt@bloat.org https://www.cs.ucr.edu/svn/cs180/srt/ Dragomir
Spam Matthew (Administrative Lead), Jason (Technical Lead), Syl-J (Turnin Person), Ray, Chue, Hubert, Yunzhu spam@bloat.org https://www.cs.ucr.edu/svn/cs180/spam/ Terrance
DHL Jesse (Administrative Lead), Roberto (Technical Lead), Dennis (Turnin Person), Hai-Linh, Pioneer, Tom dhl@bloat.org https://www.cs.ucr.edu/svn/cs180/dhl/ David
JAL Joseph (Administrative Lead), Matt (Technical Lead), Yun (Turnin Person), Renato, Susy, Esther jal@bloat.org https://www.cs.ucr.edu/svn/cs180/jal/ Peter

Presentations

The final presentations are on Friday, June 4 during "lab time" in Surge 283. Two people from each team need to present for 20 minutes: 15 minutes for the actual talk and 5 minutes for questions from the audience (students, assistants, clients, experts, etc.). The default arrangement for a presentation will be the slides you handed in on our laptop. If you want to give a live demo, please contact Peter with the details; if you don't contact us, we'll assume a standard talk, slides only.

Time Team Presenters
11:10 - 11:15 Welcome Peter
11:20 - 11:40 ENKO ?
11:45 - 12:05 8th Dimension Marcos Boyington, Jake Warmerdam
12:10 - 12:30 SPAM Yunzhu (Julie) Shi, Matthew Nill
12:35 - 12:55 JAL ?
13:00 - 13:20 DHL Dennis Yu, Pioneer Chi
13:25 - 13:45 VAM ?
13:50 - 14:10 MGB Nhat Mai, Nicholas Quilantang
14:15 - 14:35 SRT ?
14:40 - 14:45 Wrapup Peter

Note that the schedule includes 5 minutes of "slack" all over, which is already pretty "tight" judging from past experience. Please be on time, ideally even a bit early.


Assessment

Assignments 40% (5), Iterations 20% (8), Midterm 15% (1), Comprehensive 15% (1), Peer Review (1): 10%. See my policies for more information.


Copyright © 2003-2004 Peter H. Fröhlich All rights reserved.
$Id: index.html,v 1.34 2004/06/17 06:14:53 phf Exp $
Valid XHTML 1.1!