Model based software development - F 2025 (Quizlet)

Quiz for the course "Model based software development" 2025, based on elements from https://quizlet.com/dk/1048622145.


Click the button to start the quiz

Start Quiz

<- Leave quiz



Questions in the quiz (104)


A model that defines the structure, semantics, and constraints of other models; it describes how a valid model is formed.

Select the correct term that matches the definition.

  • Metamodel

An abstraction representing a system or concept, typically created following the rules of a metamodel.

Select the correct term that matches the definition.

  • Model

A development approach where models are integral to the software system, enabling code generation and execution.

Select the correct term that matches the definition.

  • Model-Driven System

The process of designing metamodels by identifying common properties across examples and formalizing them.

Select the correct term that matches the definition.

  • Metamodeling

A domain-specific language implemented within the syntax and semantics of a host language, benefiting from its features and tooling.

Select the correct term that matches the definition.

  • Internal DSL

A style of internal DSL design that uses method chaining and readable expressions to create domain-specific constructs.

Select the correct term that matches the definition.

  • Fluent API

A model used to represent reactive systems through defined states and transitions, often used in DSL assignments.

Select the correct term that matches the definition.

  • State Machine

A type of model that shows entities and their attributes and relationships; often used as an example in MDSD.

Select the correct term that matches the definition.

  • Class Diagram

The formal structure (syntax) and meaning (semantics) of languages and models in MDSD.

Select the correct term that matches the definition.

  • Syntax and Semantics

The process of producing source code automatically from models defined using DSLs and metamodels.

Select the correct term that matches the definition.

  • Code Generation

The general-purpose language in which an internal DSL is implemented (e.g., Java, Python, Ruby).

Select the correct term that matches the definition.

  • Host Language

A technique used in internal DSLs where multiple method calls are linked in a single statement for readability and fluency.

Select the correct term that matches the definition.

  • Method Chaining

A pattern used in internal DSLs to construct expressions programmatically, often using method chaining.

Select the correct term that matches the definition.

  • Expression Builder

A design pattern for creating immutable objects used in internal DSLs to encapsulate model data.

Select the correct term that matches the definition.

  • Construction Builder

A variable representing the current object or state being operated on within an internal DSL expression.

Select the correct term that matches the definition.

  • Context Variable

A data structure that holds associations between names and their corresponding definitions, used in DSLs for static typing and validation.

Select the correct term that matches the definition.

  • Symbol Table

A symbol table used specifically to manage class names and types in internal DSLs to support static type checking.

Select the correct term that matches the definition.

  • Class Symbol Table

A form of DSL where constructs are mapped directly to behavior in the host language without generating an intermediate model.

Select the correct term that matches the definition.

  • Shallow Embedding

A form of DSL where constructs are mapped to a metamodel instance, which can then be interpreted or transformed.

Select the correct term that matches the definition.

  • Deep Embedding

A standalone domain-specific language with its own syntax and grammar, requiring a custom parser and tooling infrastructure.

Select the correct term that matches the definition.

  • External DSL

A formal set of rules defining the structure of a language, used in designing external DSLs.

Select the correct term that matches the definition.

  • Grammar

A component that processes the syntax of a language based on grammar rules to produce an abstract syntax tree (AST) or model.

Select the correct term that matches the definition.

  • Parser

The process of converting input text into a sequence of tokens with syntactic meaning, preceding parsing in language processing.

Select the correct term that matches the definition.

  • Lexing

The process of linking identifiers in the code to their corresponding definitions, crucial in model interpretation and validation.

Select the correct term that matches the definition.

  • Name Resolution

A tree representation of the syntactic structure of code or a model, omitting unnecessary syntax details.

Select the correct term that matches the definition.

  • Abstract Syntax Tree (AST)

A formal grammar that describes the possible structures in a language, used to define DSL syntax.

Select the correct term that matches the definition.

  • Context-Free Grammar (CFG)

