UMM: Unified Meta-object Model and Global Systems

Download Report

Transcript UMM: Unified Meta-object Model and Global Systems

From Natural Language Requirements to
Executable Models of Software Components
Barrett R. Bryant
Beum-Seuk Lee
Fei Cao
Wei Zhao
Carol C. Burt
Jeffrey G. Gray
Rajeev R. Raje
Andrew M. Olson
Mikhail Auguston
UniFrame Process
Distributed Resource
Discovery
Component
Deployment
Component
Quality Measures
Modified
Query
Query
System Integrator
Component Developer
Generative Domain Model
Standards
No
Yes
Quality Validation
Deploy
(End)
Domain Expert
(Start)
3
Key Issues
Define a process for construction of heterogeneous
distributed systems from pre-existing components who
advertise functional and non-functional contracts for quality
assurance.
Distributed Resource Discovery - component
specification for deployment and location on
the network
Architecture-based Interoperability –
generation of glue/wrapper code to connect
heterogeneous components
Validation of Quality Requirements –
specification of Quality of Service contracts of
components
4
Possible Solutions
Unified Meta-Component Model (UMM) informal specification of component functional
and non-functional contracts
Two-Level Grammar (TLG) – formal
specification language for describing UMM
and domain-specific information
Model Driven Architecture (MDA) – modelbased interoperability among heterogeneous
components
5
Current Work
Functionality-based
Use Cases
QoS
Component-based
Preprocessing
NL Requirements Document
Informal
Ontology, Formal restrictions
Requirements Document in XML Domain Knowledge in XML
Contextual Natural Language Processing
KB in XML
Knowledge Base
Query in NL
Decontextualization
Two Level Grammar
Data and Function translation
Java
VDM++
XMI
Formal
OCL or UML
6
ATM - Requirements Document
Bank keeps list of accounts. It verifies ID and PIN giving the balance and
updates the balance with ID.
An account has three data fields; ID, PIN, and balance.
ID and PIN are integers and balance is a real number.
ATM has 3 service types; withdraw, deposit, and balance check. For each service
first it verifies ID and PIN from the bank giving the balance.
ATM withdraws an amount with ID and PIN giving the balance in the following
sequence. If the amount is less than or equal to the balance then it decreases the
balance by the amount. And then it updates the balance in the bank with ID.
ATM deposits an amount with ID and PIN giving the balance in the following order.
It increases the balance by amount and then updates the balance in the bank with
ID.
ATM checks the balance with ID and PIN giving the balance.
7
ATM - Requirements Document in XML
<document>
<p>
<s>Bank keeps list of accounts.</s>
</p>
<p>
<s>It verifies ID and PIN giving the balance in the following order.</s>
<s>It selects the account from the list of accounts where the ID of the
account is equal to the ID and the PIN of the account is equal to the
PIN.</s>
<s>And then it assigns the balance of the account into the balance.</s>
</p>
<p>
<s>It updates the balance with ID in the following sequence.</s>
.....
</document>
8
Natural Language Processing
Requirements Document in XML
Requirements Document
Part of Speech Parsing
Knowledge Base
Part of Sentence Parsing
Pronouns
Verb
Noun_Phrase
Context
ATM
Subject
withdraws
Article
Noun
an
amount
Predicate Modifier
Object
Knowledge Base
Pragmatics
Level
Noun
Verb_Phrase
Semantics
Level
Sentence
Noun_Phrase
Syntax
Level
Contextual Natural Language Processing
Two-Level Grammar
Syntax
class Class_Name.
Data_Name {, Data_Name} :: Data_Type {, Data_Type}.
Rule_Name : Rule_Body {, Rule_Body}.
end class.
Knowledge Base
Decontextualization
Two Level Grammar
Data and Function translation
VDM ++
Properties
Example
class Account.
Id, PIN :: Integer.
Balance, Amount :: Float.
withdraw Amount :
Amount <= Balance, Balance := Balance - Amount.
deposit Amount : …
end class.
Natural-language-like syntax
Formal notation
Flexibility
Formalism
Object-oriented structure
Abstraction
Logic/Functional operation
Computation
ATM – Two-Level Grammar
class ATM.
Balance, Amount :: Float.
ID, PIN :: Integer.
withdraw Amount with ID and PIN :
Bank verify ID and PIN giving Account,
Account withdraw Amount.
deposit Amount with ID and PIN :
Bank verify ID and PIN giving Account,
Account deposit Amount.
check balance with ID and PIN giving Balance :
Bank verify ID and PIN giving Account,
Account getBalance Balance.
end class.
11
ATM – Vienna Development Method
class ATM
instance variables
private bank : Bank
operations
public withdraw : real * int * int ==> void
withdraw (amount, ID, PIN) == (dcl account : Account;
account := bank . verify (ID, PIN); account . withdraw (amount); );
public deposit : real * int * int ==> void
deposit (amount, ID, PIN) == (dcl account : Account;
account := bank . verify (ID, PIN); account . deposit (amount); );
public checkBalance : int * int ==> real
checkBalance (ID, PIN) == (dcl account : Account;
account := bank.verify (ID, PIN); return account . getBalance (); );
end ATM
12
System View
ATM - Unified Modeling Language (UML)
14
Model Driven Architecture
OMG initiative for interoperating between
different component technologies
(http://www.omg.org/mda)
Application logic of components conforming
to some domain specification is expressed as
a Platform Independent Model (PIM)
PIM is converted into a Platform Specific
Model (PSM) using a specific component
technology
15
Problems
Application domain logic is typically expressed in
natural language (NL)
Automated tools are needed to develop the domain
specifications from the NL requirements
Transformation from PIM’s to PSM’s should also be
automated or semi-automated, based upon
technology domain knowledge
Models must consider not only functional aspects of
domain logic, but also non-functional properties (i.e.,
Quality of Service – QoS)
16
Video Streaming Naval Application
uav.navair.navy.mil/home.htm
17
18
Model Transformation
Aspect-oriented approach enhanced with
TLG formalism
Augment Abstraction with Separation
Generate PSM by weaving separated
PIM level modules together with various
domain knowledge
19
Model Transformation
Domain knowledge
(Technology,etc..)
PIM
Aspect Weaver
PSM
20
Approach Merits
Natural language as the starting point for
developing the business domain models
Sufficient automation that components may
be modified at the model level or even the
natural language level as opposed to the
code level
Complement MDA with formal methods and
QoS
Targeting the construction of heterogeneous
distributed software systems by the
automated generation of glue/wrapper code
elicited from technology domain knowledge
21
Acknowledgements
This research was supported by U. S. Army Research
Laboratory and U. S. Army Research Office Grant
DAAD190-00-1-0350 and U. S. Office of Naval
Research Grant N000014-01-01-0746.
22
Webpage
http://www.cis.uab.edu/UniFrame
23