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.
Prerequisite
C or higher in CSE 316; U4 standing; CSE major
Course Outcomes
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.
Textbook
Ian Sommerville, Software Engineering, 9th Edition, Addison-Wesley.
Major Topics Covered in Course
Approaches to software engineering
The UML (Universal Modeling Language)
Requirements Analysis and Use Case Modeling
Object Modeling and/or Functional Modeling
Dynamic Modeling using appropriate diagrammatic approaches
Specification Documents
Design Documents
Testing -- Black Box, Glass Box, Test Plan Documents