The IMPL console executable (IMPL.exe) can be called from any DOS command prompt window where its Intel Fortran source code can be found in Appendix A. The IMPL console is useful given that it allows you to model and solve problems configured in an IML (Industrial Modeling Language) file. Problems coded using IPL (Industrial Programming Language) in many computer programming languages can use the IMPL console source code as a prototype.
The IMPL console reads several input files and writes several output files which are described in this document. There are several console flags that can be specified as command line arguments and are described below.
A framework to performance analysis of software architectural stylesijfcstjournal
Growing and executable system architecture has a significant role in successful production of large and
distributed systems. Assessing the effect of different decisions in architecture design can decrease the time and cost of software production, especially when these decisions are related to non-functional properties of system. Performance is a non-functional property which relates to timing behaviour of system. In this paper
we propose an approach for modelling and analysis of performance in architecture level. To do this,we follow a general process which needs two formal notations for specifying architecture and performance models of system. In this paper we show how Stochastic Process Algebra (SPA) in the form of PEPA language can be used for performance modelling and analysis of software archi
tectures modelled using Graph Transformation System (GTS). To enable architecture model for performance analysis, equivalent PEPA model should be constructed with transformation. Transformed performance model of the
architecture has been analysed through PEPA toolkit for some properties like throughput, sensitivity analysis, response time and utilisation rate. The analysis results have been explained with regard to a realistic case study.
A Beginner’s Guide to Programming Logic, Introductory
Chapter 3
Understanding Structure
Objectives
In this chapter, you will learn about:
- The features of unstructured spaghetti code
- The three basic structures—sequence, selection, and loop
- Using a priming input to structure a program
- The need for structure
- Recognizing structure
- Structuring and modularizing unstructured logic
COURSE TECHNOLOGY
CENGAGE Learning
The IMPL console executable (IMPL.exe) can be called from any DOS command prompt window where its Intel Fortran source code can be found in Appendix A. The IMPL console is useful given that it allows you to model and solve problems configured in an IML (Industrial Modeling Language) file. Problems coded using IPL (Industrial Programming Language) in many computer programming languages can use the IMPL console source code as a prototype.
The IMPL console reads several input files and writes several output files which are described in this document. There are several console flags that can be specified as command line arguments and are described below.
A framework to performance analysis of software architectural stylesijfcstjournal
Growing and executable system architecture has a significant role in successful production of large and
distributed systems. Assessing the effect of different decisions in architecture design can decrease the time and cost of software production, especially when these decisions are related to non-functional properties of system. Performance is a non-functional property which relates to timing behaviour of system. In this paper
we propose an approach for modelling and analysis of performance in architecture level. To do this,we follow a general process which needs two formal notations for specifying architecture and performance models of system. In this paper we show how Stochastic Process Algebra (SPA) in the form of PEPA language can be used for performance modelling and analysis of software archi
tectures modelled using Graph Transformation System (GTS). To enable architecture model for performance analysis, equivalent PEPA model should be constructed with transformation. Transformed performance model of the
architecture has been analysed through PEPA toolkit for some properties like throughput, sensitivity analysis, response time and utilisation rate. The analysis results have been explained with regard to a realistic case study.
A Beginner’s Guide to Programming Logic, Introductory
Chapter 3
Understanding Structure
Objectives
In this chapter, you will learn about:
- The features of unstructured spaghetti code
- The three basic structures—sequence, selection, and loop
- Using a priming input to structure a program
- The need for structure
- Recognizing structure
- Structuring and modularizing unstructured logic
COURSE TECHNOLOGY
CENGAGE Learning
A Beginner’s Guide to Programming Logic, Introductory
Chapter 2
Working with Data, Creating Modules, and Designing High-Quality Programs
Objectives
In this chapter, you will learn about:
- Declaring and using variables and constants
- Assigning values to variables
- The advantages of modularization
- Modularizing a program
- The most common configuration for mainline logic
COURSE TECHNOLOGY
CENGAGE Learning
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software systems as a mean to leverage abstraction and render business logic resilient to technological changes. Coordinated collections of models and modeling languages are used to describe
applications on different abstraction levels and from different perspectives. In general, both models and metamodels are not preserved from the evolutionary pressure which inevitably affects almost any artifacts, possibly causing a cascade of adaptations which severely affects the modeling languages or the model population.
This talk analyzes the different kinds of co-adaptations which are required, distinguishing among co-evolution in the large and in the small. In particular, the coupling between models and metamodels implies that when a metamodel undergoes a modification, the conforming models require to be accordingly co-adapted. Analogously, whenever a new version of a model is produced, the generated application may require an explicit adaptation of the generated artifacts, especially when specific
assets are not directly reflected by the models and transformations, as for instance when dealing with serialized objects or with page content which is persistently stored in a database.
A Beginner’s Guide to Programming Logic, Introductory
Chapter 2
Working with Data, Creating Modules, and Designing High-Quality Programs
Objectives
In this chapter, you will learn about:
- Declaring and using variables and constants
- Assigning values to variables
- The advantages of modularization
- Modularizing a program
- The most common configuration for mainline logic
COURSE TECHNOLOGY
CENGAGE Learning
International Journal of Engineering Research and Applications (IJERA) is an open access online peer reviewed international journal that publishes research and review articles in the fields of Computer Science, Neural Networks, Electrical Engineering, Software Engineering, Information Technology, Mechanical Engineering, Chemical Engineering, Plastic Engineering, Food Technology, Textile Engineering, Nano Technology & science, Power Electronics, Electronics & Communication Engineering, Computational mathematics, Image processing, Civil Engineering, Structural Engineering, Environmental Engineering, VLSI Testing & Low Power VLSI Design etc.
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software systems as a mean to leverage abstraction and render business logic resilient to technological changes. Coordinated collections of models and modeling languages are used to describe
applications on different abstraction levels and from different perspectives. In general, both models and metamodels are not preserved from the evolutionary pressure which inevitably affects almost any artifacts, possibly causing a cascade of adaptations which severely affects the modeling languages or the model population.
This talk analyzes the different kinds of co-adaptations which are required, distinguishing among co-evolution in the large and in the small. In particular, the coupling between models and metamodels implies that when a metamodel undergoes a modification, the conforming models require to be accordingly co-adapted. Analogously, whenever a new version of a model is produced, the generated application may require an explicit adaptation of the generated artifacts, especially when specific
assets are not directly reflected by the models and transformations, as for instance when dealing with serialized objects or with page content which is persistently stored in a database.
For some management programming problems, multiple objectives to be optimized rather than a single
objective, and objectives can be expressed with ratio equations such as return/investment, operating
profit/net-sales, profit/manufacturing cost, etc. In this paper, we proposed the transformation
characteristics to solve the multi objective linear fractional programming (MOLFP) problems. If a MOLFP
problem with both the numerators and the denominators of the objectives are linear functions and some
technical linear restrictions are satisfied, then it is defined as a multi objective linear fractional
programming problem MOLFPP in this research. The transformation characteristics are illustrated and the
solution procedure and numerical example are presented.
An Interactive Decomposition Algorithm for Two-Level Large Scale Linear Multi...IJERA Editor
This paper extended TOPSIS (Technique for Order Preference by Similarity Ideal Solution) method for solving
Two-Level Large Scale Linear Multiobjective Optimization Problems with Stochastic Parameters in the righthand
side of the constraints (TL-LSLMOP-SP)rhs of block angular structure. In order to obtain a compromise (
satisfactory) solution to the (TL-LSLMOP-SP)rhs of block angular structure using the proposed TOPSIS
method, a modified formulas for the distance function from the positive ideal solution (PIS ) and the distance
function from the negative ideal solution (NIS) are proposed and modeled to include all the objective functions
of the two levels. In every level, as the measure of ―Closeness‖ dp-metric is used, a k-dimensional objective
space is reduced to two –dimentional objective space by a first-order compromise procedure. The membership
functions of fuzzy set theory is used to represent the satisfaction level for both criteria. A single-objective
programming problem is obtained by using the max-min operator for the second –order compromise operaion.
A decomposition algorithm for generating a compromise ( satisfactory) solution through TOPSIS approach is
provided where the first level decision maker (FLDM) is asked to specify the relative importance of the
objectives. Finally, an illustrative numerical example is given to clarify the main results developed in the paper.
Towards Analysing Non-Determinismin Bidirectional Transformations (AMT2014)
1. Dipartimento di Ingegneria e Scienze
dell’Informazione e Matematica
Università degli Studi dell’Aquila
Towards Analysing Non-‐Determinism
in Bidirec?onal Transforma?ons
Romina Eramo
Romeo Marinelli, Alfonso Pierantonio, Gianni Rosa
2. Goal
To support designers in solving non-‐determinism in their
specifica?ons by detec?ng the rules that give place to
alterna?ve solu?ons, at design ?me.
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
3. Roadmap
Background
Contribu?on
Realiza?on
Applica?on
Challenges
Conclusion
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
4. Bidirec?onality
Bidirec?onal transforma?ons are useful for maintaining the
consistency of two (or more) related sources of informa?on
The relevance of bidirec?onality in model transforma?ons has
been advocated already in 2005 by OMG by including a
bidirec?onal language in QVT
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
5. Bidirec?onality
In spite of its relevance, bidirec?onality has rarely produced
an?cipated benefits
WHY?
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
6. Non-‐determinism
Probably, among the reasons why bidirec?onal transforma?on
had limited success there is the ambivalence concerning
non-‐bijec)vity
When transforma?on are non-‐bijec)ve, there may be mul?ple
ways to transform two models into a consistent state
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
7. A small example ...
...a typical round-‐trip problem based on a non-‐bijec?ve class
diagram to rela?onal data base -‐ UML2RDBMS
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
8. A small example ...
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
University
Person
name {is_primary}
Worker
working_address
Employer
{persistent}
department
Professor
{persistent}
number_of_publication
①
UML model
9. A small example ...
University
Employer
Professor
working_address
department
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
University
Person
name {is_primary}
Worker
working_address
Employer
{persistent}
department
Professor
{persistent}
number_of_publication
PK name
working_address
department
PK name
number_of_publication
① ② forward transf.
UML model
RDBMS model
Persistent classes are mapped to
correspondent tables and aributes
to columns, including inherited
aributes
Aributes of non-‐persistent classes
are distributed over tables from
persistent classes which access
non-‐persistent ones
10. A small example ...
University
Employer
Professor
working_address
department
University
Employer
Professor
PK name
working_address
department
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
University
Person
name {is_primary}
Worker
working_address
Employer
{persistent}
department
Professor
{persistent}
number_of_publication
PK name
working_address
department
PK name
number_of_publication
① ②
PK name
working_address
department
number_of_publication
③
email
forward transf. manual change
UML model
RDBMS model
modified
RDBMS model
A new column
email is added
to the table
Employer
How back
propagate ?
11. University
University
A small example ...
forward transf. manual change backward transf.
University
Employer
Professor
working_address
department
University
Employer
Professor
PK name
working_address
department
University
[email]
[email]
Professor
{persistent}
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
University
Person
name {is_primary}
Worker
working_address
Employer
{persistent}
department
Professor
{persistent}
number_of_publication
PK name
working_address
department
PK name
number_of_publication
① ②
PK name
working_address
department
number_of_publication
③
Person
name {is_primary}
Worker
working_address
Employer
{persistent}
department
number_of_publication
④
[email]
email
UML model
RDBMS model
modified
RDBMS model
corresponding
UML models
email can be associated with Employer or
with each parent Worker and Person
12. Related issues
There have been several works analyzing
seman?c issues of bidirec?onal model transforma?ons
From Stevens 2009 :
“The developer needs full control of what the transforma)on
does. [...] We claim that determinism is necessary in order to
ensure, first, that developers will find tool behavior predictable,
and second, that organisa)ons will not be unacceptably “locked
in” to the tool they first use.”
[P. Stevens. Bidirec?onal model transforma?ons in QVT: seman?c issues and open ques?ons. SOSYM, 2009]
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
13. How it is solved in the current
approaches?
① fix ambiguity via defaults strategy (tool)
② resolve ambiguity by contraining the specifica?on (designer)
③ genera?ng mul?ple solu?ons (tool) and select the desired one
Drawbacks:
① limited control over how models are synchronized
② early decision and difficult to detect ambiguity
③ onerous management of (large) set of models
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
(desinger)
14. Roadmap
Background
Contribu?on
Realiza?on
Applica?on
Challenges
Conclusion
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
15. Contribu?on
GOAL
HOW
OUTPUT
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
ADVANTAGE
To support designers in dealing with
non-‐determinism
Sta?c analysis of bidirec?onal transforma?on
Degree of non-‐determinism of the transforma?on
Non-‐determinis?c por?ons of the transforma?on
Analysis at design ?me
Detec?on of code ambiguity before the execu?on
17. Descrip?on of the approach
Model transforma?ons are mapped in a format suitable for
the analysis. Only relevant informa?on are captured.
The analysis is performed within a logic environment realized
in Answer Set Programming (ASP)
• the engine is able to analyze the behavior of the transforma?on
with an emphasis on non-‐determinism
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
Analysis nota?on
Logical rules and constraints
18. Descrip?on of the approach
STEP 1 -‐ Transla?on from the transforma?on to the analysis nota?on
STEP 2 -‐ Execu?on of the ASP-‐based analysis and annota?on of the
transforma?on
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
BIDIRECTIONAL
TRANSFORMATION
LANGUAGE
C2
C2
TRASLATE
ASP TRANSF.
ANALYSIS MODEL
ASP SOLVER
IN
OUT
ANNOTATE
BIDIRECTIONAL
TRANSFORMATION
MODEL
TRANSFORMATION
ANALYSIS LANGUAGE
TRANSFORMATION
ANALYSIS MODEL
ASP ANALYSIS
RESULT MODEL
ENCODE
STEP 1
STEP 2
LOGICAL ANALYSIS
ASP RULES AND CONSTRAINTS
20. Applica?on of the approach
UML to RDBMS, inheritance hierarchy of classes to corresponding tables, and
viceversa
Used transforma?on language
JTL (Janus Transforma?on Language), a constraint-‐based bidirec?onal
language, able to deal with non-‐bijec?vity by genera?ng all the admissible
solu?ons
4 STEPS
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
Case study
① implementa?on of the UML2RDBMS bidirec?onal transf. in JTL
② transforma?on of the UML2RDBMS transf. in the analysis language
③ execu?on of the analysis on the UML2RDBMS analysis model
④ annota?on of the UML2RDBMS transf. model with the analysis results
21. ① Implemen?ng UML2RDBMS in JTL
1transformation UML2RDBMS(uml:UML, rdbms:RDBMS) { ...!
2 top relation Class2Table {!
3 cn, an: String;!
4 enforce domain uml c:Class {!
5 is_persistent = true,!
relates classes and tables in the
6 name = cn,!
two different metamodels
7 attrs = attr: Attribute { name = an}!
8 };!
9 enforce domain rdbms t:Table {!
10 name = cn,!
11 cols = col: Column { name = an }!
12 };!
13 when { ... }!
relates albutes and columns in
14 where { Attribute2Column(c, t); }!
15 }!
the two different metamodels
16 relation Attribute2Column {!
17 an, at : String;!
18 enforce domain uml c:Class {!
19 attrs = attr: Attribute { name = an, owner = c, is_primary = false }!
20 };!
21 enforce domain rdbms t:Table {!
22 cols = col: Column { name = an, owner = t }!
23 };!
24 when { ... }!
25 }!
relates aributes of the parent
26 top relation SuperAttributeToColumn{!
27 enforce domain uml c: Class {!
class to columns of the
28 parent = sc: Class { }!
29 };!
corresponding child table
30 enforce domain rdbms t: Table { };!
31 when { ClassToTable(c,t) | (cc = c.parentOf & SuperAttributeToColumn(cc,t));}!
32 where { AttributeToColumn(sc, t); }!
33 } ...!
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
22. ② Transla?ng in the analysis nota?on
domain paerns are
captured
pre and post condi?on are
captured as paerns
A transforma?on model consists of a set of rules that define mapping among
elements types, and pre/post con??ons that limit its applicability and behavior
The correspondent transforma?on analysis model captures only the informa?on
which is relevant for performing the analysis, conforming a specific analysis nota?on
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
23. ③ Execu?ng the analysis
1 relation_name(1, class2table).!
2 relation_domain(1, uml).!
3 relation_pattern(1, uml, c, class).!
4 relation_predicate(1, uml, c, is_persistent, true).!
5 relation_predicate(1, uml, c, name, cn).!
6 relation_predicate(1, uml, c, attrs, attr). [...]!
the analysis model is
automa?cally encoded in ASP
1 are_equal_domains(ID1, ID2, Dom) :-!
2 have_equal_patterns(ID1, ID2, Dom, MC, MCName),!
3 have_equal_predicates(ID1, ID2, Dom, MC, MCName),!
4 not have_different_patterns(ID1, ID2, Dom).!
5!
6 non_deterministic_relation(ID, RelName, DomLeft) :-!
7 are_equal_domains(ID, ID2, DomRight),!
8 relation_name(ID, RelName),!
9 tranformation_model(DomRight), !
10 tranformation_model(DomLeft), !
11 DomRight != DomLeft.!
12!
13 are_ambiguous_relations(ID1, ID2, DomLeft) :-!
14 are_equal_domains(ID1, ID2, DomRight),!
15 tranformation_model(DomRight), !
16 tranformation_model(DomLeft), !
17 DomRight != DomLef. [...]!
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
non-‐determinism is
verified by executed ASP
rules and constraints on
the analysis model used
as base knowledge
sets of ambiguous
transforma?on rules
are detected
%%%% sets of non-deterministic relations (RDBMS to UML direction):!
[(1,class2table), (3,superAttribute2column), (5,superAttribute2column)]!
24. ④ Annota?ng the UML2RDBMS transf.
1transformation UML2RDBMS(uml:UML, rdbms:RDBMS) { ...!
2 top relation Class2Table {!
3 cn, an: String;!
4 enforce domain uml c:Class {!
5 is_persistent = true,!
6 name = cn,!
7 attrs = attr: Attribute { name = an}!
A set of
8 };!
9 non-‐determinis?c rela?ons
enforce domain rdbms t:Table {!
10 name = cn,!
in UML to RDBMS direc?on
11 cols = col: Column { name = an }!
12 };!
is detected
13 when { ... }!
14 where { Attribute2Column(c, t); }!
15 }!
16 relation Attribute2Column {!
17 an, at : String;!
18 enforce domain uml c:Class {!
19 attrs = attr: Attribute { name = an, owner = c, is_primary = false }!
20 };!
21 enforce domain rdbms t:Table {!
22 cols = col: Column { name = an, owner = t }!
23 };!
24 when { ... }!
25 }!
26 top relation SuperAttributeToColumn{!
27 enforce domain uml c: Class {!
28 parent = sc: Class { }!
29 };!
30 enforce domain rdbms t: Table { };!
31 when { ClassToTable(c,t) | (cc = c.parentOf & SuperAttributeToColumn(cc,t));}!
32 where { AttributeToColumn(sc, t); }!
33 } ...!
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
25. ④ Annota?ng the UML2RDBMS transf.
1transformation UML2RDBMS(uml:UML, rdbms:RDBMS) { ...!
2 top relation Class2Table {!
3 cn, an: String;!
4 enforce domain uml c:Class {!
5 is_persistent = true,!
6 name = cn,!
7 attrs = attr: Attribute { name = an}!
A set of
8 };!
9 non-‐determinis?c rela?ons
enforce domain rdbms t:Table {!
10 name = cn,!
in UML to RDBMS direc?on
11 cols = col: Column { name = an }!
12 };!
is detected
13 when { ... }!
14 where { Attribute2Column(c, t); }!
15 }!
16 relation Attribute2Column {!
17 an, at : String;!
18 enforce domain uml c:Class {!
19 attrs = attr: Attribute { name = an, owner = c, is_primary = false }!
20 };!
21 enforce domain rdbms t:Table {!
22 cols = col: Column { name = an, owner = t }!
23 };!
24 when { ... }!
25 }!
26 top relation SuperAttributeToColumn{!
27 enforce domain uml c: Class {!
28 parent = sc: Class { }!
29 };!
30 enforce domain rdbms t: Table { };!
31 when { ClassToTable(c,t) | (cc = c.parentOf & SuperAttributeToColumn(cc,t));}!
32 where { AttributeToColumn(sc, t); }!
33 } ...!
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
27. Challenges
Language-‐independent approach
Despite the analysis is completely independent from JTL, in order to
make the approach completely language-‐independent addi?onal
implementa?on efforts are required
Analysis of formal proper?es
The logical founda?on of the engine makes possible the verifica?on of
different formal proper?es by transla?ng them in ASP, with the scope
to provide a mean for improving the quality of model transforma?on
specifica?ons
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
29. Conclusion
Bidirec?onal transforma?ons are known as a promising approach for
maintaining models in a consistent state, their success is limites by
seman?c issues and intrinsic characteris?cs
This work represent a first step to support transforma?on
implementors with a tool capable of analyzing transforma?ons in order
to return feedback which could resolve poten?al problem, such as
non-‐determinism
Towards Analysing Non-Determinism in Bidirectional Transformations – Romina Eramo
30. Thanks
Dipartimento di Ingegneria e Scienze
dell’Informazione e Matematica
Università degli Studi dell’Aquila
Romina Eramo
romina.eramo@univaq.it