ESOF - Software Engineering

ESOF 322  Software Engineering: 3 Credits (3 Lec)

PREREQUISITE: CSCI 232. (F, Sp) 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: Cybersecurity Practices: 3 Credits (3 Lec)

PREREQUISITE: ESOF 322. (Spring, odd years.) This course covers the early phases of the software lifecycle, extending UML and Design Pattern knowledge to formulate precise requirements. The course also covers advanced software modeling and specification techniques. Model-driven engineering is introduced through model-driven software development and support tools such as UML, USE and OCL. Finally, the course covers cybersecurity aspects of software engineering through discussion of cloud computing, digital forensics, the security lifecycle of software, and security analysis techniques

View Course Outcomes:

  1. Understand Formal Methods.
  2. Understand how to analyze specifications.
  3. Understand various software testing techniques.
  4. Basics of fault tolerance (if time allows)

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.

View Course Outcomes:

  1. Design and implement a solution to an open-ended problem in software engineering defined by a stakeholder.
  2. Evaluate alternative solutions to a problem in software engineering.
  3. Use software quality assurance techniques to evaluate the quality of developed software engineering solution.
  4. Use written/oral/visual means to document and present the solution to the stakeholder
  5. Understand how to work in a software development team in an agile environment.

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

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

() Fall, even years. 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.

View Course Outcomes:

  1. 1. Understand experimentation, systematic literature reviews, case studies and surveys.
    2. Understand how to use metrics.
    3. Understand measurement theory.
    4. Be able to report results that contain uncertainty.