Holarch

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.

How to use it →

On this page
  1. Overview
  2. Concepts
    1. A copy, not a change of type
    2. How the two languages map
    3. Holarch data comes along
    4. What does not convert
  3. How to use it
    1. When and why
    2. Make a converted copy
    3. Check the copy
    4. Worked example: the Hybrid Car demo as an LML copy
    5. Tips and good practice
    6. Common mistakes
  4. Report reference
    1. LML to SysML v2
    2. SysML v2 to LML
    3. Report CSV
  5. Messages
  6. Limits
  7. Related pages

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:

LMLSysML v2
AssetPart definition, with a part usage wherever it is used
Decomposition of an Asset (decomposed by)Part usage in the parent's definition
PortPort usage
Characteristic of an AssetAttribute usage
ConduitConnection usage, or interface usage when both ends are ports
Input/OutputItem definition, with in and out item parameters and flows
Requirement (Number, Name, Description)Requirement usage (short name, name, doc)
satisfied bysatisfy
Test CaseVerification usage with a verify objective
Test SuitePackage of verification cases
Action, with its flowAction usage with successions
SYNC and parallel blocksFork and join
ORDecide and merge
LOOPLoop action
performed byperform
State characteristics and transitionsState definition with transitions, which the part exhibits
Equation and its variablesConstraint 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 .sysml or 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

  1. On Manage Projects, click ⋯ on the project's row.
  2. 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.

  3. 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.
  4. Click Download Report (CSV) to save the report with one row per item, if you need it outside Holarch.
  5. Enter the New project name. It defaults to the original's name followed by "(SysML v2)" or "(LML)".
  6. Click Create Copy.

    The toast reads "Created "<name>"". The copy opens on its Home page.

  7. Open the document Conversion report in the copy. It lists every item that did not convert, by number and name.

Check the copy

  1. 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).

  2. 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."
  3. Open the views in Views (Architecture Overview, System Connections) to see the structure drawn fresh.
  4. 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).

  1. 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)".
  2. 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 :> Car is 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.
  3. Click Create Copy.

    The LML copy opens. fleet.sedan and 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 convertedReason
Assets in a decomposition loopAn 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 endsA SysML connection joins two ends. Connect the conduit to two assets or ports, then convert again.
Items a conduit transfersConnections in this conversion carry no items. The items are converted as item definitions and flows between actions.
Conduits decomposed into other conduitsSysML connections are not nested here; each conduit becomes its own connection.
Loop counts and loop scriptsA 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 probabilitiesWhen 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 itemsThe 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 statesThe actions are converted as actions; SysML state bodies are not filled in by this conversion.
Transitions without two states of one machineA SysML transition joins two states of the same state definition.
Transition guards and triggersThey 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 assetA state needs the asset whose behavior it describes.
Equation expressionsThe expressions use names that are not SysML features; each is kept as a comment in its constraint definition.
Test suites without test casesA suite becomes the package of its verification cases; an empty suite has nothing to hold.
Test cases verifying something other than a requirementA SysML verification case verifies requirements only.
Test cyclesTest 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 itemsFor example, a requirement does not satisfy another requirement in SysML; use derivation in the text.
Other relationshipsThis conversion has no SysML relationship for them; the report names each one.
MeasuresMeasures of effectiveness have no SysML element in this conversion.
ResourcesResource amounts (consumes, produces) belong to the LML simulator and have no SysML element here.
Characteristics not attached to an asset or an equationAn attribute needs an owner: specify it by an asset or make it an equation variable.
Items of other classesThis class has no SysML element or Holarch place in a SysML v2 project.
BaselinesBaselines of the LML project do not apply to the new model; the copy starts without baselines.
HistoryChange history starts fresh in the copy.
Change requestsLML change requests propose changes to LML items, which the copy does not have.
Diagram layoutsDiagrams are drawn fresh as SysML v2 views; positions are not carried over.
Converted items in document outlinesDocuments 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 convertedReason
Connections with ends that do not resolveFix the names of the ends in the text, then convert again.
Connections inside definitions that no part usesEach connection becomes a conduit between the parts of every part that has it; nothing uses this definition.
Binding connectorsLML has no binding (equality) between features.
Verify relationships that do not resolveFix the requirement name in the verification objective, then convert again.
Item parameters without an item definitionType the parameter with an item def to convert it.
Actors without a part definition in the modelType the actor with a part def to convert it.
Perform usages that do not resolve to an action and a partPerform an action from a part definition or part usage, then convert again.
Satisfy relationships that do not resolveFix the names in the satisfy statement, then convert again.
Successions that are not a structured flowLML action flows are sequences with parallel, decision and loop blocks; other succession graphs are linearized.
State definitions that no part exhibitsThe states are converted without the asset whose behavior they describe.
Transitions that do not resolve to two statesFix 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 definitionsThey 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 valuesLML has no enumerations; attribute values are kept as text.
Calculations, analysis cases, concernsLML has no calculations, analysis cases or stakeholder concerns.
Views and viewpointsDiagrams are drawn fresh in the LML copy.
Assignment, if, send and accept actionsLML actions have no statements.
DependenciesLML has no generic dependency.
AllocationsUse perform in the text for actions performed by parts.
MetadataLML has no metadata.
OccurrencesLML has no occurrences.
Included use casesInclude relationships between use cases are not converted.
AliasesLML entities have one name each.
Reference usages (parameters of calculations and cases)LML has no parameters except equation variables.
SpecializationsLML has no specialization; parts get the features of their general definitions copied in.
RedefinitionsThe redefining feature replaces the inherited one in each copied part.
SubsettingsLML has no subsetting.
ImportsLML has no namespaces; every entity is visible in the project.
Definitions as distinct from usagesLML 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 partsOnly part multiplicities have an LML place (the Multiplicity of decomposed by).
Attribute valuesValues are kept as text in the Value of each characteristic; units and expressions are not evaluated.
BaselinesBaselines of the SysML v2 project do not apply to the LML copy; it starts without baselines.
HistoryChange history starts fresh in the copy.
Change requestsSysML 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

MessageMeaning 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.

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.