ICS 121: Introduction to Software Engineering
Software Methods and Tools
Prof. Debra J. Richardson
Spring 2000
Information and Computer Science
University of California, Irvine
Instructor: Debra J. Richardson
Email: djr@ics.uci.edu
Office hours: by appointment on Wednesdays 1-2 and Thursdays 2-3
Room: ICS2 216
Assistant: Jie Ren
Email: jie@ics.uci.edu
Office hours: TBD
Assistant: TBD
Course Code: 36110
Lecture: Tuesdays and Thursdays 11-12:20
Room: RH 101
Course Codes: 36112 and 36113
Discussions: Mondays, Wednesdays, Fridays 3-3:50 and 4-4:50
Room: CS180
Course Description
Introduction to concepts, methods, and current practice of software engineering. The study of large-scale software production: software process models as an organizing structure; principles and techniques appropriate for each stage of production;
Software engineering is the study of the software process, in particular the specification, design, implementation, testing, maintenance and documentation of a software system. This course will provide a broad introduction to the concepts, methods, and current practice of software engineering. Topics include the study of large-scale software production with software process models as an organizing structure and principles and techniques relevant to each stage of the software production 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 discussion sections. A key part of the class is a term requirements specification and design project performed in a sequence of exercises. This project serves as a vehicle for understanding software engineering and illustrating important concepts, methods, and tools.
Prerequisites
ICS 21-22-23 or equivalent
ICS 52
(MATH 2A-2B-2C)
MATH 6A-6B(-6C)
WRITING 39C
Grading
Students will be assessed on the basis of six assignments (55%) constituting the term project and covering the key concepts presented in the class and two exams.
The six assignments constituting the term project are as follows:
In addition, there will be two exams:
A final study guide and sample final will be made available.
Course Lectures
Course lecture notes and visuals are available through the engineering copy center. In addition, pdf and html versions will be available on the web. Together with attending the lectures and lab discussions, these should be sufficient for completing the assignments. The material covered in class will be primary with respect to both assignments and exams.
Required Texts
Two texts are required as supplemental reading to complement lecture material. These texts will enable you to better understand the material presented in class as well as give you alternative descriptions of the material, which should be particularly useful in preparing for the exams. The required texts for this course are:
For those with a keen personal or professional interest in software engineering, the following three texts provide alternative presentations of similar material:
There is no "programming" in this class. The emphasis is on specification and design. The five assignments must be neatly formatted including graphics. 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.
You should use your UNIX accounts to access the bulletin board at least once a day. The instructor 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.
Communication and Office Hours
Office hours, electronic mail addresses, and phone numbers appear on the first page of this handout. Electronic mail is typically the best mean for asking simple questions, since even if the addressee is out of town, they may be able to answer your question promptly. In general, it is best to speak with the TAs regarding assignments and with the instructor with respect to conceptual information. If you feel you have extensive questions, be sure to make an appointment with whomever you would like to talk. If you have a problem with the grading of an assignment, speak with the TA first. If you need further assistance, don't hesitate to contact the instructor.
Lecture and Discussion Topics
Lecture and discussion topics include but are not limited to the following:
Schedule
| Week | Date | Description | Readings |
|---|---|---|---|
| Week 1 | April 4 | Welcome, Overview of Class
Scope and Principles of Software Engineering |
Schach,
Chapter 1 |
| April 6 | Software Lifecycle Models
Methods and Tools |
Schach, Chapter 2 & 3 | |
| April 3,5,7 | No discussion sections this week | Start reading Brooks this week; continue throughout the quarter! | |
| Week 2 | April 11 | Requirements Overview
Requirements Acquisition, Rapid Prototyping Homework 1 assigned |
Schach, Chapter 9 |
| April 13 | Software Qualities | Schach, Sections 5.1 & 5.4 | |
| Week 3 | April 18 | Lifecycle Verification and Validation
V&V Principles, Software Testing Basics, Reviews Homework 2 assigned |
Schach, Chapter 5 (rest), Sections 13.9&13.11 |
| April 19 | Homework 1 due | . | |
| April 20 | Requirements, continued
Scenarios, Cognitive Walkthroughs, Usability Homework 3 assigned |
. | |
| Week 4 | April 25 | Requirements Specification
Data-flow and E-R Diagrams |
Schach, Sections 10.1-10.5 |
| April 26 | Homework 2 due | . | |
| April 27 | Requirements Specification, continued
Finite State Machines and Petri-nets Homework 4 assigned |
Schach, Sections 10.6-10.7, 10.11-10.13 | |
| April 28 | Midterm review | . | |
| Week 5 | May 1 | Midterm review
Homework 3 due |
You should be half-way through Brooks by now! |
| May 2 | Midterm review | ||
| May 3 | Midterm review | ||
| May 4 | Midterm | covers material through April 27 lecture | |
| Week 6 | May 9 | Introduction to Design
Architectural Design |
Schach, Section 11.1 |
| May 11 | Introduction to Object-Oriented Analysis and Design: Objects | Schach, Chapter 6 | |
| May 10 | Homework 4 due | . | |
| Week 7 | May 16 | Object-Oriented Analysis and Design:
Class Modeling Homework 5 assigned |
Schach, Sections 11.1-11.5 |
| May 18 | Object-Oriented Analysis and Design:
Dynamic and Functional Modeling Homework 6 assigned |
Schach, Sections 11.6-11.9,
Chapter 12 |
|
| Week 8 | May 23 | Object-Oriented Analysis and Design: conclusion | . |
| May 25 | Formal Methods, Formal Specifications | Schach, Sections 10.8-10.10 | |
| May 24 | Homework 5 due | . | |
| Week 9 | May 30 | Testing, Test Criteria and Strategies | Schach, Chapter 5, Sections 13.6-13.10&13., Sections 14.2-14.5 |
| June 1 | Software Environments | Schach, Sections 4.9-4.11 & Sections
9.12, 10.12, 11.8, 12.11, 13.15, 14.6 & Sections14.7-14.11 |
|
| June 2 | Homework 6 due | . | |
| Week10 | June 6 | Process Models | Schach, Chapter 3, Sections 2.10-2.12 |
| June 8 | Mythical Person-Month Lessons
Quarter Wrap-up |
You should be all-the-way through Brooks by now! | |
| June 9 | Final exam review | . | |
| Finals Week | June 13 | Final Exam, 10:30 - 12:30 | . |