SWEN Course Listing

Modern Software Methodologies (SWEN 603, 3 Credits)
An in-depth overview of widely used modern software development methodologies. Historical software development methods are introduced. Topics include rapid application development and Agile development, Scrum, Extreme Programming (XP), Unified Process, EVO (Evolutionary Project Management), lean software development, test-driven development, feature-driven development, Crystal solutions, Rational Unified Process, and other Unified Process methods. Discussion also covers advantages and drawbacks of using each method.

Software Requirements (SWEN 645, 3 Credits)
An examination of major models of software requirements and specifications, existing software standards and practices, and formal methods of software development. Topics include writing system and software requirements, formal specification analysis, formal description reasoning, models of "standard" paradigms, and translations of such models into formal notations.

Software Design and Implementation (SWEN 646, 3 Credits)
An exploration of modern software development techniques, tools, and technologies for building large, complex systems. Topics include software development processes and the role of design in those processes. Discussion also covers major design methods, available computer-aided software engineering (CASE) tools, the proper application of design methods, and techniques for estimating the magnitude of the development effort. Object-oriented programming is presented. Focus is on building software products using these technologies.

Software Verification and Validation (SWEN 647, 3 Credits)
A study of methods for evaluating software for correctness, efficiency, performance, and reliability. Skills covered include program proving, code inspection, unit-level testing, and system-level analysis. The difficulty and cost of some types of analysis and the need for automation of tedious tasks are examined. Emphasis is on problem-solving skills, especially in analyzing code.

Usability Engineering (SWEN 651, 3 Credits)
A study of the theory and practice of designing user interfaces for interactive systems. Topics include the principles of usability engineering and basic rules for usable design. User interfaces are evaluated using techniques such as contextual inquiry, task analysis, and usability testing. Discussion also covers when these techniques are most appropriate.

Advanced Software Design and Implementation (SWEN 656, 3 Credits)
Prerequisite: SWEN 646. An exploration of software design and implementation for reducing complexity of systems. Topics include software design patterns, object-oriented programming, and aspect-oriented programming design. Focus is on building software products using these technologies.

User Interface Implementation (SWEN 661, 3 Credits)
Prerequisite: SWEN 651. An examination of all types of user interfaces. Topics include developing user interfaces using mobile, desktop, and web technologies. Focus is on building user interfaces using these technologies.

Software Engineering Project (SWEN 670, 3 Credits)
Prerequisite: 30 credits of program coursework, including all core courses. A comprehensive examination of the tools, skills, and techniques of software engineering and their application. Completion of a major team project is designed to integrate knowledge and skills gained through previous study and provide experience of the constraints commonly experienced in industry (scheduling, vagueness of clients). Project requires forming teams (organization) and scheduling work to meet the deadlines imposed by the contract (syllabus).