Transcript Slide 1
June 29, 2005
Conference on Software Engineering Research and Practice
Meta-model Search:
Using XPath for Searching
Domain-Specific Models
Rajesh Sudarsan
Department of Computer Science
Virginia Tech
[email protected]
Dr. Jeff Gray
Department of Computer and
Information Sciences
University of Alabama at Birmingham
[email protected]
June 29, 2005
Conference on Software Engineering Research and Practice
Research Goal
"count(/a/b/following::*)"
“//d/preceding::*”
"name(//attribute::*)"
“sum(//b/child::*)“
"//*/comment()"
"true()"
XMOS
XPath Search Engine
XPath
Processor
XPath Expression
Search
Algorithm
GME BON API
GME Plug-in
Generic Modeling
Environment
Metamodel and
Domain-specific
models
June 29, 2005
Conference on Software Engineering Research and Practice
Outline
Introduction to Searching
Background
XPath
Domain-specific Modeling and GME
XPath Model Search (XMOS)
Summary
June 29, 2005
Conference on Software Engineering Research and Practice
Basics
The keys to successful searching are:
Choosing the right search tool
Knowing about search strategies and how to
use them
Information Retrieval and Data Retrieval
June 29, 2005
Conference on Software Engineering Research and Practice
Example Search Domains
Text Processing tools
E.g. Microsoft Word
Advanced search options in Google
Find/Replace utility in MS Word
World Wide Web
E.g. Google
June 29, 2005
Conference on Software Engineering Research and Practice
Searching in Application
Development Environment
Integrated Development Tools
E.g., MS Visual Studio 6
Domain Modeling Tools
E.g., GME
Do not support advanced
search capabilities
June 29, 2005
Conference on Software Engineering Research and Practice
XPath
W3C standard
Select parts of an XML document
Support for querying
Mainly used in XSLT
XPath syntax is stricter as compared to XQuery
Everything is an expression
Expressions are resolved with respect to current
node or root node
June 29, 2005
Conference on Software Engineering Research and Practice
Expressions
Primary Expressions
Literals,
Operators, Functions (Node-set, String,
Boolean, and Number)
Arithmetic expressions
Location Paths
Axis (self, child, parent, attribute, descendent, ancestor, etc.)
Node tests (Name, *, comment (), text (), node ())
Predicates
Complex Expressions
June 29, 2005
Conference on Software Engineering Research and Practice
Domain-specific Modeling and
GME
What are Models?
Models
are an abstract representation of real
world systems or process.
Domain-Specific Models (DSM)
Models
that address a particular domain
June 29, 2005
Conference on Software Engineering Research and Practice
Model Integrated Computing
Architecture
1
2
Environment Application
Evolution
Evolution
9
A1
A2
A3
4
5
3
1. Meta-programming Interface
2. Semi-Formal Specification
6
8
7
3. Meta-level Translation
5. Model Builder
6. Models
4. DSME
7. Model Interpreter
8. Model Interpretation
9. Application Domain
June 29, 2005
Conference on Software Engineering Research and Practice
Metamodeling Layered Architecture
Meta-metamodeling Language
Meta-metamodel
Language for defining Metamodels
E.g. EBNF grammars
Specify
Metamodeling Language
Metamodel
An instance of meta-metamodel. Defines
the language for specifying a model
E.g. Pascal defined in EBNF
Specify
Domain modeling Language
Model
Specify
Computer Based
System
An instance of metamodel. Defines the
language for describing the information
domain
E.g. Pascal program
An instance of a model. Defines a specific
information domain
E.g. Program execution
June 29, 2005
Conference on Software Engineering Research and Practice
Generic Modeling Environment
(GME)
Metamodel
Meta-programmable
toolkit based on the
principles of MIC
Configurable toolkit for
creating DSM and
program synthesis
environments
Meta-models specify
the modeling paradigm
Domain-specific Model
June 29, 2005
Conference on Software Engineering Research and Practice
GME Modeling Concept
Supports hierarchy, multiple views, sets,
references, and explicit constraints
Root (Model)
Connections
Atoms
Models
Sets
References
June 29, 2005
Conference on Software Engineering Research and Practice
GME Builder Object Network
(BON)
C++ framework to access and instantiate
objects in GME model database
9
A1
A2
A3
8
8. Model Interpretation
9. Application Domain
June 29, 2005
Conference on Software Engineering Research and Practice
Motivation: Existing Limitations
Screenshot of current implementation
of Find utility in GME
The searching is
limited to the
options provided
Any search
involving inequality
sign (<, >) cannot
be expressed in
the current tool
Composition of
search conditions
is not possible
June 29, 2005
Conference on Software Engineering Research and Practice
XPath MOdel Search (XMOS)
Plug-in Architecture
XPath Evaluator
Parsed tokens
XPath Expression
Translator/Interpreter
(Customized
Data Structure)
XPath Parser
Search Module
GME Builder Object
Network
Model list
Result
June 29, 2005
Conference on Software Engineering Research and Practice
XMOS Plug-in Screenshot
User enters
XPath
expression
Results are
displayed
June 29, 2005
Conference on Software Engineering Research and Practice
Supported subset of XPath
features in XMOS
Features
Primary Expressions
Path Expression
Arithmetic Expression
Comparison Expression
Explanation
Literals, variable references
Predicates, Axes, and Location Paths
Addition, subtraction, multiplication and division
Relational operators like >, <, <=, >=, =.
June 29, 2005
Conference on Software Engineering Research and Practice
Case Study
Boeing Bold Stroke Mission Computing Avionics
framework
Used
as experimental platform for several DARPA
programs
Three million lines of C++ code across 6000
components
Embedded Systems Modeling Language
(ESML)
Models
all of the Bold Stroke scenarios in the GME
(Not a contribution of this thesis)
June 29, 2005
Conference on Software Engineering Research and Practice
Bold Stroke components in ESML
June 29, 2005
Conference on Software Engineering Research and Practice
Case 1
Locate all the concurrency
elements that have an
attribute Lock Type set to
“Null Lock” and whose lock
strategy is not
“Recursive Thread Mutex”.
“And” helps in
composition of
search queries
//concurrency[@locktype="Null Lock" and
@lockstrategy!= “Recursive Thread Mutex”]
June 29, 2005
Conference on Software Engineering Research and Practice
Case 2
Search for all data elements
whose value is set to 5 and
all log elements whose
logging kind is set to “On
Write”
//data[@value=5] and //log[@kind="On Write"]
June 29, 2005
Conference on Software Engineering Research and Practice
Key Contribution and Limitations
Key Contribution
Domain-independent
customizable search
queries for a metamodeling tool
Limitations of current implementation
Modeless
Dialog box
Display the component window from the result
dialog box.
June 29, 2005
Conference on Software Engineering Research and Practice
Summary
Searching entities through Domain Models in
large systems made simpler and efficient.
Properties of similar entities can be modified
easily in Computer Based Systems
Every object returned by search algorithm will
provide path to the exact location of the object
Future Scope :
Implementation
for expressing complex XPath
expressions
Generic search plug-in adaptable with all
modeling environments
June 29, 2005
Conference on Software Engineering Research and Practice