The document describes the OCLforUML profile, which aims to address gaps between UML and OCL by providing stereotypes for specifying numeric data types, configuring validation of object diagrams, and indicating whether collections allow null elements. The profile allows for finer-grained control over numeric values and data types than standard UML, as well as enabling configuration of validation and null semantics that are currently lacking in UML.
JDT Embraces Lambda Expressions - EclipseCon North America 2014Noopur Gupta
Java 8 is coming. It is happening right here. Developers of your favorite Java IDE are participating in shaping this long awaited milestone for the Java ecosystem: On time with the GA of Java 8, JDT will ship its first release with support for developing in Java 8.
If you have a basic understanding of the new features in Java 8, come here and learn how the JDT team mastered the challenges of lifting the Eclipse Java IDE to the next language version.
The main focus of this talk will be on lambda expressions, touching also some changes in the libraries that leverage lambda expressions. We will expose some examples demonstrating the complexity of the language and mention some caveats which should help you avoid some unpleasent surprises.
We will demo how to get started using Java 8 in Eclipse and show the latest tool features for working with lambda expressions including new quick assists etc.
Finally, we'll give a retrospective discussion of the situation of the JDT team, in terms of team changes, contributors, deadlines, interaction with expert groups, with the Eclipse community, and more.
SiriusCon 2015 - Breathe Life into Your Designer!melbats
You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate your design in some way ? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.
This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot ! This talks presents also xCapella an industrial use case onwhich the Gemoc methodology was applied.
This talks was presented at SiriusCon 2015 in collaboration with Jérôme Le Noir from Thales.
The Arduino Designer documentation is available on : https://github.com/mbats/arduino/wiki/Documentation
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!melbats
The Sirius 4.0 version available in the Eclipse Neon release brings a significant number of new features that empowers the developer to create impressive designers.
This new release represents countless hours of hard work encapsulated in both the Sirius and EEF projects.
During this talk, we’ll have a look at a handful of the new features available in this release:
Diagram improvements : New extensible mechanism to customize the diagram tabbar, new specification possibilities for border nodes side, improved SVG images support
Brand new Properties View description : Let Sirius automatically create default properties views for your designer or customize it as you do for other kinds of representations.
Improved performance of the session unload
Support for internationalization
Leverage EMF.Edit customizations
And many more!
Come to this talk to learn about what the Sirius team is cooking for you and how you can use all these new features!
Eclipse Tips & Tricks - EclipseCon North America 2014Noopur Gupta
Eclipse provides a lot of powerful features and capabilities as an IDE. With so much functionality at your disposal, there is a lot of functionality that is very useful, but not easily discoverable. To be productive, mastering your IDE is as important as mastering your source code.
In this talk, I will unleash many invaluable tips and tricks that will allow you to better use the Eclipse IDE and make you more productive in your routine development tasks. During this talk you will have many "Ah, I didn't know Eclipse can do that!" moments.
More information about the meetup this presentation was created for can be found at https://www.meetup.com/life-michael/events/255429951/ More information about our Python course (in Hebrew) can be found at http://python.course.lifemichael.com More information about our other courses and services can be found at http://www.lifemichael.com.
Ressource numérique Circuit électrique au primaire Erradi Mohamed
Les pages écrans de la ressource numérique "Circuit électrique" réalisée à l'aide du logiciel ActivInspire et Powepoint.
La ressource est en arabe
Réalisation: Mohamed ERRADI; F.MOQADEM; A.ABERKANE
JDT Embraces Lambda Expressions - EclipseCon North America 2014Noopur Gupta
Java 8 is coming. It is happening right here. Developers of your favorite Java IDE are participating in shaping this long awaited milestone for the Java ecosystem: On time with the GA of Java 8, JDT will ship its first release with support for developing in Java 8.
If you have a basic understanding of the new features in Java 8, come here and learn how the JDT team mastered the challenges of lifting the Eclipse Java IDE to the next language version.
The main focus of this talk will be on lambda expressions, touching also some changes in the libraries that leverage lambda expressions. We will expose some examples demonstrating the complexity of the language and mention some caveats which should help you avoid some unpleasent surprises.
We will demo how to get started using Java 8 in Eclipse and show the latest tool features for working with lambda expressions including new quick assists etc.
Finally, we'll give a retrospective discussion of the situation of the JDT team, in terms of team changes, contributors, deadlines, interaction with expert groups, with the Eclipse community, and more.
SiriusCon 2015 - Breathe Life into Your Designer!melbats
You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate your design in some way ? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.
This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot ! This talks presents also xCapella an industrial use case onwhich the Gemoc methodology was applied.
This talks was presented at SiriusCon 2015 in collaboration with Jérôme Le Noir from Thales.
The Arduino Designer documentation is available on : https://github.com/mbats/arduino/wiki/Documentation
EclipseCon France 2016 - Sirius 4.0: Let me Sirius that for you!melbats
The Sirius 4.0 version available in the Eclipse Neon release brings a significant number of new features that empowers the developer to create impressive designers.
This new release represents countless hours of hard work encapsulated in both the Sirius and EEF projects.
During this talk, we’ll have a look at a handful of the new features available in this release:
Diagram improvements : New extensible mechanism to customize the diagram tabbar, new specification possibilities for border nodes side, improved SVG images support
Brand new Properties View description : Let Sirius automatically create default properties views for your designer or customize it as you do for other kinds of representations.
Improved performance of the session unload
Support for internationalization
Leverage EMF.Edit customizations
And many more!
Come to this talk to learn about what the Sirius team is cooking for you and how you can use all these new features!
Eclipse Tips & Tricks - EclipseCon North America 2014Noopur Gupta
Eclipse provides a lot of powerful features and capabilities as an IDE. With so much functionality at your disposal, there is a lot of functionality that is very useful, but not easily discoverable. To be productive, mastering your IDE is as important as mastering your source code.
In this talk, I will unleash many invaluable tips and tricks that will allow you to better use the Eclipse IDE and make you more productive in your routine development tasks. During this talk you will have many "Ah, I didn't know Eclipse can do that!" moments.
More information about the meetup this presentation was created for can be found at https://www.meetup.com/life-michael/events/255429951/ More information about our Python course (in Hebrew) can be found at http://python.course.lifemichael.com More information about our other courses and services can be found at http://www.lifemichael.com.
Ressource numérique Circuit électrique au primaire Erradi Mohamed
Les pages écrans de la ressource numérique "Circuit électrique" réalisée à l'aide du logiciel ActivInspire et Powepoint.
La ressource est en arabe
Réalisation: Mohamed ERRADI; F.MOQADEM; A.ABERKANE
Frame latency evaluation: when simulation and analysis alone are not enoughRealTime-at-Work (RTaW)
This talk is about temporal verification in real-time communication systems. Early in the design cycle, the two main approaches for verifying timing constraints and dimensioning the networks are worst-case schedulability analysis and simulation. The aim of the talk is to demonstrate that both provide complementary results and that, most often, none of them alone is sufficient. In particular, it will be shown that response time distributions that can be derived from simulations cannot replace worst-case analysis. This will be done on automotive case-studies using RTaW analysis and simulation software tools.
This presentation focus on advances on Model Based System Engineering that fUML [1] brings. fUML, better known has Executable UML, provide a formalization of a subset of UML. UML, and with some extensions and adaptations SysML, can now be analysed in a formal way. That was main grief made by researchers.
First part of the presentation illustrates what is now possible by picking ideas from existing tools, notably Alloy [1] and OWL [3]. Following this path will enlighten what still must be done from researchers. It also points out how UML/SysML editors and tools can be enhanced. Indeed in current tools you can modelize activities that are not executable, you can describe Class/Block that cannot be instantiated, and so on.
The second part is about current implementation of previous ideas. It starts with a panorama of tools that can be combined, reused or adapted for the new desired features. For instance, it is possible to generate random instances of a model. Doing so helps to be confident in the model constraints. Moreover details will be given on how Topcased ease or not the integration of such a tool in its suite. For instance, it will be shown how Acceleo and ATL are used, but further details will also be given on how it integrates deeply with Topcased Editors for warnings, quick-fixes and so on.
erocci - a scalable model-driven API framework, OW2con'16, Paris. OCCIware
REST APIs are becoming the most common technology for distributed applications. When it comes to designing and implementing such APIs, the heterogeneity of technologies for designing and describing them can make integration and even development a nightmare.
erocci provides developers a simple and standard way to describe these APIs, letting best-of-breed model-driven engineering technology doing all boilerplate work for you.
erocci easily integrates with existing APIs as it follows the following standards:
* HTTP / REST
* Swagger/OpenAPI for API description
* Open Cloud Computing Interface for data model
In the presentation, we will explain the use of erocci and its extension mechanisms.
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
Slides used for the EclipseCon EU 2016 talk: https://www.eclipsecon.org/europe2016/session/be-serious-sirius-your-journey-first-experimentation-large-deployment-sponsored-obeo
Sirius is the Eclipse project that allows you to easily create custom graphical modeling tools dedicated to your own business domain.
In this talk we will explain and illustrate how to successfully deploy industrial-strengh modeling workbenches based on Sirius.
In particular, we will show how to collaborate with other team members by storing your models and representations (diagrams, tables, matrices, trees) in a shared repository. This solution based on CDO provides a fine-grained locking mechanism that allows you simultaneously work on visual representations for the same data, without losing time managing conflicts and without any technical skills.
During this talk, you will also discover the solutions provided by the creators of Sirius to help you stay on the right tracks, from first hands-on to large deployments.
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
The OCCIware project aims at managing in a unified manner all layers and domains of the Cloud (XaaS), by building on the Open Cloud Computing (OCCI) standard. OCCIware Metamodel formally specifies the main OCCI concepts. Today a first EMF metamodel is defined that adds to OCCI new concepts such as Extension, Configuration, and EDataType, addressing some limitations of OCCI.
This session highlights OCCIware platform two main components:
– The OCCIware Studio Factory, allowing to produce visually customizable diagram editors for any Cloud configuration business domain modeled in OCCI using the OCCI Extension Studio, such as the flagship Docker Studio ;
– The OCCIware Runtime, based on OW2 erocci project, including the tools for deployment, supervision and administration, and allowing to federate multiple XaaS Cloud runtimes, such as the Roboconf PaaS server and the ActiveEon Cloud Automation multi-IaaS connector.
This talk includes a demonstration of the Docker connector and of how to use the OCCIware Cloud Designer to configure a real life Cloud application (a Java API server on top of a MongoDB cluster)’s business, platform and infrastructure layers seamlessly on both VirtualBox and OpenStack infrastructure.
Cours multimédia interactif intégrant le Tableau Blanc Numérique destiné aux élèves de la 4.A.E.F.
Exemple de Ressource Numérique didactique réalisé à l'aide du logiciel ActivInspire de Promethean.
An invited talk by Xavier Leroy explaining the current state of OCaml at the OCaml Users and Developers Workshop 2014. http://ocaml.org/meetings/ocaml/2014/
The Collection iterations and operations are perhaps the most important part of OCL.
It is therefore important for an OCL evaluation tool to provide efficient support for Collections. Unfortunately, some clauses of the OCL specification appear to inhibit efficient or deterministic support. We review the inhibitions and demonstrate a new deterministic and lazy implementation that avoids them.
1.5 Legal Labels in Verilog areSystem Verilog extends it and al.pdfankit482504
1.
5 Legal Labels in Verilog are:
System Verilog extends it and allows one to add named blocks to reserve word end and join.
Also SystemVerilog allows to add the LABLE or NAMED BLOCK before begin, fork as below.
1.\"MY NAMED_ BLOCK\":Begin
2..\"MY NAMED_ BLOCK\":End
3..\"MY NAMED_ BLOCK\":Fork
4..\"MY NAMED_ BLOCK\":Join
5..\"MY NAMED_ BLOCK\":Initial Begin
It is illegal to have both a label before a begin or fork and a block name after the begin or fork. A
label cannot appear before the end, join, join_any or join_none, as these keywords do not form a
statement.
2.Verilog Provides in-built primitives for basic gate and switch level modeling. Any circuit can
be modeled by using continuous assignment of gate and switch level primitives.
and (strong1, weak0)#(1,2) gate1(out, in1, in2);
This is an and gate with output \'out\' and two inputs in1 and in2. Strong1 and weak0 are
optional driving strengths and gate1 is optional instance name that can be used while debugging.
First parameter in the bracket is output and you can have any number of inputs after that. This is
how you use a 3 input and gate without instance name, delay and driving strengths:
3.verilog has built in primitives like gates,transmission gates,and switches.if we need complex
primitives then verilog provides UDP or simply user defined primitives using UDP we can
model:
1.Combinational Logic
2.Sequential Logic
Verilog has 2 primitives
1.User Defined primitives
2.HDL gate primitive
4.
UDP definitions are independent of modules; they are at the same level as module definitions in
the syntax hierarchy. They can appear anywhere in the source text, either before or after they are
used inside a module. They may not appear between the keywords module and endmodule.
User-Defined Primitives(UDP) :
5. Yes it is True
One of the advanced concepts in verilog
non synthesizable
single output many iput
consume very less memory
I/Os must be scalar (i.e. bit)
1) UDPs can take only scalar input terminals (1 bit). Multiple input terminals are permitted.
2) UDPs can have only one scalar output terminal (1 bit). The output terminal must
always appear first in the terminal list. Multiple output terminals are not allowed.
3) In the declarations section, the output terminal is declared with the keyword output. Since
sequential UDPs store state, the output terminal must also be declared as a reg.
4) The inputs are declared with the keyword input.
5) The state in a sequential UDP can be initialized with an ‘initial’ statement. This statement is
optional. A 1-bit value is assigned to the output, which is declared as reg.
6) The state table entries can contain values 0,1,or x . UDPs do not handle z values. Z values
passed to a UDP are treated x values.
7)UDPs are defined at the same level as modules. UDPs can not be defined inside modules.
They can be instantiated only inside modules. UDPs are instantiated exactly like
gate primitives.
8)UDPs do not support inout ports.
6
The module is the basic unit of hier.
Behavioral Design and Synthesis of 64 BIT ALU using Xilinx ISEIOSR Journals
Abstract: This paper presents the behavioral Design and synthesis of a 64 bit ALU. 64 bit ALU is basically a multiplexer that operates mainly 16 operations as per select line Bit-permutation. Flags are other important indicators used for specific purpose e.g. if Sign Flag is HIGH then the output of ALU must be a negative number. CLR can reset the output of ALU.
Keywords: Flags, CLR, 64 Bit ALU, VHDL.
A text model - Use your favourite M2M for M2TEdward Willink
A simple solution to using any M2M for M2T; use a standard text metamodel and exploit EMF Resource flexibility to save the text model as plain text. Also provides a solution to XML2XMLwith any M2M tool. Suggests some M2T-friendly OCL extensions.
Lightning talk : OCL's 4-valued logic is a source of much unhappiness. We attempt to recreate the design decisions that led to the current design and thereby suggest solutions to escape from it.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Search and Society: Reimagining Information Access for Radical Futures
The OCLforUML Profile
1. Made available under EPL 1.0
The OCLforUML Profile
Papyrus Summit, Ludwigsburg
3rd November 2015
Edward Willink
(Eclipse MMT co-lead)
Eclipse OCL lead
Eclipse QVTd lead
Eclipse QVTo committer
OMG OCL 2.5 RTF chair
OMG QVT 1.3 RTF chair
2. 3-Nov-2015 OCLforUML Profile 2Made available under EPL 1.0
Overview
UML - quite useful
analysis / structure / behavior
OCL - specifies the hard bits
behavior / function / execution
OCL + UML - some gaps
=> OCLforUML Profile
potentially part of the next OCL specification
3. 3-Nov-2015 OCLforUML Profile 3Made available under EPL 1.0
UML Specification
Specification of everything relevant
Numeric accuracy is very relevant
nearest $1 inadequate for retail banking
nearest $0.000000001 dollar probably excessive
$32767 maximum amount inadequate
what happens to $32769 ? -$32767 !
4. 3-Nov-2015 OCLforUML Profile 4Made available under EPL 1.0
Number specification approaches
Comments
totally informal
Constraints
inv: (0 <= self) and (self <= 255)
requires Constraint reverse engineering
5. 3-Nov-2015 OCLforUML Profile 5Made available under EPL 1.0
Number Specifications
pre UML 2.4 - just Integer (or UnlimitedNatural)
UML 2.4 - Integer or Real (or UnlimitedNatural)
no finer grain control
e.g. 8 bits ??
also DataType behavior
why no default MyInteger operations?
ExecutableUML (Mellor & Balcer 2002)
type Currency is real range [0..100000] precision 0.01
6. 3-Nov-2015 OCLforUML Profile 6Made available under EPL 1.0
Fixing UML
UML has totally failed to support numbers
OCL needs numbers
OCL can fix UML with a Profile
the OCLforUML profile
7. 3-Nov-2015 OCLforUML Profile 7Made available under EPL 1.0
Minimal Numerics for OCL
Principle: User DataType can be
non-numeric
Integer-like
Real-like
Practice: Ecore DataTypes
EInt / EIntegerObject etc etc
SysML, ... Primitive Types
9. 3-Nov-2015 OCLforUML Profile 9Made available under EPL 1.0
Integer, Real stereotypes
<<Integer>> stereotype: DataType is Integer
<<Real>> stereotype: DataType is Real
OCL Integer/Real operations may be used
interchange uses string serialization
12. 3-Nov-2015 OCLforUML Profile 12Made available under EPL 1.0
BoundedInteger specification
8 bit signed integer with no overflows
13. 3-Nov-2015 OCLforUML Profile 13Made available under EPL 1.0
FixedPoint Real specification
16 bit number with 8 bit fractional precision
14. 3-Nov-2015 OCLforUML Profile 14Made available under EPL 1.0
FloatingPoint Real specification
16 bit number with 8 bit exponent
15. 3-Nov-2015 OCLforUML Profile 15Made available under EPL 1.0
Validation
UML - mostly class / state / activity diagrams
no real objects, just their classes
But also object diagrams
'real' objects
test environment for constraints
16. 3-Nov-2015 OCLforUML Profile 16Made available under EPL 1.0
Validation dilemma
Object diagram of a stable state
constraints should be satisfied
Objects diagram illustrating a transient state
constraints may not apply
pre-Luna - no object diagram validation
Luna - object diagrams must be valid
Mars - configurable (default no validation)
17. 3-Nov-2015 OCLforUML Profile 17Made available under EPL 1.0
Validation configuration
No UML ability to configure validation
OCLforUML Profile provides stereotypes
Validation::validate
configures an individual InstanceSpecification
Validations::validateInstanceSpecifications
configures default for all InstanceSpecifications in a Package
18. 3-Nov-2015 OCLforUML Profile 18Made available under EPL 1.0
Null
Source of numerous program failures
null has many but not all behaviors of an object
Navigating from null fails
NPE in Java
invalid in OCL
self.parent.name.toUpper()
two / three hazards
19. 3-Nov-2015 OCLforUML Profile 19Made available under EPL 1.0
Null mitigation
C++ references - int&
works
Java annotations - @NonNull,@Nullable
works locally, fails globally (no system annotations)
Groovy, Python, Xbase - safe navigation - x?.y
moves the problem sideways
20. 3-Nov-2015 OCLforUML Profile 20Made available under EPL 1.0
Eclipse OCL for Mars
prototyping OCL 2.5/...
add safe navigation x?.y x?->y
yet another two operators - no added value
almost everything can-be null
need non-null object declarations
already defined by UML MultiplicityElement::lower
x : X[?] -- is nullable
x : X[1] -- is non-null
21. 3-Nov-2015 OCLforUML Profile 21Made available under EPL 1.0
Null-free Collections
In OCL
collection can contain null elements
iterators may be null
OCL's collection operations are all hazardous
In practice
very few collections contain null elements
need null-free collections
textual syntax extension
type[collection-multiplicity | element-multiplicity]
e.g. Set(String)[2..4|1] -- Set of two to four non-null Strings
22. 3-Nov-2015 OCLforUML Profile 22Made available under EPL 1.0
Null-free configuration
No UML ability support for null-free
OCLforUML Profile provides stereotypes
Collection::isNullFree
configures an individual MultiplicityElement
Collections::isNullFree
configures default for all MultiplicityElements in a Class/Package
23. 3-Nov-2015 OCLforUML Profile 23Made available under EPL 1.0
Post-OCL 2015 workshop
In UML, no null elements in multi-values
declaring null-free/null-full is redundant
OCL could move to null-free by default
just declare the rare null-full cases
matches universal practice
But null-full Collections are needed
e.g. Map.values()
UML / OCL conflict needs resolution
24. 3-Nov-2015 OCLforUML Profile 24Made available under EPL 1.0
Oops - not supported by Papyrus
Open with UML Model Editor
select Model/Package then
UML Model Editor->Package->Apply Profile
25. 3-Nov-2015 OCLforUML Profile 25Made available under EPL 1.0
Summary
UML deficient wrt OCL tooling
Remedied by the OCLforUML profile
DataType behavior / numeric precision
Validation enable / disable
Collections null-free / null-full