|Current Catalog Description
Introduces the basic concepts and modern tools and techniques of software engineering. Emphasizes the development of reliable and maintainable software via system requirements and specifications, software design methodologies including object-oriented design, implementation, integration, and testing; software project management; life-cycle documentation; software maintenance; and consideration of human factor issues.
CSE 219 or CSE 260 and CSE major or permission of instructor
- An ability to perform project planning, requirements analysis, and system/test design.
- An ability to work as a team to produce software systems that meet specifications while satisfying an implementation schedule.
- An ability to produce professional quality oral/written presentations of system designs, reviews, and project demonstrations.
- An understanding of ethical issues in software design and computing.
Varies from semester to semester. For example:
- Ian Sommerville, Software Engineering, 9th Edition, Addison-Wesley.
|Major Topics Covered in Course
- Waterfall model, together with its variations and improvements
- The UML (Universal Modeling Language)
- Requirements Analysis
- Use Case Modeling
- Object Modeling
- Functional Modeling
- Dynamic Modeling using State Diagrams, Sequence Diagrams, and Activity Diagrams
- Specification Documents
- Design Documents
- Testing -- Black Box, Glass Box
- Test Plan Documents
- Project Planning -- Pert Charts, Gantt Charts
- Software Engineering tools
- Oral and Written Communication
- The students work in teams of about six people to produce a significant piece of software during the entire semester. Each team produces a Specification Document, a Design Document, and a Test Plan. Typical projects have been an Internet Auction System and a Room Reservation System for the CS Department. Each team gives an oral presentation of a design review and a formal demonstration of their project at the end of the semester