UNIVERSITY OF CALIFORNIA

advertisement
UNIVERSITY OF CALIFORNIA
Department of Electrical Engineering and Computer Sciences
Course Syllabus
Spring 2006
CS169: Software Engineering
Kurt Keutzer
Office: 566 Cory Hall
Phone: 642-9267
Email: keutzer@eecs.berkeley.edu
Personal Web Page: http://www-cad.eecs.berkeley.edu/~keutzer
GSI:
N. R. Satish (nrsatish@eecs.berkeley.edu
Web Site: The web site for this course is at bspace.berkeley.edu. The web site contains syllabus
and course information, calendar and assignment deadlines, instructions for software
development tools required as part of the course, and other lecture information.
Required Texts:
Software Engineering: A Practitioner's Approach (Hardcover) by Roger S Pressman (6th ed).
Recommended Texts:
 Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley
Professional Computing Series) (Hardcover) by Erich Gamma, Richard Helm, Ralph
Johnson, John Vlissides
 Extreme Programming Explained: Embrace Change (2nd Edition) -- by Kent Beck,
Cynthia Andres; Paperback (or any Wake's book on Extreme Programming).
Overview: Strategically, the course content focuses on the technology and techniques for
designing and implementing software within small teams. Topics include managing
requirements, functional and design specifications, test plans, principles of design and software
architecture, testing, debugging, static analysis, bug tracking and version control. Students gain
hands-on experience through a large course project done in teams of 6-8 students. “Industrial
strength” project documents are produced for the project.
Tactically the course focuses on the three skills of the super-programmer:
 writing code that is computationally efficient,
 writing code that is robust and bug-free, and
 writing code in a productive manner.
Techniques for improving these skills are distributed throughout the course.
Grading: Student evaluations are based on both individual measurements and team grades:
Individual performance on group project:
Midterm exam:
In-class participation/pop quizzes:
Group project:
20%
20%
20%
40%
Grading for the group project is composed of assignments throughout the course:
Project web site:
Requirements specification:
Functional and design specification:
Testing and implementation plan:
Final documentation and demonstration:
10%
20%
10%
20%
40%
As noted in the grading policy above, all teams will be required to provide an in-class
demonstration of their project at the end of the course.
Course Schedule and Outline
The course is organized into lectures and discussion sections. Most discussion sections will
introduce topics or materials not covered directly during lecture that, while optional, may be
helpful during development of the group projects. The content of the course is very "frontloaded" to ensure exposure to all the key concepts before the project deliverables that use those
concepts are required. In particular all of the key concepts of the course are presented before the
Test Plan and Implementation Plan are due.
Session
Date
Lecture 1
1/18
Lecture 2
1/23
Lecture 3
1/25
Software Process and Life Cycle - Ch3
Section
Lecture 4
1/30
Accounts given out
Teams Roles and Agile Development - Ch4
Lecture 5
2/1
Overview of Software Practice - Ch5
Section
Lecture 6
Lecture 7
Lecture 8
Lecture 9
2/6
2/8
2/13
2/15
Introductory UML
Requirements Engineering - Ch7
Requirements Analysis - Ch 8
More Requirements Analysis - Ch8
Architecture Design and Metaphors - Ch 10
No lecture
Lecture 10
Section
Lecture 11
Lecture 12
Section
2/20
2/22
Lecture 13
3/6
Lecture 14
3/8
2/27
3/1
Subject - Reading Assignment in
Pressman
Software Engineering introduction and
course overview - Ch1
Software/product development processes Ch2
Milestones/Deliverables
Find your fellow team
members
Team input - take Jung
typology test at:
www.humanetrics.com
Team group
assignments completed
DUE: Team roles
assigned, group project
web sites
DUE: Team roles
assigned, group project
web sites constructed,
Initial Project Proposal
DUE: Requirements
Specification document
President's Day
Software Testing - Pt 1 - Ch 13
planning game
Software Testing - Pt 2 - Ch 14
Architectures and Invariants
Intermediate UML http://bdn.borland.com/article/0,1410,31863,00.html
Model-View Controller and Design
DUE: Design
Patterns - (Design Patterns - Ch 1)
Specification document
Applying UML
Project Scheduling - Ch24
Section
Lecture 15
Lecture 16
3/13
3/15
Lecture 17
Lecture 18
3/20
3/22
Lecture 19
Section
Lecture 20
Lecture 21
Lecture 22
4/3
4/5
4/10
4/12
Lecture 23
Section
Lecture 24
Lecture 25
Section
Lecture 26
4/17
Demos
Demos
5/1
5/3
5/5
4/19
4/24
4/26
Development infrastructure / logistics
Mid semester review
Midterm
Test Plan and
Implementation Plan
Due
Midterm
Metrics - Chapter 15
Spring Break 3/27 - 3/31
More design patterns - Gamma
Managing software changes with CVS
Review of integration and System Testing
Patterns, testing, metrics - as needed
Exam II - Architectures, Design Patterns,
Invariants, System Testing
Whatever we need
Design antipatterns and refactoring
Whatever we need
How to give a demo
Q&A, review
Optional lecture: Careers & Entrepreneurial
opportunities in software
Presentation and Demos
Presentation and Demos
Final Report Due
Sign-up for Project
Review
Implementation checkpoint - sign up for
appointment
DUE: Final project
documentation
Download