Syllabus --- Software Engineering

Goals of this course

This course involves the general principles of Software Engineering. The student will learn some of the issues involved in developing a large (i.e., bigger than what one person can do) system. This is a capstone course for the department and is meant to pull together material learned in other courses. The student is assumed to have an extensive background in Object Oriented Programming, data structures and related topics.

In particular, the course involves:

A familiarity with object-oriented programming is assumed.

Grading policy

There will be at least 3 exams, all given as fill-out forms on web pages accessible from this page and a term project. When the exams are graded, grades will be emailed to students (along with the correct answers to questions). Final grades will depend on written assignments, and exams. The lowest exam grade will be dropped. Written assignments count as 1/10 of an exam.

At any time, students may find out their current grades by consulting this web page using the password given in emails with exam grades.

The term project will be team-oriented. Students must sign up for a programming team and hold regular team-meetings. Each team decide on which of the two listed projects to do.

Discussion group for this class

Team Signup Sheet

Topics

  1. Introduction to Software Engineering Scope (Chapter 1)
  2. Computer-based system engineering (Chapter 2)
    Use of CASE tools.
  3. Software processes (Chapter 3)
  4. Project Management (Chapter 4)
  5. Requirements.
  6. Requirements engineering processes (Chapter 9)
  7. System models
  8. Software prototyping
  9. Formal specifications
  10. System design. Detailed design documents.
  11. Considerations for coding modules.
  12. Software Testing Strategies (Chapter 16 and 17)
  13. Object-Oriented Analysis (Chapter 20)
If there is any time left, we will explore the Demeter System for Adaptive Software Development.

Links

Justin R. Smith
Last modified: Mon Dec 17 12:13:45 EST 2001