Software engineering is the study of software process methods, in particular the specification, design, implementation, testing, maintenance and documentation of a software system. This course will provide a broad introduction to the concepts, techniques, and current practice of software engineering. Topics include software process models as an organizing concept and principles relevant to each phase of the lifecycle. Emphasis will be on methods essential to creating software systems: well-understood requirements, logical design, formal specification, and well-planned testing.
The major concepts will be presented in the lectures. Additional help and information will be available in lab discussions. A key part of the class is a term requirements and specification project performed in a sequence of assignments. This project serves as a vehicle for understanding software engineering concepts.
You will be assessed on the basis of five major assignments (50%) constituting a term project and covering the key concepts presented in the class. There will be a midterm (15%) and a final examination (20%). There will be occasional minor homework assignments (total 15%).
The five major assignments constituting the term project are as follows:
The required texts for this course are:
Course notes and visuals will be made available through the engineering copy center.
Two texts for alternative presentations of similar material are the following:
There is no programming per se in this class. The emphasis is on design. Design documents (the five assignments) will be typed and formatted. You may accomplish this with the platform of your choice, such as Microsoft Word on the Macintosh or IBM PC or LaTex on your UNIX account. When announced, some graphics may be drawn by hand neatly. For later assignments, a software CASE tool called Argo/UML will be used for some graphics. More information will be provided at the appropriate time.
You should use your UNIX accounts to access the bulletin board at least once a day. The professor and teaching assistant will post messages including details of the assignments in this fashion. You will need to use email to arrange office hours, etc.
Lecture and discussion topics include but are not limited to the following:
David F. Redmiles Home Page
Department of Information and Computer Science
University of California, Irvine CA 92717-3425