Software Engineering
SE 5354 Software Engineering (3 semester credit hours) Formal specification and program verification. Software life-cycle models and their stages. System and software requirements engineering; user-interface design. Software architecture, design, and analysis. Software testing, validation, and quality assurance. Prerequisite or Corequisite: CS 5343. (3-0) S
SE 5V81 Special Topics in Computer Science (1-9 semester credit hours) May be repeated for credit as topics vary (9 semester credit hours maximum). Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S
SE 6301 Special Topics in Software Engineering (3 semester credit hours) May be repeated for credit as topics vary. Prerequisite: CS 5343. (3-0) S
SE 6316 Agile Methods (3 semester credit hours) The course addresses what agile methods are, how they are implemented (correctly), and their impact on software engineering. A variety of agile methods are described with a focus on Scrum. Issues associated with planning and controlling agile projects, along with the challenges associated with adopting agile methods are discussed. Prerequisite: SE 5354. (3-0) Y
SE 6329 Object-Oriented Software Engineering (3 semester credit hours) Concepts, methods and techniques necessary to efficiently capture software requirements in use cases and transform them into design and implementation. Use of UML in the context of an iterative, agile process with an OO model transformation approach. Use of an advanced CASE tool that allows the synchronization between the various models and the code. Prerequisites: SE 5354 and knowledge of Java. (3-0) S
SE 6354 Advanced Software Engineering (3 semester credit hours) This course covers advanced theoretical concepts in software engineering and provides an extensive hands-on experience in dealing with various issues of software development. It involves a semester-long group software development project spanning software project planning and management, analysis of requirements, construction of software architecture and design, implementation, and quality assessment. The course will introduce formal specification, component-based software engineering, and software maintenance and evolution. Must have knowledge of Java. Prerequisite: SE 5354 or equivalent. (3-0) S
SE 6356 (CS 6356 and SYSM 6308) Software Maintenance, Evolution, and Re-Engineering (3 semester credit hours) Principles and techniques of software maintenance. Impact of software development process on software justifiability, maintainability, evolvability, and planning of release cycles. Use of very high-level languages and dependencies for forward engineering and reverse engineering. Achievements, pitfalls, and trends in software reuse, reverse engineering, and re-engineering. Prerequisite: SE 5354. (3-0) Y
SE 6361 (CS 6361) Advanced Requirements Engineering (3 semester credit hours) System and software requirements engineering. Identification, elicitation, modeling, analysis, specification, management, and evolution of functional and non-functional requirements. Strengths and weaknesses of different techniques, tools, and object-oriented methodologies. Interactions and trade-offs among hardware, software, and organization. System and sub-system integration with software and organization as components of complex, composite systems. Transition from requirements to design. Critical issues in requirements engineering. Prerequisite: SE 5354. (3-0) S
SE 6362 Advanced Software Architecture and Design (3 semester credit hours) Concepts and methodologies for the development, evolution, and reuse of software architecture and design, with an emphasis on object-orientation. Identification, analysis, and synthesis of system data, process, communication, and control components. Decomposition, assignment, and composition of functionality to design elements and connectors. Use of non-functional requirements for analyzing trade-offs and selecting among design alternatives. Transition from requirements to software architecture, design, and to implementation. State of the practice and art. Prerequisite: SE 5354. (3-0) S
SE 6367 (CS 6367 and SYSM 6310) Software Testing, Validation and Verification (3 semester credit hours) Fundamental concepts of software testing. Functional testing. GUI based testing tools. Control flow based test adequacy criteria. Data flow based test adequacy criteria. White box based testing tools. Mutation testing and testing tools. Relationship between test adequacy criteria. Finite state machine based testing. Static and dynamic program slicing for testing and debugging. Software reliability. Formal verification of program correctness. Prerequisite: SE 5354. (3-0) Y
SE 6387 Advanced Software Engineering Project (3 semester credit hours) This course is intended to provide experience in a group project that requires advanced technical solutions, such as distributed multi-tier architectures, component-based technologies, automated software engineering, etc., for developing applications, such as web-based systems, knowledge-based systems, real-time systems, etc. The students will develop and maintain requirements, architecture and detailed design, implementation, and testing and their traceability relationships. Best practices in software engineering will be applied. Prerequisites: (CS 6361 or SE 6361 or SYSM 6309) or SE 6362 and (SE 6329 or CS 6359). Corequisite: CS 6367 or SE 6367 or SYSM 6310. (3-0) Y
SE 6388 Software Project Planning and Management (3 semester credit hours) Techniques and disciplines for successful management of software projects. Project planning and contracts. Advanced cost estimation models. Risk management process and activities. Advanced scheduling techniques. Definition, management, and optimization of software engineering processes. Statistical process control. Software configuration management. Capability Maturity Model Integration (CMMI). Prerequisite: SE 5354. (3-0) Y
SE 6V81 Independent Study in Software Engineering (1-9 semester credit hours) May be repeated for credit. Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S
SE 7301 (CS 7301) Recent Advances in Computing (3 semester credit hours) Advanced topics and publications will be selected from the theory, design, and implementation issues in computing. May be repeated for credit as topics vary. Prerequisites: ENCS majors only and instructor consent required. (3-0) Y
SE 8V02 Topics in Software Engineering (1-6 semester credit hours) Pass/Fail only. May be repeated for credit as topics vary (9 semester credit hours maximum). Prerequisite: ENCS majors only and instructor consent required. ([1-6]-0) S
SE 8V07 Research (1-9 semester credit hours) Open to students with advanced standing subject to approval of the graduate advisor. Pass/Fail only. May be repeated for credit. Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S
SE 8V99 Dissertation (1-9 semester credit hours) Pass/Fail only. May be repeated for credit. Prerequisites: ENCS majors only and instructor consent required. ([1-9]-0) S