A notation for expressing context-free grammars, commonly used in DSL development.

Select the correct term that matches the definition.

  • Backus-Naur Form (BNF)

A more expressive form of BNF that includes notations like *, +, and ? for conciseness and clarity in grammar definitions.

Select the correct term that matches the definition.

  • Extended BNF (EBNF)

A framework for developing external DSLs in Eclipse, providing grammar definition, parsing, validation, and code generation tools.

Select the correct term that matches the definition.

  • Xtext

A Java-based language used in Xtext for writing code generators with features like template expressions, type inference, and extension methods.

Select the correct term that matches the definition.

  • Xtend

A component that transforms model instances into executable or source code, often using templates and transformation rules.

Select the correct term that matches the definition.

  • Code Generator

A structured code snippet used in code generation that mixes static text with dynamic model-driven content.

Select the correct term that matches the definition.

  • Template

A common operation in Xtend-based code generation that outputs generated content to a new source file.

Select the correct term that matches the definition.

  • GenerateFile

The sequence of steps in transforming a DSL program to executable code: lexing, parsing, name resolution, analysis, and generation.

Select the correct term that matches the definition.

  • Compilation Pipeline

The ability of a language (like Xtend) to deduce variable types automatically based on context, reducing verbosity.

Select the correct term that matches the definition.

  • Type Inference

A feature in Xtend that allows adding new methods to existing types without modifying their definitions.

Select the correct term that matches the definition.

  • Extension Method

A feature in Xtend that enables method overloading based on parameter types, used for clean type-based logic branching.

Select the correct term that matches the definition.

  • Dispatch Annotation

The process in Xtext/Xtend to generate Java-compatible code from DSL models, enabling further compilation or execution.

Select the correct term that matches the definition.

  • Java Integration

A grammar defined in Xtext using a format similar to Extended BNF, specifying DSL syntax and structure.

Select the correct term that matches the definition.

  • EBNF Grammar in Xtext

The process of analyzing a sequence of tokens to construct a syntactic structure (AST) according to a grammar.

Select the correct term that matches the definition.

  • Parsing

A situation where the same input can be interpreted in multiple valid ways by a grammar, leading to unpredictable behavior.

Select the correct term that matches the definition.

  • Parsing Ambiguity

A grammar structure where a rule refers to itself as its first element, problematic for top-down parsers.

Select the correct term that matches the definition.

  • Left Recursion

A parsing property that defines how operators of the same precedence are grouped in the absence of parentheses.

Select the correct term that matches the definition.

  • Associativity

The set of rules that determine the order in which operations are evaluated in expressions during parsing.

Select the correct term that matches the definition.

  • Precedence

A parsing strategy used to restructure grammar rules (e.g., for associativity or left recursion elimination) to generate correct ASTs.

Select the correct term that matches the definition.

  • Tree Rewrite Rule

An AST constructed from an unambiguous grammar that accurately reflects the semantic intent of the input model.

Select the correct term that matches the definition.

  • Well-Defined AST

The parsing of arithmetic expressions involving precedence and associativity, often used in MDSD validations.

Select the correct term that matches the definition.

  • Math Expression Parsing

A full syntactic tree generated from grammar that includes all grammar rule applications, unlike the simplified AST.

Select the correct term that matches the definition.

  • Parse Tree

The process of checking that a model or DSL program adheres to semantic rules beyond grammar, ensuring correctness and consistency.

Select the correct term that matches the definition.

  • Validation

The region of a program where a name or identifier is visible and can be resolved, crucial for name resolution in MDSD.

Select the correct term that matches the definition.

  • Scope

The verification of model structure (e.g., no cycles in inheritance) to ensure it adheres to logical constraints.

Select the correct term that matches the definition.

  • Structural Validation

A component or validation rule that ensures expressions use compatible types, preventing type errors in generated or executed code.

Select the correct term that matches the definition.

  • Type Checker

