CSE 411/511 Introduction to Model-Driven Software Engineering

Catalog description:

Study problems in computer science for which we have no known efficient solutions, and the methods used to recognize intractable problems as well as the current approaches taken to cope with those problems. Concept of NP-completeness and poly-time reductions; an introduction to randomized algorithms and the randomized complexity classes PP, RP, and BPP; an introduction to approximation algorithms for solving NP-Hard problems; polynomial-space algorithms and the classes PSPACE and the poly-time hierarchy; Poly-time approximation schemes and approximation algorithms via linear-program rounding.

Prerequisite:

CSE 311

Graduate Students:

Graduate Students will be expected to conduct an independent research paper component where they will survey the field, find an appropriate topic of study and conduct and present their findings.

Course Outcomes:

  1. Design conceptual models as primary artifacts to be used in model-driven software engineering projects.
  2. Create meta-models and resulting instance models for typical software systems.
  3. Apply various model transformation techniques including model-to-model and model-to-text transformations.
  4. Create dynamic behavioral models capable of representing real-world behaviors using standard behavioral modeling languages.
  5. Apply simulation of models to ensure correctness and completeness of models.
  6. Apply model-based testing techniques to generate and execute tests for model-driven software engineering projects.
  7. (Graduate students only) Perform an in-depth literature survey on a relevant model-driven software engineering research topic and present the results in a research paper.