Spring Quarter 2003: March 31, 2003 - June 6, 2003
| Less: | Basics | Coordinates | Books | Schedule | Assessment | | | More: | Policies | Scores | TA Page | | | Home |
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. Let me emphasize that you should have good writing skills to pass this class as a large portion of the course 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, hacking, and homework).
Instructor:
Peter H. Fröhlich
Office Hours:
By appointment only (email me);
Monday & Friday, 2:00 pm - 3:00 pm.
Assistant:
Timothy Mauch
Office Hours:
Tuesday & Wednesday, 2:30 pm - 3:30 pm, Surge 282
Mailing List: cs180@lists.cs.ucr.edu (Archive)
Lectures:
Monday, Wednesday, Friday, 4:10 pm - 5:00 pm
Location:
Olmsted Hall,
Room 1208
| Author | Title | Comment |
|---|---|---|
| Sommerville (S) | Software Engineering |
Required! Broad introductory discussion of everything (well, almost) related to software engineering. You can download the slides for the book here. |
| Fowler, Scott | UML Distilled |
Recommended! Succinct discussion of a variety of software engineering topics centered on the UML notation. Deals with development processes, use cases, class diagrams, interaction diagrams, state diagrams, activity diagrams, etc. Also discusses various programming techniques. |
| Kernighan, Pike | The Practice of Programming |
Succinct discussion of a variety of programming topics. Deals with style, documentation, design, testing, debugging, portability, etc. Uses several programming languages (C, C++, Java, Perl) and discusses the tradeoffs involved. |
| Hunt, Thomas | The Pragmatic Programmer |
Lots of practical advice on programming and software development in general, e.g. how to organize your code, how to debug, how to test, etc. Similar in intent to the text by Kernighan and Pike, but quite a different approach; the books complement each other nicely. |
| Gamma, Helm, Johnson, Vlissides | Design Patterns |
The standard reference for design patterns: well-documented solutions to recurring design and implementation problems. |
| Liskov, Guttag | Program Development in Java |
Do not be fooled by the title. This is an excellent advanced programming text that deals with many software engineering concerns as well. If you want to learn some Java and along the way pick up lots of programming and design skills, get this book. |
| Palast | The Best Democracy Money Can Buy |
Detailed background on what went wrong in Florida in the 2000 presidential election. One of those books you can be sure the "president" has not read yet... |
| Week | Lecture | Assignment | Exam | Reading |
|---|---|---|---|---|
| 1 | Introduction, Systems Engineering | Assignment 1 |
Entrance
Solution |
S1&2 |
| 2 | Software Processes, Software Requirements | - | - | S3&5 |
| 3 | Requirements Engineering, System Models | Assignment 2 | - | S6&7 |
| 4 | Architectural Design, Object-Oriented Design | - | - | S10&12 |
| 5 | Distributed Systems, Midterm Review | Assignment 3 |
Midterm
Solution |
S11 |
| 6 | User Interface Design, Dependability | - | - | S15&16 |
| 7 | Verification and Validation, Software Testing | Assignment 4 | - | S19&20 |
| 8 | Project Management, Quality Management | - | - | S4&24 |
| 9 | An Industry View of Software Engineering (Joachim Feise), Software Change |
Assignment 5
Brooks Paper Parnas-Clements Paper |
Final Preview | S27 |
| 10 | Configuration Management, Review, Outlook | - |
Final
Solution |
S1-29 |
Testing: Assignments 50% (5), Midterm 20% (1), Final 30% (1). This is still somewhat tentative.
Grading: The "usual" percentage scale (60%+ = D, 70%+ = C, 80%+ = B, 90%+ = A), with some "good-natured fudging" at the end maybe.
|
Copyright © 2003
Peter H. Fröhlich.
All rights reserved.
$Id: index.html,v 1.12 2003/06/02 07:54:27 phf Exp $ |
|