-
SWE 5123 - Advance Programming & Data Structures
Foundation course for graduate students. Topics include pointers, recursion, data structures such as lists, stacks, queues, trees, etc., sorting and searching, data abstraction, introduction to runtime analysis and big-oh notation. Programming projects are also included.
Prerequisites: CS 5000 or CSE 1322 and CSE 1322L
Credits: 3
-
SWE 6613 - Requirements Engineering
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 requirements.
Credits: 3
-
SWE 6623 - Software Engineering
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 system.
Prerequisites: CS 5000
Credits: 3
-
SWE 6633 - Software Project Planning & Management
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.
Credits: 3
-
SWE 6653 - Software Architecture
This course examines the principles and methods of 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, service oriented, agent-oriented) as well as micro-level architecture including patterns, frameworks, and component-based software engineering are covered in detail.
Credits: 3
-
SWE 6673 - Software Testing and Verification
This course covers concepts, principles, and techniques related to software testing and formal program verification. The course defines the concept of quality in software developments and product and explains how to develop a quality/test plan.The notion of validation and verification is explained in the context of different testing techniques, which include black box testing and white box testing, and other techniques such as inspection and formal verification. The emphasis of the course is on testing techniques, ranging from unit testing to regression testing.
Prerequisites: SWE 6623 and SWE 6613
Credits: 3
-
SWE 6733 - Emerging Software Engineering Processes
This course introduces the essentials of software engineering processes, methods, and tools for the engineering and evolution of contemporary real-world software. The emphasis is on the applicability of new Agile processes in the software life cycle from requirements engineering through operation and maintenance. Students gain understanding with several commonly used Agile processes such as Extreme Programming (XP), Scrum, Len, and Kanban Models, as well as their working mechanics. They will put into practice their knowledge by conducting an Agile-spirit software team project in the course.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6743 - Object-Oriented Analysis & Design
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.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6753 - Game Design & Development
An introduction to computer game design, game design engines, 2D and 3D graphics, game-related algorithms, game control structures and games as simulations. Topics include graphics, multimedia, visualization, animation, artificial intelligence, and tools of game design. Developments using the software engineering life cycle are emphasized. The development and presentation of a game prototype is required.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6763 - Software Evaluation and Measurement
This course covers the principles of software measurement frameworks and methods for assessing process, product, and resource's attributes in various-scale type of software engineering environments. The software metrics based on different quality factors such effectiveness, efficiency, usability, and testability in both object-oriented and traditional settings are introduced. The theory and mechanics of conducting empirical software investigation (Experimentation in SE) for quantitative evaluation of software artifacts are covered.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6783 - User Interaction Engineering
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.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6803 - Independent Study
Independent study/project under the direction of a member of the graduate faculty. Course description will vary.
Credits: 1 to 3 credit hours - will vary depending on the topic
-
SWE 6813 - Web Service Engineering
This course covers the principles and concepts of Service-Oriented Architecture (SOA) and its related general- and domain-specific technologies. Current tools and languages for implementation of service-engineered software systems, including designing, building, assembling, and deploying using Web services and Microservices are discussed in depth. Students will do projects focused on building reusable software in the modern era of service computing.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6823 - Embedded Systems
This course is both project- and research-oriented. Students will be introduced to modern methods, techniques, and tools for specification and design of embedded systems. Current software building technology, testing, reliability analysis, and benchmarking will be used in developing a case-study project. Moreover, challenges and trends in embedded systems techniques, methods, and tools will be presented and analyzed.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6853 - Design Patterns
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.
Prerequisites: SWE 6623
Credits: 3
-
SWE 6863 - Software Engineering Ethics and Legal Issues
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 system.
Credits: 3
-
SWE 6883 - Formal Methods in Software Engineering
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.
Prerequisites: SWE 6623 and SWE 6613
Credits: 3
-
SWE 6901 - Special Topics
Special topics selected by the Department Chair. Offered on a demand basis.
Prerequisites: As determined by the Instructor and Department Chair
Credits: 1 to 3
-
SWE 6902 - Special Topics
Special topics selected by the Department Chair. Offered on a demand basis.
Prerequisites: As determined by the Instructor and Department Chair
Credits: 1 to 3
-
SWE 6903 - Special Topics
Special topics selected by the Department Chair. Offered on a demand basis.
Prerequisites: As determined by the Instructor and Department Chair
Credits: 1 to 3
-
SWE 7803 - Master's 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.
Prerequisites: GPA 3.0 or above; completed all transition courses and 12 graduate course credits in your major program by the end of the semester in which you are seeking thesis topic approval. Thesis topic Approval Form, to which the one page thesis topic description is attached, must be all signed by the thesis Advisor, thesis Committee Members, the Department Chair and the Dean.
Credits: 3
-
SWE 7903 - Software Engineering Capstone
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.
Prerequisites: SWE 6613, SWE 6623, SWE 6673, and SWE 6633
Credits: 3
22