190 likes | 354 Views
Model-Based Programming: Executable UML with Sequence Diagrams. By Ruben Campos Cal State L.A. Computer Science Thesis Work Spring 2007. Acknowledgements. Dr. R. Abbott Dr. R. Soley, CEO of OMG. Objective. Design a conceptual xUML Engine to achieve true Model-Based Programming. Strategy.
E N D
Model-Based Programming: Executable UML with Sequence Diagrams By Ruben Campos Cal State L.A. Computer Science Thesis Work Spring 2007
Acknowledgements • Dr. R. Abbott • Dr. R. Soley, CEO of OMG
Objective • Design a conceptual xUML Engine to achieve true Model-Based Programming
Strategy • Understand xUML • Understand the OMG Executable UML (xUML) specification titled “Semantics of a Foundational Subset for Executable UML Models” • Understand/Critique Mellor/Balcer xUML Implementation • Propose alternative design of conceptual xUML Implementation
What is xUML? • According to the OMG Executable UML will enable the following: • “…construction, verification, translation, and execution of computationally complete executable models.” • xUML will allow for a method by which a Software model can be directly executed
OMG Specification • Provided by Dr. Soley, CEO of OMG • Objective – Define runtime behavior for UML metamodel elements in order to enable a chain of tools that support construction, verification, translation, and execution of computationally complete executable models
Executable UML Foundation Architecture • The Foundational UML Subset (fUML) • Executable subset of standard UML • Used to define, in an operational style, the dynamic and static semantics of modeling languages (e.g. - standard UML) • For example, the semantics of UML statecharts can be specified as a program written in fUML. • The Basic UML Subset (bUML) • A subset of fUML • Has a corresponding mathematically formal semantics definition • Used to specify the semantics of fUML • Provides formal treatment of fUML programs • Formal Specification • Queen’s University Project to define formal semantics [5]
Mellor/Balcer xUML Design • According to Balcer and Mellor [1] the steps to building an Executable UML model would be as follows: • Create Use Case and Domain Models simultaneously. • Model Domains in the form of Class Diagrams • Create Autonomous State Diagrams from the Class Diagrams • State Diagrams will drive the creation of an Executable UML Model using “Action Language” • Executable UML Compilers will compile an Executable UML into a Platform Specific Model
Mellor/Balcer xUML Model Artifacts Classes, State Diagrams, States, Actions, Action Language Domains and Bridges
Mellor/Balcer Design Flaws • Not Pure Model-Based Programming • Reduce Role of Class Diagram • State Diagram Centric • Procedural Action Language
Sequence Diagram Centric xUML Design • xUML Model that uses Sequence Diagram for Execution • Components include: • Use Case Diagram • Sequence Diagram • Class Diagram • Activity Diagram • Assumes UML Diagrams are semantically well-defined
Use Case Diagram Sequence Diagrams Activity Diagrams Class Diagrams xUML Engine xUML Model Translator Java Compiler JVM xUML Engine Architecture
Observation • Programming at some level of abstraction will always be required, even if its Model-Based Programming
References • Mellor, Balcer, Executable UML, A Foundation for Model-Driven Architecture • OMG Draft Specifications • OMG UML 2 Superstructure • OMG UML 2 Infrastructure • Queen’s University Formal Semantics Project, http://www.cs.queensu.ca/~stl/internal/uml2/index.html