Skip to main content
If you previously published to beta.sysand.org, follow the migration guide to move your packages to sysand.com.

sysmod

published by mbse4u
2224 released
Latest Validation warnings
sysand add mbse4u/sysmod
README Source Changelog Licenses 0 usages 5 versions Validation

Change Log

v5.1.4

  • Added the SYSMOD use case specializations SecondaryUseCase, SystemProcess, and ContinuousUseCase (each specializing SystemUseCase, with secondaryUseCases, systemProcesses, and continuousUseCases usages) and the matching keywords #secondaryUseCase, #systemProcess, and #continuousUseCase.
  • Breaking: the actor-tagging metadata definitions are now lower camel case, so their keywords match the other SYSMOD keywords: System → system, User → user, ExternalSystem → externalSystem, EnvironmentalEffect → environmentalEffect. Replace #System, #User, #ExternalSystem, and #EnvironmentalEffect with the lower-case forms in existing models.
  • The #systemUseCase keyword (SystemUseCaseMetadata) now applies to use case definitions only, no longer to use case usages.
  • Updated example models to the new keywords. Domain library: item definitions sorted alphabetically and CustomerRequest added. Specification: added the DeliveryProcess system process, the BookDelivery use case, the MonitorDroneHealth continuous use case (with droneSTM state flying), and the createDeliveryOrder action; ChargeDrone is now a secondary use case, chargeInFlight is typed by ChargeDrone, and payloadMass is typed by ISQ::mass. Functional architecture: deliveryManagement performs createDeliveryOrder.
  • Synced the sysmod.org deck with the library and example models: new keyword spelling, the three new use case definitions and keywords in the "Full SYSMOD Library" appendix, and payloadMass :> ISQ::mass.
  • Project::subProjects is no longer a derived feature computed from all Project-typed suboccurrences. It is now a plain occurrence subProjects : Project [*], and a sub-project is added by explicitly subsetting it (occurrence myComponentProject : MyComponentProject :> subProjects). This makes membership in the sub-project list an explicit modeling decision and is consistent with the subProjectsAI prompts, which already required sub-projects to subset subProjects. Models that relied on the automatic derivation must add :> subProjects to their sub-project usages.
  • Updated example model: controlStationProject in DeliveryDroneSystemProject.sysml now explicitly subsets subProjects, and its doc comment and the README no longer describe the list as derived.
  • Updated the sysmod.org deck's "Full SYSMOD Library" appendix to show the non-derived subProjects feature.
  • Added an optional tolerance attribute (default 0.0) to the MaxValue, MinValue, RangeValue, MinAvailability, and MinReliability boilerplates in SYSMODRequirementsBoilerplates. It relaxes the bound(s) of the require constraint (currentValue <= maxValue + tolerance, currentValue >= minValue - tolerance, minValue - tolerance <= currentValue <= maxValue + tolerance, uptime / totalTime >= minAvailability - tolerance, meanTimeBetweenFailures >= minMTBF - tolerance), so specializations that do not set it get the unrelaxed bound(s). For MinReliability the tolerance is a duration (default 0.0 [SI::s]). Previously MaxValue declared a tolerance that its constraint ignored. ExactValue is unchanged; use ToleranceValue for a target value with a tolerance band.
  • Changed the MaxValue and MinValue boilerplates from strict to inclusive bounds (<= / >= instead of < / >), consistent with RangeValue, MinAvailability, and MinReliability and with the usual reading of "up to" / "at least" in requirement texts. A value exactly equal to the bound now satisfies the requirement.
  • Updated example model (specification): MaxPayloadMass now sets a tolerance of 0.1 kg on its 5 kg MaxValue limit.
  • Updated the sysmod.org deck (step 9 requirements library and model snippets and the "Full SYSMOD Library" appendix) to show the new tolerance attributes and constraints.
  • Use cases now perform the actions of their subject: each use case's subject droneSystem declares perform action uc<Name> ::> <name>; for every DeliveryDroneSystem action it orchestrates, and the successions, bindings, flows, and local flight legs reference these performed actions (droneSystem.ucPlanDelivery) instead of the system's actions directly. Updated the example model (specification) accordingly for BookDelivery, DeliverPackage, ChargeDrone, ReportFleetStatus, HandleEmergencyLanding, and MonitorDroneHealth; DeliverPackage now continues from ucPlanDelivery to the flyToPickup leg, and ChargeDrone no longer includes detectLowBattery.
  • Synced the sysmod.org deck (step 8 use cases) with the new perform action pattern in DeliverPackage.
  • Breaking: renamed the LevelKind literal medium to middle (value 0.5 unchanged). Replace LevelKind::medium with LevelKind::middle in existing models.
  • Updated example model (stakeholders): LevelKind::medium is now LevelKind::middle.
  • Updated the sysmod.org deck (step 4 stakeholder library and model snippets and the "Full SYSMOD Library" appendix) to the middle literal.
  • Added a name attribute (ScalarValues::String) to ExtendedStakeholder to hold the name of the stakeholder.
  • Updated example models (project and control station project): all stakeholders now set their name (johnFinch, tomSchilling, logisticCompany, droneOperator, recipient, regulator).
  • Updated example model (stakeholder needs): ReliableDelivery, SafeOperation, and LowDeliveryCost now declare the brownfield system as subject and their stakeholder (LogisticCompany or DroneOperator); the concern usages in the project bind them to the project's stakeholders.
  • Added the SYSMODProcesses package with SYSMODDefaultProcess, the default SYSMOD workflow, and one action definition per step: SetupProject, SpecifyBrownfieldSystem, SpecifyProblemStatement, IdentifyStakeholders, ElaborateStakeholderNeeds, PitchSystemIdea, DefineSystemSpecification (with the nested steps specifySpecificationArchitecture, identifyUseCases, and elaborateSystemRequirements), CreateSolutionArchitectures, and VerifyAndValidateRequirements. Successions define the default order (all steps after setupProject are optional), flows connect the step outputs to the project features, and bindings connect the step inputs to the project features created by earlier steps. The item definition ArchitectureDescription represents informal architecture descriptions given as input by a human or an AI assistant.
  • Added the ISO15288Processes package with an action definition and a doc comment for each of the 30 ISO/IEC/IEEE 15288 system life cycle processes (agreement, organizational project-enabling, technical management, and technical processes). #refinement dependencies in SYSMODProcesses map each SYSMOD step to the ISO 15288 process(es) it refines, e.g., DefineSystemSpecification refines SystemRequirementsDefinition.
  • Added the features defaultProcess (the SYSMODDefaultProcess performed by the project; redefine it with a specialization to tailor the process), purpose (a brief description of the project's purpose), and verificationCases (verification cases with the product system as subject) to Project.
  • Added defaultProcessAI (sysmod-default-process) to AIProject in SYSMOD4AI. It walks the user step by step through SYSMODDefaultProcess, delegates each step to the AI metadata of the artifacts it produces, and its validation prompt reports the status of every step and the next step to perform.
  • Updated the SYSMOD4AI prompts to model subjects, stakeholders, and actors as explicit, bound parameters:
    • stakeholderNeedsAI: each need definition declares the brownfield system as its first parameter (subject) and a typed stakeholder parameter per stakeholder; the need usages bind the subject to brownfieldContextImpl.soiImpl and the stakeholder parameters to the project's stakeholder part usages. The validation prompt checks the subject binding and that every need has a bound stakeholder parameter.
    • specificationContextAI: each use case definition declares the specification system as subject and a typed actor parameter per participating actor; the use case usages bind them to the context's soi and actor part usages. The validation prompt checks the actor parameter bindings.
    • systemRequirementSpecificationAI: each requirement declares the specification system as subject and a typed stakeholder parameter for the stakeholders of the framed need; the root requirement binds the subjects of its nested requirements. The validation prompt requires a frame relationship to a stakeholder need and at least one stakeholder parameter.
    • systemIdeaContextAI: removed the validation check for a satisfy relationship from the system idea to the problem statement.
  • The value attributes of the MaxValue, MinValue, RangeValue, ExactValue, and ToleranceValue boilerplates (currentValue, maxValue, minValue, targetValue, tolerance) are now untyped instead of ScalarValues::Real, so they accept plain numbers as well as quantity values with units. A specialization narrows all value attributes of a boilerplate to the same type, e.g., attribute :>> maxValue :> ISQ::mass = 5 [SI::kg];. MinAvailability keeps Real for its unitless ratio.
  • The tolerance attribute of all SYSMODRequirementsBoilerplates now has the multiplicity [0..1]. ToleranceValue::tolerance is therefore optional too and defaults to 0.0 like the others; MinReliability::tolerance (a duration) defaults to 0 [SI::s]. A specialization with units must set the tolerance with the same unit, since the default 0.0 is a plain number.
  • Updated example model (specification): MaxPayloadMass narrows currentValue, maxValue, and tolerance to ISQ::mass and sets maxValue = 5 [SI::kg] and tolerance = 0.1 [SI::kg] with units.
  • Updated example model (project): the specification context parts now redefine Project::specificationContext::soi and Project::specificationContextImpl::soiImpl instead of the system idea features.
  • Breaking: renamed the derived ExtendedStakeholder attribute priority (risk × effort) to attention. It measures how much attention a stakeholder needs and is no longer confused with the priority attribute of ExtendedConcern, which is unchanged. Replace references to a stakeholder's priority with attention in existing models.
  • Updated the sysmod.org deck (step 3 library text and snippet and the "Full SYSMOD Library" appendix) to the renamed attention attribute.
  • Updated the sysmod.org deck to the changes above: step 4 model snippet (subjects and stakeholders of the stakeholder needs), step 7 specification context snippet, step 9 MaxValue library snippet and MaxPayloadMass model snippet, the AI layers of steps 4 and 6–9, and the "Full SYSMOD Library" appendix (boilerplates and AI prompts).
  • Updated the sysmod.org deck (step 1 and step 3 library and model snippets and the "Full SYSMOD Library" appendix) to show the new name attribute of ExtendedStakeholder and the stakeholder names of the example model.

v5.1.3

  • Split the AI metadata definition and AIProject out of SYSMOD.sysml into a new top-level package, SYSMOD4AI (file SYSMOD4AI.sysml), which privately imports SYSMOD. Import it in addition to SYSMOD only where AI-assisted workflows are wanted — the core methodology library no longer carries any AI-specific content.
  • Moved and renamed the boilerplate requirements package to SYSMODRequirementsBoilerplates (file SYSMODRequirementsBoilerPlates.sysml): it is now a top-level library package alongside SYSMOD and SYSMOD4AI (previously nested inside SYSMOD), and the name's spelling is corrected. Update any qualified references from SYSMOD::RequirementBoilderplates to SYSMODRequirementsBoilerplates.
  • Updated the sysmod.org documentation deck's "Full SYSMOD Library" appendix to show SYSMOD, SYSMOD4AI, and SYSMODRequirementsBoilerplates as the three separate packages they now are, instead of one monolithic package.
  • Updated the deck's AI metadata definition and per-step AI prompts to match the library: all seven AI attributes are now shown (including perform_prompt, story_prompt, slide_prompt), the sysmod-stakeholder-priority-map skill is now documented, and the deck's own copies of the v5.1.2 MinValue/MinAvailability fixes and the boilerplates renaming — which had not been carried over from the library into the documentation — are now consistent with it.
  • Renamed the deck's "Solution System Architectures" step to "Functional, Logical, Product Architecture" and removed the last sysmod-solution-context / "solution architecture" leftovers from its text, matching the library's actual functional/logical/product structure.
  • Added a doc comment with explicit "When to use" / "When not to use" sections to all 14 AI metadata usages in SYSMOD4AI.sysml (projectAI, projectOwnerAI, brownfieldContextAI, problemStatementAI, projectStakeholdersAI, stakeholderPriorityMapAI, stakeholderNeedsAI, systemIdeaContextAI, specificationContextAI, systemRequirementSpecificationAI, functionalContextAI, logicalContextAI, productContextAI, subProjectsAI), written in the style of an AI-assistant skill's trigger/skip conditions and cross-referencing the adjacent skill to use instead where scopes could overlap. This paves the way for generating Claude Skills (or equivalent skill definitions for other LLM platforms) directly from these elements.
  • Synced the sysmod.org deck's "Full SYSMOD Library" appendix with the new "When to use" / "When not to use" doc comments on all 14 AI metadata usages, and noted the convention in the AI metadata definition's own doc and in the "About the AI Skill Layer" intro slide.
  • Fixed the "speccification" typo in the functionalContextAI validation prompt in SYSMOD4AI.sysml.
  • Updated example model (brownfield architecture): replaced packagePort (one inout parcel item) with payloadPort carrying separate pkgIn/pkgOut items, added a customer actor with a customerInterface to payloadPort, added an energyPort for the electrical energy supply, and documented all ports of DeliveryDroneSystem.
  • Updated example model (domain library): added the Energy item definition.
  • Updated example model (specification): all use case actions are now owned once by DeliveryDroneSystem and documented, including their items; use cases reference them via droneSystem.<action> instead of defining local copies. Renamed batteryLow to acceptBatteryLow (with an explicit accepted lowBattSignal), replaced flyToHomeStation by a flyToHome leg of flyToPosition targeting the new homePosition item, let detectLowBattery send its signal via a port, and added an energy input to DeliverPackage and chargeInFlight.
  • Updated example model (functional architecture): replaced the empty placeholder parts with the FAS functional blocks deliveryManagement, flightControl, packageManagement, batteryManagement, droneManagement, and fleetManagement, which perform the specification actions, are bound to the inherited system ports, and are connected via typed ports from a new Interfaces package (PositionInterface, PositionPort, EnergyPort, DeliveryPort, PayloadPort, ...). Corrected the remaining "solution" wording in its doc comments to "specification".
  • Updated the Cameo Systems Modeler file of the example model.
  • Synced the sysmod.org deck with the example model and library: Brownfield (step 5: payloadPort, energyPort, customer, port docs), Specification (step 7), Use Cases (step 8: current SystemUseCase :> ConstrainedOccurrence library snippet with startShot/endShot, and the reworked DeliverPackage), Functional Architecture (step 10), the maxPayloadMass name in steps 9 and 11, the remaining "solution" wording in the appendix's functional/logical/product context docs, and an invalid trailing comma in the appendix's projectAI create_questions.
  • Added SYSMOD4AI and SYSMODRequirementsBoilerplates to the Sysand package index (.meta.json), so both new library files are included in the published package, and added the version line to the SYSMOD4AI header.
  • Fixed the sysmod.org deck's links to the example model folder and to the SYSMOD Sysand project page.
  • The sysmod.org deck now always shows SysML v2 textual notation in full: removed all height limits and inner scroll boxes from code blocks, and the library, model, and AI slides grow with their content and scroll as a whole, so no slide is cut off.

v5.1.2

  • Fixed inconsistent "solution" terminology in SYSMOD.sysml doc comments and AI metadata prompts, correcting references to match the actual specificationContext/specificationContextImpl concepts.
  • Removed references to the non-existent solutionContext/solutionContextImpl concepts from the project AI metadata's structure and validation checks; productContext now specializes specificationContextImpl directly.
  • Fixed the RequirementBoilderplates MinValue constraint, which had its comparison operands reversed (minValue > currentValue) so it required the opposite of a lower bound; it now correctly requires currentValue > minValue.
  • Fixed the RequirementBoilderplates MinAvailability requirement's minAvailability attribute, which was typed as ISQ::duration; it is now a dimensionless ScalarValues::Real ratio, consistent with the uptime/totalTime constraint.

v5.1.1

  • Added web page https://sysmod.org to the SYSMOD repository
  • Updated example model: PRJ::stakeholderNeeds::problemStatement redefines the inherited problemStatement and subsets PRJ::problemStatement.
  • Updated example model: PRJ::deliveryDroneSystemIdeaContextImpl satisfies PRJ::problemStatement.
  • Added Cameo Systems Modeler file for the example model.
  • Added preconditions and postconditions to the SYSMOD UseCase concept.
  • Added library with RequirementBoilerplates
  • Updated example model: DeliveryDroneSystemRequirements now declares its own subject and stakeholder (projectOwner); DeliveryDroneSystemProject redefines both accordingly.
  • Updated example model: added Recipient and Regulator stakeholders to DeliveryDroneSystemStakeholders and DeliveryDroneSystemProject, so the four stakeholders match the sysmod.org story.
  • Added a "SYSMOD Steps" navigation menu to sysmod.org's header, for jumping directly to any step.
  • Added the SYSMOD products overview image to the "About SYSMOD" page on sysmod.org, with clickable step cards that jump directly to the corresponding SYSMOD step.
  • Added two validation checks to the SYSMOD library's productContextAI metadata (SYSMOD.sysml), covering MOSA-conformant port/interface-only dependencies between product components and complete interface specification.
  • Added a link to the SYSMOD Sysand project to README.md.
  • Extracted the SYSMOD UseCase's precondition/postcondition mechanism into a new, reusable ConstrainedOccurrence library concept, which SystemUseCase now specializes.