Fundamentals of Software Engineering
CS 361 Course Syllabus
Summer 2005
Course Description
CS 361, Software Engineering I, is a four-credit course for
undergraduate students. This course gives an introduction to the
"front end" of the software engineering lifecycle. The main topics
covered include requirements analysis and specification, design
techniques, and project management. This is a writing intensive
course.
Contents of this web site:
Learning Objectives
On completion of the course, students must demonstrate the ability to:
- Describe process models of software life cycle and discuss their
phases, advantages and disadvantages.
- Gather requirements for realistic software systems by interacting
with a user or a user group; write a requirements specification
document.
- Model system requirements using one or more semi-formal notations
such as UML, dataflow diagrams, entity-relationship diagrams, and
state diagrams.
- Design software systems at architectural level, and at lower
levels, using one or more techniques such as object-oriented design or
structured design. Express designs in design specification documents.
- Validate requirements and designs by reviewing specification with
user or user group; adjust the specification or design as necessary.
- Describe several methods of estimating the cost and developing
a schedule for a programming project.
- Work effectively in a team.
- Prepare effective, professional software-related documents.
Textbook
- Software Engineering by Ian Sommerville [Required]
- Waltzing with Bears by Tom DeMarco and Timothy Lister
[Required]
The following writing-related references are not required for this course but are very useful.
- On Writing Well by William Zinsser
- Bugs in Writing by Lyn Dupre
Quick Links