Monday 13 November 2017

Changes log for v2.1 (Release) profile

The following changes were made for v2.1 on GitHub (released 05-NOV-2017 - Release build):

This version is functionally, i.e. profile and code-equivalent, to 2.1.r and is considered a Release version. The only functional difference between this and the 2.1.r version is the version of the plug-in version in the has been changed to say 2.1.Rhp82 (Release).

#246 05-NOV-2017: Changed the plugin version to 2.1.Rhp82 (Release)

Full change history since 2.0 (Release) is in the CHANGE_HISTORY.txt

This release can be downloaded from GitHub link above:

Thursday 12 October 2017

Changes log for v2.1.r (UnderDev) profile

The following changes were made for v2.1.r on GitHub (released 11-OCT-2017 - UnderDev build):

These only relate to use of Call Operation actions, i.e. when the activity diagram is used for functional decomposition using operations. Issues found during robustness testing:

#244 11-OCT-2017: Default ADs to Analysis mode to better support call operation parameter sync (F.J.Chadburn). ..

When you choose MBSE Method: Functional Analysis > Copy activity diagrams to package under development .

... the plugin will now make sure that the Analysis Only check-box is ticked on the copied diagrams.

This ensures that Rhapsody's menus appear (so that the workflow is improved if you did want to go on and use action pins with activity parameters where the master for the inputs/output pins is the are the parameters on the operation)

#245 11-OCT-2017: Fixed exception on CallOperation action drop when using detailed ADs with Ops (F.J.Chadburn). This may relate to changes to Rhapsody behaviour between versions, i.e. it was working for some but not all versions, hence I changed the hook used to get the element to be more robust.

Essentially, when the FunctionalAnalysisPkg package structure is added you can right-click a AD to create a more detailed one.

When you drop a CallOperation on the diagram, the plugin will pop up a dialog that allows you to create the Operation for a Block that is part of the system assembly.

The Operation is added to the Block and hooked to the Call Operation automatically, thus speeding up the process of building a list of re-usable functions.

Note: This also works when you're doing white-box modelling. If your _SystemAssembly block has more than one part which is not an actor or test driver, then a dialog will be popped up by the plugin to ask you which Block to add the operation to.

Thursday 5 October 2017

Changes log for v2.1.q (UnderDev) profile

The following changes were made for v2.1.q on GitHub (released 04-OCT-2017 - UnderDev build):

The main thing here are robustness improvements to reduce issues when user opens multiple Rhapsody clients, namely to give a warning. Also some users keep asking how to add pre and post conditions to AD, so I added to toolbar to remove them having to ask. Plus a couple of little tweaks discovered during testing.

#238 04-OCT-2017: Improve ability to add new UC pre or post conditions to the AD (F.J.Chadburn). Added these to the AD toolbar propagated to packages that have the RequirementsAnalysisProfile applied. It just makes it easier for users who are new to Rhapsody who are using simplified activity diagrams to model use cases. Had to add stereotypes to profile as built in Precondition/Postcondition stereotypes used before were constrained by properties prevent their use in toolbar.

#239 04-OCT-2017: Improve warning/behaviour if multiple Rhapsodys are open or user switches app (F.J.Chadburn). Occasionally users will accidentally open multiple Rhapsody's and accidentally modify the wrong model. This enhancement reduces that risk leading to better overall robustness in wider deployments.

#240 04-OCT-2017: Prevent commands running in the SysMLHelper model to avoid accidental damage (F.J.Chadburn). This enhancement reduces that risk leading to better overall robustness in wider deployments.

#241 04-OCT-2017: Fixed TableL - Use case refinement relations so that it works as expected post 8.2 (F.J.Chadburn). Oddity, but for some reason Use Cases were not selected in the shipped profile (probably dates back to the 8.2 upgrade). All fixed now though.

#242 04-OCT-2017: Get re-layout dependencies on diagrams(s) menu to centre on graph edges properly (F.J.Chadburn). Improvement to v2.1.o enhancement.

#243 04-OCT-2017: Added ability to do smart link from a testcase to create a Verification (F.J.Chadburn). Again, a small thing I noticed as being useful.

Changes log for v2.1.p (UnderDev) profile

The following changes were made for v2.1.p on GitHub (released 27-SEP-2017 - UnderDev build):

