This is a one day workshop presentation, primarily on the new OMG Foundational UML specification for executable model semantics, but also discussing extensions for executable SysML (System Modeling Language) models.
C++ is an object-oriented programming language that is an extension of C. It was developed in the early 1980s by Bjarne Stroustrup at Bell Labs. C++ supports concepts like inheritance, polymorphism, and encapsulation that make it suitable for large, complex programs. Inheritance allows classes to inherit properties from parent classes. Polymorphism is the ability to process objects of different types in the same way. Encapsulation combines data and functions that operate on that data within a single unit, hiding implementation details. File input/output in C++ can be handled through streams like ifstream for input and ofstream for output.
Ce support explique les concepts de bases du principe de l'inversion de contrôle et d'injections des dépendances.
Les concepts les plus importants à comprendre par les futurs ingénieurs du génie Logiciel.
A system is a network of interdependent components that work together to try to accomplish the aim of the system. A system must have an aim. Without an aim, there is no system. The aim of the system must be clear to everyone in the system.
But what does it all mean really and how does it apply to our businesses? What does it take to have a systems thinking or holistic view and approach?
In this presentation, we'll take a look at systems thinking, how we can get into this mindset and how it is used in the real world. With some interactive exercises, historical and present examples we hope this session will leave you with an understanding of systems thinking and its many benefits.
Slide deck of the presentation done at the Hactoberfest 2020 Singapore event. The talk and demo showed GitHub Actions in practice with examples of Github Superlinter, SonarCloud integration and CI CD to Azure Kubernetes service.
The recording of the session is available on YouTube
https://youtu.be/sFvCj62wmWU?t=6732&WT.mc_id=AZ-MVP-5003170
The document provides an introduction to software engineering. It defines software and describes its key attributes and classifications. It discusses what constitutes good software in terms of maintainability, dependability, efficiency and usability. The document also outlines different types of software and defines software engineering as a systematic approach to software analysis, design, implementation and maintenance. It compares software engineering to computer science and system engineering. Finally, it discusses the two main components of software engineering as the systems engineering approach and development engineering approach.
Neo4j is a native graph database that allows organizations to leverage connections in data to create value in real-time. Unlike traditional databases, Neo4j connects data as it stores it, enabling lightning-fast retrieval of relationships. With over 200 customers including Walmart, UBS, and adidas, Neo4j is the number one database for connected data by providing a highly scalable and flexible platform to power use cases like recommendations, fraud detection, and supply chain management through relationship queries and analytics.
Hands On With the Alf Action Language: Making Executable Modeling Even EasierEd Seidewitz
Do you use the industry-leading model execution capabilities provided by Cameo Simulation Toolkit (CST)? Do you love being able to simulate systems using state machines and activities? But, on the other hand, do you dread the complexity of using activity diagrams to code really detailed behavior? Or do you get annoyed by having limited access your model state if you use a scripting language instead? Now there is a solution! The Alf Plugin gives you the ability to use the OMG-standard Alf action language to write expressions and behaviors in models executed using CST. Alf is a textual language with a familiar Java-like syntax, but it is designed specifically to be used in the context of graphical, executable UML and SysML models. Indeed, behind the scenes, Alf is actually compiled into UML activity models, which are then automatically integrated into your overall model, so they can be seamlessly executed using CST. This tutorial gives you an introduction to the Alf language, instruction on how to install and use the Alf Plugin with CST, and a chance to try it out hands-on. You will be amazed at how much quicker and easier it is to write three lines of Alf code, rather than create by hand an equivalent activity model of 20 or more elements!
Leveraging Alf for SysML, Part 1: Better Simulation ModelingEd Seidewitz
The document discusses leveraging the Alf action language for executable modeling in SysML. It provides an overview and introduction to using Alf with SysML, including hands-on exercises to create a heating simulation model. The key topics covered include installing the Alf plugin, the basics of Alf syntax and semantics, mapping Alf to fUML, using Alf for operations, state machines, signals, and more. Hands-on steps demonstrate creating blocks, activities, and state machines with Alf code to model and execute a heating simulation.
SysML v2 and the Next Generation of Modeling LanguagesEd Seidewitz
The Systems Modeling Language (SysML) is a particularly successful offshoot of the Unified Modeling Language (UML) tailored for Model-Based Systems Engineering. After a decade of growing use of SysML, in 2017 the Object Management Group (OMG) issued a Request for Proposals (RFP) for a new version of the language. A year into the ongoing work to respond to this RFP, it is clear that SysML v2 needs to be more than just an expansion of the functional capabilities of SysML. Rather, it must address fundamental architectural issues that have made it difficult to further evolve SysML v1 to address the needs of its user community. Therefore, the language is being re-designed using a new kernel metamodel with formally grounded semantics. This kernel can then be extended using semantic model libraries, rather than by expanding the language metamodel itself. This approach will allow SysML v2 to be not only the modeling language for traditional systems engineering, but also the foundation for a whole new generation of modeling languages.
Introduction to the OMG Systems Modeling Language (SysML), Version 2Ed Seidewitz
Tutorial presented at the MODELS 2020 virtual conference on the proposed OMG Systems Modeling Language, Version 2, as of the initial submission of the specification.
SysML v2 aims to enhance SysML over the next decade to further increase adoption of model-based systems engineering (MBSE). Key areas of focus for SysML v2 include improving the precision and expressiveness of the language, integrating language concepts more consistently, improving interoperability with other tools, and enhancing usability. A submission team is developing SysML v2 based on user needs and requirements from requests for proposals, taking an agile and collaborative approach. Usage-focused modeling is a proposed paradigm shift that emphasizes modeling system usages over structure to make SysML more intuitive.
Capella Days 2021 | Where to Start with MBSE when Thousands of System Require...Obeo
The Thales OneSKY Australia Program is delivering a new Australia-wide integrated Civil and Military Air Traffic Management System, known as CMATS. CMATS replaces the current civilian Air Traffic Management (ATM) system and Defence ATM system, delivering the most advanced and integrated ATM system in the world. It will manage more than 11% of the earth’s airspace and will deliver Air Traffic Services to some of the world’s busiest air routes.
Scope: Over the last 4 years of the Design phases of the program, the System-of-Systems Architecture team has defined and deployed a new way of working by focussing on capturing the system-of-systems architecture using state-of-the-art modelling techniques.
A plan was put in place where the team collectively defined a target set of modelling goals in order to grow the team’s competency. Part of this plan was a roadmap for the longer term which focused on extending the current approach to further increase the business value of the architecture modelling activities.
This approach has resulted in a stable working environment that not only allows the management of consistency and complexity, but also enables the team to collaboratively and efficiently work on the architecture definition, which has been critical during the recent working from home period and hectic project phases.
The key Capella solutions that are used within this activity are the Team for Capella solution, application of the Requirements Viewpoint and the Property Value Management Tool.
One of the important aspects of the modelling plan is to ensure information within the model can be used by the wider organisation, this is achieved through a Thales specific documentation generation solution and a bespoke csv export capability that allows to export data from the information captured in the architecture model.
This talk will cover the modelling goals for this activity; where the team is standing today; the best practices and lessons learned.
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
The document discusses programming in UML using the Foundational UML (fUML) standard and the Action Language for fUML (Alf). It provides an overview of fUML and Alf, which define an executable subset of UML and a textual action language for specifying behaviors in UML models. The document uses a motivating example of an e-commerce ordering system to illustrate key concepts of executable UML including activities, actions, structure, and asynchronous communication.
CapellaDays2022 | COMAC - PGM | How We Use Capella for Collaborative Design i...Obeo
COMAC is one of the leading suppliers of civil aircraft in the world. We will introduce how we use Capella in COMAC for collaborative design, including how to collaborate between overall design group and ATA design groups, and how to collaborate between different ATA design groups. We have done a series of extension development based on the System to Subsystem Transition add-on, to support the business process. These extensions include the integration from subsystem models to system model, the refinement of functional exchanges, the synchronization of newly added functional exchanges, and so on.
CapellaDays2022 | Saratech | Interface Control Document Generation and Linkag...Obeo
Generation of Interface Control Documents (ICDs) using a model-based method has a number of advantages over text-based approaches. This paper describes the Python-based software that was written to automatically generate different versions of an ICD from a structure model in Capella. One use case for this approach is checking parts changes captured in the Engineering Bill of Materials (EBOM) using a PLM tool. We demonstrate an automated workflow that links changes in the EBOM to a request to vet the change against the ICD. This presentation will discuss our rationale, approach, results, and lessons learned.
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Ed Seidewitz
Based on a tutorial presentation given at the OMG Executable UML Information Day, this version of the presentation has been updated for fUML 1.3 and Alf 1.1, the latest versions as of this upload.
The document provides information about sequential function charts (SFC) in SIMATIC PCS 7, including:
1) SFCs are used for sequential control and allow advancing between states depending on conditions. They control functions like CFC charts via mode and state changes.
2) An SFC chart can include a maximum of 8 sequencers to represent different states of a sequential control system. Each sequencer can have 2-255 steps.
3) When a new sequencer is created in an SFC, it is inserted with an initial step, transition, and final step representing its initial state.
Using Alf with Cameo Simulation Toolkit - Part 2: ModelingEd Seidewitz
Alf is an OMG-standard textual language with a familiar Java-like syntax, but it is designed specifically to be used in the context of graphical, executable UML and SysML models. This language is available for use in No Magic's Cameo Simulation Toolkit (CST) v18.5 to write expressions and behaviors in executable UML. This presentation follows on from "Using Alf with Cameo Simulation Toolkit - Part 1", covering the use of Alf for specifying behaviors in models of multiple, communicating objects, including synchronous operation calling and asynchronous signal sending.
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsEd Seidewitz
Alf is an OMG-standard textual language with a familiar Java-like syntax, but it is designed specifically to be used in the context of graphical, executable UML and SysML models. This language is available for use in No Magic's Cameo Simulation Toolkit (CST) v18.5 to write expressions and behaviors in executable UML. Behind the scenes, Alf is actually compiled into UML activity models, which are then automatically integrated into your overall model, so they can be seamlessly executed using CST. This presentation gives an introduction to the Alf language, a tutorial on how to use it in CST and hands-on exercises to try yourself. You will be amazed at how much quicker and easier it is to write three lines of Alf code, rather than create by hand an equivalent activity model of 20 or more elements!
The document discusses mass data engineering in PCS 7, including process tag types, import/export assistants, and chart reference data. It provides an example of using a process tag type and import file to generate level measurement charts for 4 reactors based on an existing chart, modifying chart names, signals, scaling, and comments. The import file is created from a template to define the I/O points and data for the new process tags. Running the import will generate new charts according to the file. Chart reference data allows navigating between elements in CFC and SFC charts for troubleshooting.
Nowadays, we are surrounded by system of systems, autonomous systems, interconnected systems or distributed heterogeneous systems with an increase in architecture complexity.
Keeping these systems operational is a challenge as the number of potential failures which may affect their availability also increases drastically. In order to optimize availability, maintenance activities have to be designed within the design phase of the system.
Whatever the implementation choice, detection, diagnostic or prevention of failures require tests.
The goal for autonomous systems also pushes towards embedded detection and prevention capabilities and thus arguing and decision making between system engineers and maintenance engineers to share solutions in their respective activities.
In this presentation, we talk about the ability of a system designed with Capella to be tested, including in the maintenance phase. This means to interconnect several kinds of models representing different perspectives: System Design (MBSE), RAMS Analysis (Reliability, Availability, Maintainability and Safety) and Testability.
We present how a MBSE approach with Capella can be used to initiate a testability study performed with the eXpress tool from DSI International.
SysML v2 - What's the big deal, anyway?Ed Seidewitz
SysML v2 is an upcoming version of the Systems Modeling Language that aims to address limitations in the current version (v1). It has a formal foundation using KerML, a new metamodel that is not limited by being a UML profile, and a textual notation to integrate with existing technologies. A standardized API will also allow SysML tooling to better interoperate. The goal of these changes is to enable effective model-based systems engineering by putting system models with real meaning and semantics at the center.
CapellaDays2022 | NavalGroup | Closing the gap between traditional engineerin...Obeo
Closing the gap between traditional engineering and digital-native model-based driven engineering requires helping engineers to embrace new techniques. Naval Group decided to tackle the following issues: lack of interoperability with other systems, lack of bridge between functional definitions in PID schemas and MBSE physical layers, lack of documenting cross-layers relationships for a specific object's type.
Model based design-Hardware in loop-software in loopMahmoud Hussein
This document provides an overview of a course on real time embedded control systems using model based design concepts. The course aims to show a design path for real time embedded systems starting with system level simulation and ending with real time implementation of control algorithms. It covers topics such as MATLAB and Simulink, physical system modeling, control systems design, embedded coding, and state machines. Model based design is emphasized, with a graphical model at the center of the development process from requirements to testing.
[Capella Day 2019] Model execution and system simulation in CapellaObeo
A common need in system architecture design is to verify that if the architect is correct and can satisfy its requirements. Execution of system architect model means to interact with state machines to test system’s control logic. It can verify if the logical sequences of functions and interfaces in different scenarios are desired.
However, only sequence itself is not enough to verify its consequence or output. So we need each function to do what it is supposed to do during model execution to verify its output, and that is what we called “system simulation”.
This presentation introduces how we do model execution in Capella, and how to embed digital mockup inside functions to do “system simulation” with a higher confidence.
Renfei Xu, Glaway
Renfei Xu is the technical manager of MBSE solution in Glaway. He has participated in many pilot projects of MBSE in areas like Engine Control, Avionics, Mechatronics and so on. In recent years, he is responsible for the deployment of MBSE using Capella and ARCADIA methodology in a Radar research institute.
Wenhua Fang, Glaway
Wenhua Fang is the Director of Systems Engineering in Glaway. He has more than 12 years of working experience in SE.
He is responsible for more than 10 implementation projects of MBSE in areas like Aircraft, Engine Control, Avionics, Automotive and so on. In recent years, he leads the team to deploy MBSE in China(including using Capella and ARCADIA methodology).
This document discusses model-based systems engineering (MBSE) and the use of system modeling languages. It motivates MBSE by describing how system models can integrate requirements, design, analysis and other engineering artifacts. It then provides an overview of the SysML modeling language and how it supports structural, behavioral, requirements and parametric modeling of systems. Finally, it describes how a system architecture model can act as an integrating framework to link various engineering analysis models across the lifecycle.
The document discusses emergency preparedness plans at Kennedy Space Center for hurricanes and other natural disasters. It details lessons learned from the 2004 and 2005 hurricane seasons, which caused extensive damage. These lessons included improving employee communication before and after storms, pre-positioning of critical hardware, and having backup servers and an off-site IT system. The plans were improved by establishing scenarios to account for all employees and get them information. While the plans aimed to prepare for any situation, actual disasters always provide additional lessons to further strengthen readiness.
Hands On With the Alf Action Language: Making Executable Modeling Even EasierEd Seidewitz
Do you use the industry-leading model execution capabilities provided by Cameo Simulation Toolkit (CST)? Do you love being able to simulate systems using state machines and activities? But, on the other hand, do you dread the complexity of using activity diagrams to code really detailed behavior? Or do you get annoyed by having limited access your model state if you use a scripting language instead? Now there is a solution! The Alf Plugin gives you the ability to use the OMG-standard Alf action language to write expressions and behaviors in models executed using CST. Alf is a textual language with a familiar Java-like syntax, but it is designed specifically to be used in the context of graphical, executable UML and SysML models. Indeed, behind the scenes, Alf is actually compiled into UML activity models, which are then automatically integrated into your overall model, so they can be seamlessly executed using CST. This tutorial gives you an introduction to the Alf language, instruction on how to install and use the Alf Plugin with CST, and a chance to try it out hands-on. You will be amazed at how much quicker and easier it is to write three lines of Alf code, rather than create by hand an equivalent activity model of 20 or more elements!
Leveraging Alf for SysML, Part 1: Better Simulation ModelingEd Seidewitz
The document discusses leveraging the Alf action language for executable modeling in SysML. It provides an overview and introduction to using Alf with SysML, including hands-on exercises to create a heating simulation model. The key topics covered include installing the Alf plugin, the basics of Alf syntax and semantics, mapping Alf to fUML, using Alf for operations, state machines, signals, and more. Hands-on steps demonstrate creating blocks, activities, and state machines with Alf code to model and execute a heating simulation.
SysML v2 and the Next Generation of Modeling LanguagesEd Seidewitz
The Systems Modeling Language (SysML) is a particularly successful offshoot of the Unified Modeling Language (UML) tailored for Model-Based Systems Engineering. After a decade of growing use of SysML, in 2017 the Object Management Group (OMG) issued a Request for Proposals (RFP) for a new version of the language. A year into the ongoing work to respond to this RFP, it is clear that SysML v2 needs to be more than just an expansion of the functional capabilities of SysML. Rather, it must address fundamental architectural issues that have made it difficult to further evolve SysML v1 to address the needs of its user community. Therefore, the language is being re-designed using a new kernel metamodel with formally grounded semantics. This kernel can then be extended using semantic model libraries, rather than by expanding the language metamodel itself. This approach will allow SysML v2 to be not only the modeling language for traditional systems engineering, but also the foundation for a whole new generation of modeling languages.
Introduction to the OMG Systems Modeling Language (SysML), Version 2Ed Seidewitz
Tutorial presented at the MODELS 2020 virtual conference on the proposed OMG Systems Modeling Language, Version 2, as of the initial submission of the specification.
SysML v2 aims to enhance SysML over the next decade to further increase adoption of model-based systems engineering (MBSE). Key areas of focus for SysML v2 include improving the precision and expressiveness of the language, integrating language concepts more consistently, improving interoperability with other tools, and enhancing usability. A submission team is developing SysML v2 based on user needs and requirements from requests for proposals, taking an agile and collaborative approach. Usage-focused modeling is a proposed paradigm shift that emphasizes modeling system usages over structure to make SysML more intuitive.
Capella Days 2021 | Where to Start with MBSE when Thousands of System Require...Obeo
The Thales OneSKY Australia Program is delivering a new Australia-wide integrated Civil and Military Air Traffic Management System, known as CMATS. CMATS replaces the current civilian Air Traffic Management (ATM) system and Defence ATM system, delivering the most advanced and integrated ATM system in the world. It will manage more than 11% of the earth’s airspace and will deliver Air Traffic Services to some of the world’s busiest air routes.
Scope: Over the last 4 years of the Design phases of the program, the System-of-Systems Architecture team has defined and deployed a new way of working by focussing on capturing the system-of-systems architecture using state-of-the-art modelling techniques.
A plan was put in place where the team collectively defined a target set of modelling goals in order to grow the team’s competency. Part of this plan was a roadmap for the longer term which focused on extending the current approach to further increase the business value of the architecture modelling activities.
This approach has resulted in a stable working environment that not only allows the management of consistency and complexity, but also enables the team to collaboratively and efficiently work on the architecture definition, which has been critical during the recent working from home period and hectic project phases.
The key Capella solutions that are used within this activity are the Team for Capella solution, application of the Requirements Viewpoint and the Property Value Management Tool.
One of the important aspects of the modelling plan is to ensure information within the model can be used by the wider organisation, this is achieved through a Thales specific documentation generation solution and a bespoke csv export capability that allows to export data from the information captured in the architecture model.
This talk will cover the modelling goals for this activity; where the team is standing today; the best practices and lessons learned.
Programming in UML: An Introduction to fUML and AlfEd Seidewitz
The document discusses programming in UML using the Foundational UML (fUML) standard and the Action Language for fUML (Alf). It provides an overview of fUML and Alf, which define an executable subset of UML and a textual action language for specifying behaviors in UML models. The document uses a motivating example of an e-commerce ordering system to illustrate key concepts of executable UML including activities, actions, structure, and asynchronous communication.
CapellaDays2022 | COMAC - PGM | How We Use Capella for Collaborative Design i...Obeo
COMAC is one of the leading suppliers of civil aircraft in the world. We will introduce how we use Capella in COMAC for collaborative design, including how to collaborate between overall design group and ATA design groups, and how to collaborate between different ATA design groups. We have done a series of extension development based on the System to Subsystem Transition add-on, to support the business process. These extensions include the integration from subsystem models to system model, the refinement of functional exchanges, the synchronization of newly added functional exchanges, and so on.
CapellaDays2022 | Saratech | Interface Control Document Generation and Linkag...Obeo
Generation of Interface Control Documents (ICDs) using a model-based method has a number of advantages over text-based approaches. This paper describes the Python-based software that was written to automatically generate different versions of an ICD from a structure model in Capella. One use case for this approach is checking parts changes captured in the Engineering Bill of Materials (EBOM) using a PLM tool. We demonstrate an automated workflow that links changes in the EBOM to a request to vet the change against the ICD. This presentation will discuss our rationale, approach, results, and lessons learned.
Programming in UML: An Introduction to fUML 1.3 and Alf 1.1Ed Seidewitz
Based on a tutorial presentation given at the OMG Executable UML Information Day, this version of the presentation has been updated for fUML 1.3 and Alf 1.1, the latest versions as of this upload.
The document provides information about sequential function charts (SFC) in SIMATIC PCS 7, including:
1) SFCs are used for sequential control and allow advancing between states depending on conditions. They control functions like CFC charts via mode and state changes.
2) An SFC chart can include a maximum of 8 sequencers to represent different states of a sequential control system. Each sequencer can have 2-255 steps.
3) When a new sequencer is created in an SFC, it is inserted with an initial step, transition, and final step representing its initial state.
Using Alf with Cameo Simulation Toolkit - Part 2: ModelingEd Seidewitz
Alf is an OMG-standard textual language with a familiar Java-like syntax, but it is designed specifically to be used in the context of graphical, executable UML and SysML models. This language is available for use in No Magic's Cameo Simulation Toolkit (CST) v18.5 to write expressions and behaviors in executable UML. This presentation follows on from "Using Alf with Cameo Simulation Toolkit - Part 1", covering the use of Alf for specifying behaviors in models of multiple, communicating objects, including synchronous operation calling and asynchronous signal sending.
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsEd Seidewitz
Alf is an OMG-standard textual language with a familiar Java-like syntax, but it is designed specifically to be used in the context of graphical, executable UML and SysML models. This language is available for use in No Magic's Cameo Simulation Toolkit (CST) v18.5 to write expressions and behaviors in executable UML. Behind the scenes, Alf is actually compiled into UML activity models, which are then automatically integrated into your overall model, so they can be seamlessly executed using CST. This presentation gives an introduction to the Alf language, a tutorial on how to use it in CST and hands-on exercises to try yourself. You will be amazed at how much quicker and easier it is to write three lines of Alf code, rather than create by hand an equivalent activity model of 20 or more elements!
The document discusses mass data engineering in PCS 7, including process tag types, import/export assistants, and chart reference data. It provides an example of using a process tag type and import file to generate level measurement charts for 4 reactors based on an existing chart, modifying chart names, signals, scaling, and comments. The import file is created from a template to define the I/O points and data for the new process tags. Running the import will generate new charts according to the file. Chart reference data allows navigating between elements in CFC and SFC charts for troubleshooting.
Nowadays, we are surrounded by system of systems, autonomous systems, interconnected systems or distributed heterogeneous systems with an increase in architecture complexity.
Keeping these systems operational is a challenge as the number of potential failures which may affect their availability also increases drastically. In order to optimize availability, maintenance activities have to be designed within the design phase of the system.
Whatever the implementation choice, detection, diagnostic or prevention of failures require tests.
The goal for autonomous systems also pushes towards embedded detection and prevention capabilities and thus arguing and decision making between system engineers and maintenance engineers to share solutions in their respective activities.
In this presentation, we talk about the ability of a system designed with Capella to be tested, including in the maintenance phase. This means to interconnect several kinds of models representing different perspectives: System Design (MBSE), RAMS Analysis (Reliability, Availability, Maintainability and Safety) and Testability.
We present how a MBSE approach with Capella can be used to initiate a testability study performed with the eXpress tool from DSI International.
SysML v2 - What's the big deal, anyway?Ed Seidewitz
SysML v2 is an upcoming version of the Systems Modeling Language that aims to address limitations in the current version (v1). It has a formal foundation using KerML, a new metamodel that is not limited by being a UML profile, and a textual notation to integrate with existing technologies. A standardized API will also allow SysML tooling to better interoperate. The goal of these changes is to enable effective model-based systems engineering by putting system models with real meaning and semantics at the center.
CapellaDays2022 | NavalGroup | Closing the gap between traditional engineerin...Obeo
Closing the gap between traditional engineering and digital-native model-based driven engineering requires helping engineers to embrace new techniques. Naval Group decided to tackle the following issues: lack of interoperability with other systems, lack of bridge between functional definitions in PID schemas and MBSE physical layers, lack of documenting cross-layers relationships for a specific object's type.
Model based design-Hardware in loop-software in loopMahmoud Hussein
This document provides an overview of a course on real time embedded control systems using model based design concepts. The course aims to show a design path for real time embedded systems starting with system level simulation and ending with real time implementation of control algorithms. It covers topics such as MATLAB and Simulink, physical system modeling, control systems design, embedded coding, and state machines. Model based design is emphasized, with a graphical model at the center of the development process from requirements to testing.
[Capella Day 2019] Model execution and system simulation in CapellaObeo
A common need in system architecture design is to verify that if the architect is correct and can satisfy its requirements. Execution of system architect model means to interact with state machines to test system’s control logic. It can verify if the logical sequences of functions and interfaces in different scenarios are desired.
However, only sequence itself is not enough to verify its consequence or output. So we need each function to do what it is supposed to do during model execution to verify its output, and that is what we called “system simulation”.
This presentation introduces how we do model execution in Capella, and how to embed digital mockup inside functions to do “system simulation” with a higher confidence.
Renfei Xu, Glaway
Renfei Xu is the technical manager of MBSE solution in Glaway. He has participated in many pilot projects of MBSE in areas like Engine Control, Avionics, Mechatronics and so on. In recent years, he is responsible for the deployment of MBSE using Capella and ARCADIA methodology in a Radar research institute.
Wenhua Fang, Glaway
Wenhua Fang is the Director of Systems Engineering in Glaway. He has more than 12 years of working experience in SE.
He is responsible for more than 10 implementation projects of MBSE in areas like Aircraft, Engine Control, Avionics, Automotive and so on. In recent years, he leads the team to deploy MBSE in China(including using Capella and ARCADIA methodology).
This document discusses model-based systems engineering (MBSE) and the use of system modeling languages. It motivates MBSE by describing how system models can integrate requirements, design, analysis and other engineering artifacts. It then provides an overview of the SysML modeling language and how it supports structural, behavioral, requirements and parametric modeling of systems. Finally, it describes how a system architecture model can act as an integrating framework to link various engineering analysis models across the lifecycle.
The document discusses emergency preparedness plans at Kennedy Space Center for hurricanes and other natural disasters. It details lessons learned from the 2004 and 2005 hurricane seasons, which caused extensive damage. These lessons included improving employee communication before and after storms, pre-positioning of critical hardware, and having backup servers and an off-site IT system. The plans were improved by establishing scenarios to account for all employees and get them information. While the plans aimed to prepare for any situation, actual disasters always provide additional lessons to further strengthen readiness.
AADL: Architecture Analysis and Design LanguageIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
سيستمهاي اطلاعاتي مديريت پيشرفته سرلك فراتي فصل يك_ محسن ترابي كمالمحسن ترابي كمال
ارايه براي فصل نخست از كتاب "سيستمهاي اطلاعاتي مديريت پيشرفته" اثر سرلك و فراتي - ارايه در كلاس سيستمهاي اطلاعاتي دكتر مبارك آبادي در دانشگاه آزاد همدان دوره كارشناسي ارشد مديريت اجرايي گرايش استراتژي، توسط محسن ترابي كمال.
Safety Model and Systems Model - GSN/MARTE/SysML/SafeML integration in Robo...Kenji Hiranabe
“Safety Model and Systems Model - GSN/MARTE/SysML/SafeML integration
in Robotics”
by Toshi Okamura(Change Vision, Inc), Geoffrey Biggs(AIST)
We tried to model a wheelchair robot system with GSN/SafeML(Safety), SysML(System) and MARTE(realtime software) together to prove that those models can effectively express the problem domain and the solutions.
Une rapide introduction au développement dirigé par les modèles (MDA/MDD) et à ses bénéfices. Présentation de l'approche implémentée par le logiciel RTaW-Generator.
Using SysML in a RTC-based Robotics Application : a case study with a demoKenji Hiranabe
1) The document discusses using SysML modeling to design a robotics application based on the Robot Technology Component (RTC) framework.
2) It presents a case study where SysML diagrams were used to analyze and design a demo system controlling multiple autonomous robots. The design was then implemented using both OpenRTM and Honda's RTC framework.
3) The process involved modeling requirements, system context, components, and state machines in SysML, then generating RTC code from the models to create executable components for the different RTC runtimes. This demonstrated how a common model can be used across multiple RTC implementations.
This document describes SysML-Companion, a tool that automatically generates simulatable and analyzable models from SysML specifications. It allows engineers to create a single SysML model as a common repository, then perform virtual prototyping and testing through simulation and hardware-in-the-loop testing. The document provides an example of using SysML-Companion to model and simulate a simple circuit containing both digital and analog components. Key benefits include enabling early testing, reducing prototype costs, and shortening time to market.
Louise Anderson's presentation at the October 2014 INCOSE Colorado Front Range Chapter Meeting, held at the Laboratory for Atmospheric and Space Physics (LASP), University of Colorado Boulder.
Louise is the Systems Engineering Product Owner (Inventory & Production) at DigitalGlobe; Lead for the INCOSE Space Systems Working Group (SSWG) CubeSat Challenge Team
The document provides an overview of Team 2's final project on the Systems Engineering Body of Knowledge (SEBoK). It includes:
1) An introduction to the SEBoK that describes its history, purpose, description of its seven major parts, and current status.
2) An overview of the SysML modeling language that describes its history, purpose, key diagrams like requirements, block definition, internal block and parametric diagrams, and how it relates to systems engineering processes.
3) A potential application of SysML for Millennium Systems to benefit from modeling system requirements, structure, behavior and performing engineering analysis using its constraint blocks and equations.
Præsentationen blev holdt ved InfinIT-konferencen SummIT 2013, der blev afholdt den 22. maj 2013 på Axelborg i København. Læs mere om konferencen her: http://www.infinit.dk/dk/arrangementer/tidligere_arrangementer/summit_2013.htm
Automation of SysML Activity Diagram Simulation with Model-Driven Engineering...Daniele Gianni
Presentation at the 2nd International Workshop on Model-driven Approaches for Simulation Engineering
(held within the SCS/IEEE Symposium on Theory of Modeling and Simulation part of SpringSim 2012)
Please see: http://www.sel.uniroma2.it/mod4sim12/ for further details
The Unified Modeling Language (UML) has arguably succeeded in becoming the most commonly used modeling notation for software development. But “modeling” in the software community seems largely to mean simply drawing pictures, either to represent the problem domain or to blueprint a solution, without a precise enough meaning to fully specify the functionality of the system being developed. As a result, the UML standard,S up to and including UML 2.4.1, do not define the semantics of UML models at all precisely.
Nevertheless, there has also long been an interest in models that are more precise, even to the extent that they may be executed in their own right. It has taken a while for this viewpoint to penetrate into the mainstream of UML usage. But there has been in a great deal of work in recent years toward the standardization of the formal semantics of UML models – the “meaning” behind the pictures: the Foundational UML (fUML) specification adopted in 2008; the Action Language for fUML (Alf), adopted in 2010; the UML 2.5 specification (which includes a semantics conformance point for the first time); and the Precise Semantics of UML Composite Structures.
This presentation reviews the state of this work and the implications in practice of bringing real meaning to UML.
This document provides an overview of the history and development of the Unified Modeling Language (UML) and Foundational UML (fUML) standard for executable modeling. It discusses how UML evolved from its origins in object-oriented analysis and design in the 1980s-1990s to add formal execution semantics definitions. fUML and the Action Language for Foundational UML (Alf) provide a computationally complete subset of UML with a defined execution model, addressing UML's previous lack of precise semantics. The document outlines the key components and implementations of fUML and Alf and their role in specifying UML's structural and behavioral semantics formally.
The document provides an overview of the Unified Modeling Language (UML). It discusses the basic building blocks of UML including structural things like classes, interfaces, use cases, and behavioral things. It describes different types of models in UML like structural, behavioral, and deployment models. The document also explains various UML diagrams like class, sequence, activity diagrams and how they are used to create different views of a system. It provides advantages of UML and discusses the iterative Object Oriented methodology and Rational Unified Process for software development.
The document is a slide presentation on UML modeling and profiling from a software engineering course. It introduces UML and the concepts of metamodeling. It explains that UML is used to specify, visualize, construct and document software system artifacts. The presentation then outlines the typical steps in UML modeling: 1) modeling use cases, 2) modeling system structure with classes and components, and 3) modeling deployment to hardware nodes.
This document provides an overview of the Unified Modeling Language (UML) including its building blocks, diagrams, and the Rational Unified Process (RUP) methodology. It defines UML, explains its advantages for visualizing, specifying, and constructing systems. It describes the different types of UML elements including structural things like classes and interfaces, behavioral things like interactions and state machines, and grouping and annotational things. It also outlines the different UML diagrams for modeling a system from various perspectives and the four phases of the iterative RUP methodology.
Executable UML Roadmap (as of September 2014)Ed Seidewitz
The document outlines the past, present, and future of executable UML specifications. It discusses foundational UML (fUML) which defines an executable subset of UML, the Action Language for fUML (Alf) which provides a textual notation, and the Precise Semantics of UML Composite Structures (PSCS) which extends fUML for modeling composite structures. It describes open source and commercial implementations of these specifications and notes ongoing work to finalize the specifications and extend them to cover additional UML elements like state machines. The long term vision is for a suite of specifications that define the precise semantics of different aspects of UML to enable executable modeling.
This document provides an introduction to the Unified Modeling Language (UML). It outlines the course information for an Introduction to UML course, including aims, objectives, assessment, and recommended books. It then describes what UML is and lists common UML tools. The document explains that UML defines 13 types of diagrams divided into categories for structure, behavior, and interaction. Examples of different UML diagrams are provided, including class, object, component, and use case diagrams. Guidelines are given for modeling with UML, including the development process, types of models, and use case modeling syntax, semantics, and examples.
This document provides an introduction to structural and use case modeling using the Unified Modeling Language (UML). It defines structural modeling as emphasizing the structure of objects, including their classifiers, relationships, attributes and operations. Use case modeling partitions system functionality into meaningful transactions ("use cases") between users ("actors") and the system. The document then reviews the core concepts and diagram types for both structural and use case modeling in UML.
Executable UML (xUML) provides an executable version of UML with a precisely defined semantics for actions. xUML supports the separation of business logic from platform technology through platform independent models (PIMs) that can be automatically transformed into platform specific models (PSMs) through model mappings. Tools such as Kennedy Carter's iUML and Accelerated Technology's BridgePoint allow developers to simulate and test xUML models prior to translation into executable code.
This document provides an introduction and overview of structural modeling and use case modeling in the Unified Modeling Language (UML). It discusses the goals and benefits of modeling, provides a quick tour of UML concepts, and covers the core elements of structural modeling like classes, interfaces, associations and diagrams. It explains when and how to model system structure and provides an example of interface-based design. The document is intended to teach the basics of UML structural and use case modeling.
The document discusses the need for an executable version of the Unified Modeling Language (UML) called xUML. It notes that while UML 1.x describes system behavior, it is not fully executable because it lacks precise semantics for actions. xUML addresses this by defining a precise action semantics language and process to allow UML models to be executed, validated, and automatically generated into code. An executable UML provides benefits like early verification of requirements, improved quality through objective criteria, and more fun for analysts.
UML (Unified Modeling Language) is a standardized modeling language used to visualize, specify, construct and document artifacts of a software system. It can be used to model both software and non-software systems. The document discusses the history, features, diagrams and real-world applications of UML. It also covers advantages like being easy to understand and standardized, as well as disadvantages such as difficulty synchronizing models with code. Finally, it briefly describes several open source UML modeling tools.
What is UML (Unified Modeling Language)?Eliza Wright
What is UML? Read our guide to learn all the answers, including which diagrams are made with the Unified Modeling Language and how you can create UML diagrams of your own.
This document provides an introduction to object-oriented analysis and design (OOAD) and the Unified Modeling Language (UML). It discusses the basic concepts of OOAD and how UML uses diagrams to model software systems. UML diagrams can be used in all phases of the software development life cycle, including requirements analysis, design, implementation, and testing. The document also gives an overview of the different parts of UML, such as views, diagrams, relationships, and model elements.
This document provides an overview and tutorial on SysML (Systems Modeling Language). It discusses that SysML is a modeling language used for systems engineering that extends the Unified Modeling Language (UML). The tutorial covers topics such as the history and purpose of SysML, the language architecture, modeling elements, compliance with UML, diagram elements like block definition diagrams and internal block diagrams, and more. It is intended to help those new to SysML understand the basics of the modeling framework and language.
UML is a standard modeling language used to create object-oriented models to represent systems. It was developed in the 1990s to address challenges with modeling complex object-oriented systems. UML includes different types of diagrams - structural diagrams depict system structure, behavioral diagrams show system functioning, and interaction diagrams visualize communication between entities. UML is now recognized as an ISO standard and supported by modeling tools.
The document discusses UML (Unified Modeling Language), which is a standard modeling language used to visualize, specify, construct, and document software systems. It describes the 13 official UML diagram types and how UML can be used in different modes like sketching, blueprinting, or as a programming language. It also discusses the history and development of UML and the Rational Unified Process (RUP) iterative development framework often used with UML.
Code Generation 2014 - ALF, the Standard Programming Language for UMLJürgen Mutschall
Presentation at the Code Generation 2014 conference at Cambridge.
The Action Language for Foundational UML (ALF) is a standard domain modeling and programming language for the executable (foundational) subset of standard UML (fUML). ALF is used for specifying executable behaviors within an overall graphical UML model.
UML (Unified Modeling Language) was created in the 1990s as a general-purpose modeling language for software engineering. It was developed by Grady Booch, James Rumbaugh, and Ivar Jacobson, known as "the three amigos". UML was later standardized by the Object Management Group and now includes diagrams for modeling software structure, behavior, and architecture. The OMG also established a certification program with three levels to ensure consistent understanding and proficiency with UML.
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingEd Seidewitz
Alf is the OMG-standard textual language specifically designed for specifying executable behavior in the context of graphical, executable UML and SysML models. It is the best alternative to using complicated activity diagrams or scripting languages not designed for use in models. Part 2 of this tutorial focuses on leveraging Alf in SysML models for studying trade-offs between design variants.
The Very Model of a Modern MetamodelerEd Seidewitz
Philosophers have been talking about metaphysics since Aristotle. Logicians have used metalanguages for 80 years. And, in the last 50 years, computer scientists have produced metaobjects, metaclasses and metamodels. “Going meta” is now even part of the popular culture. What is this all about?
It is about the incredibly powerful human ability to reflect on what we are doing. Bringing this capability to our modeling languages, we can create languages able to express their own definitions. But, with real semantic formalization, we also open up the possibility of creating tools that can reflect on the very models they are being used to create. What might this mean for the next generation of modeling languages and tools?
This presentations goes meta, to reflect on reflection and try to figure it out.
Precise Semantics Standards at OMG: Executing on the VisionEd Seidewitz
The document discusses standards for precise semantics in executable modeling developed by the Object Management Group (OMG). It summarizes Foundational UML (fUML), the Action Language for fUML (Alf), the Precise Semantics of Composite Structure (PSCS), and the Precise Semantics of State Machines (PSSM). It outlines potential future standards and provides resources for these existing and upcoming specifications.
Model Driven Architecture without AutomationEd Seidewitz
This is an old presentation, but still interesting. An example of using models as primary artifacts for communication during a development effort, even without code generation.
NOTE: This presentation used to be on my Slideshare, but it seems to have gotten deleted, so I have uploaded it again.
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseEd Seidewitz
This webinar demonstrates the practical realization of standards-based executable modeling in UML, showing its importance for moving forward in a number of, perhaps, unexpected areas, including agile development methods, multi-core programming and model-based system engineering. Today’s Executable UML is based on the OMG’s Foundational UML (fUML) standard, for executable object-oriented and activity modeling, and the Action Language for fUML (Alf) standard, which defines a corresponding textual representation. But this is only the beginning. Additional Executable UML standards are being built on this foundation, including recent ones for composite structure and state machines.
A Unified View of Modeling and ProgrammingEd Seidewitz
The document discusses the unification of modeling and programming using executable UML. It argues that a program is a model of computation that is abstracted from implementation details, and that a programming language allows the creation of execution models. UML can be used for both domain modeling and executable modeling of computations through its precise execution semantics. A combined modeling/programming language should allow expression of problem and solution domain models with both formal semantics for reasoning and execution semantics for behavioral models, using both textual and graphical notations.
The Unified Modeling Language (UML) is, of course, a modeling language. But there are now standard, executable semantics for a subset of UML (known as Foundational UML or fUML) and a standard language that provides a textual representation for this subset (the Action Language for fUML or Alf). Doesn’t this just make at least this subset of UML into a programming language?
Well, yes. After all, a programming language is really itself a modeling language for modellng computations that can actually be executed on computation hardware. In this view, all programs are models, but only some models, the executable models, are programs. Which means that an “executable modelling language” is, by definition, a programming language.
But is this a good thing? That is the question explored in this presentation, which argues that the answer is “yes”. And, moreover, UML as a programming language may, in fact, be important for moving forward in a number of, perhaps, unexpected areas, including agile development methods and programming for multi-core architectures.
Essence: A Common Ground for Flexible MethodsEd Seidewitz
The document discusses Essence, a common ground for flexible software engineering methods. It provides a kernel of essential concepts and a language for defining methods and practices close to how practitioners work. The kernel includes things like activities, competencies, and states. The language allows graphically and textually defining elements like alphas (abstract progress attributes), activity spaces, and competencies. Practices can then be composed from these elements to provide guidance tailored to different contexts. An example shows defining the Scrum practice by extending elements from the kernel. The goal is a flexible yet common foundation to help practitioners across a variety of methods and experience levels.
Succeeding with Agile in the Federal Government: A Coach's PerspectiveEd Seidewitz
The document summarizes key principles from the Agile Manifesto and provides advice for implementing Agile practices in government organizations. It discusses embracing individuals and interactions over processes; delivering working software over documentation; prioritizing customer collaboration over contract negotiation; and responding to change rather than rigidly following a plan. The document offers dos and don'ts for applying these Agile concepts when working with government agencies and contractors.
A presentation on the UML 2.5 specification simplification effort, presented at the 3rd Biannual Workshop on Eclipse Open Source Software and OMG Open Specifications.
1. All programs are models that specify computations to be executed on a computer, with programming languages serving as modeling languages.
2. Executable UML models are programs because UML 2 has constructs that allow specification of Turing-complete computation models with precise execution semantics.
3. Executable UML models are useful because they can be tested like programs without needing to be recoded, instead being compiled from models at a higher level of abstraction.
The document discusses leveraging a service-oriented and model-driven approach to enterprise architecture. It introduces key concepts like enterprise architecture, service-oriented architecture, and model-driven architecture. It provides an example of modeling a "Dealer Network" as a services architecture using these concepts.
The document discusses model-driven development using executable UML models. It addresses perceived issues with making UML models executable and proposes resolutions. The key benefits of executable UML models are that models can be more easily understood than code and kept in sync with development artifacts.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Unlocking the Power of IVR: A Comprehensive Guidevikasascentbpo
Streamline customer service and reduce costs with an IVR solution. Learn how interactive voice response systems automate call handling, improve efficiency, and enhance customer experience.
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Social Media App Development Company-EmizenTechSteve Jonas
EmizenTech is a trusted Social Media App Development Company with 11+ years of experience in building engaging and feature-rich social platforms. Our team of skilled developers delivers custom social media apps tailored to your business goals and user expectations. We integrate real-time chat, video sharing, content feeds, notifications, and robust security features to ensure seamless user experiences. Whether you're creating a new platform or enhancing an existing one, we offer scalable solutions that support high performance and future growth. EmizenTech empowers businesses to connect users globally, boost engagement, and stay competitive in the digital social landscape.
Web & Graphics Designing Training at Erginous Technologies in Rajpura offers practical, hands-on learning for students, graduates, and professionals aiming for a creative career. The 6-week and 6-month industrial training programs blend creativity with technical skills to prepare you for real-world opportunities in design.
The course covers Graphic Designing tools like Photoshop, Illustrator, and CorelDRAW, along with logo, banner, and branding design. In Web Designing, you’ll learn HTML5, CSS3, JavaScript basics, responsive design, Bootstrap, Figma, and Adobe XD.
Erginous emphasizes 100% practical training, live projects, portfolio building, expert guidance, certification, and placement support. Graduates can explore roles like Web Designer, Graphic Designer, UI/UX Designer, or Freelancer.
For more info, visit erginous.co.in , message us on Instagram at erginoustechnologies, or call directly at +91-89684-38190 . Start your journey toward a creative and successful design career today!
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
2. Agenda Introduction Foundation for Executable UML Extensions for Executable SysML Appendix: Specifying Execution Semantics
3. I. Introduction Objectives To motivate the need for standardized model execution. To learn about the latest OMG standards related to model execution.
4. I. Introduction Topics Why Model? Why Execute Models? Why Standardize? A Motivating Example
5. A. Why Model? A model is a set of statements in some modeling language made about some system or domain. Standard modeling languages: Unified Modeling Language (UML), Business Process Modeling Notation (BPMN), Systems Modeling Language (SysML), Service Oriented Architecture Modeling Language (SoaML), etc. A model may be used to describe a domain or system under study or to specify a (business, software and/or hardware) system to be built. Descriptive models are generally used for analysis. Specification models are generally used for engineering. Models are intended to represent and communicate the results of analyses and proposals for new syntheses. No model can represent everything – but, to be useful, a model must effectively promote general understanding and communicate important details.
6. B. Why Execute Models? A model may specify the behavior of a system, that is, how the system interacts with external entities and changes its state over time. A behavioral model is executable if it is complete enough that the specified behavior can be enacted or simulated by an automated execution tool. Model execution may be used to: Explore possible (desirable and undesirable) behaviors of a system Validate the behavioral specification for a system Actually act as the implementation of the system (particularly for business processes or software systems)
7. Modeling for Software Development But… It is hard to validate the correctness of the models before development. The developers may not follow the models, without providing feedback. It is hard to keep the models and development artifacts in sync during development (and maintenance). How it usually works without executable models Developers provide feedback to the architects (maybe) Architects give models to developers Developers create artifacts based on the models (maybe) Architects create the models
8. Executable Modeling for Software Development The models are the source code. Using a standard-conforming UML modeling tool Using a standard-conforming UML execution tool How it works with executable models Architects validate the models by executing them in a simulated test environment Technologists specify the implementation platform The models are provisioned as executing artifacts on the target platform Architects create the models
9. Executable Modeling for System Engineering Using a standard-conforming SysML modeling tool Using a standard-conforming SysML execution tool Execution artifacts could include: System behavior Timing Statistics Models can include both hardware and software components. Hardware and software engineers develop components to satisfy the requirements. Test engineers develop the test environment to verify the requirements. System engineers analyze, simulate and validate the system design, and allocate requirements to components. System engineers create the models
10. C. Why Standardize? Semantic interoperability and consistency across modeling and execution tools requires standardization UML model execution tools are available, but UML execution semantics have not previously been precisely standardized. Mentor Graphics BridgePoint Kennedy-Carter xUML Rational Rose Real Time and Rhapsody Kabira Fluency System engineering model execution tools are available, but have not previously provided a complete, standardized modeling capability Vitech CORE Enhanced Functional Flow Block Diagrams (EEFBDs) OMG standards are now filling these gaps Unified Modeling Language (UML) Systems Modeling Language (SysML) Executable UML Foundation (fUML) UML Action Language (Alf)
11. Unified Modeling Language (UML) The Unified Modeling Language (UML) is a graphical language for modeling the structure, behavior and interactions of software, hardware and business systems, standardized by the Object Management Group (OMG). UML Version 1.1 (first standard) – November 1997 UML Version 2.0 – August 2005 UML Version 2.3 (current standard) – September 2009 (Beta) UML Version 2.4 – May 2010 (planned) UML Version 2.5 (spec simplification) – December 2010 (planned)
12. Systems Modeling Language (SysML) The Systems Modeling Language (SysML) is a general-purpose modeling language for systems engineering applications that supports the specification, analysis, design, and verification and validation of a broad range of complex systems. These systems may include hardware, software, information, processes, personnel, and facilities. SysML is a specialized usage or profile of UML. It is the result of a collaborative effort between OMG and the International Council on System Engineering (INCOSE). SysML Version 1.0 – September 2007 SysML Version 1.1 – November 2008 SysML Version 1.2 Beta 2 – August 2009
13. Executable UML Foundation (fUML) Foundational UML (fUML) is an executable subset of standard UML that can be used to define, in an operational style, the structural and behavioral semantics of systems. OMG RFP for the Semantics of a Foundational Subset for Executable UML Models – Issued April 2005 fUML Version 1.0 Beta 1 – November 2008 fUML Version 1.0 Beta 2 – September 2009 fUML Version 1.0 Beta 3 (finalized) – February 2010
14. UML Action Language (Alf) The Action Language for Foundational UML (Alf) is a textual surface representation for UML modeling elements with the primary of acting as the surface notation for specifying executable (fUML) behaviors within an overall graphical UML model. OMG RFP for Concrete Syntax for a UML Action Language – Issued September 2008 Two initial submissions – August 2009 Joint revised submission – February 2010 Second revised submission – May 2010 (planned)
15. D. A Motivating Example Simplification of the Hybrid SUV Sample Problem from Annex B of the SysML Specification. Example behavioral models (using only standard UML without SysML extensions at this point) State machines Activities The goal: automated execution and analysis
16. Hybrid SUV Operational States A state machine abstracts system behavior into a finite number of states. The system is modeled as having discrete transitions between the states. A transition may trigger further system behavior… … or system behavior may be dependent on the current state/
17. “Accelerate” Activity An activity specifies behavior as the coordinated execution of a set of subordinate actions. An action in one activity may call another activity. Data and control flow between the various actions.
19. “Proportion Power” Activity Full executability requires complete specification of all behavior and computation. However, after a certain level of detail, it is much more convenient to use a textual rather than graphical notation (whether mathematical constraints or procedural action language.)
21. II. Foundation for Executable UML Objectives To understand the intent of the fUML standard. To provide an overview of fUML as the foundational language for executable UML models. To understand how models are given executable semantics.
22. II. Foundation for Executable UML Topics Executable UML Foundation Standard The fUML Subset Foundation Model Library
23. A. Executable UML Foundation Standard Submitters and Supporters Objectives Key Components Semantics Conformance Semantics of a Foundational Subset for Executable UML Models
24. Submitters CARE Technologies International Business Machines Kennedy Carter Lockheed Martin Mentor Graphics Model Driven Solutions Supporters U.S. National Institute of Standards and Technology 88Solutions Corporation CEA LIST/LISE NASA Jet Propulsion Laboratory Submitters and Supporters (Foundation)
25. Submitters and Supporters (Action Language) Submitters Model Driven Solutions Mentor Graphics 88solutions Corporation No Magic International Business Machines Visumpoint Supporters Ericsson AB
26. Objectives To enable a chain of tools that support the construction, verification, translation, and execution of computationally complete executable models based on a foundational subset of UML. To provide a general and standardized facility for specifying the structural and behavioral semantics of MOF-based modeling languages. Also, the same mechanisms can be used to define the semantics of domain-specific stereotypes defined in profiles as well as the concepts of languages other than UML.
27. Key Components Foundational UML Subset (fUML) – A computationally complete subset of the abstract syntax of UML (Version 2.3) Kernel – Basic object-oriented capabilities Common Behavior – General behavior and asynchronous communication Activities – Activity modeling, including structured activities (but not including variables, exceptions, swimlanes, streaming or other “higher level” activity modeling) Execution Model – A model of the execution semantics of user models within the fUML subset Foundational Model Library Primitive Types – Boolean, String, Integer, Unlimited Natural Primitive Behaviors – Boolean, String and Arithmetic Functions Basic Input/Output – Based on the concept of “Channels”
28. Semantics Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics Non-Executable Model Semantics The semantics of fUML provide the foundation for formally specifying the (execution) semantics of the rest of UML. Some areas of UML (e.g., use case and requirements models) may not be best formalized based on an executable semantics foundation. Interaction Model Semantics Foundational Semantics fUML operational semantics are specified as an execution model written in fUML itself. Base Semantics The base semantics of the subset of fUML used in the execution model are specified using formal logic.
29. Conformance Fundamental aspects Syntactic Conformance. A conforming model must be restricted to the abstract syntax subset defined for fUML. Semantic Conformance. A conforming execution tool must provide execution semantics for a conforming model consistent with the semantics specified for fUML. Levels (parallel for syntax and semantics) L1. Kernel, BasicBehaviors, Communications, Loci (semantics only) L2. IntermediateActivities, BasicActions, IntermediateActions L3. CompleteStructuredActivities, ExtraStructuredActivities, CompleteActions
30. B. The fUML Subset Activities Actions Structure Asynchronous Communication
31. i. Activities Activities and Parameters Actions and Flows Textual Notation Tokens Offers Control Nodes Structured Nodes
32. Activities and Parameters An activity is a specification of behavior as the coordinated execution of subordinate actions, using a control and data flow model. An activity may have input, output and return parameters . The parameters have corresponding activity parameter node on the boundary of the diagrammatic representation of an activity.
33. Actions and Flows An action is a fundamental unit of executable behavior within an activity. A pin is an activity node that either accepts input to or provides output from an action. An object flow provides a path for passing objects or data. A control flow specifies the sequencing of actions. An activity diagram is a graph structure consisting of activity nodes connected by activity edges.
34. Textual Notation activity DoSomething(in input: Integer, out output Integer): Integer { output = A(input); return B(); } Alf behavioral notation maps to fUML activity models. The semantics of the Alf notation is defined by its mapping to fUML
35. Tokens a = DoSomething(1, b); A token is a container for an object, datum or locus of control that may be present at an activity node. The activity is invoked with an argument of 1 for its input parameter. An object token with a value of 1 is placed on the input activity parameter node. The object token flows to the input pin of action A along the object flow. Action A fires and produces an object token on its output pin. The object token flows to the output activity parameter node along the object flow. When it is done, action A produces a control token, which flows to action B along the control flow. Action B accepts the control token and fires, producing an object token on its output pin. The object token flows to the output activity parameter node along the object flow. Values on the output activity parameter nodes are copied to the output arguments.
36. Offers An output pin offers its tokens to the targets of all outgoing object flows. A single token can only flow to one target. If two competing targets are both ready to accept an offer for the same token, it is indeterminate which will get the token. Note: fUML semantics do not guarantee “liveliness” or “fairness” in the execution of actions competing for tokens. Actions with no control constraints execute concurrently. This means that they may execute in parallel – or they may execute sequentially in any order.
37. Fork and Join Nodes order = 'Create Order'(); @parallel { 'Fulfill Order'(order); 'Invoice Order'(order); } 'Close Out Order'(order); A fork node copies the tokens it is offered, and offers a copy on each outgoing flow. A join node waits for a token to be offered on all incoming flows and then offers tokens on its outgoing flow. In the Alf textual notation, forks and joins are implicit in the parallel block notation. Note: Alf does not actually provide any notation for competition for tokens on output pins. A fork node is always inserted for multiple flows out of any output pin.
38. Control Nodes An initial node generates a single control token. A merge node passes on any tokens it receives. A decision node routes tokens based on a decision input value. An activity final node terminates the activity when it receives a token. A control node is an activity node used to coordinate the flow of (the offers for) tokens between other nodes. Note: This construction is necessary so a “card” token is available for each iteration. Note: Since the decision node “gates” control flow, it must be provided with an incoming control token.
39. Structured Nodes card = 'Select Credit Card'(); do { charge = 'Create Credit Card Charge'(card); if ('Check Charge Approval'(charge)) { declined = false; 'Notify Customer of Approval'(charge); } else { declined = true; 'Notify Customer of Denial'(charge); } } while (declined); A structured node is an activity node used to group subordinate nodes into a control structure. An loop node iterates the execution of its body while a condition is true. By default, the condition is tested after execution of the body. A conditional node executes one clause or another based on the result of a test (or tests). Inputs to the loop node initialize loop variables available across all iterations of the loop. Note: There is no normative UML graphical notation for loop or conditional nodes.
40. Expansion Regions 'Get Outstanding Orders'(customer) -> select order ('Is Delinquent?'(order)) -> iterate order ('Refer for Collection'(order)); An expansion region is used to apply subordinate actions on all members of an input collection A parallel expansion region applies nested behavior concurrently to all collection elements. An iterative expansion region applies nested behavior sequentially to all collection elements. Alf provides specialized notation that maps to typical uses of expansion regions.
41. ii. Actions Invocation Actions Object Actions Structural Feature Actions Link Actions NOTE: Some of these actions will be discussed in more detail later.
43. Object Actions Value Specification Create Object Destroy Object Test Identity Read Self Read Extent Read Is Classified Object Reclassify Object 1 true "Hello" new Order() order.destroy() order == myOrder name != customerName this Order.allInstances() vehicle instanceof Car car hastype Hatchback reclassify order from PendingOrder to ClosedOrder
44. Structural Feature Actions Read Structural Feature Add Structural Feature Value Remove Structural Feature Value Clear Structural Feature Value order.customer order.lineItems->add(item) order.lineItems->remove(item) order.card = null
45. Link Actions Read Link Create Link Destroy Link Clear Association Owns->select person (house=>thisHouse) Owns->add(person=>jack, house=>newHouse) Owns->remove(person=>jack, house=>oldHouse) Owns->clear(jack)
47. Structural and Behavioral Models A structural model (e.g., a class model) specifies the relevant instances in a domain that may exist at any one point in time. Structural semantics define how a structural model constrains allowable instances. A behavioral model (e.g., an activity model) specifies behavior over time Behavioral semantics define how a behavioral model changes the state of instances over time.
48. Classes Attributes Data Types Primitive Types Operations and Methods Structural Semantics Behavioral Semantics A class is a classifier of objects that persist in the extent of the class, with an identity that is independent of the value of their attributes at any one time.
49. Classes and Attributes A class may have attributes whose types are primitive, data types or other classes. A referential attribute, whose type is a class, is conventionally notated as an association with a class-owned association end . A bidirectional association results in corresponding referential attributes on both associated classes.
50. Data Types A data type is a classifier of transient data values whose identity is based on the values of their attributes. Data types may have attributes , but not operations.
51. Primitive Types From UML 2 Auxiliary Constructs Boolean Integer UnlimitedNatural String To be added for Alf Bit strings Real/floating point Fixed point (?)
52. Classes: Operations and Methods An operation specifies a behavior that may be synchronously invoked on an instance of a class. A method defines that actual behavior that is invoked.
53. Classes: Structural Semantics Structural semantics specify how a structural model constrains allowable instances. Objects are instances of classes with values for each attribute. Class-owned association ends are structural features with values, like attributes. fUML does not actually give semantics to an association with class-owned ends, only to the ends as structural features. Note: fUML does provide “reified” semantics for associations that own their own ends, as will be discussed later.
54. Classes: Behavioral Semantics Creating an Order Adding a Line Item Canceling an Order Behavioral semantics specify how a behavioral model changes the state of instances over time.
55. Creating an Order order = new Order (customer, today) Before After @create public Order (customer: Customer, in datePlaced: Date) { this.datePlaced = datePlaced; this.totalAmount = new Money(dollars=>0, cents=>0); this.customer = customer; this.customer.orders->add(this); } A new object is created and the constructor operation is invoked. The constructor initializes the new order’s attribute values… … and adds the order to the customer’s list.
56. Adding a Line Item Before After order.addProduct (product, 2) public addProduct (in product: Product, in quantity: Integer) { lineItem = new LineItem(product, quantity); this.lineItems->add(lineItem); this.totalAmount = MoneyFunctions::Add (this.totalAmount, lineItem.amount); } The method for the operation creates a new line item object… The addProduct operation is invoked on an existing Order object. … adds the new object to the list of line items for the order… … and updates the total order amount.
57. Canceling an Order Before After order.cancel() @destroy public cancel() { this.customer.orders->remove(this); } A destructor operation is invoked, after which the order object is destroyed. Because line items are aggregated by composition, they are destroyed, too. References to the destroyed object must be explicitly removed.
58. Associations Classes and Associations Structural Semantics Behavioral Semantics An association is a classifier whose instances are links that relate other instances.
59. Classes and Associations An association (that owns its ends) is a classifier of persistent links between the associated classes, which exist in the extent of the association.
60. Associations: Structural Semantics Links are now semantic instances of the indicated associations. Structural semantics specify how a structural model constrains allowable instance models.
61. Associations: Behavioral Semantics Creating an Order (revised) Canceling an Order (revised) Behavioral semantics specify how a behavioral model changes the state of instances over time.
62. Creating an Order (revised) order = new Order (customer, today) Before After @create public Order (customer: Customer, in datePlaced: Date) { this.datePlaced = datePlaced; this.totalAmount = new Money(dollars=>0, cents=>0); Customer_Order->add(customer, this); } A single action creates a bidirectional link.
63. Canceling an Order (revised) Before After order.cancel() @destroy public cancel() { } A destructor operation is invoked, after which the order object is destroyed. Links in which the destroyed object participates are now also automatically destroyed.
65. Signals and Receptions A signal is a classifier whose instances may be communicated asynchronously. A reception is a declaration of the ability to receive a signal. A signal may have attributes that represent transmittable data. More than one class can receive the same signal.
66. Classifier Behaviors An active class is one that has a classifier behavior. Only active class may receive signals. A classifier behavior is an autonomous behavior started when an active class is instantiated.
67. Asynchronous Behavior accept (submission: SubmitCharge); card = submission.card; do { new CreditCardCharge(card, this); accept (response: ChargeApproved) { declined = false; this.customer.ChargeApproved(response.charge); } or accept (response: ChargeDeclined) { declined = true; this.customer.ChargeDeclined(response.charge); } while (declined); The order object accepts a signal to submit a charge. The order object creates a new credit card charge object, which begins its asynchronous behavior. Note: UML semantics require a separate action to start the behavior of a new object. However, Alf notation for creating an active class maps to both create and start object behavior actions. The order object accepts a signal from the charge object that the charge is approved. The order object sends a signal to the customer that the charge is approved.
68. C. Foundational Model Library Primitive Behaviors Boolean Functions Integer Functions Unlimited Natural Functions String Functions Basic Input and Output Common Classes Channels Reading and Writing Lines Hello World
69. Boolean Functions Converts x to a Boolean value. Pre: (lower(x) = “true”) or (lower(x) = “false”) Post: if lower(x) = “true” then result = true else result = false endif Note: The notation “lower(x)” above is not intended to be an invocation of a Foundation Model Library primitive behavior but, rather, is intended to denote that value of the string x with any uppercase letters converted to the corresponding lowercase letters. ToBoolean(x: String): Boolean[0..1] Converts x to a String value. Post: if x then result = “true” else result = “false” endif ToString(x: Boolean): String True if x is false, or if x is true and y is true. Post: result = Not(x) Or (x And y) Implies(x: Boolean, y: Boolean): Boolean True is x is false. Post: if x then result = false else result = true endif Not(x: Boolean): Boolean True if both x and y are true. Post: if x then result = y else result = true endif And(x: Boolean, y: Boolean):Boolean True if either x or y is true, but not both. Post: result = (x Or y) And Not(x And y) Xor(x: Boolean, y: Boolean): Boolean True if either x or y is true. Post: if x then result = true else result = y endif Or(x: Boolean, y: Boolean): Boolean Description Function Signature
70. Integer Functions Converts x to an Integer value. Pre: x has the form of a legal integer value ToInteger(x: String): Integer[0..1] Converts x to an UnlimitedNatural value. Pre: x >= 0 Post: ToInteger(result) = x ToUnlimitedNatural(x: Integer): UnlimitedNatural[0..1] Converts x to a String value. Post: ToInteger(result) = x ToString(x: Integer): String True if x is greater than or equal to y. Post: result = (x = y) Or (x > y) >=(Integer, Integer): Boolean True if x is less than or equal to y . Post: result = (x = y) Or (x < y) <=(Integer, Integer): Boolean True if x is greater than y. Post: result = Not(x <= y) >(x: Integer, y: Integer): Boolean True if x is less than y. <(x: Integer, y: Integer): Boolean The minimum of x and y. Post: if x <= y then result = x else result = y endif Min(x: Integer, y: Integer): Integer The maximum of x and y. Post: if x >= y then result = x else result = y endif Max(x: Integer, y: Integer): Integer The result is x modulo y. Post: result = x – (x Div y) * y Mod(x: Integer, y: Integer): Integer The number of times that y fits completely within x. Pre: y<>0 Post: if (x * y) >= 0 then ((result * y) <= x) And ((result+1) * y) >x) else ((Neg(result) * y) <= Neg(x)) And ((Neg(result)+1) * y) > Neg(x)) endif Div(x: Integer, y: Integer): Integer[0..1] The absolute value of x. Post: if x < 0 then result = Neg(x) else result = x endif Abs(x: Integer): Integer The value of the multiplication of x and y. Post: if y < 0 then result =Neg (x * Neg(y)) else if y = 0 then result = 0 else result = (x * (y-1)) + x endif endif *(x:Integer, y:Integer): Integer The value of the subtraction of x and y. Post: result + y = x -(x: Integer, y: Integer): Integer The value of the addition of x and y. +(x: Integer, y: Integer): Integer The negative value of x. Neg(x: Integer): Integer Description Function Signature
71. Unlimited Natural Functions Converts x to an Integer value. Pre: (x has the form of a legal integer value) Or (x = “*”) Post: if x = “*” then result = unbounded else result = ToUnlimitedNatural(ToInteger(x)) ToUnlimitedNatural(x: String): Integer[0..1] Converts x to an Integer value. Pre: x <> unbounded ToInteger(x: UnlimitedNatural): Integer[0..1] Converts x to a String value. The value “unbounded” is represented by the string “*”. Post: ToUnlimitedNatural(result) = x ToString(x: UnlimitedNatural): String True if x is greater than or equal to y. Post: result = (x = y) Or (x > y) >=(UnlimitedNatural, UnlimitedNatural): Boolean True if x is less than or equal to y . Post: result = (x = y) Or (x < y) <=(UnlimitedNatural, UnlimitedNatural): Boolean True if x is greater than y. Post: result = Not(x <= y) >(x: UnlimitedNatural, y: UnlimitedNatural): Boolean True if x is less than y. Every value other than “unbounded” is less than “unbounded”. <(x: UnlimitedNatural, y: UnlimitedNatural): Boolean The minimum of x and y. Post: if x <= y then result = x else result = y endif Min(x: UnlimitedNatural, y: UnlimitedNatural): UnlimitedNatural The maximum of x and y. Post: if x >= y then result = x else result = y endif Max(x: UnlimitedNatural, y: UnlimitedNatural): UnlimitedNatural Description Function Signature
72. String Functions The substring of x starting at character number lower , up to and including character number upper. Character numbers run from 1 to Size(x). Pre: (1 <= lower) And (lower <= upper) And (upper <= Size(x)) Substring(x: String, lower: Integer, upper: Integer): String[0..1] The number of characters in x. Size(x: String):Integer The concatenation of x and y . Post: (Size(result) = Size(x) + Size(y)) And (Substring(result, 1, Size(x)) = x) And (Substring(result, Size(x)+1, Size(result)) = y) Concat(x: String, y: String):String Description Function Signature
77. III. Extensions for Executable SysML Objectives To understand how the semantic specification for a UML profile like SysML can be built on the fUML foundation. To provide an overview of some of the key semantic extensions required for SysML.
78. III. Extensions for Executable SysML Topics SysML Semantics Streaming Timing Blocks and Partitions State Machines
79. A. SysML Semantics Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics Non-Executable Model Semantics Interaction Model Semantics Foundational Semantics SysML also defines a profile consisting of stereotypes used to tag standard UML model elements to give them SysML-specialized meaning. SysML is base on a UML subset that does not include all of fUML (e.g., it does not include structured activity nodes), but it includes capabilities not in fUML (e.g., composite structure, state machines, streaming, etc.) UML for SysML
80. Building on the Foundation There are two main ways to build on the semantic foundation provided by fUML. Translate higher-level constructs into equivalent fUML models. For example, provide semantics for state machines by specifying how to translate them into equivalent fUML activity models. Extend the fUML execution model to directly specify the semantics of higher-level constructs. For example, extend the fUML specification for behavior invocation and action pins to define the semantics of stream parameters.
81. B. Streaming Streaming is a property of a behavior parameter that gives the behavior access to from its invoker while the behavior is executing. Multiple values may arrive through a streaming input parameter during a single behavior execution, not just at the beginning. Multiple values may be posted to a streaming output parameter during a single behavior execution, not just at the end.
82. Execution without Streaming … [execute] Activity ProvidePower completed. [addToken] node = out drivePower [addToken] node = out drivePower [addToken] node = out transModeCmd [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower [addToken] node = drivePower [removeToken] node = out drivePower [receiveOffer] node = transModeCmd [fire] Output activity parameter node transModeCmd... [addToken] node = transModeCmd [removeToken] node = out transModeCmd [execute] Activity Accelerate... [run] Node MeasureVehicleConditions is enabled. [run] Node PushAccelerator is enabled. [run] Sending offer to node MeasureVehicleConditions. [fire] Action MeasureVehicleConditions... [execute] Activity MeasureVehicleConditions... … [execute] Activity MeasureVehicleConditions completed. [addToken] node = out vehCond [receiveOffer] node = ProvidePower [run] Sending offer to node PushAccelerator. [receiveOffer] node = PushAccelerator [fire] Action PushAccelerator... [addToken] node = out accelPosition [receiveOffer] node = ProvidePower [addToken] node = in accelPosition [removeToken] node = out accelPosition [addToken] node = in vehCond [removeToken] node = out vehCond [fire] Action ProvidePower... [execute] Activity ProvidePower... output parameter 'drivePower' has 2 value(s) value[0] = Reference to (Object_@130be8c: GasPower throttle = 6) value[1] = Reference to (Object_@12df081: ElecPower current = 3) output parameter 'transModeCmd' has 1 value(s) value[0] = Reference to (Object_@108d3eb: TransmissionModeCommand) The execution of the activity is shown by its execution trace. Based on the sample activity in Annex B.4.8.1 of the SysML Specification
83. Execution with streaming … [fire] Action ProvidePower... [execute] Activity ProvidePower... … [addToken] node = out drivePower [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower output parameter 'drivePower' posts 1 value(s) value[0] = Reference to (Object_@130be8c: GasPower throttle = 6) … [addToken] node = out transModeCmd [receiveOffer] node = transModeCmd [fire] Output activity parameter node transModeCmd... [addToken] node = transModeCmd [removeToken] node = out transModeCmd output parameter 'transModeCmd' posts 1 value(s) value[0] = Reference to (Object_@108d3eb: TransmissionModeCommand) … … [addToken] node = out drivePower [receiveOffer] node = drivePower [fire] Output activity parameter node drivePower... [addToken] node = drivePower [removeToken] node = out drivePower output parameter 'drivePower' posts 1 value(s) value[0] = Reference to (Object_@12df081: ElecPower current = 3) ProvidePower is still executing at this point…
84. C. Timing Timing constraints model requirements for how behaviors execute over time. A time constraint specifies that some event is required to happen within a given time interval. A duration constraint specifies that the duration between two events must be within a given duration interval.
85. Execution with timing [fire] Action MeasureVehicleConditions… [execute] Activity MeasureVehicleConditions… … [addToken] node = out vehCond … [fire] Action PushAccelerator... [execute] Activity PushAccelerator… … [addToken] node = out accelPosition … [fire] Action ProvidePower... [execute] Activity ProvidePower... … [addToken] node = out drivePower A duration constraint on the duration between the firing of the action and the placing of tokens on its output pin. 2 sec 1 sec 3 sec Duration t = 0 t = 2 t = 2 t = 3 t = 3 t = 6 Sequential execution t = 0 t = 2 t = 0 t = 1 t = 2 t = 5 Parallel execution
86. Timing: Additional Considerations Duration ranges The constraint on a duration may be that it is within a certain range, rather than exactly equal to a given value. Probability distribution A Monte Carlo simulation may select the duration of an action execution on each run to be a random value within a constrained duration range, with some given probability distribution. Local clocks The flow of time is modeled by adding the concept of a clock to the fUML execution model. However, rather than a single global clock, there maybe a number of local clocks that define time coordinates that flow at different rates than each other. The base fUML execution semantics do not depend on any specific model of time.
87. D. Blocks and Partitions In SysML, a block is a modular unit of system description. SysML blocks are based on UML classes, possibly with composite structure. An activity partition is a grouping of nodes within an activity that share some common characteristic. An activity may be partitioned such that the behavior grouped in each partition is allocated to a specific block, which is responsible for carrying out that behavior. The overall behavior modeled by the full activity then emerges from the interaction between the blocks to which various partitions of the activity have been allocated.
89. Allocated Block Structure An internal block diagram shows the composite structure of the Power Subsystem. Each component block has behavior as allocated from the activity model. Connections between flow ports on the blocks are derived from flows that cross partition boundaries.
90. Blocks and Partitions: Considerations Execution semantics for SysML blocks and ports The semantics of allocation of activities to blocks The formal relationship between activity object flows and block flow ports
91. E. State Machines A state machine abstracts system behavior into a finite number of states and the transitions between those states. Behavior may be triggered as the effect of a transition or on entry, on exit or while in a state. State machine semantics are described in detail in the UML Superstructure specification, but this is not formalized. State machine semantics have been formalized by Harel and others, but these formalizations have not been standardized for UML. Basic state machine semantics can also be understood by translations to equivalent activity semantics, as formalized in fUML.
92. Appendix: Specifying Execution Semantics Background Models Metamodeling and Semantics Denotational Mapping Approach Semantics of Values Semantics of Behavior Execution Semantics and Base Semantics Execution Environment
93. Models A model makes statements in a modeling language about a system under study. First order statements “ There is a person whose name is Jack.” ” There is a house. The person is the owner of the house.” Second order statements “ Every person has a name.” “ Some people own houses.” UML Instance Model UML Class Model
94. Metamodeling and Semantics X : anX anX X.java "instance of" Class InstanceSpecification : InstanceSpecification : Class +classifier "interpretation" <<instanceOf>> "interpretation" <<instanceOf>> "interpretation" "interpretation" <<instanceOf>> +classifier "interpretation" “ representation" References Ed Seidewitz, “What Models Mean,” IEEE Software, September/October 2003. Ed Seidewitz, “What do models mean?”, OMG document ad/03-03-31. M1 M0 M2 M1 “ interpretation” “ interpretation”
108. Execution Semantics and Base Semantics (forall (n a xa f xn) (if (and (ExecutableNode n) (buml:activity n a) (classifies a xa f) (property-value xa n xn f) (ipc:subactivity_occurrence-neq xn xa)) (forall (n a xal xa2 xn) (if (and (ExecutableNode n) (buml:activity n a) (classifies a xa1 f) (classified a xa2 f) (property-value xa1 n xn f) (property-value xa2 n xn f) (= (psl:root occ xa1) (psl:root occ xa2)))) Execution Semantics (Operational Specification) Base Semantics (Axiomatic Specification) Foundational UML (fUML) semantics are specified operationally as a UML Model written in Base UML (bUML). Base UML semantics are (to be) specified axiomatically using PSL.
109. Execution Environment Locus Manages extents Provides pre-instantiated discoverable services Executor Evaluates value specifications Executes behaviors (synchronously) Starts behaviors or active objects (asynchronously) Execution Factory Creates visitor objects Registers strategies Registers primitive types and primitive behaviors