A modeling error where a class inherits from itself, directly or indirectly, violating hierarchical logic.

Select the correct term that matches the definition.

  • Circular Inheritance

Domain-specific semantic rules that define what constitutes a valid model beyond syntactic correctness.

Select the correct term that matches the definition.

  • Well-Formedness Rules

Rules defined to restrict the possible valid metamodel instances, implemented outside of the grammar.

Select the correct term that matches the definition.

  • Validation Constraints

A best practice in Xtext: keep the grammar simple and implement complex semantic rules via validation.

Select the correct term that matches the definition.

  • Bettini Principle

A construct in Xtext grammar that links elements by name, enabling relationships between model elements (e.g., linking attributes to entities).

Select the correct term that matches the definition.

  • Cross-Reference

A directive in Xtext used to explicitly name the class that a grammar rule should instantiate in the metamodel.

Select the correct term that matches the definition.

  • Returns Keyword

A construct in Xtext that specifies an object creation in the grammar, useful for creating hierarchies in the metamodel.

Select the correct term that matches the definition.

  • Action ({ClassName})

A grammar technique that restructures rules to avoid issues like left recursion while maintaining the desired AST structure.

Select the correct term that matches the definition.

  • Tree Rewrite Action

The practice of designing and refining the metamodel inferred from grammar to support correct model interpretation and code generation.

Select the correct term that matches the definition.

  • Metamodel Programming

The use of alternatives in Xtext grammar rules to generate class hierarchies in the metamodel.

Select the correct term that matches the definition.

  • Subclassing via Grammar

The grammar-based definition of relationships between elements (e.g., entities and attributes), which become links in the metamodel.

Select the correct term that matches the definition.

  • Association via Grammar

The inclusion of external function signatures in the DSL, allowing invocation within models and validation of return types.

Select the correct term that matches the definition.

  • External Function Declaration

A grammar and model construct that enables calling functions, often used in constraint or behavior definitions within a DSL.

Select the correct term that matches the definition.

  • Function Call Expression

An extended grammar design that supports nested and typed expressions, including function calls, comparisons, and logical operations.

Select the correct term that matches the definition.

  • Complex Expression Grammar

A test verifying that a DSL input string correctly parses into a valid model instance without syntax errors.

Select the correct term that matches the definition.

  • Parser Test

A test that checks custom semantic rules on models (e.g., naming conventions, inheritance rules) using validation helpers in Xtext.

Select the correct term that matches the definition.

  • Validation Test

A test that ensures correct name resolution within models, verifying identifiers are properly linked to declarations.

Select the correct term that matches the definition.

  • Scope Test

A utility in Xtext testing used to load and parse DSL programs for structural validation.

Select the correct term that matches the definition.

  • ParserHelper

A utility in Xtext for asserting errors or warnings on specific model elements during validation.

Select the correct term that matches the definition.

  • ValidationTestHelper

A built-in Xtext error code used when name resolution fails (e.g., undefined reference).

Select the correct term that matches the definition.

  • Diagnostic.LINKING_DIAGNOSTIC

A utility to test code generation by asserting that generated output matches expected results or compiles correctly.

Select the correct term that matches the definition.

  • CompilationTestHelper

A method used in generator testing to confirm that the DSL compiles into the expected source code string.

Select the correct term that matches the definition.

  • assertCompileTo

A technique in generator testing that involves executing or reflecting on generated code to confirm behavior.

Select the correct term that matches the definition.

  • Meta-Programming Validation

A feature or test scenario where a DSL generates multiple output files, requiring more complex validation and content checks.

Select the correct term that matches the definition.

  • Multi-File Code Generation

A focus on the developer's interaction with programming tools and environments, emphasizing usability, comprehension, and feedback.

Select the correct term that matches the definition.

  • Programming Experience (PX)

A development paradigm where code changes produce immediate and meaningful runtime feedback, enhancing exploration and understanding.

