Skip navigation

Site Map | College of Engineering | UC Davis | MyUCDavis

ECS 160 INTRODUCTION TO SOFTWARE ENGINEERING (4) I, II, III

Lecture: 3 hours

Discussion: 1 hour

Prerequisite: Course ECS 140A

Grading: Letter; final (30%), project (70% total): architectural design presentation (5%), architectural design document (10%, incorporating comments from the presentation), prototype demo 1 (20%), prototype demo 2 (25%), final demo (35%), revised architectural design document (5%).

Catalog Description:
Requirements, specification, design, implementation, testing, and verification of large software systems. Study and use of software engineering methodologies. Team programming.

Expanded Course Description:

  1. Introduction to Software Engineering
    1. History
    2. Economic Motivation
    3. Team Programming
    4. Object-Oriented Nature
    5. Nomenclature
  2. The Software Process
    1. Requirement Definition
    2. Functional Specifications
    3. Planning and Scheduling
    4. Design
    5. Implementation
    6. Integration
    7. Maintenance
  3. Software Lifecycle Models
    1. Build-and-Fix
    2. Waterfall
    3. Rapid-Prototype
    4. Incremental
    5. Spiral
  4. Requirements
    1. Analysis
    2. Rapid Prototype as Specification
    3. CASE Tools
  5. Specification
    1. The Document
    2. Informal Specification
    3. Formal Specification
    4. CASE Tools
  6. Architectural Design
    1. Abstraction, Hierarchies, and Subassemblies
    2. Data-oriented
    3. Object-Oriented
    4. CASE Tools
    5. Class Presentations
    6. Design Document
  7. Rapid Prototype Demo I: Students demo their current program and get immediate feedback on quality and future direction.
  8. Implementation and Integration
    1. Top-Down, Bottom-Up, Inside-Out, Thin-Thread
    2. Coding Standards and Practices
    3. Configuration Control
    4. Team Organization
    5. Testing (Glass box and Black box), Validation and Verification
    6. Software Reuse
    7. CASE Tools
  9. Rapid Prototype Demo II: Students demo their current program and get immediate feedback on quality and future direction.
  10. Maintenance
    1. Motivation
    2. Management
    3. Reverse Engineering
    4. CASE Tools
  11. Final Demo: Students demo their current program and get immediate feedback on quality and future direction.

Textbook:
Instructor's notes

Computer Usage:
Students program their term projects in a high-level language, typically C. Programs are developed on the HPs running UNIX. Students use CASE Tools and configuration management programs and editors such as vi or emacs.

Laboratory Projects:
Students work in teams of 3-5 students designing and implementing a large software system taken through the specification, design, integration and implementation phases.

Engineering Design Statement:
The specification and design aspects of the projects are quite open-ended. The initial software requirements provide only an outline of the functionality of the software systems. The groups must explore a wide range of alternatives to produce the final system specification. During the specification phase of the project, the groups interact frequently with the "customers" (i.e., the instructors) to explore alternate functionalities and user interface designs. The design phase of the project addresses the fundamental nature of designing software from an abstract specification. Students must understand the differences between the specification and design, what constraints the specification imposes on the designers, and what freedoms the designers have. Using the basic design methodologies, the students must explore a range of design alternatives. A required component of the final design document is a section of design rationale, which describes important design alternatives that were considered and why the choices between alternatives were made.

ABET Category Content:
Engineering Science: 1 unit
Engineering Design: 3 units

Goals:
Students will:

Student Outcomes:

Instructors: K. Levitt, P. Devanbu

Prepared by: K. Levitt (Nov. 1996)

Overlap Statement:
This course does not duplicate any existing course.

5/06

Back to Course Descriptions