There's nothing urgent in this one, just a bit of polish that helps me with white box simulation building.

#231 27-SEP-2017: Enhanced tooltip now shows the req't text when hovering over traceability relations (F.J.Chadburn). I did this because I found I was often navigating to the end of dependency to be able to read the requirement text, hence this enhancement saves a lot of time when working in concert with textual requirements as the formal hand-off.

#232 27-SEP-2017: Improve move unclaimed req'ts needs so that it handles read-only packages better (F.J.Chadburn). Essentially, the helper won't provided referenced packages as an option to move into. Note: The method allows for the RequirementsAnalysisPkg to be added by reference, e.g., it can be developed by a different modeller in parallel! (the so called "Wing-person" approach to modelling where the Wing person is building and testing the requirements into a simulation that can then generate the test cases).

#234 27-SEP-2017: DesignSynthesisProfile no longer sets property to hide part/Object name on IBD (F.J.Chadburn). This is a better default. Of course, the user can override if they wish.

#235 27-SEP-2017: FunctionalAnalysisProfile now sets ObjectModelGe::flowPort::ShowName to Name only (F.J.Chadburn). This is a slightly better default when doing flow-based modelling and coarse-grain sim work as type is considered detail. Of course, the user can override if they wish.

#236 27-SEP-2017: Improved Add new Block/Part... dialog to allow naming of part (F.J.Chadburn). Of course, this menu is a available in a bunch of places and is used when building white-box simulations. It means you can create a part/block and stereotype it in one action (next thing will be to ask using to populate part on the IBD if there happens to be an IBD open). This is all about making it simpler for modellers to handle the part/Block model in SysML. The Helper also asks if you want to update the simulation SD template automatically to include the part.

#237 27-SEP-2017: Resolved Java path problems with Entry in certain versions of Eclipse (F.J.Chadburn). This is really just an SCM issue, if you want to configure the code using RTC, rather than GitHub.

Changes log for v2.1.o (UnderDev) profile

The following changes were made for v2.1.o on GitHub (released 20-SEP-2017 - UnderDev build):

No bug fixes here, just a couple of helpers that I think will speed things up for people:

#229 20-SEP-2017: Add re-layout dependencies on diagram(s) menu to ease beautifying when req't tracing (F.J.Chadburn). This is in lieu of the General::Graphics::KeepEndPoints property not working quite as expected, an 8.2+ property (which if unchecked might have preventing need for menu).

#230 20-SEP-2017: Initial alpha trial for create test case script from a sequence diagram (F.J.Chadburn). Right-click a simulated sequence diagram to populate a test script on to the test driver. Limitation is that I haven't yet got arguments to be transcribed over. It does make creating test cases from running a sim much quicker though ;-) Make sure you save the sequence diagram first though, so that script can read the events on it.

Sunday 10 September 2017

Changes log for v2.1.n (UnderDev) profile

The following changes were made for v2.1.n on GitHub (released 06-SEP-2017 - UnderDev build):

#227 06-SEP-2017: Increased robustness to stop smart link panel using non new term version of «refine» (F.J.Chadburn)

For example, to add refinement relations from the use case to all the requirements on an activity diagram you can right-click the use case and choose MBSE Method: Requirements Analysis > Start link to a requirement

Now, you can select all the requirements on the activity diagram:

... and choose MBSE Method: Requirements Analysis > End link at a requirement (this 'smart linking' is based on using different New Term stereotypes for different types of relations hence the helper will infer the relation type automatically and also protect against duplicate relations being created).

#228 06-SEP-2017: Refine subscribe port creation to include change event reception creation (F.J.Chadburn)

For example, choose MBSE Method: Design Synthesis > Make attribute a «publish» flowport to launch the auto-connection wizard based on the part hierarchy of the system under design...

Choose Create new attribute to wire it to the itsController part...

Choose OK to automatically update the IBD diagram:

When the simulation is then built and run, a change event is seen on instances of the Controller Block that are connected in the system under design, when the simulation is run:

Note: For more info on change events in Rhapsody see:

Saturday 26 August 2017

Changes log for v2.1.m (UnderDev) profile

The following changes were made for v2.1.m on GitHub (released 26-AUG-2017 - UnderDev build):

