5/00
COMPUTER SCIENCE 340
SOFTWARE ENGINEERING
I. Introduction
A. Catalog Description
Students will study the design and implementation of large software systems. Topics include design methodologies, programming team organization and management, program verification and maintenance, human engineering, and CASE tools. Prerequisites: one of CSci 281, CSci 361, or CSci 455 with a grade of C- or better. Satisfies a writing requirement in major contracts.
B. Objective
1. Students will learn about the tools necessary to develop a system from requirements to operation.
2. Students may gain experience in working with a group on a medium sized project.
C. Prerequisites
Students must have completed one of CSci 281, CSci 361, CSci 455 with a grade of C- or better. There will be exams, and there may be individual and group projects.
II. Required Topics
1. Design techniques: Top-down design, object-oriented design, design patterns, UML, information hiding, iterative enhancement, program verification.
2. Organization and Management: Milestones and estimating, chief programmer teams, program libraries, walk-throughs
3. Program testing and maintenance, planning for change.
4. Human engineering, taking into account user needs
5. Case tools.
6. Team project: (Optional) Organization, management, and development of a small group project.
III. Bibliography
Frederick Brooks, |
The Mythical Man-Month |
E. W. Dijkstra, |
A Discipline of Programming |
Dah, Dijkstra, & Hoare, |
Structured Programming |
Martin Fowler with Kendall Scott , |
UML Distilled: Applying the Standard Object Modeling Language |
David Gries (ed), |
Programming Methodology |
Erich Gamma, Richard Helm Ralph Johnson, John Vlissides, |
Design Patterns: Elements of Reusable Object-oriented Software |
Benjamin L. Kovitz, |
Practical Software Requirements: A Manual of |
Craig Larman, |
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design |
Steve McConnell, |
Code Complete |
Martin L. Shooman, |
Software Engineering Design, Reliability, and Management |
Ian Sommerville, |
Software Engineering |
Susan Weinschenk, Pamela Jamar, and Sarah C. Yeo, |
GUI Design Essentials |