Skip to content

demaconsulting/SysML2Workbench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SysML2Workbench

GitHub forks GitHub stars GitHub contributors License Build Quality Gate Security Release

A cross-platform desktop viewer and GUI custom-view builder for SysML v2 models, built on the SysML2Tools rendering engine.

SysML2Workbench opens a folder of .sysml files as a live workspace, renders the same predefined diagrams (General, Interconnection, State Transition, Action Flow, Sequence, and Grid) produced by the SysML2Tools CLI in an interactive pan/zoom viewer, and lets you build ad-hoc custom views through a GUI - picking a view kind, multi-selecting target elements, and optionally filtering - without hand-writing SysML view syntax. Custom views can be exported as copy-pasteable SysML view ... expose ... text to promote them into a permanent model file, and any workspace .sysml file's raw source text can be opened read-only, with syntax highlighting, by double-clicking it in the workspace tree. A live-updating diagnostics panel surfaces parser and reference-resolution problems across the whole workspace, and a local rolling log file is written for bug-report attachments.

This is a Phase 0, read-only release: there is no git integration, no text/structural editing, no telemetry, and custom views are session-only until exported as text. See docs/design/introduction.md for the full scope and docs/user_guide/ for usage instructions.

Getting Started

Requires the .NET 9 SDK.

dotnet run --project src/DemaConsulting.SysML2Workbench.Desktop

See docs/user_guide/getting_started.md for a walkthrough of opening a workspace, browsing predefined views, and building a custom view.

Repository Layout

  • src/DemaConsulting.SysML2Workbench/ - shared application project (all subsystems: workspace, view catalog, view builder, layout/rendering, diagnostics panel, logging, app shell).
  • src/DemaConsulting.SysML2Workbench.Desktop/ - desktop platform head (Windows/Linux/macOS entry point).
  • test/DemaConsulting.SysML2Workbench.Tests/ - unit and subsystem-level tests mirroring src/.
  • test/DemaConsulting.SysML2Workbench.UiTests/ - headless, in-process Avalonia UI tests (view/view-model interaction, no real window).
  • test/DemaConsulting.SysML2Workbench.IntegrationTests/ - Appium/AT-SPI-driven end-to-end tests against the compiled Desktop application (Windows, macOS, and Linux; CI runs the Windows job today; requires a running automation server - see "Building and Testing" below).
  • test/OtsSoftwareTests/ - integration tests for the off-the-shelf (OTS) dependencies (SysML2Tools, Rendering, Avalonia, xUnit).
  • docs/ - requirements (docs/reqstream/), design (docs/design/), verification (docs/verification/), the SysML2 architecture model (docs/sysml2/), and the user guide.

Building and Testing

pwsh ./build.ps1 -Build -Test   # restore, build, and run the unit/headless test suite
pwsh ./build.ps1                # no switches: prints usage and exits non-zero
pwsh ./fix.ps1                  # auto-fix formatting
pwsh ./lint.ps1                 # lint and compliance checks

build.ps1 accepts combinable switches: -Build (restore + build), -Test (build if needed, then run the unit/headless suite), -IntegrationTest (build if needed, then run the Appium/AT-SPI suite), and -All (equivalent to all three). build.ps1 -Test and CI's cross-platform build job both run dotnet test --filter "Category!=Integration", so test/DemaConsulting.SysML2Workbench.IntegrationTests' Appium-driven tests are excluded from that default test run. That tier runs for real in CI's dedicated appium-windows-integration-tests job (windows-latest), and can now also be run locally on Windows, macOS, or Linux via pwsh ./build.ps1 -IntegrationTest, which delegates to run-under-appium.ps1: on Windows/macOS it installs Appium and the NovaWindows/Mac2 driver, publishes the Desktop application, starts and polls a local Appium server, runs the tests, and always stops the server afterward; on Linux it publishes the Desktop application and delegates the whole test run to the pre-installed selenium-webdriver-at-spi-run wrapper (see docs/design/ots/appium.md).

About

A cross-platform desktop viewer and IDE for SysML v2 models, built on the SysML2Tools rendering engine.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages