20
An Integrated Event- Driven Framework Supporting MDD Lizhang Qin, Hongming Liu Chris Jones, Xiaoping Jia

An Integrated Event-Driven Framework Supporting MDD

Embed Size (px)

DESCRIPTION

An Integrated Event-Driven Framework Supporting MDD. Lizhang Qin, Hongming Liu Chris Jones, Xiaoping Jia. Agenda. Introduction An Approach to MDD ZOOM Models Event Framework Prototype Development Conclusion. Introduction. Model-Driven Development (MDD) - PowerPoint PPT Presentation

Citation preview

Page 1: An Integrated Event-Driven Framework Supporting MDD

An Integrated Event-Driven Framework Supporting MDD

Lizhang Qin, Hongming Liu Chris Jones, Xiaoping Jia

Page 2: An Integrated Event-Driven Framework Supporting MDD

Agenda

Introduction An Approach to MDD ZOOM Models Event Framework Prototype Development Conclusion

Page 3: An Integrated Event-Driven Framework Supporting MDD

Introduction

Model-Driven Development (MDD) Z-based Object-Oriented

Modeling(ZOOM) UML-2 Event-Driven Framework

Page 4: An Integrated Event-Driven Framework Supporting MDD

An Approach to MDD

Model Definition Mellor: “a coherent set of formal elements describing

a system built for a purpose that is amenable to a particular form of analysis”.

Seidewitz: a model is “a set of statements about so system under study.

Our definition: a model is “a consistent and complete set of formal elements describing a system that is amenable to analysis”.

Page 5: An Integrated Event-Driven Framework Supporting MDD

An Approach to MDD

Current modeling language of choice: UML-2 for MDD We argue that the true benefits of MDD requires models

that are abstract, understandable, formal, analyzable and complete.

The ZOOM approach consists of a set of notations and supporting tools that attempts to provide an infrastructure that delivers all of these capabilities.

Page 6: An Integrated Event-Driven Framework Supporting MDD

ZOOM Models

FunctionalRequirements

Structural Model

Behavioral ModelDerive

Derive

Derive

ZOOM-FSM

ZOOM-UIDL

UI Model

Device Profile

User Preference

Web Phone

Event-Driven Framework Knowledge-basedModel Compilation

Tools

Rules

Templates

Model Transformation

AndCode Generation

UI Generation

PDA

Desktop

Extra-Functional Requirments

Environmental Requirements

ZOOM-M

Page 7: An Integrated Event-Driven Framework Supporting MDD

ZOOM Models

Separation of Concerns Allows each aspect of the system to be

specified separately, making each aspect easier to write, understand, and change.

Use different specification languages to describe different aspects of the system

Page 8: An Integrated Event-Driven Framework Supporting MDD

Structure Model

Structural models in ZOOM are object-oriented models with classes, relations, and formal specifications of the functionality of the entities.

ZOOM-M, is a Z and OCL based language with a Java/C++ like syntax to make it easy for practitioners to adopt.

A set of supporting tools has been built for ZOOM-M, including, parser, type checker, interpreter, animator, and an automated theorem prover (ATP).

Page 9: An Integrated Event-Driven Framework Supporting MDD

Behavioral Model

The behavioral model is the central communication mechanism that links the structural models with the UI models

ZOOM-FSM include a rich syntactical grammar with formal semantics

an intrinsic mechanism to use the structural models specific by ZOOM-M,

a strong compatibility with the UML-2 state chart.

Page 10: An Integrated Event-Driven Framework Supporting MDD

User Interface Model

Unlike UML-2 and MDA notations, ZOOM separates UI models from other aspects.

We use a User Interface Description Language ZOOM-UIDL to specify the design of UI in a formal way

ZOOM-UIDL is a hierarchical description framework

containing a set of predefined UIDL schemas.

Page 11: An Integrated Event-Driven Framework Supporting MDD

Event-Driven FrameworkZOOM-UIDL UI Model Behavioral Model

UIDL Schema

Structural Model

User Interface StructuralModel (UISM)

Requirement StructuralModel (RSM)

UI Instance FSM Instance

Structural Model Instance

UISM Instance RSM Instance

event

event

codegeneration

instance of instance of

instance of

ZOOM-FSM

ZOOM-M

Run-time System

derives

Event passing

Operation invocation

Instance of

Defines grammar

Code generation

operationinvocation

automaticupdate

SD

R1

R2

R3

MD

Page 12: An Integrated Event-Driven Framework Supporting MDD

A Login Scenario

Login

WilliamUserID

****************Password

OK Cancel

Status: Enter the user info.

Login

WilliamUserID

Password

OK Cancel

Status: Login Fail! Re-Login

Current User William

Add Contact

Chat

Change Information

Buddies Jack (Away)

Mark (Online) Mike (Online)

Penny (Away)

Steve (Busy)

Weny (Out to lunch)

(a) Initial Login Dialog (b) Re-Login Dialog (c) Main Dialog

LoginFail

LoginSuccess

Status label: one instance of TextBox schema in ZOOM-UIDLPhysical view changes during the transition from LoginFail to Idle

OK and Cancel button: instancesof Button schema in ZOOM-UIDL

Raising the events when userclicks them.

Page 13: An Integrated Event-Driven Framework Supporting MDD

Event-Driven Framework(Cont.)ZOOM-UIDL UI Model Behavioral Model

UIDL Schema

