This document discusses analysing meta-model product lines (MMPLs) through lifted analysis techniques. It presents MMPLs as a compact representation of multiple meta-model variants defined through features. It aims to ensure the correctness of MMPLs by lifting existing meta-model analysis techniques to the product line level, including syntactic analysis of meta-models and checking meta-model properties. The key contributions are a declarative notion of MMPLs, lifted analyses to check well-formedness and properties more efficiently than enumerating each meta-model, and a classification of different property types that can be analysed on MMPLs. Tool support for specification and analysis of MMPLs is also discussed.
Effective Java - Chapter 3: Methods Common to All Objectsİbrahim Kürce
Although object is a concrete class, it is designed primarily for extension.
All of its nonfinal methods (equals, hashCode, toString, clone, and finalize) have explicit general contracts because they are designed to be overridden.
This chapter tells you when and how to override the nonfinal Object methods. The finalize method is omitted from this chapter because it was discussed in Item 7. While not an Object method, Comparable.compareTo is discussed in this chapter because it has a similar character.
In this session you will learn:
background and goals of generic programming
basics of generic classes = parameterized types
generic methods for general algorithms
inheritance rules for generic types
bounded type parameters
generic code and the Java Virtual Machine
restrictions and limitations
wildcard types and wildcard type capture
For more information, visit this link: https://www.mindsmapped.com/courses/software-development/online-java-training-for-beginners/
Effective Java - Chapter 3: Methods Common to All Objectsİbrahim Kürce
Although object is a concrete class, it is designed primarily for extension.
All of its nonfinal methods (equals, hashCode, toString, clone, and finalize) have explicit general contracts because they are designed to be overridden.
This chapter tells you when and how to override the nonfinal Object methods. The finalize method is omitted from this chapter because it was discussed in Item 7. While not an Object method, Comparable.compareTo is discussed in this chapter because it has a similar character.
In this session you will learn:
background and goals of generic programming
basics of generic classes = parameterized types
generic methods for general algorithms
inheritance rules for generic types
bounded type parameters
generic code and the Java Virtual Machine
restrictions and limitations
wildcard types and wildcard type capture
For more information, visit this link: https://www.mindsmapped.com/courses/software-development/online-java-training-for-beginners/
This is the third of a series of powerpoints presented at a CAT/IRT workshop at the University of Brasilia in 2012. It provides an introduction to item response theory (IRT), discussing advanced topics like linking & equating, scaling, differential item functioning, polytomous models, and dimensionality. Learn more at www.assess.com.
This presentation covers the intricacies of the Item Response Theory. I made this presentation to explain the concepts of IRT to my lab research group at the University of Minnesota. I have taken the contents from various sources so apologies for the poor design of the presentation.
Introduction to unidimensional item response modelSumit Das
Item response theory has become an important technique in the field of psychology and education. This slides gives a brief introduction to unidimensional item response models.
Using Item Response Theory to Improve AssessmentNathan Thompson
This is the second of a series of powerpoints presented at a CAT/IRT workshop at the University of Brasilia in 2012. It provides a discussion on how IRT is applied to developing better assessments, including item and test information functions, standard error of measurement, and use of Xcalibre. Learn more at www.assess.com.
This presentation describes the use of XText.
This presentation assumes a good knowledge of Data Modeling and Grammars as previously presented.
This presentation is developed for MDD 2010 course at ITU, Denmark.
This is the third of a series of powerpoints presented at a CAT/IRT workshop at the University of Brasilia in 2012. It provides an introduction to item response theory (IRT), discussing advanced topics like linking & equating, scaling, differential item functioning, polytomous models, and dimensionality. Learn more at www.assess.com.
This presentation covers the intricacies of the Item Response Theory. I made this presentation to explain the concepts of IRT to my lab research group at the University of Minnesota. I have taken the contents from various sources so apologies for the poor design of the presentation.
Introduction to unidimensional item response modelSumit Das
Item response theory has become an important technique in the field of psychology and education. This slides gives a brief introduction to unidimensional item response models.
Using Item Response Theory to Improve AssessmentNathan Thompson
This is the second of a series of powerpoints presented at a CAT/IRT workshop at the University of Brasilia in 2012. It provides a discussion on how IRT is applied to developing better assessments, including item and test information functions, standard error of measurement, and use of Xcalibre. Learn more at www.assess.com.
This presentation describes the use of XText.
This presentation assumes a good knowledge of Data Modeling and Grammars as previously presented.
This presentation is developed for MDD 2010 course at ITU, Denmark.
This presentation describes Eclipse Modeling Framework – EMF. It has two basic purposes:
Introduce you to the EMF techniques needed in the rest of the course
Introduce you to the architecture and components of the EMF project
This presentation is developed for MDD 2010 course at ITU, Denmark.
A good foundation has been established for both data mining research and genuine
application based data mining. The current functionality of EMADS is limited
to classification and Meta-ARM. The research team is at present working towards
increasing the diversity of mining tasks that EMADS can address. There are many
directions in which the work can (and is being) taken forward. One interesting direction
is to build on the wealth of distributed data mining research that is currently
available and progress this in an MAS context. The research team are also enhancing
the system’s robustness so as to make it publicly available. It is hoped that once
the system is live other interested data mining practitioners will be prepared to contribute
algorithms and data.
Meta-modeling: concepts, tools and applicationsSaïd Assar
Presentation made as a tutorial at the rcis2015 conference in Athens, Greece, on May 13, 2015.
Video recording available online on IEEE Education (http://www.computer.org/web/computingnow/education)
This presentation mentions about what ORM is, its advantages/disadvantages. Paradigm shift, parts of ORM, Hibernate & JPA relationship, mapping metadata concepts, object query language examples and so on.
Presentation about an eclipse framework that allows to generate ecore model instances as input for tests and benchmarks. Held at the 3rd BigMDE workshop at STAF in L'Aquia, Italy in July 2015.
(Py)testing the Limits of Machine LearningRebecca Bilbro
Despite the hype cycle, each day machine learning becomes a little less magic and a little more real. Predictions increasingly drive our everyday lives, embedded into more of our everyday applications. To support this creative surge, development teams are evolving, integrating novel open source software and state-of-the-art GPU hardware, and bringing on essential new teammates like data ethicists and machine learning engineers. Software teams are also now challenged to build and maintain codebases that are intentionally not fully deterministic.
This nondeterminism can manifest in a number of surprising and oftentimes very stressful ways! Successive runs of model training may produce slight but meaningful variations. Data wrangling pipelines turn out to be extremely sensitive to the order in which transformations are applied, and require thoughtful orchestration to avoid leakage. Model hyperparameters that can be tuned independently may have mutually exclusive conditions. Models can also degrade over time, producing increasingly unreliable predictions. Moreover, open source libraries are living, dynamic things; the latest release of your team's favorite library might cause your code to suddenly behave in unexpected ways.
Put simply, as ML becomes more of an expectation than an exception in our industry, testing has never been more important! Fortunately, we are lucky to have a rich open source ecosystem to support us in our journey to build the next generation of apps in a safe, stable way. In this talk we'll share some hard-won lessons, favorite open source packages, and reusable techniques for testing ML software components.
Máster en Métodos Formales en Ingeniería Informáticamiso_uam
Presentación del Máster en Métodos Formales en Ingeniería Informática en jornadas de posgrado en la facultad de ciencias de la Universidad Autónoma de Madrid
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Hivelance Technology
Cryptocurrency trading bots are computer programs designed to automate buying, selling, and managing cryptocurrency transactions. These bots utilize advanced algorithms and machine learning techniques to analyze market data, identify trading opportunities, and execute trades on behalf of their users. By automating the decision-making process, crypto trading bots can react to market changes faster than human traders
Hivelance, a leading provider of cryptocurrency trading bot development services, stands out as the premier choice for crypto traders and developers. Hivelance boasts a team of seasoned cryptocurrency experts and software engineers who deeply understand the crypto market and the latest trends in automated trading, Hivelance leverages the latest technologies and tools in the industry, including advanced AI and machine learning algorithms, to create highly efficient and adaptable crypto trading bots
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
1. Analysing Meta-Model Product Lines
Esther Guerra, Juan de Lara
Universidad Aut´onoma de Madrid (Spain)
Marsha Chechik, Rick Salay
University of Toronto (Canada)
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 1 / 27
2. Motivation
Meta-model variants
Meta-models are used to define modelling languages
Different variants of a modelling language depending on scenario,
project, goal...
Having a meta-model for each variant is challenging to construct,
analyse and maintain
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 2 / 27
3. Motivation
Example: variants of Petri nets
Different
realizations
posTokens inv: self.itokens >= 0
Place
itokens: int
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
tokens as attributes
Place
in
Transition
out
*
*
Token
tokens*
1
places
1
trans*
1
PetriNet
*
tokens as objects
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
4. Motivation
Example: variants of Petri nets
Different
realizations
posTokens inv: self.itokens >= 0
Place
itokens: int
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
tokens as attributes
Place
in
Transition
out
*
*
Token
tokens*
1
places
1
trans*
1
PetriNet
*
tokens as objects
Different
features
Place
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
Token
tokens
*
1 isHierarchical inv:
(self.places→size()> 0 or
self.trans→size()> 0)
implies (self.in→size() +
self.out→size() = 0)
hierarchical nets
Place
itokens: int
in
Transition
out
1
1
posTokens inv: self.itokens >= 0
places
1
trans
1
PetriNet
**
state-machine nets
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
5. Motivation
Example: variants of Petri nets
Different
realizations
posTokens inv: self.itokens >= 0
Place
itokens: int
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
tokens as attributes
Place
in
Transition
out
*
*
Token
tokens*
1
places
1
trans*
1
PetriNet
*
tokens as objects
Different
features
Place
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
Token
tokens
*
1 isHierarchical inv:
(self.places→size()> 0 or
self.trans→size()> 0)
implies (self.in→size() +
self.out→size() = 0)
hierarchical nets
Place
itokens: int
in
Transition
out
1
1
posTokens inv: self.itokens >= 0
places
1
trans
1
PetriNet
**
state-machine nets
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
8 possible meta-models
6. Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
8. Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
150-Meta-Model
in
posTokens inv:
self.itokens >= 0
Place
itokens: int
PetriNet
Transition
out
places
Simple
1
* trans*
1
Token
tokens *
1
Object
Object isHierarchical inv:
(self.places→size() > 0 or
self.trans→size() > 0)
implies (self.in→size() +
self.out→size() = 0)
Simple
StateMachine
[min=1, max=1]
StateMachine
[min=1, max=1]
*
*
net net
not Hierarchical
[del]
Presence conditions
Cardinality modifiers
min
max
Inheritance modifiers
add
del
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
9. Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
Feature Configuration
<Object, Hierarchical>
Meta-Model Derivation
Place
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
Token
tokens
*
1 isHierarchical inv:
(self.places→size()> 0 or
self.trans→size()> 0)
implies (self.in→size() +
self.out→size() = 0)
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
10. Motivation
Correctness of MMPLs
How to ensure a MMPL is correct?
1 ensure each meta-model is syntactically correct
e.g., the target class of each meta-model reference belongs to the meta-model
2 ensure desirable properties in meta-model instances
e.g., instantiability
There are well-known techniques to analyse this for a single meta-model.
However, generating and analysing each meta-model in the MMPL
separately is time-consuming...
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 5 / 27
11. Contribution
We lift meta-model analysis techniques to the product line level:
syntactic analysis of meta-models
satisfiability checking of meta-model properties
in order to improve performance
Based on a declarative notion of MMPL
considers OCL well-formedness constraints
amenable to automated analysis
Tool support
Evaluation of effectiveness of lifted analyses
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 6 / 27
13. Ensuring MMPL well-formedness
Lifted analysis of well-formed structure
Every field is owned by one class
How: PC of field =⇒ PC of its owner-class
Every reference points to a class
How: PC of reference =⇒ PC of its target-class
Cardinality and inheritance are uniquely determined
How: PC of mini ∧ PC of minj is unsat (similar for max, inheritance)
There are no inheritance cyles
How (roughly): given a cycle in the 150MM, the conjunction of the
PC of each inheritance relation is unsat
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 8 / 27
14. Ensuring MMPL well-formedness
Lifted syntactic analysis of invariants
If an invariant is present, the accessed elements are also present
How: PC of invariant =⇒ PC of accessed fields + owner classes
Example:
PC of self.itokens >= 0 =⇒ PC of itokens and PC of Place
Simple =⇒ Simple ∧ true
Operators are applied on fields with appropriate cardinality
How: if a collection operator is applied on a field, the PC of invariant
∧ PC of any max=1 is unsat
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 9 / 27
16. Analysing instance properties
Meta-model validation by model finding
Is the set of models accepted by a meta-model the one intended?
MM property P
m1
m1 P
MM
L(MM) L(M
(a)
In the simplest case, if P is empty, this method permits assessing whether
a meta-model has instances.
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 11 / 27
17. Analysing instance properties
MMPL validation
Is the set of models accepted by each meta-model the one intended?
MM property P
m1
m1 P
MM1
property PMMPL
MMi
Prod(MMPL)
… MMn
…
L(MM) L(MM1) L(MMn)L(MMi)
(a) (b)
m1
m1 P
In the simplest case, if P is empty, this method permits assessing whether
some meta-model in the MMPL has instances.
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 12 / 27
18. Analysing instance properties
Classification of property types
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
19. Analysing instance properties
Classification of property types
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
20. Analysing instance properties
Classification of property types
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
21. Analysing instance properties
Property types
Some analyses of interest (8 more in the paper):
MMPL instantiability: configuration that yields an instantiable MM
Configuration: < one, config, total, existsm >
Global invariant: is a property satisfied by every model of every MM?
Example: all Petri nets have at least one place
Configuration: < forAllMM , forAllm, ... >
Property: Place.all()→notEmpty()
Safety property: is a property satisfied by no model?
Example: no model has isolated transitions
Configuration: < forAllMM , notExistsm, ... >
Property: Transition.all()→exists(in→isEmpty() and out→isEmpty())
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 14 / 27
22. Analysing instance properties
Property types
We also consider mixed properties
Example: Are transitions with one input only possible on state machines?
Configuration: < mixed, ... >
Property: Transition.all()→forAll(in→size() = 1) implies StateMachine
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 15 / 27
23. Lifted analysis of meta-model instances
(1) Encoding of MMPL as a regular meta-model
Feature-explicit meta-model
in
posTokens inv:
fm.Simple implies self.itokens >= 0
wc-tokens inv:
if not fm.Object
then self.tokens→size() = 0
else self.tokens→size() >= 0
endif
wc-itokens inv:
if not fm.Simple
then self.itokens.oclIsUndefined()
else not self.itokens.oclIsUndefined()
endif
wc-net inv:
not fm.Hierarchical implies
not self.net.oclIsKindOf(Transition)
Place
itokens[0..1]: int
PetriNet
Transition
out
places
1
* trans*
1
Token
tokens *
1
*
*
BC
1
fm
isHierarchical inv:
fm.Hierarchical implies
((self.places→size() > 0 or self.trans→size() > 0)
implies (self.in→size() + self.out→size() = 0))
wc-in inv:
fm.StateMachine implies self.in→size() = 1
wc-out inv:
fm.StateMachine implies self.out→size() = 1
wc-del-inh inv:
not fm.Hierarchical implies
(self.places→size() = 0 and self.trans→size() = 0)
wc-net inv:
not fm.Hierarchical implies
not self.net.oclIsKindOf(Transition)
FMC
Simple: boolean
Tokens: boolean
Hierarchical: boolean
Object: boolean
StateMachine: boolean
PetriNet: boolean
ΦMMPL inv:
PetriNets and Tokens and
((Simple and not Object) or
(not Simple and Object))
wc-Token inv:
not Object implies
Token.allInstances()→size() = 0
net net
150MM
Feature model is class FMC,
where features are booleans
PCs and modifiers are invariants
Property to check is invariant
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 16 / 27
24. Lifted analysis of meta-model instances
(2) Analysing feature-explicit meta-model
Look for an instance of the FEMM using a model finder
MMPL instantiability, weak properties (MMs where some model
satisfies P): finding a solution implies satisfaction
:PetriNet
:Place
:Token
:FMC
Simple=false
Object=true
Tokens=true
Hierarchical=false
StateMachine=false
PetriNet=true
feature-explicit model :PetriNet
:Place
:Token
model configuration
+
extract
Safety properties (MMs where no model satisfies P): find all configs
where some model satisfies P, and then return the rest
Global invariants (MMs where all models satisfy P): find all configs
where some model satisfies not P, and then return the rest
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 17 / 27
26. Eclipse plugin: http://miso.es/tools/merlin
Feature model specified with FeatureIDE
150MM specified as an Ecore meta-model with annotations
Static analysis of OCL uses Eclipse OCL project and Sat4J
USE Validator model finder
Merlin
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 19 / 27
28. Evaluation
Efficiency of syntactic analysis
Enumerative approach vs Lifted analysis
Name #Feats #MMs
#classes/#invs
/#PCs/#modifs
Lifted
time
Enum
time
Running example 6 8 4/2/5/2 0,039s 0,19s
Relational DDBB 10 24 7/0/17/0 0,094s 0,45s
Graphs [29] 16 256 5/6/14/3 0,103s 22,36s
Automata 20 2.016 6/5/18/0 0,135s 102,9s
Role modelling [27] 48 >2.395.000 40/0/32/9 0,735s >1h
=⇒ Lifted analysis was much faster
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 21 / 27
29. Evaluation
Efficiency of instance property analysis
Enumerative approach vs Lifted analysis
MMPL instantiability (finding an instantiable meta-model)
Enumerative approach:
1 generate product meta-model
2 check meta-model instantiability by model finding
3 if the meta-model has instances, conclude
4 else, go to 1
22 variants of the Automata MMPL, each with a different percentage
of instantiable meta-models
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 22 / 27
30. Evaluation
Efficiency of instance property analysis
1
10
100
1000
10000
100000
0 20 40 60 80 100
TIME (MS)
% INSTANTIABLE META-MODELS
Lifted average
Enum. average
Enum. best
Enum. worst
Lifted analysis is (up to 1.000x) faster if <85% instantiable MMs
In the rest of cases, lifted analysis is slightly slower (120 vs 100 ms)
Rationale: 1 more complex search (lift.) vs many simpler searches (enum.)
=⇒ The fewer MMs satisfy a property, the faster lifted analysis is
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 23 / 27
32. Summary
MMPLS: Declarative specification of meta-model variants
Lifting of existing meta-model analysis techniques to the PL level
syntactic correctness of meta-models
checking properties on meta-model instances
Initial implementation and evaluation
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 25 / 27
33. Current and next steps
Transformation product lines, coupled to MMPLs
Model transformation product lines. Juan de Lara, Esther Guerra, Marsha Chechik, Rick
Salay. Proc. of ACM/IEEE MoDELS’18. pp. 67-77. ACM.
Extend definition of MMPL with type modifiers for references
Expand analyses, e.g., to discover subsumption of MM variants
Extend the evaluation for other kinds of properties
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 26 / 27
34. Analysing Meta-Model Product Lines
Esther Guerra, Juan de Lara
Universidad Aut´onoma de Madrid (Spain)
Marsha Chechik, Rick Salay
University of Toronto (Canada)
esther.guerra@uam.es
http://miso.es/tools/merlin
Questions?
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 27 / 27