The list of lectures has been updated.
November 4, 2002: From this point forward, each project group should be prepared to present a milestone report at each class meeting. This consists of a written report to be handed in to the instructor and a verbal report made to the class. You will be graded on these reports.
The course mailing list home page is here.
Software engineering is the practice of building quality software in a predictable and reliable manner. This course moves beyond programming as an individual art into the real of collaborative science. The brilliant individual programmer can accomplish much, but ten capable programmers working together can do much more.
While there are many rigorous methodologies that claim to offer the best solution for software engineering, in fact most approaches and tools have a mixture of strengths and weaknesses. By analogy with physical engineering, reinforced concrete may be an excellent all-around building material, but it is poorly suited to creating attractive window frames. So it is with software engineering: the most appropriate tool must be used for each task.
This course will thus present a variety of tools, in the context of team production of publicly releasable software. The goal will be for each student to have had a hand in building a complete and useful application, one that can be released into the wilderness of real-world use.
Monday evenings, 5pm to 7pm. Warren Weaver Hall, room 102.
Room 401, Warren Weaver Hall, from 4pm to 5pm.
Also by appointment.
My full contact info is on my personal home page. Yes, you can try stalking me if you want, but I won't make it completely easy for you by putting all that personal stuff here. :-)
As lectures are written, they will be linked in from this page.
The first lecture. Covering an introduction to the topics and course logistics.
Specifications. Components, encapsulation, and affordances. Polymorphism.
Design patterns. What they are, and how to apply them. Eight basic patterns were covered:
Guest lecture: Frank Tip, of IBM. He will be introducing UML diagram notation. Lecture notes will be derived from a lecture introducing UML (starting at page 20) and a lecture describing UML class diagrams. The lecture as presented in class is here in PDF.
In this class, we went through an application of design patterns, showing how a graphical version of /bin/ls might make use of particular patterns.
This class meeting was devoted entirely to student presentations.
The first part of the class was devoted to remaining student presentations. The second half showed how to start from a specification and begin to produce a design from it.
Today's class will present initial package diagrams for each project. Today's lecture reviews top-down design and discusses user interface design in that context.
Project: Final presentation
© 2002, Brook Conner
Created: Tue Sep 3 17:07:15 EDT 2002
Last modified: Mon Nov 4 15:13:42 EST 2002