Software Engineering Graduate
SWE 6343 User Interface Design and Implementation
Prerequisite: SWE 6623
3-0-3This course covers the major frameworks, methods, and
approaches to designing, engineering, implementing, and testing
user interfaces. It covers user and usability requirements
gathering, task analysis, user-interface design, implementation of
the user interface, and evaluation with respect to requirements
and the users' tasks. Illustrative design and implementation
projects are completed throughout the term.
SWE 6673 Software Quality Engineering and Assurance
Prerequisite: SWE 6613 and CS 5013
Various definitions and metrics related to quality are introduced,
along with the concept of total quality management (TQM).
Development of quality/test plan and the cost/value trade-off
throughout the software development cycle is demonstrated. As a
crucial component of quality engineering, the notion of validation
and verification is explained in the context of different testing
techniques, which include black box testing, white box testing, and
formal verification. The emphasis of the course is on testing
techniques for both non-executable and executable software
artifacts as applied to different levels of testing, ranging from
inspection, formal verification, unit testing to regression testing.
SWE 6613 Requirements Engineering
Prerequisite: SWE 6623
Requirements engineering (RE) plays a critical role in the software
development process. This course is a thorough treatment of the
engineering and definition of software requirements processes.
Methods, tools, notations, and techniques for eliciting, analyzing,
modeling, negotiating, validating, specifying, testing, and
maintaining requirements will be examined with a focus on
software-intensive systems. The course will include a major
group project on the analysis and specification of software
SWE 6653 Software Architecture
Prerequisite: SWE 6623, CS 5003, CS 5013
This course examines the principles and methods of the
architectural design of complex, large-scale software systems.
Macro-level system architecture with an emphasis on approaches
to interconnection and distribution of both current and emerging
architectural systems (e.g., Model-View-Controller (MVC),
service-oriented, agent-oriented) as well as micro-level
architecture including patterns, frameworks, and
component-based software engineering are covered in detail.
SWE 6733 Software Engineering Processes
Prerequisite: SWE 6623
This course gives students an in-depth introduction to the
essentials of software engineering processes, methods, and tools
for the engineering and evolution of complex real-world software.
Emphasis is on the role of process in the various software
life-cycles from requirements engineering through operation and
maintenance. Topics such as personal and team software
processes, organizational maturity, theory and applications of
CMMI and ISO 9001, process management, process assessment,
and process improvement are included.
SWE 6853 Design Patterns
Prerequisite: SWE 6623 and CS 5003; SWE 6743 Recommended
This course builds upon basic object-oriented concepts to discover
principles of good object-oriented design through the application
of design patterns. The focus is on the issues and means of
designing software systems for reuse, extension, and
maintainability including how to leverage the powers of
object-orientation embodied in well-known heuristics, principles
and patterns in the design and construction of reusable systems.
This course will emphasize that designing reusable systems
requires anticipating requirements changes and the application of
design patterns will help ensure system mutability. The course
includes a major project in which the students will gain hands-on
experience with design patterns.
SWE 6623 Software Engineering
Prerequisite: CS 5123 or equivalent
Transition: This course provides an overview of software
engineering and explores both the theoretical principles and their
application in the engineering of software-intensive systems.
Topics cover the entire software development life-cycle and
include software engineering process models, project
management and planning, requirements engineering, software
architecture and design, prototyping, verification and validation,
usability and human factors, quality assurance, and
professionalism and ethics. The course includes a real-world
team project in which students are given hands-on experience
utilizing state-of-the-art tools to analyze and design a software
SWE 6633 Software Project Planning and Management
Prerequisites: SWE 6623
The main phases of project management life cycle (initiation,
planning, execution, monitoring/control and closeout) are covered.
The emphasis is on project planning phase and on project
monitoring/control phase. Various software size, cost/effort, and
schedule estimation and planning techniques, including COCOMO,
Function Point, and critical path analysis, are introduced as part of
work breakdown structure. Project risk management is included
as an integral part of project planning and project
monitoring/control. Project status monitoring/control activities
are discussed and practiced with a prototype team project, using
the Earned Value metric.
SWE 6723 Software Engineering II
Prerequisite: SWE 6623
This course covers the entire software development life-cycle.
Emphasis is placed on advanced topics including prototyping,
verification and validation, formal methods, and quality
management. A major component is a group project that utilizes a
Computer Assisted Software Engineering (CASE) tool to assist in
the analysis, design, and implementation of a system.
SWE 6743 Object-Oriented Analysis and Design
Prerequisites: SWE 6623, CS 5013 and Co-requisite CS 5003
This course focuses on object-oriented modeling techniques
necessary to solve complex, real-world software engineering
problems. Topics include the use of information hiding, object
design methods, basic design patterns, abstraction and abstract
data type formalisms. Object-oriented iterative development
methodologies such as the Unified Process will be utilized.
Techniques for transforming software requirements into
high-quality language independent object-oriented design are
presented. The course includes a major iterative project in which
the students will gain hands-on experience modeling a real-time
system using use case analysis, responsibility-driven design, UML
and RealTime UML.
SWE 6753 Computer Game Design and Development
Prerequisite: CS 5123
Topics include graphics, multimedia, visualization, animation,
virtual reality simulation concepts, methods, and tools of game
design and developments using the software engineering life cycle
are emphasized. A team project on a game prototype is required.
SWE 6763 Software Metrics and QA
Prerequisite: SWE 6623
This course covers the principles of software measurement such
as scaling, validity, and reliability. The various software metrics on
volume, effort, quality, and cost estimation are explored. The
theory and principles of software verification and validation
effectiveness, and reliability models are studied. The application of
these measurements to software customer satisfaction and total
quality management is explored.
SWE 6783 User Interaction Engineering
Prerequisites: CS 5003 and SWE 6623
This course follows a complete software-engineering cycle to
produce software objects (classes and/or components) that
support users in effective, efficient, and enjoyable interactions
with computers. Class exercises and a project incorporate
concepts and methods including ethnographic and user analysis;
cognitive ergonomics; usability metrics and criteria;
software-engineering practices, conventions, standards, and
documentation; device-user action mapping; person-system
function allocation; quality management systems; conceptual
proto-typing; embedded systems in support of ubiquitous
computing; and function-behavior analysis.
SWE 6813 Component-Based Development
Prerequisites: CS 5003
This course covers the concepts, foundations, and architectures of
component-based software development (CBSD) and its related
technologies. Component-based tools and languages, approaches
for implementation of CBSD, including designing, building,
assembling, and deploying reusable COTS and in-house software
components are discussed in depth. The current concrete
realizations of component technologies will be explored. Students
will do projects focused on the life cycle of software components.
SWE 6823 Embedded Systems Analysis and Design
Prerequisite: SWE 6623
This project-oriented course focuses on using modern methods,
techniques, and tools for specification and design of embedded
systems. Topics include analytical methods, design/development
methods, and notations. Performance evaluation based on
modeling and simulation techniques is also covered.
SWE 6843 Embedded Systems Design and Construction
Prerequisite: CS 5243/3243
This project-oriented course focuses on the use of current
software building technology, testing, reliability analysis, and
benchmarking. Topics include component-based development
(CBD), implementation technologies, and real-time operating
systems (RTOS), with emphasis on the use of measurement tools,
and domain libraries. The course also covers issues in
SWE 6883 Formal Methods in Software Engineering
Prerequisites: CS 5423 , SWE 6623, and SWE 6613 recommended
The course is concerned with formal representation of the
specification of software. Formal mechanisms for specifying,
validating, and verifying software systems will be introduced to
check for completeness and correctness as well as to discover
ambiguities in the specifications. Both Propositional and Predicate
Calculus will be reviewed and utilized to represent and reason
about software specifications. Proof techniques and formal
specification languages Z and the Object Constraint Language
(OCL) will be explored.
SWE 6863 Software Engineering Ethics and Legal Issues
Prerequisite: Co-requisite CS 5003 or equivalent
This course covers ethical and legal issues related to software
development. Professional ethics and responsibilities of software
engineers are discussed in detail. Topics include computing and
civil liberties, encryption, intellectual property and licensing,
software patents and copyrights, professional codes of ethics and
professional licensing, software reliability, liabilities, and hacking.
Software engineering/computing case studies will be used.
SWE 6901-6903 Special Topics
Prerequisite: As determined by the Instructor and Department
Chair 1 to 3 hours
Special topics selected by the Department Chair. Offered on a
demand basis. A student may repeat this course with special
SWE 7903 Software Engineering Capstone
Prerequisite: Satisfactory completion of the MSSWE core
This course is designed for students to give a professional focus to
their degree. The students work in designated teams under the
supervision of the course instructor (a CSE faculty member), on a
project of practical significance in software engineering. Each of
the teams will deliver a final working product, generate a
substantial final report, and give a final presentation on the
SWE 7803 Masters Thesis
The thesis is designed for students wanting a research focus to
their degree. The student works independently under the
supervision of a designated SWE graduate faculty member on a
thesis of substance in software engineering. The student will
generate a formal written thesis and give a final defense of the
thesis. This course may be repeated, but only 6 hours may be
applied toward the degree. This course will be an alternative to
SWE 7903 Software Engineering Capstone.
SWE 6901-6903 Independent Study
Prerequisites: Approval of course director
Independent study/project under the direction of a graduate SWE