Published Sep 3, 2019

Episode 117: Bran Selic on UML

Bran Selic delves into the intricacies of UML and its evolution, discussing the Object Constraint Language (OCL) for precision in modeling, the balance of abstraction in Model-Driven Architecture, and the scalability of UML 2. With insights into tool support and platform independence, the episode explores the adaptability of UML in modern software engineering.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • OCL's Role

    The Object Constraint Language (OCL) plays a crucial role in refining UML models by providing a way to define constraints on class diagrams. explains that OCL was introduced to make UML semantics more precise and is semantically aligned with UML, allowing users to impose additional constraints on their models 1. Despite its seemingly complex syntax, OCL is accessible to those familiar with high school math, as it uses first-order predicate logic without the intimidating mathematical symbols 2. highlights how OCL enables more precise definition of semantics by allowing constraints like specifying a variable as all integers greater than zero 2.

       

    Language Evolution

    The evolution of modeling languages has seen a shift towards more formal uses, with some languages now serving as implementation tools. notes that while modeling languages like UML are used for documentation and communication, they can also function as implementation facilities, similar to how Fortran raised abstraction levels above assembly language 3. He emphasizes that modeling languages should offer flexibility, allowing users to move from informal sketches to formal blueprints without being constrained by rigid systems 3. adds that domain-specific languages provide the expressive power needed for precise domain-specific subtleties, highlighting the ongoing need for specialized languages 4.

Related Episodes