Courses in Software Engineering (pending approval)
(Note that many other courses, such as those in databases,
or those that include software development, have material
related to software engineering.)
Undergraduate Course
3773 Software Engineering
(3-0) 3 hours credit. Prerequisites: CS 3341 and CS 3343.
Software development (analysis, specifications, design, implementation,
and testing). Design methodologies and programming standards.
Development project in small groups, including acceptance test.
Graduate Courses
5103 Software Engineering
(3-0) 3 hours credit. Prerequisite: CS 4773 or software development experience.
Introduction to methods and tools for the requirements analysis and
design stages of software life cycles. Discussion of software requirements
including elicitation, modeling notations, analysis, and documentation.
Brief overview of process models and project management. Examination of
major architectural styles in existing software systems, design methods,
design patterns, and reverse engineering. Course will include design
experience using CASE tools.
5133 Software Testing and Quality Assurance
(3-0) 3 hours credit. Prerequisite: CS 4773 or software development experience.
Introduction of testing techniques of software systems: unit testing,
integration testing, system testing, acceptance testing, and regression
testing; test plan and test case design; quality assurance; verification
and validation.
5153 User Interfaces and Usability
(3-0) 3 hours credit. Prerequisite: CS 4773 or software development experience.
This course focuses on the development of high quality user interfaces.
The course reviews the basics of user interface development, tools, and
use-case driven design techniques; examines the elements of good design
and usability, metrics for usability, and procedures for user testing.
5343 Developing Secure Systems and Software
(3-0) 3 hours credit. Prerequisite: CS 3733.
An examination of methods for designing secure computer systems, networks,
and software. Topics include the security development process, security
policies and models, threat modeling, security code reviews and testing,
the formal verification process, validation, and assessments.
6133 Software Specification and Verification
(3-0) 3 hours credit. Prerequisite: CS 5103.
This course introduces the theory and practice of formal methods for the
specification and verification of computer-based systems. It emphasizes
various techniques for modeling behavior of sequential and concurrent
systems and reasoning about properties of models using automated analysis
tools.
6193 Advanced Topics in Software Engineering
(3-0) 3 hours credit. Prerequisite: CS 5103.
Advanced topics in an area of software engineering. Topics may include but
are not limited to agile software development, model-driven software
development, designing embedded and real-time software, empirical software
engineering, reengineering and software maintenance, and client/server
development using open source tools. May be repeated for credit when topics
vary.