Published Sep 3, 2019

Episode 5: Model-Driven Software Development Pt. 1

Unpack the intricacies of Model-Driven Software Development (MDSD) with Markus Völter and Eberhard Wolff as they delve into the use of graphical modeling tools and UML for refining software architecture, while contrasting MDSD with Model-Driven Architecture to illuminate practical implementation strategies.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • MDSD vs. MDA

    Markus Völter and Eberhard Wolff explore the distinctions between Model-Driven Software Development (MDSD) and Model-Driven Architecture (MDA). Markus explains that MDA is a specific flavor of model-driven development, focusing on standardization by the OMG, while MDSD encompasses broader concepts like models, meta-models, and domain-specific languages (DSLs) 1. MDA aims for tool interoperability through standards like the Meta Object Facility (MoF) and QVT, but its practical utility has been limited 1. Markus notes, "MDA is certainly useful to standardize certain aspects to make tool interoperability become a reality."

    MDA is certainly useful to standardize certain aspects to make tool interoperability become a reality.

    ---

    In practice, MDA tools often require rendering DSLs as UML profiles, which can be restrictive. Markus highlights alternative approaches like generative programming and domain-specific visual modeling, emphasizing the need for pragmatic tool selection 2.

       

    Key Concepts

    The core of Model-Driven Software Development (MDSD) lies in using formal models that tools can process, requiring well-defined structures and semantics. Markus emphasizes the importance of domain-specific languages (DSLs) in capturing the core concepts of a domain, allowing developers to model relationships, properties, and semantics effectively 3. He explains, "The basic idea of model-driven software development is to make the development efforts more domain specific."

    The basic idea of model-driven software development is to make the development efforts more domain specific.

    ---

    Concrete syntax, whether graphical or textual, is crucial for representing these concepts, and model transformation is necessary to convert models into executable artifacts 3. Markus and Eberhard discuss how MDSD simplifies development by providing domain-specific abstractions, reducing the need for manual transitions from domain concepts to software technology 4.

Related Episodes