#224 25-AUG-2017: Added new menu to roll up traceability to the transition and populate on STM (F.J.Chadburn). Right-click and transition and choose Roll up traceability to the transition from the menu:

This will present a dialog allowing you to choose the requirements that relate to the associated trigger, guard and action(s):

The requirements will be populated on the diagram:

#225 25-AUG-2017: Add check that pre-conditions with text must trace to at least one requirement (F.J.Chadburn)
#226 25-AUG-2017: Fixed exception when creating FunctionalBlockHierarchy and the RD already exists (F.J.Chadburn)

Changes log for v2.1.l (UnderDev) profile

The following changes were made for v.2.1.l on GitHub (released 13-JUL-2017 - UnderDev build).

I added a confirm dialog to the way that the Gateway project dialog comes up (to try and lessen the surprise plus give the ability to delete and re-create - which is often required when you create a project in the same location as an existing one). The main thing in this pre-release is the ability to choose a stereotype when creating a block and to be able to create a block/part part in a single menu command. The combination of these two commands makes it quicker and easier to build white box simulation models. I also made a change to  block led me to make the instance name explicit in the SD template (e.g. a block called Lock might be used to type multiple parts like a frontDoorLock and a rearDoorLock) and there's a small enhancement to include deriveReqt relations in the recently added Select menu.

#218 12-JUL-2017: Added Gateway project Confirm dialogs to advise and provide option to delete and re-create (F.J.Chadburn)
#219 12-JUL-2017: Added Select Depends On element(s)\Derive Requirement menus for deriveReqt relations (F.J.Chadburn)
#220 12-JUL-2017: Added customisable Stereotype choice to the Block and block/Part creation dialogs (F.J.Chadburn)
#221 12-JUL-2017: Fixed Smart Link dialog to draw from middle of IRPGraphNodes rather than top left (F.J.Chadburn)
#222 12-JUL-2017: Allow AddNewBlockPartToPackageMenu to work when right-clicking IBDs and BDDs (F.J.Chadburn)
#223 12-JUL-2017: Change life-lines on simulated <> SD to show Parts rather than Blocks (F.J.Chadburn)

Thursday 13 July 2017

Executable MBSE webinar planned for IBM on Wed, Jul 19, 2017 4:00 PM BST

I thought I'd give a demo of latest helper...

Wed, Jul 19, 2017 4:00 PM - 5:00 PM BST
Show in My Time Zone
Presenter: Fraser Chadburn, Trainer/consultant in Rational Rhapsody (currently working in automotive)

Fraser will demonstrate creating an executable “concept of operations” OMG SysML model from scratch with requirements traced in DOORS. He will use an open-source alternative to the Harmony-SE toolkit and explain how it has evolved slightly differently in order to fit with the experiences he's  seen in the automotive market. Advanced and exploratory techniques will be touched on such as using Object-Orientated inheritance of black-box behaviours, coping with iterative and evolving use case models, as well as use of tool automation to reduce training needs during deployment. Aligning SysML/UML usage to the graphical notations familiar to automotive control engineers expectations, using state-based behaviours with continuous conditions, flowing data between controllers, and automatically building test plans/cases from executing the system specification will be touched on based on aspirations to use standards-based SysML modelling in automotive feature development.

Sunday 9 July 2017

Changes log for v2.1.k (UnderDev) profile

The following changes were made for v2.1.k on GitHub (released 09-JUL-2017 - UnderDev build).

I added a couple of enhancements that have been in development for a while. This is about using flow-ports to build a white block simulation. There's also a helper to create part/Block at same time (essentially removing manual steps to make things quicker when building a white box simulation). I would normally hold off during new features but I wanted these in ahead of an IBM webinar...

#213 09-JUL-2017: Add dialogs to auto-connect «publish»/«subscribe» FlowPorts for white-box simulation (F.J.Chadburn)

#214 09-JUL-2017: Tweak Link from TimeActor to be a new term "connector" when creating block hierarchy (F.J.Chadburn)

#215 09-JUL-2017: Change GlobalPreferencesProfile so that Link name is not shown on IBDs by default (F.J.Chadburn)

#216 09-JUL-2017: Added a new Add Block/Part command added to the Functional Analysis menus (F.J.Chadburn)

#217 09-JUL-2017: Refined the menus to say Create an attribute/flow-port/check operation (F.J.Chadburn)

