ESOF - Software Engineering
ESOF 322. Software Engineering. 3 Credits. (3 Lec) F
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
ESOF 422. Advanced Software Engineering. 3 Credits. (3 Lec) S even years
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) S
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.
ESOF 491. Special Topics. 1-4 Credits.
ESOF 522. Empirical Software Engr. 3 Credits. (3 Lec) S odd years
PREREQUISITE: ESOF 322 or equivalent and STAT 216Q or equivalent.
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 523. Software Testing and Analysis. 3 Credits. (3 Lec) F
PREREQUISITES: CSCI 232 and CSCI 246
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.