MSSWE Course Descriptions

SWE 6343  User Interface Design and Implementation
3-0-3
Prerequisite: SWE 6623
This 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 6623  Software Engineering I
3-0-3
Prerequisite: CS 5123/3424
This course covers the initial phases of the software-development life cycle.  Topics include planning, requirements analysis, requirements specification, and design.  A number of techniques for performing analysis and design are explored and applied in a major project.

SWE 6633  Software Project Management
3-0-3
Prerequisites: SWE 6623
Focus on organizational and technical roles in software engineering.  Emphasis on: models of software life cycle, software maturity framework, strategies of implementing software, software process assessment, project planning tools, software configuration management, managing software quality and usability, leadership principles, and professional and ethical issues.  A required project combines technical and managerial techniques for assessing software design and development.

SWE 6723  Software Engineering II
3-0-3
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 in the analysis, design, and implementation of a system.

SWE 6743  Object-Oriented Analysis and Design
3-0-3
Prerequisites: CS 5183/3663 and SWE 6623
This course explores the object-oriented software development process including analysis, design, and programming. Emphasis is on the object-oriented paradigm.

SWE 6753 Computer Game Design & Development
3-0-3
Prerequisite: CS 5123 Advanced Programming and Data Structures
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 Quality Management
3-0-3
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
3-0-3
Prerequisites: CS 5183/3663 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 prototyping; embedded systems in support of ubiquitous computing; and function-behavior analysis.

SWE 6813  Component Based Software Development
3-0-3
Prerequisites: CS 5123 and CS 5183
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
3-0-3
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 Construction and Testing
3-0-3
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 hardware software co-design.

SWE 6883  Formal Methods in Software Engineering
3-0-3
Prerequisites: CS 5423 and SWE 6623
This course involves a study of formal methods applicable to software development with an emphasis on methods that support formal specification and verification.  Such methods may include transformational techniques, logic-based formalisms, algebraic and model-based specifications, tools, etc.

SWE 6901-6903  Special Topics
1 to 3 hours
Prerequisite: As determined by the Instructor and Program Head
Special topics selected by the program head.  Offered on a demand basis.  A student may repeat this course with special permission.

SWE 7903  Software Engineering Capstone
3-0-3
Prerequisite: Satisfactory completion of the MSSWE core (SWE 6623, SWE 6633, SWE 6723, SWE 6743, SWE 6763, and SWE 6883)
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 project.

.   

Modified: July 17, 2003