Tuesday 4 July 2017

Changes log for v2.1.j (UnderDev) profile

The following changes were made for v2.1.j on GitHub (released 04-JUL-2017 - UnderDev build).

The main improvement here was around Populate requirements for SD(s) menu command. This wasn't working quite as expected for updating existing diagrams, so I fixed it and filled it out a bit by adding a new dialog. The reqt size is also taken based on the Default size, hence the user can choose a different default size if they want.

#209 04-JUL-2017: Populate requirements for SD(s) based on messages now supported with Dialog (F.J.Chadburn)

#210 04-JUL-2017: Fixed a bug stopping event creation dialog launching when populate check-box shown (F.J.Chadburn)
#211 04-JUL-2017: Set UseCaseGe::Actor::ShowName property in GlobalPreferencesProfile to Name_only (F.J.Chadburn) - Useful if actors are in a different location for some reason
#212 04-JUL-2017: Added a MergeActors helper, currently only invoked via Eclipse (F.J.Chadburn)

Sunday 2 July 2017

Changes log for v2.1.i (UnderDev) profile

The following changes were made for v2.1.i on GitHub (released 25-JUN-2017 - UnderDev build).

There's a couple of small fixes here plus a quite big improvement to the Select Depends On/Dependency element(s) menus as people are using these and finding them useful in lieu of a better populate on diagrams (e.g. they multiple select the requirements or elements in the browser which you can then drag on to a diagram).

#206 25-JUN-2017: Removed ReferenceUnitPath from .properties to fix profiles missing $OMROOT (F.J.Chadburn). Essentially, I found that if you set General::Model::ReferenceUnitPath property then it also sets a relative reference for the profiles (which isn't what you want) hence if you send your model to someone else the profile(s) may not be in the same location. Since property was not essential for the profile, I've removed its use.

#207 25-JUN-2017: Significant bolstering of Select Depends On/Dependent element(s) menus (F.J.Chadburn)

#208 25-JUN-2017: Updated GlobalPreferencesProfile to allow for Rounded Rectilinear options (F.J.Chadburn) - Essentially because Rhapsody stores the possible values as well as the overridden selection, it's necessary to un-override and re-override to have the full list if new enumerations are added (which is what I did).

Note: I can confirm that no known changes are needed to use profile with 8.2.1 (which has just been released). Using profile with version less that 8.2 is difficult though (i.e. requires some tweaks due to the way that Query elements changed). That said, it's not impossible if you know how.

Sunday 18 June 2017

Changes log for v2.1.h (UnderDev) profile

The following changes were made for v2.1.h on GitHub (released 18-JUN-2017 - UnderDev build).

Main point here is that fix #190 was not working probably for 32 bit hence you get linker errors. This pre-release fixes that issue, hence the recommendation is to go for 2.1.h over 2.1.g. There's a couple of small refinements also.

#203 18-JUN-2017: Fix issues caused by fix #190 on 32 bit client but keep CPU property value overridden (F.J.Chadburn)

#204 18-JUN-2017: Refine menu for invoking Smart Link panel and add FlowPort/EventReceptions support (F.J.Chadburn)

#205 18-JUN-2017: Removed Perform rename in browser for elements on ADs from menus to simply (F.J.Chadburn)

Note these releases will be called "Pre-release" under all the regression suite/test procedures/training have been completed.

Sunday 4 June 2017

Changes log for v2.1.g (UnderDev) profile

The following changes were made for v2.1.g on GitHub (released 05-JUN-2017 - UnderDev build).

This draft release, developed using Rhp 8.2, has a number of accumulated updates/fixes. The most notable relate to improvements in white box modelling (Simple or Full Sim) so that the creation menus for events, operations, and attribute/checks work directly on parts/blocks. There's also another fix due to the introduction of ValueProperty new term in 8.2 and some tweaks that have come from 64 bit testing.

#190 05-JUN-2017: Added compiler-related to improve control when using 64bit Rhp (F.J.Chadburn)
#191 05-JUN-2017: Carriage return improvements to .properties files to make easier to edit (F.J.Chadburn)

#192 05-JUN-2017: Widened DeleteAttributeAndRelatedElementsMenu support to work with flow-ports as well (F.J.Chadburn)

