View
47
Download
2
Category
Preview:
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
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) Z-based Object-Oriented
Modeling(ZOOM) UML-2 Event-Driven Framework
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”.
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.
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
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
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).
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.
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.
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
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.
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
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;}
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"/>
……
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");
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
Prototype Development
ZOOM-M ZOOM-FSM & ZOOM-UIDL A translation engine for the behavioral models A set of rule-based tools for UI generation
Conclusion
ZOOM: An Approach to MDD Separation the model design to three
parts. An event-based approach for model
integration
Thank you
Questions?
Recommended