SysMLSystems Modeling Language A graphical modeling language for systems engineering, based on UML, with block, activity, state machine and parametric diagrams. v2
Converting Between LML and SysML v2
Make a SysML v2 copy of an LMLLifecycle Modeling Language An open modeling language with a small set of classes and relationships that covers a system's whole lifecycle. Holarch models are LML models. project, or an LML copy of a SysML v2 project, with a report of what converts and what does not.
Overview
A project's type, LMLLifecycle Modeling Language An open modeling language with a small set of classes and relationships that covers a system's whole lifecycle. Holarch models are LML models. or SysMLSystems Modeling Language A graphical modeling language for systems engineering, based on UML, with block, activity, state machine and parametric diagrams. v2, is fixed when you create it. To work on an LML model in SysML v2, or on a SysML v2 model with LML pages, make a converted copy:
- Make a SysML v2 Copy… on an LML project writes its model as SysML v2 text in a new SysML v2 project.
- Make an LML Copy… on a SysML v2 project turns its model into LML entities and relationships in a new LML project.
The original project is never changed. Before the copy is made, a report lists what converts, with counts, and what does not, with the reason. The same report is saved in the new project.
Concepts
A copy, not a change of type
Conversion always creates a new project. You can keep working in the original and convert again later; each conversion makes another new project. Nothing links the copy back to the original.
How the two languages map
LMLLifecycle Modeling Language An open modeling language with a small set of classes and relationships that covers a system's whole lifecycle. Holarch models are LML models. and SysMLSystems Modeling Language A graphical modeling language for systems engineering, based on UML, with block, activity, state machine and parametric diagrams. v2 describe many of the same things in different ways. Conversion uses this mapping in both directions:
| LML | SysML v2 |
|---|---|
| Asset | Part definition, with a part usage wherever it is used |
| Decomposition of an Asset (decomposed by) | Part usage in the parent's definition |
| Port | Port usage |
| Characteristic of an Asset | Attribute usage |
| Conduit | Connection usage, or interface usage when both ends are ports |
| Input/Output | Item definition, with in and out item parameters and flows |
| Requirement (Number, Name, Description) | Requirement usage (short name, name, doc) |
| satisfied by | satisfy |
| Test Case | Verification usage with a verify objective |
| Test Suite | Package of verification cases |
| Action, with its flow | Action usage with successions |
| SYNC and parallel blocks | Fork and join |
| OR | Decide and merge |
| LOOP | Loop action |
| performed by | perform |
| State characteristics and transitions | State definition with transitions, which the part exhibits |
| Equation and its variables | Constraint definition with its parameters |
Holarch data comes along
Some data has no place in either language. It is Holarch data, and it is copied with its links:
- Risks, decisions, tasks, costs, schedules, issues, documents and whiteboards are copied and stay linked to the converted elements.
- Requirement status and verification methods stay with each requirement; test results stay with each test case.
- Discussion comments follow their element.
- Branch probabilities of decisions stay with their branches, for the Simulator.
- An LML Copy made from a SysML v2 copy gets back the LML attributes and labels the first conversion kept.
What does not convert
- Diagram layouts. Views and diagrams are drawn fresh in the copy.
- History, baselines and change requests. The copy starts without them.
- Elements one language has no place for, such as LML Measures and Resources, or SysML v2 enumerations, calculations and analysis cases.
The report names every such item and gives the reason. See Report reference.
How to use it
When and why
Convert when the project's language no longer fits the work:
- LMLLifecycle Modeling Language An open modeling language with a small set of classes and relationships that covers a system's whole lifecycle. Holarch models are LML models. to SysMLSystems Modeling Language A graphical modeling language for systems engineering, based on UML, with block, activity, state machine and parametric diagrams. v2: your team or a customer now works in SysML v2, or the model must be exchanged with SysML v2 tools. Convert, then export
.sysmlor JSON (see Exchanging SysML v2 Models). - SysML v2 to LML: you need an LML page or diagram that SysML v2 projects do not have, or you want the model in Holarch's lifecycle form for a review.
Convert once the model is stable, and read the report before you rely on the copy.
Make a converted copy
- On Manage Projects, click ⋯ on the project's row.
- Choose Make a SysML v2 Copy… (for an LML project) or Make an LML Copy… (for a SysML v2 project).
The toast reads "Checking the conversion…". Then the dialog opens with the report.
- Read the report:
- Converted lists each kind of item, how many there are, and what it becomes, for example "Requirements 24 requirement usages".
- Not converted lists each kind of item that does not convert, how many, and why.
- Click Download Report (CSV) to save the report with one row per item, if you need it outside Holarch.
- Enter the New project name. It defaults to the original's name followed by "(SysML v2)" or "(LML)".
- Click Create Copy.
The toast reads "Created "<name>"". The copy opens on its Home page.
- Open the document Conversion report in the copy. It lists every item that did not convert, by number and name.
Check the copy
- In a SysML v2 copy, open Model → Editor.
The model is one top-level package named after the project. It holds the packages Architecture, System, Items, Requirements, Verification, Behavior, Constraints and Views (only those that have content).
- Look for problem marks in the gutter. If the converted text has problems, the dialog said so before you created the copy: "The converted text has N problems. The copy shows them in its Editor."
- Open the views in Views (Architecture Overview, System Connections) to see the structure drawn fresh.
- In an LML copy, open the Database and the diagrams to check the Assets, Requirements and action flows.
Worked example: the Hybrid Car demo as an LML copy
Create the demo first: on Manage Projects, click Project Files ▾ → New Demo Project → Hybrid Car (SysML v2).
- On Manage Projects, click ⋯ on Hybrid Car (SysML v2 demo) and choose Make an LML Copy…. The copy will be named "Hybrid Car (SysML v2 demo) (LML)".
- Read the report.
Under Converted: part usages become Assets, port usages Ports, attributes Characteristics, connection and interface usages Conduits, requirement usages and definitions Requirements, verification usages Test Cases, actions Actions, and states and transitions their LML counterparts.
Under Not converted, among others:
- Specializations: LML has no specialization; parts get the features of their general definitions copied in.
SportCar :> Caris one. - Redefinitions: the redefining feature replaces the inherited one in each copied part. The sedan's battery is copied with 48 kg.
- Enumerations (
DriveMode,FuelKind): attribute values are kept as text. - Calculations (
PowerToWeight,ElectricRange) and Analysis cases (PowerToWeightAnalysis). - Binding connectors (
bind output = transmission.output;): LML has no binding between features. - Attribute values: kept as text in the Value of each Characteristic; units and expressions are not evaluated.
- Views: diagrams are drawn fresh in the LML copy.
- Specializations: LML has no specialization; parts get the features of their general definitions copied in.
- Click Create Copy.
The LML copy opens.
fleet.sedanand its parts are Assets; the requirement Sedan Mass (VR-1.1) is a Requirement satisfied by the sedan's Asset. The demo's risks, decisions and tasks are copied too, linked to the converted elements.
To try the other direction, create the CubeSat EO-1 demo (an LML project) and choose Make a SysML v2 Copy… on it.
Tips and good practice
- Tidy an LML project before converting: connect each Conduit to exactly two Assets or Ports, attach each Characteristic to an Asset or an Equation, and remove empty Test Suites. Otherwise they are reported as not converted.
- In LML, write OR branch labels as Boolean expressions over model values (such as
speed > 3) if you want them to become guards. Other labels become doc comments on the successions. - In SysML v2, give actors a part definition type and item parameters an item definition type. Untyped ones do not convert.
- Keep the original. Convert again from it after larger changes rather than editing both projects in parallel.
Common mistakes
- Expecting the original to change. It does not. The copy is a separate project.
- Expecting diagrams to keep their layout. Layouts are not converted; arrange the new views or diagrams again.
- Missing parts in an LML copy. A part definition that no part uses has no Asset in LML, because LML has instances only. Use the definition in a part, then convert again.
- A "does not resolve" item in the report. A name in the SysML v2 text points nowhere. Fix the name in the Editor, then convert again.
Report reference
LML to SysML v2
Converted items include Assets (part definitions with their part usages), Characteristics (attributes), Ports, Conduits (connections or interfaces), Input/Outputs (item definitions), Requirements, Actions and use cases, item flows between actions, States, Transitions, Equations (constraint definitions), Performs, Test suites, Test Cases, Verifies, Satisfies, and Holarch items (copied with their links).
| Not converted | Reason |
|---|---|
| Assets in a decomposition loop | An asset that contains itself has no place in a part tree. Its part definition is converted; it is not used as a part. |
| Conduits without exactly two ends | A SysML connection joins two ends. Connect the conduit to two assets or ports, then convert again. |
| Items a conduit transfers | Connections in this conversion carry no items. The items are converted as item definitions and flows between actions. |
| Conduits decomposed into other conduits | SysML connections are not nested here; each conduit becomes its own connection. |
| Loop counts and loop scripts | A SysML loop here repeats until a condition; the count is kept as Holarch data and restored by Make an LML Copy. |
| Decision branch labels and probabilities | When every label of a decision is a Boolean expression over model values, the labels become its guards; otherwise they become doc comments on the successions. The probabilities are kept as Holarch data for the Simulator, and both are restored by Make an LML Copy. |
| OR, SYNC and LOOP items | The constructs are converted as decide/merge, fork/join and loop nodes; the items that named them are not kept. |
| Entry, do and exit actions of states | The actions are converted as actions; SysML state bodies are not filled in by this conversion. |
| Transitions without two states of one machine | A SysML transition joins two states of the same state definition. |
| Transition guards and triggers | They are written in LML as free text; they are kept as Holarch data, not as SysML expressions, and restored by Make an LML Copy. |
| States not specified by an asset | A state needs the asset whose behavior it describes. |
| Equation expressions | The expressions use names that are not SysML features; each is kept as a comment in its constraint definition. |
| Test suites without test cases | A suite becomes the package of its verification cases; an empty suite has nothing to hold. |
| Test cases verifying something other than a requirement | A SysML verification case verifies requirements only. |
| Test cycles | Test runs recorded on a suite are not part of the model; the latest result of each case is kept. |
| Requirements satisfied by other kinds of items | For example, a requirement does not satisfy another requirement in SysML; use derivation in the text. |
| Other relationships | This conversion has no SysML relationship for them; the report names each one. |
| Measures | Measures of effectiveness have no SysML element in this conversion. |
| Resources | Resource amounts (consumes, produces) belong to the LML simulator and have no SysML element here. |
| Characteristics not attached to an asset or an equation | An attribute needs an owner: specify it by an asset or make it an equation variable. |
| Items of other classes | This class has no SysML element or Holarch place in a SysML v2 project. |
| Baselines | Baselines of the LML project do not apply to the new model; the copy starts without baselines. |
| History | Change history starts fresh in the copy. |
| Change requests | LML change requests propose changes to LML items, which the copy does not have. |
| Diagram layouts | Diagrams are drawn fresh as SysML v2 views; positions are not carried over. |
| Converted items in document outlines | Documents are copied; the requirements and other model items in their outlines are now SysML elements and appear in the model, not in the outline. |
SysML v2 to LML
Each part usage becomes an Asset, with the parts, ports and attributes of its definition (and of the definitions it specializes) copied in. Redefinitions replace what they redefine. Connections and interfaces become Conduits between those Assets. Requirements, verification cases, satisfy, verify, perform, item parameters, states and transitions map back as in the table above. Successions become action flows; a decision's guards (or the doc comments of its successions) become the OR branch labels, with their probabilities.
| Not converted | Reason |
|---|---|
| Connections with ends that do not resolve | Fix the names of the ends in the text, then convert again. |
| Connections inside definitions that no part uses | Each connection becomes a conduit between the parts of every part that has it; nothing uses this definition. |
| Binding connectors | LML has no binding (equality) between features. |
| Verify relationships that do not resolve | Fix the requirement name in the verification objective, then convert again. |
| Item parameters without an item definition | Type the parameter with an item def to convert it. |
| Actors without a part definition in the model | Type the actor with a part def to convert it. |
| Perform usages that do not resolve to an action and a part | Perform an action from a part definition or part usage, then convert again. |
| Satisfy relationships that do not resolve | Fix the names in the satisfy statement, then convert again. |
| Successions that are not a structured flow | LML action flows are sequences with parallel, decision and loop blocks; other succession graphs are linearized. |
| State definitions that no part exhibits | The states are converted without the asset whose behavior they describe. |
| Transitions that do not resolve to two states | Fix the state names, then convert again. |
| Transition triggers (accept) | LML transitions keep the trigger as free text only; the accepted signal is not linked. |
| Port, interface and connection definitions | They are converted as Ports and Conduits where parts use them; LML has no port, interface or connection types. |
| Attribute definitions (value types) | LML characteristics have no types. |
| Enumerations and enumeration values | LML has no enumerations; attribute values are kept as text. |
| Calculations, analysis cases, concerns | LML has no calculations, analysis cases or stakeholder concerns. |
| Views and viewpoints | Diagrams are drawn fresh in the LML copy. |
| Assignment, if, send and accept actions | LML actions have no statements. |
| Dependencies | LML has no generic dependency. |
| Allocations | Use perform in the text for actions performed by parts. |
| Metadata | LML has no metadata. |
| Occurrences | LML has no occurrences. |
| Included use cases | Include relationships between use cases are not converted. |
| Aliases | LML entities have one name each. |
| Reference usages (parameters of calculations and cases) | LML has no parameters except equation variables. |
| Specializations | LML has no specialization; parts get the features of their general definitions copied in. |
| Redefinitions | The redefining feature replaces the inherited one in each copied part. |
| Subsettings | LML has no subsetting. |
| Imports | LML has no namespaces; every entity is visible in the project. |
| Definitions as distinct from usages | LML has instances only: a part definition becomes the Assets of the parts that use it, and its text goes into their descriptions. |
| Multiplicities other than of parts | Only part multiplicities have an LML place (the Multiplicity of decomposed by). |
| Attribute values | Values are kept as text in the Value of each characteristic; units and expressions are not evaluated. |
| Baselines | Baselines of the SysML v2 project do not apply to the LML copy; it starts without baselines. |
| History | Change history starts fresh in the copy. |
| Change requests | SysML change requests propose text changes that do not apply to LML entities. |
Report CSV
Download Report (CSV) writes one row per kind of converted item and one row per item that did not convert. Its columns are Result (Converted or Not converted), What, Count, Becomes or reason, Number and Name.
Messages
| Message | Meaning and fix |
|---|---|
| Checking the conversion… | The report is being prepared. |
| This is already a SysML v2 project. Choose Make an LML Copy… instead. | The wrong direction was chosen. |
| This is already an LML project. Choose Make a SysML v2 Copy… instead. | The wrong direction was chosen. |
| The converted text has N problems. The copy shows them in its Editor. | The copy can be made; fix the problems in its Editor. |
| The converted text does not parse (…). The project was not copied; report this with the project file. | The conversion failed. Contact support with the project file. |
| The SysML checker did not start. Reload the page and try again. | Reload and try again. |
| The project could not be read. Reload the page and try again. | Reload and try again. |
| The copy was not made: … Reload the page and try again. | Reload and try again. |
| Created "<name>" | The copy was created and opened. |
Limits
- Diagram layouts, history, baselines and change requests are not converted.
- The report document lists up to 500 items per kind.
Related pages
- Getting Started with SysML v2 Projects
- Exchanging SysML v2 Models
- Holarch Features in SysML v2 Projects
- SysML v2 Textual Notation
SysMLSystems Modeling Language A graphical modeling language for systems engineering, based on UML, with block, activity, state machine and parametric diagrams.® and OMGObject Management Group The standards body that maintains UML, SysML, UAF and XMI.® are registered trademarks of Object Management Group, Inc. in the United States and other countries.