#193 05-JUN-2017: Added Transitions to «AutoRipple» list so they're also cleaned up when attribute is deleted (F.J.Chadburn)

#194 05-JUN-2017: Added _NoWebify configuration to FunctionalBlock creation to ease usage with 64bit Rhp (F.J.Chadburn)

#195 05-JUN-2017: Modified FunctionalBlockPackage creation to create BDD in BlockPkg to ease white box method (F.J.Chadburn)

#196 05-JUN-2017: Enhanced create traced element dialogs to be context aware for blocks/parts (F.J.Chadburn)

#197 05-JUN-2017: Fix 8.2 issue in Incoming Event panel, create ValueProperty rather than attribute (F.J.Chadburn)
#198 05-JUN-2017: Support for adding MonitoringConditions transitions moved into shared StatechartHelpers (F.J.Chadburn)
#199 05-JUN-2017: Improved create event panel consistency to name event Tbd if no text provided (F.J.Chadburn)
#200 05-JUN-2017: Hide Populate on diagram check-boxes if context is not valid (F.J.Chadburn)
#201 05-JUN-2017: Highlight attribute post-event creation to ease potential for flow-port creation (F.J.Chadburn)
#202 05-JUN-2017: Minor changes to logging in GeneralHelpers (F.J.Chadburn)

Monday 29 May 2017

Changes log for v2.1.f (UnderDev) profile

The following changes were made for v2.1.f on GitHub (released 29-MAY-2017 - UnderDev build).

This draft release, developed using Rhp 8.2, has a number of accumulated updates/fixes. The most notable are that the ElapsedTime actor is now automatically wired in when you first create a simulation block hierarchy (Simple or Full Sim) and that the creation menus for events, operations, and attribute/checks are now more widely available on different diagram type canvasses. Note that the latter also fixes some missing menus found due to the introduction of ValueProperty new term in 8.2. As such, nothing urgent but I'd recommend anybody currently using v2.1.e to move up to this version when they can to get a more "as designed" experience.

Full list of fixes are:
#178 29-MAY-2017: Update hep files so menus appear for ValueProperty (8.2) replacement of Attributes (F.J.Chadburn)

#179 29-MAY-2017: Added new Functional Analysis menu to Re-create «AutoShow» sequence diagram (F.J.Chadburn)

#180 29-MAY-2017: Added new Design Synthesis menu to Delete attribute and related elements (F.J.Chadburn)
#181 29-MAY-2017: Replace dialog with Log message in cleanUpAutoRippleDependencies (F.J.Chadburn)
#182 29-MAY-2017: Tweak to keep attribute selected after switching to publish or subscribe flow-port (F.J.Chadburn)

#183 29-MAY-2017: Automatically add a pElapsedTime port and connection to the TestDriver (F.J.Chadburn)

#184 29-MAY-2017: Create a connector between pElapsedTime port when creating block hierarchy (F.J.Chadburn)

#185 29-MAY-2017: Change Block hierarchy creation to use implicit not explicit names for parts (F.J.Chadburn)

#186 29-MAY-2017: Add context string to getBlockUnderDev to make it clearer for user when selecting (F.J.Chadburn)

#187 29-MAY-2017: Provide option to re-create «AutoShow» sequence diagram when adding new actor (F.J.Chadburn)
#188 29-MAY-2017: Tweak Derive downstream requirement to work on right-clicking reqt on IBD or UCD (F.J.Chadburn)
#189 29-MAY-2017: Updated hep files so create event, attribute, or operations menus appear more widely (F.J.Chadburn)

Sunday 2 April 2017

Changes log for v2.1.e.UnderDev profile

The following changes were made for 2.1.e on GitHub (released 02-APR-2017 - UnderDev build):

#172: Added new General Utilities > Select Dependent element(s) option (to complement the Select Depends On option added in v2.1.c). This can be useful when transferring traceability to requirement or state machine diagrams

#173: You now get an information rather than warning dialog when you copy an attribute from a different block and switch it from a publish to subscribe (or vice versa).

#174-#176: Added option to create a flow-port at the same time as creating a traced attribute, plus improved working to copy traceability and highlight port in the browser when it creates one

#177: Added General.Model.ReferenceUnitPath = Relative property to config.Properties so it's set in new models when they're created