Structural Model

User Interface StructuralModel (UISM)

Requirement StructuralModel (RSM)

UI Instance FSM Instance

Structural Model Instance

UISM Instance RSM Instance

event

event

codegeneration

instance of instance of

instance of

ZOOM-FSM

ZOOM-M

Run-time System

derives

Event passing

Operation invocation

Instance of

Defines grammar

Code generation

operationinvocation

automaticupdate

SD

R1

R2

R3

MD

<xs:element name="Button"> <xs:complexType> <xs:attribute name="whenclick" type="xs:string"/>

<xs:attribute name="text" type="xs:string" use="optional"/> <xs:attribute name="selected" type="xs:boolean" use="optional"/> <xs:attributeGroup ref="COMPONENT-ATTRIBUTES"/> </xs:complexType></xs:element>

(a) A simplified version of Button schema in UIDL

public struct UIButton extends UIComponent{ public String whenclick;

public String text; public boolean selected;}

(b) UIButton struct

Page 14: An Integrated Event-Driven Framework Supporting MDD

Event-Driven Framework(Cont.)ZOOM-UIDL UI Model Behavioral Model

UIDL Schema

Structural Model

User Interface StructuralModel (UISM)

Requirement StructuralModel (RSM)

UI Instance FSM Instance

Structural Model Instance

UISM Instance RSM Instance

event

event

codegeneration

instance of instance of

instance of

ZOOM-FSM

ZOOM-M

Run-time System

derives

Event passing

Operation invocation

Instance of

Defines grammar

Code generation

operationinvocation

automaticupdate

SD

R1

R2

R3

MD

1: <Window id="String" name="LoginDialog" show="true">2: <Panel>3: <Label text="Status"/>4: <TextBox name="status" type="text" editable="false" columns="2"/>5: <Label text="UserID"/>6: <TextBox name="userID" type="text" editable="true" columns="2"/>7: <Label text="Password"/>8: <TextBox name="password" type="password" editable="true" columns="2"/>9: 10: <Button name="okButton" whenclick="UIOk" text="OK"/>11: <Button name="cancelButton" whenclick="UICancel" text="Cancel"/>12: </Panel>13: </Window>

public struct TLoginDialog { public UITextBox status; public UITextBox userID; public UITextBox password public UIButton okButton; public UIButton cancelButton;}

Page 15: An Integrated Event-Driven Framework Supporting MDD

Event-Driven Framework(Cont.)ZOOM-UIDL UI Model Behavioral Model

UIDL Schema

Structural Model

User Interface StructuralModel (UISM)

Requirement StructuralModel (RSM)

UI Instance FSM Instance

Structural Model Instance

UISM Instance RSM Instance

event

event

codegeneration

instance of instance of

instance of

ZOOM-FSM

ZOOM-M

Run-time System

derives

Event passing

Operation invocation

Instance of

Defines grammar

Code generation

operationinvocation

automaticupdate

SD

R1

R2

R3

MD

Login

WilliamUserID

****************Password

OK Cancel

Status: Enter the user info.

FSM MachinesEvent: UIOk

……<Button name="okButton" whenclick="UIOk" text="OK"/>

……

Page 16: An Integrated Event-Driven Framework Supporting MDD

Event-Driven Framework(Cont.)ZOOM-UIDL UI Model Behavioral Model

UIDL Schema

Structural Model

User Interface StructuralModel (UISM)

Requirement StructuralModel (RSM)

UI Instance FSM Instance

Structural Model Instance

UISM Instance RSM Instance

event

event

codegeneration

instance of instance of

instance of

ZOOM-FSM

ZOOM-M

Run-time System

derives

Event passing

Operation invocation

Instance of

Defines grammar

Code generation

operationinvocation

automaticupdate

SD

R1

R2

R3

MD

Idle LoginFailUIOk

! messenger.users.exists( u @ u.userID == loginDialog.userID & u.password == loginDialog.password)

loginDialog.password.empty();loginDialog.status.setText("Login Fail! Re-Login");

Page 17: An Integrated Event-Driven Framework Supporting MDD

Event-Driven Framework(Cont.)ZOOM-UIDL UI Model Behavioral Model

UIDL Schema

Structural Model

User Interface StructuralModel (UISM)

Requirement StructuralModel (RSM)

UI Instance FSM Instance

Structural Model Instance

UISM Instance RSM Instance

event

event

codegeneration

instance of instance of

instance of

ZOOM-FSM

ZOOM-M

Run-time System

derives

Event passing

Operation invocation

Instance of

Defines grammar

Code generation

operationinvocation

automaticupdate

SD

R1

R2

R3

MDLogin

WilliamUserID

****************Password

OK Cancel

Status: Enter the user info.

FSMUIOk

Wrong Login Info

login Object State Change

Login

WilliamUserID

Password

OK Cancel

Status: Login Fail! Re-Login

R1 R2 R3

Page 18: An Integrated Event-Driven Framework Supporting MDD

Prototype Development

ZOOM-M ZOOM-FSM & ZOOM-UIDL A translation engine for the behavioral models A set of rule-based tools for UI generation

Page 19: An Integrated Event-Driven Framework Supporting MDD

Conclusion

ZOOM: An Approach to MDD Separation the model design to three

parts. An event-based approach for model

integration

Page 20: An Integrated Event-Driven Framework Supporting MDD

Thank you

Questions?