Model driven Software development evolves existing systems
and facilitates the creation of new software systems.
The salient features of model driven software development
include:
1.
Domain-specific languages (DSLs) that express
models at different abstraction levels.
2.
DSL notation syntaxes that are collected
separately
3.
Model transformations for generating code from
models either directly by model-to-text transformations or indirectly by
intermediate model-to-model transformations.
An abstract syntax is defined by a metamodel that uses a
metamodeling language to describe a set of concepts and their relationships.
These languages use object-oriented constructs to build metamodels. The
relationship between a model and a metamodel can be described by a
“conforms-to” relationship.
There are seven metamodels including Knowledge Discovery
Metamodel, Abstract Syntax Tree Metamodel, the Software Measurement Metamodel,
analysis program, visualization, refactoring and transformation
ASTM and KDM are complimentary in modeling software systems’
syntax and semantics. ASTMs use Abstract Syntax Trees to mainly represent the
source code’s syntax, KDM helps to represent semantic information about a
software system, ranging from source code to higher level of abstractions. KDM
is the language of architecture and provides a common interchange format
intended for representing software assets and tools interoperability. Platform,
user interface or data can each have its own KDM and are organized as packages.
These packages are grouped into four abstraction layers to improve modularity
and separation of concerns: infrastructure, program elements, runtime resource
and abstractions.
SMM is the metamodel that can represent both metrics and
measurements. It includes a set of elements to describe the metrics in KDM
models and their measurements.
Taking the example of the modernization of a database forms
application and migrating it to a Java platform, an important part of the
migration could involve PL/SQL triggers in legacy Forms code. In a Forms
application, the sets of SQL statements corresponding to triggers are tightly
coupled to the User Interface. The cost of the migration project is
proportional to the number and complexity of these couplings. The reverse
engineering process involves extracting KDM models from the SQL code.
An extractor that generates the KDM model from SQL code can
be automated. A framework that provides domain specific languages for
extraction of model is available and this can be used to create a model that
conforms to a target KDM from program that conforms to grammar. Dedicated
parsers can help with this code-to-model transformation.
With the popularity of machine learning techniques and
softmax classification, extracting domain classes according to syntax tree
meta-model and semantic graphical information has become more meaningful. The
two-step process of parsing to yield Abstract Syntax Tree Meta-model and
restructuring to express Abstract Knowledge Discovery Model becomes enhanced
with collocation and dependency information. This results in classifications at
code organization units that were previously omitted. For example, code
organization and call graphs can be used for such learning. The discovery of KDM and SMM can also be broken down into
independent learning mechanisms with the Dependency Complexity being one of
them.
No comments:
Post a Comment