SWE 201 Introduction to Software Engineering
3 credits This course is an introduction to the foundations and principles of software engineering. Topics include modeling and design using UML, requirements, software architecture, and testing. Prerequisite: CIS 160.
SWE 211 Software Construction
3 credits This course covers the general principles and techniques for disciplined low-level software design. Topics include basic theory of grammars and parsing, use of parser generators, basics of language and protocol design, formal languages, state-transition and table-based software design, formal methods for software construction, techniques for handling concurrency and inter-process communication, and tools for model-driven construction. Prerequisites: CIS 200, SWE 201
SWE 212 Human Computer Interaction
3 credits This course covers the psychological principles of human-computer interaction. Topics include evaluation of user interfaces; usability engineering; task analysis; user-centered design; conceptual models and metaphors; software design rationale; design of windows, menus, and commands; voice and natural language I/O; response time and feedback; color, icons, and sound; internationalization and localization; user interface architectures. Prerequisite: SWE 201.
SWE 311 Software Design & Architecture
3 credits This course is an in-depth look at software design, specifically designing for qualities such as performance, safety, security, reusability, reliability. Topics include measurement theory and appropriate use of metrics in design; measuring internal qualities and complexity of software; basics of software evolution, reengineering, and reverse engineering. Prerequisite: SWE 211
SWE 321 Software Quality Assurance & Testing
3 credits This course provides a broad coverage of software quality and testing. Topics include avoidance of errors and other quality problems; inspections and reviews; testing, verification, and validation techniques; quality process standards; problem analysis and reporting; and statistical approaches to quality control. Prerequisites: MTH 140, SWE 201
SWE 322 Software Requirements
3 credits This course covers the techniques for discovering and eliciting software requirements for various types of systems. Prerequisite: SWE 201.
SWE 323 Software Project Management
3 credits This course covers all aspects of the software project, including planning, cost estimation, and scheduling. Topics include analysis of options and risks, planning for change, management of expectations, software process standards and process implementation, software contracts and intellectual property, and case studies of real industrial projects. Prerequisites: SWE 321, SWE 322.
SWE 478 Software Engineering Design Project
3 credits This course provides students, working in groups, with a significant project experience in which they can integrate much of the material they have learned in their program, including matters relating to requirements, design, human factors, professionalism, and project management. Each student group begins by identifying a suitable ‘customer’ (company, professor, unit on or off campus, etc.) for whom they are developing the software system. Prerequisites: SWE 311, SWE 323.