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
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