Thursday 20 June 2024

IBM Engineering Rhapsody Tip #108 - Creating models quickly, incl. package diagrams automatically

In some ways this is more of the same. However, this video has some of my very latest work for auto-creating package diagrams for model navigation with 4.3.e which has gone through a few iterations but is getting quite promising, considering that I used to think that package diagrams weren't that useful in SysML. 

The video shows how I create models quickly using a mosaic SysML package approach with an open-source profile I've created called the Executable MBSE Profile. The beginning point for a lot of projects is often a use case and requirements-driven approach but this 11 min video does show that the profile goes beyond that with functional and system architecture packages. This video ends with the auto-creation of package diagram - index for model navigation of the project that was created.



Friday 14 June 2024

v4.3.e.Release (14-JUN-2024)

Extended functionality of auto package diagram - index creation to include tables and matrices by way of hyperlinks that appear in the quick navigation icon on the diagram (as API doesn't allow to add).

Now available on github. Don't forget to rename top-level folder SysMLHelper without the version number before moving into Profiles folder. Also ensure that previous profile is not just renamed but removed from Share/Profiles completely (as Rhapsody will open first filename it finds rather than the explicit path to .sbsx).

Also a couple of usability enhancements in the form of automatically moving actors into actor package and being able to specify tables that are produced automatically when a new requirements package is created, via a property.

0835 06-JUN-2024: ExecutableMBSE: Added PackageDiagramIndexLeafElementMetaClasses property to enable use of non-diagram elements as leaf elements on package diagram (F.J.Chadburn)

0836 06-JUN-2024: ExecutableMBSE: EnableQuickNavigation icons by default on package diagram - index to provide additional usability benefits for navigating (F.J.Chadburn)

0837 06-JUN-2024: ExecutableMBSE: Fixed auto-move of interfaces into subsystem interfaces packages if dependency found in parent tree (F.J.Chadburn)

0838 06-JUN-2024: ExecutableMBSE: Added auto-move of actors into actor packages if dependency found in parent tree (F.J.Chadburn)

0839 07-JUN-2024: ExecutableMBSE: Added auto-draw of dependencies to auto package diagram - index creation with property to enable/disable it (F.J.Chadburn)

0840 07-JUN-2024: ExecutableMBSE: Added actor package to the leaf nodes so that dependencies to them are shown on auto-drawn package diagram - index (F.J.Chadburn)

0841 12-JUN-2024: ExecutableMBSE: Added table views to package diagram - index using HyperLinks so they appear in Quick Navigation icons, as API not allowing adding to diagram (F.J.Chadburn)

0842 12-JUN-2024: ExecutableMBSE: Deprecated IsAutoPopulatePackageDiagram property and usage as superseded by package diagram - index functionality (F.J.Chadburn)

0843 12-JUN-2024: ExecutableMBSE: Extended HyperLink creation for package diagram index to include base matrix and SysML profile table types for completeness (F.J.Chadburn)

0844 12-JUN-2024: ExecutableMBSE: Added UserDefinedMetaClassesForRequirementsPackageTableCreation property for tables auto-generated with requirement packages (F.J.Chadburn)

0845 14-JUN-2024: ExecutableMBSE: Updated PracticalMBSE-BookI-InsulinPump-ModuleA-UseCasePackages-V2024-06-14-0727.pdf which now includes auto-move of actor functionality (F.J.Chadburn)

0846 14-JUN-2024: ExecutableMBSE: Default setPropertyForExecutableMBSEModel.General.Model.ShowModelTooltipInGE = Simple so user choice to enable (F.J.Chadburn)

0847 14-JUN-2024: ExecutableMBSE: Get helper to automatically open root Package Diagram - Index after auto-creation or update (F.J.Chadburn)

0848 14-JUN-2024: ExecutableMBSE: Updated PracticalMBSE-BookI-InsulinPump-ModuleB-FeatureFunctionPackages-V2024-06-14-0819.pdf to include a package diagram - index (F.J.Chadburn)

0849 14-JUN-2024: ExecutableMBSE: Get the update/create package diagram - index to clean up HyperLinks with no targets left when an element is deleted (F.J.Chadburn)

Sunday 19 May 2024

v4.3.d.Release (19-MAY-2024)

Focused on re-implementation of the auto-created package diagram - index support, designed to be able to auto-populate a model with a collection of auto-created diagrams that enable navigation/click-through to diagrams. 

Now available on github. Don't forget to rename top-level folder SysMLHelper without the version number before moving into Profiles folder. Also ensure that previous profile is not just renamed but removed from Share/Profiles completely (as Rhapsody will open first filename it finds rather than the explicit path to .sbsx).

The new layout is designed to work both with the enhanced tooltip but also in the Model Manager web-client, and gives the user the choice as to whether to recursively build the diagrams from the leaf up. Also took the opportunity to add another of the training manual pdfs. Module B gives an introduction to building function chains using internal block diagrams. Some minor filling out of the menus that allow quick creation of system architecture and feature function packages, including ability to select and apply stereotypes in the process.

V4.3.d.PreRelease (19-MAY-2024):

0823 20-APR-2024: ExecutableMBSE: Re-implementation of package diagram - index support as a result of wider testing on real projects (F.J.Chadburn)

0824 05-MAY-2024: ExecutableMBSE: Advanced package diagram - index support to allow child diagrams of things like function blocks to listed recursively (F.J.Chadburn)

0825 09-MAY-2024: ExecutableMBSE: Removed listener to populate package diagram - index as not found to be robust with large models in call-back situation (F.J.Chadburn)

0826 12-MAY-2024: ExecutableMBSE: Added new MBSE Method: Design Synthesis\Create Architecture Package Structure... menu to speed up new model creation (F.J.Chadburn)





0827 17-MAY-2024: ExecutableMBSE: Added update project properties check to create architecture/feature/function package menus so they work if first thing done (F.J.Chadburn)






0828 17-MAY-2024: ExecutableMBSE: Added new MBSE Method: Functional Analysis\Create Function Package Structure... menu to open new ways to build model structure (F.J.Chadburn)




0829 17-MAY-2024: ExecutableMBSE: Updated training labs with PracticalMBSE-BookI-InsulinPump-ModuleA-UseCasePackages-V2024-05-16-1401.pdf (F.J.Chadburn)


0830 17-MAY-2024: ExecutableMBSE: Updated training labs with PracticalMBSE-BookI-InsulinPump-ModuleB-FeatureFunctionPackages-V2024-05-17-1210.pdf (F.J.Chadburn)


0831 19-MAY-2024: ExecutableMBSE: Renamed package diagram - index menus to separate the create/update and ensure create works on SysML,Project (F.J.Chadburn)

0832 19-MAY-2024: ExecutableMBSE: Added Query - Package Diagram - Index to ease finding and opening/deleting them by filtering the browser (F.J.Chadburn)




0833 19-MAY-2024: ExecutableMBSE: Increase robustness of package diagram - index creation with 9.0.2 by adding check that element is not a project (F.J.Chadburn)

0834 19-MAY-2024: ExecutableMBSE: Added AutoCreated tag to package diagram - index creation and updating so that manually created diagrams are preserved (F.J.Chadburn)


Friday 15 March 2024

v4.3.c.Release (15-MAR-2024)

Context patterns and associated tables, plugin methods, and browse hierarchy extensions to expose key model relationships.

This release adds some useful views and browsers, particularly around relationships between diagrams and requirements. For example, what requirements are present on which diagrams and vice versa. The browse hierarchy for requirements and diagrams required a bit of a workaround to show traceability on the owner of the activity/statechart but this seems to work well and acts to aggregate relations to the intrinsic owner anyway. 

V4.3.c.PreRelease (15-MAR-2024):

0808 12-FEB-2024: ExecutableMBSE: Initial support to extend update package diagram with context so that it works recursively to sub-packages (menu hidden) (F.J.Chadburn)

0809 29-FEB-2024: ExecutableMBSE: Added getObjectNodesWithFlowTargets, getObjectNodesWithNoFlowoTargetsOrSources, getOutgoingFlowTargets, pluginMethods for table views (F.J.Chadburn)

0810 29-FEB-2024: ExecutableMBSE: Added getObjectNodesWithFlowSources, getIncomingFlowSources pluginMethods for activity diagram table views (F.J.Chadburn)

0811 01-MAR-2024: ExecutableMBSE: Added getRequirementsOnDiagram for use in context patterns (F.J.Chadburn)

0812 01-MAR-2024: ExecutableMBSE: Added tablel - Requirements On Diagrams table layout to _TablesAndMatrices package as a base example of usage (F.J.Chadburn)

0813 01-MAR-2024: ExecutableMBSE: Changed Export requirements to csv for import into DOORS NG so local names are exported (log window reports if remote name different) (F.J.Chadburn)

0814 05-MAR-2024: ExecutableMBSE: Add a Browse Hierarchy > Browse Requirements On Diagrams browser option to menus for project (F.J.Chadburn)

0815 05-MAR-2024: ExecutableMBSE: Added getDiagramsWithRequirementOn for context patterns/tables plus new Browse Hierarchy > Browse Diagrams With Requirements menu (F.J.Chadburn)

0816 05-MAR-2024: ExecutableMBSE: Added action pin and object flow back on to the textual activity drawing toolbar (F.J.Chadburn)

0817 05-MAR-2024: ExecutableMBSE: Added getDiagramsWithObjectsOn pluginMethod for context patterns/tables plus new Browse Hierarchy > Browse Usages With Requirements menu (F.J.Chadburn)

0818 06-MAR-2024: ExecutableMBSE: Added properties so that profile's Browse Hierarchy sub-menus also work on Package right-click + changed menu names to make clearer (F.J.Chadburn)



0819 11-MAR-2024: ExecutableMBSE: Fix Browse Hierarchy > Browse Diagrams And Requirements On Them Rhp 8.3.1 -> 9.0.2 issue by listing reqts under ActivityDiagramGE/StatechartDiagram (F.J.Chadburn)

0820 11-MAR-2024: ExecutableMBSE: Added explicit Table View - Diagrams And Requirements On Them table to the MBSE View right-click menu for all packages (F.J.Chadburn)




0821 11-MAR-2024: ExecutableMBSE: Added explicit Table View - Requirements And Diagrams Theyre On table to the MBSE View right-click menu for requirement packages (F.J.Chadburn)


0822 15-MAR-2024: ExecutableMBSE: Added null parts check to Populate Parts helper as not working in generalisation context, where feature inherits from system block (F.J.Chadburn)


Friday 26 January 2024

v4.3.b.Release (26-JAN-2024)

Welcome to 2024!

This release has some incremental improvements and was primarily cut to enable wider testing of new auto-package diagram population to make it easier to build navigation into the project browser, plus a useful table for reviewing requirements of function blocks in the context of the subsystems they are allocated to.

Now available on github. Don't forget to rename top-level folder SysMLHelper without the version number before moving into Profiles folder. Also ensure that previous profile is not just renamed but removed from Share/Profiles completely (as Rhapsody will open first filename it finds rather than the explicit path to .sbsx).

V4.3.b.PreRelease (26-JAN-2024):

0803 19-JAN-2024: ExecutableMBSE: Loosen software design package modelling so that you can hierarchically decompose software components (F.J.Chadburn)


0804 19-JAN-2024: ExecutableMBSE: Allow software components to own full, i.e. standard, ports (F.J.Chadburn)


0805 24-JAN-2024: ExecutableMBSE: Add new Subsystem to Function Block Requirements table for system architecture and subsystem packages (F.J.Chadburn)


0806 26-JAN-2024: ExecutableMBSE: First implementation of new Package Diagram - Index auto-creation capability and associated properties (F.J.Chadburn)



0807 26-JAN-2024: ExecutableMBSE: Ensure that Package Diagram - Index auto-creation properties are taken from package, rather than project, level (F.J.Chadburn)