Select the correct term that matches the definition.

  • Live Programming

A classification system describing how responsive and immediate the feedback is in a programming environment, from visual-only to predictive systems.

Select the correct term that matches the definition.

  • Level of Liveness

A property of live programming systems where changes to code are instantly reflected in program behavior.

Select the correct term that matches the definition.

  • Immediate Connection

Feedback in live programming that helps developers understand runtime behavior beyond logs, often visual or state-linked.

Select the correct term that matches the definition.

  • Meaningful Feedback

A technique used in live programming to show current execution state within a model (e.g., for reactive systems), improving traceability.

Select the correct term that matches the definition.

  • State Machine Visualization

The ability to connect runtime behavior or feedback back to specific model elements, enhancing debugging and validation.

Select the correct term that matches the definition.

  • Traceability

A live programming approach for robotics where state changes and program updates are applied in real time to robotic systems.

Select the correct term that matches the definition.

  • Live Robot Programming (LRP)

A method in live programming where program execution state is preserved and transferred between program versions during updates.

Select the correct term that matches the definition.

  • Runtime State Transfer

A domain-specific language represented through graphical elements or blocks (e.g., Blockly), aimed at improving accessibility and feedback.

Select the correct term that matches the definition.

  • Visual DSL

A framework for classifying and enforcing constraints on values and expressions in a language to ensure program correctness.

Select the correct term that matches the definition.

  • Type System

The process of validating the type correctness of operations and expressions, either at compile-time (static) or run-time (dynamic).

Select the correct term that matches the definition.

  • Type Checking

A language that prevents untrapped runtime errors through type enforcement and controlled memory access (e.g., Java, LISP).

Select the correct term that matches the definition.

  • Safe Language

A type system approach where types are defined directly in the syntax of the language (e.g., int x = 5).

Select the correct term that matches the definition.

  • Explicit Typing

A type system approach where the language infers types based on context without requiring explicit type declarations.

Select the correct term that matches the definition.

  • Implicit Typing

The ability of values or functions to operate on different types while maintaining a common interface.

Select the correct term that matches the definition.

  • Polymorphism

A type system feature allowing a subtype to be used wherever its supertype is expected, enabling flexibility and reuse.

Select the correct term that matches the definition.

  • Subtyping

Xtext's ability to determine types automatically in certain expressions, supporting both explicit and implicit typing in DSLs.

Select the correct term that matches the definition.

  • Type Inference

An expression where the operands or function calls do not match the expected type, flagged by validation.

Select the correct term that matches the definition.

  • Invalid Type Expression

A rule in DSL validation that ensures operations like addition or comparison are only performed on compatible types.

Select the correct term that matches the definition.

  • Expression Type Validation

A software engineering approach that uses models and metamodels to abstract, automate, and generate software systems.

Select the correct term that matches the definition.

  • Model-Driven Software Development (MDSD)

A principle in MDSD where correct software is generated from verified models using a trustworthy code generator.

Select the correct term that matches the definition.

  • Correct by Construction

The idea in MDSD that models are executable and form a core part of the software, not just documentation.

Select the correct term that matches the definition.

  • Models as Code

A programming language tailored to a specific problem domain, used in MDSD to express models clearly and concisely.

Select the correct term that matches the definition.

  • Domain-Specific Language (DSL)

The direct execution of models using interpreters or virtual machines, instead of generating code.

Select the correct term that matches the definition.

  • Model-Based Execution

The cognitive distance between domain concepts and their implementation in code, which MDSD aims to reduce.

Select the correct term that matches the definition.

  • Representation Gap

Productivity gain, Reusability, Automation, Less Errors, Code as Documentation

Select the correct term that matches the definition.

  • Benefits of MDSD

What are some of the Benefits of MDSD?

Select the correct term that matches the definition.

  • Productivity gain

  • Reusability

  • Automation

  • Less Errors

  • Code as Documentation