ESOF - Software Engineering

ESOF 322  Software Engineering: 3 Credits (3 Lec)

PREREQUISITE: CSCI 232. Software lifecycles, Unified Modeling Language, design patterns, software engineering standards, requirements analysis, development issues, efficiency tools, verification and validation, configuration management, testing and maintenance

ESOF 422  Advanced Software Engineering: 3 Credits (3 Lec)

PREREQUISITE: ESOF 322. Course focuses on the early and late phases of the software lifecycle, extending the knowledge developed in ESOF 322 around UML specifications to formulate precise requirements and develop an understanding of the theoretical foundations of the most common forms of software testing

ESOF 423  Software Engineering Applications: 3 Credits (1 Lec, 2 Lab)

PREREQUISITES: ESOF 322
Application of software engineering techniques and methodologies acquired in previous courses to solve an open-ended software engineering problem provided by stakeholders. Students will use a team based approach to requirements gathering, designing, implementation, testing, integration and delivery of the software solution. CSCI 440 is recommended.

ESOF 491  Special Topics: 1-4 Credits (4 Lec, 4 Lab)

ESOF 522  Empirical Software Engr: 3 Credits (3 Lec)

Empirical software engineering focuses on improving software quality through the use of metrics. The course will provide guidance on designing, analyzing and reporting empirical studies, provide information on techniques and metrics needed to measure desired qualities, and the use of practical approaches to study software evolution. ESOF 322 or equivalent and STAT 216Q are recommended.

ESOF 523  Software Testing and Analysis: 3 Credits (3 Lec)

Students learn and apply state-of-the-art techniques for analyzing and testing programs. This includes automatic test case generation, measuring test adequacy, mutation testing, fault localization and program repair. This course prepares students for practical work in the software industry by exposing them to the latest approaches and tools. This course also prepares students who are interested in cutting-edge research in software testing and analysis. CSCI 232, CSCI 246, and ESOF 322 are recommended.