CS 587 -
Model-Driven Software Development

Bilkent University

Description
Study Material
Schedule
Grading
Project
Exam Guidelines


Bilsen Logo

Instructor:
Dr. Bedir Tekinerdoğan
bedir@cs.bilkent.edu.tr




















Exam Guidelines

For the exam you have to be able to answer the following questions:

  • What is a model?

  • What is a metamodel?

  • What is a metametamodel?

  • Multiple views of models

  • What is model-based development?

  • What is model-driven development? What is the different with model-based development?

  • How does MDSD help to improve reuse and productivity?

  • What are modeling maturity levels?

  • What is the targeted modeling maturity level in MDSD?

  • What is agile software development?

  • How does agile software development cope with documentation?

  • What is the role of domain in MDSD?

  • Abstraction of Computing vs. Abstraction from Domain

  • Why is roundtrip engineering not MDSD?

  • UML1.* to UML2.*

  • SysML

  • What is Software Language Engineering?

  • Difference between Software Language Designer vs. Software Language User

  • Motivation for metamodeling

  • What is abstract syntax?

  • What is concrete syntax?

  • What is static semantics?

  • How to use OCL?

  • What is the semantics of a model?

  • Example metamodels

  • What defines the quality of a metamodel?

  • What is metamodel conformance? How to check this?

  • What is grammar? What are the different types?

  • What is a metalanguage?

  • What is a domain-specific language?

  • What is BNF and EBNF? What is the relation?

  • What is self-description?

  • Why is metamodeling more expressive than grammars?

  • What is MOF?

  • What is the relation between EBNF and MOF?

  • Why do we need metametamodeling?

  • What is the OMG 4 layer architecture?

  • Why is MOF not only for OO? How to use it for non-OO?

  • What are the four possible ways for creating metamodels?

  • How to define a metamodel from scratch?

  • What is heavyweight extension of a metamodel?

  • What is profiling?

  • What is the difference of profiling in UML1.* vs. profiling in UML2.*?

  • Why is it necessary to define a domain-specific concrete syntax?

  • What is the extension relationship in UML2.*?

  • How to define a profile (textual/visual)?

  • How to use a profile?