Published Sep 3, 2019

Episode 16: MDSD Pt. 3, Hands-On

Explore the cutting-edge techniques of model-driven software development in Episode 16, where Marcus Blankenship and Priyanka Raghavan delve into polymorphism in templates, state machine implementation, and the complexities of code generation to enhance scalability and performance.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Template Writing

    Template writing is a crucial step in model-driven software development, where code is generated directly from a model without intermediate transformations. explains that templates are defined in a specific language, such as xpand, and are associated with metaclasses, allowing for dynamic code generation based on model elements 1. The process involves creating a root template that serves as the entry point for generating code for state machines, including states and transitions 2. highlights the importance of structuring templates effectively to ensure the generated code meets initial design requirements 3.

       

    Workflow Management

    Workflow management in code generation involves setting up and executing a sequence of steps to transform models into code. describes how workflows are defined in XML files, with components like XMI readers and generators, to automate the process 4. The workflow begins by reading the model file and proceeds to execute the generator, with each component playing a specific role in the sequence 3. emphasizes that understanding the workflow setup is essential for successful code generation, as it ensures all necessary steps are completed efficiently.

       

    Constraint Checks

    Constraint checks are vital for validating models before code generation, ensuring only valid models proceed to the generation phase. explains that constraints are defined using a declarative language similar to OCL, which checks model elements against specified conditions 5. These checks prevent code generation if errors are detected, maintaining the integrity of the output 6. notes that robust constraint checks are crucial in real-world projects to avoid unexpected issues and ensure the reliability of model-driven development 7.

Related Episodes