Software Engineering
An introduction and exploration of concepts and issues related to large-scale software systems development. Areas of exploration include technical complexities, organization issues, and communication techniques for large-scale development. Students participate through teams emulating industrial development. The projects cover the principal system development life-cycle phases from requirements analysis, to software design, and to final implementation. Issues relating to real-time control systems, human factors, reliability, performance, operating costs, maintainability and others are addressed and resolved in a reasonable manner.
There will not be a specific text for this course, but several useful texts are worth considering if you are looking to expand your library:
- Sommerville, Software Engineering, 8th Edition, Addison-Wesley, 2007.
- Hunt and Thomas, The Pragmatic Programmer, Addison-Wesley, 2000.
- Beck, Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999.
- Gamma, Helm, Johnson, and Vlissides, Design Patterns, Addison-Wesley, 1995.
(Often referred to as the "Gang of Four" book) - Czarnecki and Eisenecker, Generative Programming, Addison-Wesley, 2001.
- Meyer, Object-Oriented Software Construction, 2nd Ed., 1997.
- Booch, Object-Oriented Analysis and Design, 2nd Ed., 1994.
Discussion Topics | Lecture Material |
Course Overview (slides: in ppt format) | Software Requirements: Overview and Motivation (slides: in ppt format) |
Project Descriptions from Traffic, Building, Island, and Infrastructure Teams | Software Requirements: Perspective and Definition (slides: in ppt format) |
Project Requirements Outlines from Traffic, Building, Island, and Infrastructure Teams | Software Requirements: Processes I (slides: in ppt format) |
Teams' Requirements Definition Documents | Software Requirements: Processes II (slides: in ppt format) Software Requirements: Products (slides: in ppt format) Software Architecture: Introduction (slides: in ppt format) Real World Requirements Example (slides: in ppt format) |
| Software Requirements: Basic Methods I (slides: in ppt format) |
| Software Requirements: Basic Methods II (slides: in ppt format) |
| Software Requirements: Complex Models and Reviews (slides: in ppt format) Software Architecture: Specification I (slides: in ppt format) |
| Software Architecture: Specification II (slides: in ppt format) |
| Software Architecture: Design I (slides: in ppt format) |
| Software Architecture: Specification III (slides: in ppt format) |
| Software Architecture: Design II (slides: in ppt format) Software Architecture: Design III (slides: in ppt format) |
|
|
| Course Summary: Review of Software Engineering Requirements and Architecture (slides: in ppt format) |
|
|
|
|