tag:blogger.com,1999:blog-77989418045904577362024-03-13T23:00:43.077+00:00IBM Rhapsody UML/SysML training and automation helper consultancyUnderstand the art of the possible. My mission is to make executable Model-based Systems Engineering (MBSE) easy with the Object Management Group's Systems Modeling Language™ (SysML®) and UML® to make simple modeling easy to deploy to the masses. This site provides practical experience of tuning IBM® Rational® Rhapsody® - a precision engineering UML/SysML tool. Rhapsody tips and ideas will be posted with links to videos. You can follow by email (if google app is allowed).MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.comBlogger255125tag:blogger.com,1999:blog-7798941804590457736.post-35885748975731763002024-01-26T17:48:00.003+00:002024-01-26T17:48:16.007+00:00New release of SysMLHelper<p>The latest SysMLHelper package (4.3.b.Release) is now available on Github. This is an open-source profile and helper collection. The ExecutableMBSE profile part of this as well as providing a Harmony/SE like approach includes function block and function chain modeling enhancements using advanced profile features of Rhapsody. It works with 8.3.1 upwards. </p><p>See my other website which is: <a href="http://www.executablembse.com/">http://www.executablembse.com</a></p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-4182888209706173212023-11-27T12:56:00.001+00:002023-11-27T12:56:10.225+00:00IBM Engineering Rhapsody Tip #107 - Create a use case package structure<p>This video represents training Module A on creating use case package structures using the Executable MBSE Profile, a GPL-licensed extension to Rhapsody development by MBSE Training and Consulting Ltd to enhance SysML with method-aware helpers. </p><p>The Executable MBSE Profile takes a mosaic approach by adding new term packages which have specific purposes.. The methodology is designed to support team-based development in Rhapsody with an awareness of both DOORS Next external requirements and configuration of Rhapsody projects using Rhapsody Model Manager and the IBM Jazz platform.</p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/ljoN5DrYSgc" width="320" youtube-src-id="ljoN5DrYSgc"></iframe></div><br /><p><br /></p>Fraserhttp://www.blogger.com/profile/17823891705732466528noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-81627909562769431452023-10-24T16:01:00.002+01:002023-10-24T16:03:38.342+01:00Interesting paper comparing BPMN with Activity Diagrams<p>I've done a lot of work on a new New Term IBD-like diagram in Rhapsody for modeling Function Blocks as parts in a process flow. I've increasingly had to look to BPMN notation to provide a paradigm for how to manage aspects such as decision nodes, forks and joins. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjFye8MKlS6zSe2JyczLDIhfkCgZS0ToJGpITIw_2AqgZ_VbvTYjEdqF1fBBOii28b70TvNK8_eh-ldHJSoWDKhuqAf9WzEeUFKcThGlMVRLqeh8VvZgcIs1I2RrE89ALSkh5UX10oZM5yTQd8avDf1K2Sa7km1hUnUgxPRLXfuf9q1zxrZJQIzC-_du-w" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="712" data-original-width="1129" height="202" src="https://blogger.googleusercontent.com/img/a/AVvXsEjFye8MKlS6zSe2JyczLDIhfkCgZS0ToJGpITIw_2AqgZ_VbvTYjEdqF1fBBOii28b70TvNK8_eh-ldHJSoWDKhuqAf9WzEeUFKcThGlMVRLqeh8VvZgcIs1I2RrE89ALSkh5UX10oZM5yTQd8avDf1K2Sa7km1hUnUgxPRLXfuf9q1zxrZJQIzC-_du-w" width="320" /></a></div><br />The result is very intelligible, similar to Activity Diagrams but with a slant of BPMN and a unique ability to blend structural and functional modeling. <p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgl9PvRuq5hxCHQJkq143uOs6tydbRvSTngimC9fwHYlhBBvhwh2uGIkR9kppLEpG1fYEM9P2iEzan1zuV5SkCLfTRZYWKZ3hGgaBGS301xK66P-RRvWdntcj-bnh65mAsP5IW9N0fMokVPk_n_S1weoMiQ6NcWpKVChBYL_pRE68DGKWKBbyo5RADRSzE" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="673" data-original-width="1132" height="190" src="https://blogger.googleusercontent.com/img/a/AVvXsEgl9PvRuq5hxCHQJkq143uOs6tydbRvSTngimC9fwHYlhBBvhwh2uGIkR9kppLEpG1fYEM9P2iEzan1zuV5SkCLfTRZYWKZ3hGgaBGS301xK66P-RRvWdntcj-bnh65mAsP5IW9N0fMokVPk_n_S1weoMiQ6NcWpKVChBYL_pRE68DGKWKBbyo5RADRSzE" width="320" /></a></div><br />Interestingly I've just found this paper that compares BPMN notation with UML/SysML Activity Diagrams:<p></p><p><a href="http://www.workflowpatterns.com/vendors/documentation/BPMN_wfh.pdf">http://www.workflowpatterns.com/vendors/documentation/BPMN_wfh.pdf</a></p><p> </p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-33818434048842066172023-08-18T08:04:00.002+01:002023-08-18T08:04:49.128+01:00Continued development of executablembse profile<p>I've been continuing development of executable mbse profile (part of the SysML Helper collection), an open-source project I started in 2016 to automate some Harmony-like methods steps because I needed the HarmonySE toolkit to do some additional things / cope with a new workflow.</p><p>I don't post about this here though as it would've overwhelmed my video posting. Instead, the profile changes are posted here: <a href="http://www.executablembse.com/">http://www.executablembse.com/</a> </p><p>Things to note:</p><p>1. The SysMLHelper bundle has more than one profile. It has the original SysMLHelper profile but I moved my development to the ExecutableMBSE profile in 30 May 2019. I also did a Tau G2 migration profile, for example, and a Metamodeling profile. </p><p>2. All the profiles including the Metamodeling Profile are in the same bundle because they share the Java code. I found that whenever I was creating a profile for a new task or a new problem that needed a GUI, I needed to repeat a lot of code. The bundling like gives a better foundation for creating and updating profiles quickly without re-inventing the wheel. </p><p>3. Profile will pretty much work with any Rhapsody version 8.3.1 onwards as the API hasn't changed that much. The unit files for the profile are developed in 8.3.1. </p><p>2. The Executable MBSE profile (main active profile under dev) has two different workflows for modeling functions; either using operations or using function blocks (new term metatype based on class). Latest stuff is all coming from customers who've found ways of working with DOORS NG and OSLC (things that come from real workflows).</p><p>3. Profile uses a metamodel profile that is part of SysML toolkit to render properties for new terms. I back-fitted this into the SysML Helper profile collection in 2021 and seems to work well. </p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-78637930540921673982023-07-03T13:08:00.009+01:002023-07-03T13:09:10.692+01:00Setting up Rhapsody DiffMerge with EWM Eclipse client<p>I keep losing this link to DiffMerge setup instructions, hence I'm pasting here:</p><p><a href="https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/lifecycle-management/7.0.3?topic=SSYMRC_7.0.3/com.ibm.rational.rmm.overview.doc/topics/rhp_c_installing_rmm.html">https://www.ibm.com/docs/en/engineering-lifecycle-management-suite/lifecycle-management/7.0.3?topic=SSYMRC_7.0.3/com.ibm.rational.rmm.overview.doc/topics/rhp_c_installing_rmm.html</a></p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-69874246821748058932023-05-02T15:16:00.005+01:002023-05-02T15:16:47.751+01:00IBM Engineering Systems Design Rhapsody 9.0.2 was released on 23 Mar 2023<p>Just a heads up that there was a new Rhapsody release on 23 March 2023: <br /><a href="https://www.ibm.com/support/pages/ibm-engineering-systems-design-rhapsody-902">IBM Engineering Systems Design Rhapsody 9.0.2</a></p><p>This supersedes the latest iFix for 9.0.1 which was iFix 004 which fixes some issues introduced in iFix 003: <a href="https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=IBM%20Engineering&product=ibm/Rational/IBM+Engineering+Systems+Design+Rhapsody&release=9.0.1&platform=Windows&function=all">IBM Support: Fix Central - Select fixes</a></p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-13707296465424076492023-05-02T15:13:00.002+01:002023-05-02T15:13:15.385+01:00Reflections on tool-neutral training<p>So, last couple of weeks I did some 2 day tool-neutral face-to-face training. It was fun actually. Like my tool-specific training, it is very interactive except that I use white boards and group work, and miss out the tool-based labs. In the group work, we develop a novel system from scratch using whiteboards. The fun bit is the interaction between people sharing ideas. You never know quite how it will turn out. Both courses had similar participants (a mixture of functional safety consultants, software, and systems engineers) but went in different directions with their solutions as I played around a bit with project constraints (budget, time etc). As we explored the different diagrams, I took their ideas and put them into a model to show them out it would look and some of the different views, particularly around traceability tables and using simulation to explore emergent behavior.</p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-75513560391652396402023-03-26T12:02:00.000+01:002023-03-26T12:02:00.820+01:00v4.2.g.PreRelease of Executable MBSE Profile<p>Over last 6 months with more late adopters moving to try and pick-up MBSE and run with it, I've found myself moving more towards suggesting people exploit tool automation such as my SysMLHelper. The amount of code and ideas now accumulated in this open-source project is substantial and it fits almost all needs now (executable or function-block based).</p><p>If I've come up with ideas I've incorporated them into it. The latest SysMLHelper is 4.2.g.PreRelease and is available on <a href="https://github.com/fchadburn/SysMLHelper/releases/tag/4.2.g.PreRelease" target="_blank">Github</a>. I also post info to my <a href="http://www.executablembse.com/">http://www.executablembse.com/</a> website, although I've found with all; my websites that I've not had time to add much beyond essentials as I've got hungry customers I've committed hours to.</p><p>Regarding my helpers, all I ask is that you comply and respect the license as it protects me against commercialisation of my ideas. I've avoided 3rd party libraries in all my Java. Also, there's a limit to my time, hence if you really want proper help then get me to consult for a bit and I can put my experience to use for you, either to recover projects that need help or to make sure you start off with some quick wins. Doing MBSE with Rhapsody isn't effortless, but it can be fun if you learn how to speed up the tool mechanics and get drawing diagrams quickly based on well proven paths.</p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-47155414564984995162023-03-26T11:48:00.004+01:002023-03-26T11:48:43.695+01:00Reflection on recent trainings<p>Done 3 hands-on Rhapsody tool trainings in the 1-3 months, all Rhapsody 4-days but some spread over non-consecutive days (which is one of the benefits of remote/virtual-image-based deliveries). One of the 4 days was C++ based including deep-dive into statecharts and configuration management topics (dates over 2 weeks). The other was mostly Systems/SysML-based (automotive), also dates over 2 weeks. They seemed to go well. More recently I've found myself doing more consulting and recovery jobs, e.g. people getting into trouble with Rhapsody Model Manager and understanding its true potential but also coaching people on advanced topics like making context patterns work with their models. </p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-76538418914575908992022-11-02T11:29:00.003+00:002022-11-02T11:29:11.953+00:00IBM Engineering Rhapsody Tip #106 - Power features for filtering diagrams using views/viewpoints<p>This is my first video for a while and comes from some recent work trying to make it easier for users to exploit the power features of IBM Engineering Rhapsody for filtering diagrams to show elements within a view. Rhapsody includes lots of features to do this such as Queries and CustomViews but it's not always easy to set them up, hence I added some support to Rhapsody to make both the setting up of the necessary elements and then the usability of those elements much easier. After showing the resulting example, the video steps through the steps of creating it using my helper.</p><div class="separator" style="clear: both; text-align: left;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/7tEFVib6MfU" width="320" youtube-src-id="7tEFVib6MfU"></iframe></div><br /><p><br /></p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-87078355111474460272022-11-02T09:49:00.003+00:002022-11-02T09:53:33.901+00:00First delivery of my new Model-based Testing with Test Conductor training course<p>Last week I did my first delivery of a new<b> Model-based Testing with IBM Rhapsody Test Conductor </b>(1 day) course I developed to a group of 15 participants, my first new material for a while. Training was based on Rhapsody 9.0.1 iFix 003.</p><p>This was the feedback:</p><p class="MsoNormal" style="background-color: white; color: #313131; font-family: Arial, Helvetica, sans-serif; font-size: small; margin: 0px; word-spacing: 1px;"><b><span face="Arial, sans-serif" style="color: black; font-size: 1.16667rem;">Final Class Summary<u></u><u></u></span></b></p><p class="MsoNormal" style="background-color: white; color: #313131; font-family: Arial, Helvetica, sans-serif; font-size: small; margin: 0px; word-spacing: 1px;"><span face="Arial, sans-serif" style="color: black; font-size: 1rem;">General: 4.6 out of 5<br />Material: 4.8 out of 5<br />Instructor: 4.9 out of 5<br /></span></p><p><span face="Arial, sans-serif" style="background-color: white; font-size: 1rem; word-spacing: 1px;">Overall Satisfaction: 9.3 out of 10</span> </p><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZPw1SMD-Zug5MZIjlVEVBVk_tSv8Wc6gHTE-S7zl43noEyYm1sL8dKacichNMJi5qUbCU1pqPAmN8Ukcrr1-iWjxnv_IkidcuAAznxgz82VFHO8CiaNs0bSAJOYpCerS4RUUtQypGCBmOVQI-gGXDqDrxQAPzfnRRPPXXcsNY-y07B024-Z8NLBT/s1052/2022-11-02_09-51-29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="790" data-original-width="1052" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZZPw1SMD-Zug5MZIjlVEVBVk_tSv8Wc6gHTE-S7zl43noEyYm1sL8dKacichNMJi5qUbCU1pqPAmN8Ukcrr1-iWjxnv_IkidcuAAznxgz82VFHO8CiaNs0bSAJOYpCerS4RUUtQypGCBmOVQI-gGXDqDrxQAPzfnRRPPXXcsNY-y07B024-Z8NLBT/w400-h300/2022-11-02_09-51-29.png" width="400" /></a></div><p>The material is all based on hands-on labs and does assume some knowledge of Rhapsody. It can be considered as a 1-day add-on to existing 3-day Mastering Rhapsody trainings. Either done in the same training cycle or as a top-up that gives more exposure to executable modeling later on. </p><p><br /></p>Fraserhttp://www.blogger.com/profile/17823891705732466528noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-1157845130739721762022-11-02T09:36:00.000+00:002022-11-02T09:36:28.077+00:00Rhapsody 9.0.1 iFix 003 SR1 was released 29-Sep-2022<p>For those that don't know, the latest Interim Fix (iFix) 003 for Rhapsody 9.0.1 is actually a Service Release (SR). This means that it's a complete installer that you can install like a release and don't need to install anything afterwards to get additional fixes (at least at the moment). This makes it a good candidate for performing new installs with as there is just one installer to deal with.</p><p>To obtain iFixes for IBM products, you do not need to be a customer but may need to register for IBM id. They are available on IBM's Fix Central website: <a href="https://www.ibm.com/support/fixcentral/">https://www.ibm.com/support/fixcentral/</a></p><p>Search for: <b>IBM Engineering Systems Design Rhapsody</b></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjVtaQwaG8nXrHaCjsEWfo1Ms-SrhPDOQX2pYZOJfbaUejC5BeareI13HSM7wlons_w4BcOrZfSvwz6YBN2IYjxDk3vki-ykNrUytaU3eFSdIk7boDO2xrH1RYggBcy841E4wCJEbEce61TKAaGkbx-5xMx9GHCfJtisAHJ67EHF-9XrdLHLY7LZ0S/s1436/2022-11-02_09-25-28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="701" data-original-width="1436" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjVtaQwaG8nXrHaCjsEWfo1Ms-SrhPDOQX2pYZOJfbaUejC5BeareI13HSM7wlons_w4BcOrZfSvwz6YBN2IYjxDk3vki-ykNrUytaU3eFSdIk7boDO2xrH1RYggBcy841E4wCJEbEce61TKAaGkbx-5xMx9GHCfJtisAHJ67EHF-9XrdLHLY7LZ0S/w400-h195/2022-11-02_09-25-28.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">If you have a previous 9.0.1 installing you need to uninstall and then re-install. Obviously, this needs to be done with an understanding of what customization's you've done to the rhapsody.ini, Share folder such as profiles and properties.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Really iFix 003 is a roll up of all the fixes done since 9.0.1 was originally released into a single installation package. It makes it a good candidate for new installs where you're rolling out Jazz 7.0.2.</div><br /><p><br /></p>Fraserhttp://www.blogger.com/profile/17823891705732466528noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-5476122272680306322022-10-12T08:15:00.001+01:002022-10-12T08:15:13.607+01:00Java Versions and Features link<p>Often, a Rhapsody team may choose to get a toolsmith on board to extract the best power with the least effort from what is probably the most configurable UML tool of them all. Although Rhapsody is natively and C++ application, plug-ins for Rhapsody make use a Java API. It's not always the case, however, that the toolsmith is a software engineer by trade and hence just a little foundation knowledge can go a long way. I found this article that helps explain a bit of foundation knolwedge wrt Java and JDKs. It's quite well written I thought and hence thought I'd share the link: <a href="https://www.marcobehler.com/guides/a-guide-to-java-versions-and-features">Java Versions and Features (marcobehler.com)</a></p>Fraserhttp://www.blogger.com/profile/17823891705732466528noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-9592481471462980532022-07-27T10:24:00.001+01:002022-07-27T10:24:10.373+01:00v4.1.a.PreRelease version of SysMLHelper toolkit on Github<p>I published first version with business value profile (target for visio import) plus some important tables views for showing traceability in the requirements, use case and feature function packages in the Executable MBSE profile. </p><p>See my <a href="http://www.executablembse.com/">Making Executable MBSE fun with IBM Rational Rhapsody</a> website if you want to know what the latest enhancements were and where to download this set of open source profiles and process automation helper toolkit. </p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-10343443188478179842022-07-12T11:38:00.001+01:002022-07-12T11:38:27.233+01:00IBM Engineering Rhapsody Tip #105 - Simplification of SysML for early context analysis<p>This video gives an impression of where I've moved to in the 7 years since I left IBM and started to support customers using Rhapsody. Broadly speaking to get users with less experience to be able to model, I've moved from delivery of generic SysML training to customizing Rhapsody with profiles that automate the modeling experience; the richest one being the Executable MBSE Profile in the SysML Helper toolkit (www.executablembse.com). This open source GPL 3.0 licensed profile takes a jigsaw approach to following reusable modeling patterns to create models developed by a team where different team members work in different packages. Although it started life as supporting executable mbse methods, this video demonstrates how it as evolved much wider than that. I show just some concept and early system definition phases work including the simplification of SysML IBDs, in Rhapsody, to create a Visio-like context diagrams with flows. </p><div class="separator" style="clear: both; text-align: left;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/3B13n3ZemaY" width="320" youtube-src-id="3B13n3ZemaY"></iframe></div>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-15390742309565225732022-06-27T13:01:00.003+01:002022-06-27T13:02:20.938+01:00SysMLHelper incl. ExecutableMBSEProfile v4.0.w, 27-JUN-2022: Step up in terms of usability and automation<p>FYI that I have pushed my latest <a href="https://github.com/fchadburn/SysMLHelper/releases/tag/v4.0.w.PreRelease">v4.0.w</a> Executable MBSE Profile to Github. It's quite formidable in scope now covering both executable MBSE methods based on DOORS Next requirements or a workflow involving functional decomposition and associated bdds and ibds. The profile is available on a GPL 3.0 license (i.e. you can do what you like but must keep the license, i.e. it's copy left license). Further details on changes are found here: <a href="http://www.executablembse.com/">Making Executable MBSE fun with IBM Rational Rhapsody</a>.</p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-90604547524031275802022-04-16T14:59:00.007+01:002022-04-16T14:59:54.835+01:00IBM Engineering Rhapsody Tip #104 - Rhapsody's support for SysML callout notation<p>In this video, which does have voice narration, I delve into some of detail around IBM Engineering Rhapsody's support for OMG SysML callout notation. Callout's in Rhapsody are supported with a new term stereotype that conveys properties that define what to show in the callout. By default, this will be allocated to and allocated from relationships related to the anchored element. However, we're not limited to these. In the video I show how it's possible to show Satisfaction relations. I start the video by also covering how compartment properties can be tailored to allow Satisfactions. This is also a useful tip, that will not be immediately obvious to the untrained eye. Lot's of power here really. As always, if Rhapsody is not doing something by default, there's probably a property you can set ;-)</p><div><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/3R5MvfSxJZM" width="320" youtube-src-id="3R5MvfSxJZM"></iframe></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div>Transcript:<div><br /></div><div><div>00:00:00 </div><div><br /></div><div>Hello, my name is Fraser Chadburn. I'm a specialist in IBM Rhapsody (in particular) and SysML (in general) and in this video, I'm going to cover the call out notation in SysML. </div><div><br /></div><div>00:00:11 </div><div><br /></div><div>So firstly, let's have a look at it. Essentially callout notation is the use of comments which are anchored to an element, where the element owns a relationship, and the relationships that are owned are shown in that comment. </div><div><br /></div><div>00:00:25 </div><div><br /></div><div>Here's the allocation relationship, which is essentially a dependency with the allocate stereotype applied in SysML. Comments with this call out notation applied can also be used for showing traceability to requirements, for example, satisfactions. </div><div><br /></div><div>00:00:42 </div><div><br /></div><div>Let’s have a quick look. Here we've got trace, refines, verifies and satisfies. These are all SysML stereotypes for traceability (actually trace is UML but it works in a similar way). </div><div><br /></div><div>00:00:56 </div><div><br /></div><div>Let's go to Rhapsody now and see how comments are supported with callout notation in the SysML profile. Firstly, I'll create a SysML project. I'll call it ‘CalloutComments’ and use the SysML profile to create it. </div><div><br /></div><div>00:01:17 </div><div><br /></div><div>I'm not using any other customizations at this point. I'll add a block definition diagram and we will look firstly at how compartments work. </div><div><br /></div><div>00:01:29 </div><div><br /></div><div>Here I have a block and I might have another block, and I'm going to show there's an allocate relationship. This is a dependency with the allocation new term stereotype. Using the display options for this, I can change the compartments on the diagram to show that allocation. </div><div><br /></div><div>00:01:53 </div><div><br /></div><div>With requirements, I can do something very similar. Let's add a requirement and show traceability using a satisfaction dependency. Note that the display options are not allowing me to show satisfactions as a compartment for a block, by default. </div><div><br /></div><div>00:02:17 </div><div><br /></div><div>These display options are covered by properties on the model. If I look at the properties on the model, I'll just search for “AdditionalCompartments” you can see that this property has been overridden by the SysML stereotype on the project to add certain compartment options which pertain to SysML. </div><div><br /></div><div>00:02:42 </div><div><br /></div><div>If I want to show satisfactions in a compartment, one way I can do this is to set properties on the project. I'll override the AdditionalCompartments property on the project here, so that satisfactions are available. This means I can show the Satisfaction traceability to the requirements now in a compartment. </div><div><br /></div><div>00:03:10 </div><div><br /></div><div>Call Out notation is very similar to compartment, is that we're showing these relationships, but on a comment. If I put a standard comment on here and I anchor that comment to the element, establish that then if I do a change to “Callout” then the same, or similar, display is presented. What would be shown in a compartment, is now shown in the comment albeit that this is with the system modeling language notation. </div><div><br /></div><div>00:03:50 </div><div><br /></div><div>What is actually shown in that callout, is controlled through properties. The "Callout" new term type is essentially a stereotype in the SysML profile. </div><div><br /></div><div>00:04:13 </div><div><br /></div><div>It's the stereotype applied to a comment that carries with it some properties. Callout comments by default will show allocated to and allocated from relationships in the comment which means if I wanted to show satisfactions, I'd need to override those properties. In this case I'm overriding them just on this particular comment, which is part of the model, and I want to show satisfactions. </div><div><br /></div><div>00:04:53 </div><div><br /></div><div>I've overridden that property on that particular comment and it's showing satisfactions so if I establish new relationships in the model then the compartments and comment notation will update to show them. </div><div><br /></div><div>00:05:13 </div><div><br /></div><div>So it's powerful notation but it relies on you to be able to set properties and understand how properties are conveyed to a model. Callout notation is aligned to the systems modeling language specification and can be updated for new term types that you define by tailoring properties in Rhapsody. </div><div><br /></div><div>00:05:34 </div><div><br /></div><div>So hope that helps. My name is Fraser Chadburn and I run consultancy and training company specifically focused on Rhapsody. If you look at some of my feedback around the type of training I provide, it's about deep knowledge in the tools and having interesting interactive training that's focused on your needs. </div><div><br /></div><div>00:05:57 </div><div><br /></div><div>So if anybody needs to get in touch on the, then probably the best thing to do is send an email. Thank you very much. </div><div><br /></div><div> </div><div><br /></div></div>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-66700392832941243442022-03-14T09:39:00.000+00:002022-03-14T09:39:58.195+00:00Reporting on Linked Lifecycle Data with IBM Engineering Lifecycle Optimization – Publishing | Part Four – Reporting from Rhapsody Model Manager<p>Some of you may be interested in this article that Andy published on Jazz.net:</p><p><a href="https://jazz.net/blog/index.php/2020/01/21/reporting-on-linked-lifecycle-data-with-ibm-engineering-lifecycle-optimization-publishing-part-four-reporting-from-rhapsody-model-manager/">Jazz Community Site - Jazz Team Blog » Reporting on Linked Lifecycle Data with IBM Engineering Lifecycle Optimization – Publishing | Part Four – Reporting from Rhapsody Model Manager</a></p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-87862768201958631272022-02-18T08:56:00.005+00:002022-02-18T08:56:52.954+00:00Copyleft and Ownership<p>Some people have asked me about open source code. The following link is interesting. What it essentially highlights, is that someone who owns the copyright can license the same code under different licenses to different people. Of course, this different license would need a license agreement in place which would need mutual agreement between the parties, e.g., you could buy under a non-GPL agreement but we'd need a contract for this. Potentially, this is an option if anybody wants to establish a different license with me and build on my resources but not comply with the copy-left principals of the GPL, for example:</p><p>https://hackaday.com/2018/09/27/can-you-take-back-open-source-code/</p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-87934668688839044482022-01-28T13:59:00.037+00:002022-01-28T18:07:09.953+00:00Rhapsody training feedback 2021<p>Past performance is a good indicator of future performance so I thought I'd post an order summary of training feedback (best to worst) from last year (all online form responses):</p>
<head>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 3px;
}
</style>
</head><table>
<tbody>
<tr>
<td nowrap="" valign="bottom"><p></p></td>
<td nowrap="" valign="bottom"><p>Training Feedback Question</p></td>
<td nowrap="" valign="bottom"><p>Score</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>1</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The trainer was knowledgeable about the training topics.</p></td>
<td nowrap="" valign="bottom"><p>4.982142857</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>2</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The trainer was well prepared.</p></td>
<td nowrap="" valign="bottom"><p>4.946428571</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>3</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The materials distributed were helpful.</p></td>
<td nowrap="" valign="bottom"><p>4.839285714</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>4</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>Participation and interaction were encouraged.</p></td>
<td nowrap="" valign="bottom"><p>4.785714286</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>5</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The training objectives were met.</p></td>
<td nowrap="" valign="bottom"><p>4.669642857</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>6</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The objectives of the training were clearly defined.</p></td>
<td nowrap="" valign="bottom"><p>4.589285714</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>7</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The context was organised and easy to follow.</p></td>
<td nowrap="" valign="bottom"><p>4.553571429</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>8</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The meeting room and facilities were adequate and comfortable.</p></td>
<td nowrap="" valign="bottom"><p>4.464285714</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>9</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>This training experience will be useful in my work.</p></td>
<td nowrap="" valign="bottom"><p>4.455357143</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>10</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The time allocated for the training was sufficient.</p></td>
<td nowrap="" valign="bottom"><p>4.383928571</p></td>
</tr>
<tr>
<td nowrap="" valign="bottom"><p>11</p></td>
<td nowrap="" style="font-weight: bold;" valign="bottom"><p>The topics covered were relevant to me.</p></td>
<td nowrap="" valign="bottom"><p>4.276785714</p></td>
</tr>
</tbody>
</table>
<div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">This is an accumulated survey of all digital responses last year, multiple courses with no filtering, hence gives a summary of what to expect where topics were scored: </div><div class="separator" style="clear: both; text-align: left;"></div><div class="separator" style="clear: both; text-align: left;">5 - Strongly agree</div><div class="separator" style="clear: both; text-align: left;">4 - Agree</div><div class="separator" style="clear: both; text-align: left;">3 - Neutral</div><div class="separator" style="clear: both; text-align: left;">2 - Disagree</div><div class="separator" style="clear: both; text-align: left;">1 - Strongly disagree</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Key things are:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">1. Me: I deliver interactive training and I have deep product knowledge and real usage experience.</div><div class="separator" style="clear: both; text-align: left;">2. Materials: People seem to value the materials and labs. Labs are very comprehensive, and detailed with screenshots that cover many tool intricacies.</div><div><br /></div>Some more recent feedback to "What did you like most about the training?" were:<div><div><ul style="text-align: left;"><li>The games and doing the exercises together.</li><li>I liked the sequence of the lab training. I think it helped build our skills to become more independent when creating our own systems. </li><li>The fact that the instructor walked us through the material, showed how the tool was used, and then we had the chance to do it on our end. This helps confirm if we understood or not as well as improve our familiarity with the tool.</li><li>Presenter was very good at communicating and keeping students engaged.</li><li>It was presented in an easy to follow format and the trainer answered any questions I had along the way.</li><li>Hands-on activities were helpful in understanding the course</li><li><div>Lots of different training activities (theory, labs, quizzes, workshop)</div></li><li><div>Open dialog helped to drive understanding and application of training to current work.</div></li><li><div>I liked working through subjects in the tools. I also liked the Kahoot tests.</div></li><li><div>Well organized with live explanation and time to play in Labs.</div></li></ul></div><div></div></div>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-29206781280848958832022-01-20T16:54:00.003+00:002022-01-20T16:54:28.758+00:00IBM Engineering Rhapsody Tip #103 - Executable MBSE Profile's Use Case package structureThis live recorded video focuses on showing some of the features of my Executable MBSE profile related to requirements analysis. It has two uses really: Firstly, it explains what and how the profile aims to achieve a model-based systems engineering method using New Term packages. It gives an overview of some of the less obvious but helper menus, for example, the ability to rename action names in the browser and automation to move requirements into a requirements package.<div><br /></div><div class="separator" style="clear: both; text-align: left;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/T7kpJRsDEs4" width="320" youtube-src-id="T7kpJRsDEs4"></iframe></div><br /><div><div>Here's the transcript, for those that need it:<br /><br />00:00:00 <br />Hello, in this video I thought I'd cover some of the features associated with this Executable MBSE profile, so I'll just look at the requirement analysis side of it and I'll start by creating a project. <br /><br />00:00:17 <br />Doesn't really matter too much about this example. The first thing to know about the profile is that it's a helper to be able to set up and create model. I don't have a single model structure, rather I try and build kind of reusable components developed by different people in different models that can be shared. One aspect of that is this idea that particular packages, which have particular types, can be consumed by different projects or they could be stacked in the same project. <br /><br />00:01:00 <br />So, when I say create a project, I always create it with one of these structures. Now here's an example. <br />A use case package structure creates a package for doing use case modeling, but it doesn't just create that package, it also creates a shared app package and optionally a requirement package. <br /><br />00:01:27 <br />And it does it based on a unique name. In this case, I'll just take the default. The idea of that unique name is that you might have different people working on different aspects of the system, which you could call features or functions, but essentially they are collections of use cases, or more importantly, they have ownership within the model. <br /><br />00:01:52 <br />Where somebody could be working in this package independently with someone working in a different package, and this is what I mean by stacking. <br /><br /></div><div>00:02:01 <br />So, if I create another use case package here, I'm going to stack it. This is Feature B and I’ll create a separate requirements package for that because it's owned by a different user. <br /><br />00:02:17 <br />I could flow the requirements here into the same requirements are developed by the other feature, but I'm grouping requirements here in terms of features, but I am sharing the active package so here I have feature B package. <br /><br />00:02:33 <br />Which is kind of like user A and user B packages, but this is common model. And I I could develop these in different models and then bring them together later, and an aspect of that is the unique naming of the package because that unique naming also relates to the file on the file system. <br /><br />00:03:00 <br />So this is an .sbsx file. What we call it unit and Rhapsody. I'm so here I am, I'm user A working on feature A and this is going to have a use case Trap a mouse involving the homeowner. <br /><br />00:03:21 <br />Some of the settings here about what actors are created in the actor package to begin with are driven from properties on the model, and there’s subject for this Executable MBSE profile where I've grouped together the properties. These are the default actors. <br /><br />00:03:43 <br />You can change the property file in the profile if you're in a particular domain where there's certain actors and like automotive, or you could just create the actors and rename them. <br /><br />00:03:59 <br />I always have an Environment actor, and I'm not going to remove that. That's quite useful. I can explain a little in a different video, perhaps, why that's the case. <br /><br />00:04:12 <br />One of the features of this profile is to flow requirements from a use case package into a requirements package, and that's just to automate one of the very common manual steps when performing requirement analysis with the use cases. <br /><br />00:04:29 <br />This, perhaps, is a requirement about the goals of what the mousetrap is going to do. So, the goal might be “The mousetrap shall remove mice from the home”. <br /><br />00:04:51 <br />This refinement tool is actually added by the profile, so there are customizations here to make the process of creating models a lot smoother just by putting certain tools into the pallets in the right places according to the profile and the process. <br /><br />00:05:13 <br />Fundamentally, what relationship we're going to use for use cases? Well, if I chose a refinement, then I put it in the toolbar rather than make people draw dependencies and apply a new term (which is going to have its own problems). So let's now will show you another bit of automation. <br /><br />00:05:32 <br />If I double-click, this question appears. This is the profile’s plugin that's running because of this Executable MBSE profile, and this is what we mean by accelerating a process with a toolkit that uses product automation to automate steps. <br /><br />00:05:57 <br />This has created an activity diagram with a template for performing use case analysis with some properties set on the diagram to make it easy to write free flowing text, and this is one of my approaches to use case modeling and so rather than model functions here, I'm going to model steps of the use case that I might have written in a Word document. <br /><br />00:06:26 <br />And I just feel that that's a very easy and accessible method which can then be used to perform more detailed analysis later. It's also very easy to get non-technical or non-model-based system engineering experts to get value from modeling very quickly. <br /><br />00:06:48 <br />So, the preconditions are that “the trap is set”. Then the “Mouse enters the trap” and the “Trap springs capturing the mouse”. Obviously, this could have a bit more of complicated flow, but I've got pre and post conditions associated with the use case, and I can build one scenario for this use case and go on to expand it with decision nodes. <br /><br />00:07:33 <br />I have also simplified the Activity Diagram toolbar here. My automations are done with new term stereotypes, and this is a textual activity diagram that this profile has been set up to create actively diagrams with. <br /><br />00:07:51 <br />And that just removes some of the things like action pins and activity parameters and swim-lanes because I'm not going to use them for this part of the model so don't give people the option because we want consistency in our modeling. <br /><br />00:08:13 <br />We don't want, when we are doing large scale modeling, to have deviations from the method, unless those deviations are considered important in the process. Which means we'd modify the helper or the profile accordingly, rather than allow people to do everything. <br /><br />00:08:38 <br />This method has some other automation here that's useful. Notice, for example, the actions on activity diagrams have different action text from their name in the browser. This is one of the things in Rhapsody because it was built for software code generation initially, it has this idea of keeping the names in the browser so that they don't have things like spaces, and they are essentially codable.<br /><br />00:09:19 <br />To these actions to appear in DOORS Next, for example, with the same name as the text there's some automation here to effectively auto rename actions and this automation is similar to that provided by the SE toolkit, which supports the Harmony/SE methods. <br /><br />00:09:42 <br />This particular helper, this Executable MBSE helper, is an alternative to the Harmony/SE toolkit, and it does some of the similar things. <br /><br />00:09:52 <br />I've got some naming conventions here, for example. This activity diagram is a child of the use case, so it has the same name. So, if I rename the name of the use case, I have some automation to be able to auto-update the activity diagram names. This just helps keep the model consistent. <br /><br />00:10:18 <br />So, it's very subtle. One of less subtle things is this idea of capturing requirements and moving them automatically into this requirement package, and I do particularly find this quite valuable to collect the requirements together in the same location. There's also a little helper here to create requirements from the text of the actions. <br /><br />00:10:44 <br />It's just putting a requirement on the diagram, taking the text on these actions and it also moves that requirement. It does this providing that there's a dependency from the use case package to a type of package, which is a requirement package, then that automation moves that requirement into that requirement package. I don't need to write the text from scratch, I can just manipulate the text that’s there. <br /><br />00:11:24 <br />So those are some of the automations associated with the requirement analysis section. If I go one step further, because obviously I might have multiple use case packages, I could have one use case package for the whole system if I was just, you know one developer, but really I'm trying to get different people to be working on different parts of the model to avoid conflicts and people editing the same diagrams and using the diff merge because although Rhapsody can do that, sometimes it just makes sense to organize your users so that they are isolated and use case analysis is a very good way of doing that. <br /><br />00:12:08 <br />I therefore have these types of packages. New term packages in the model and rather than have ”base” UML packages I think the new term packages give a bit more ability to get straight to the point of action, tthe place on the coalface where the users are working. <br /><br />00:12:35 <br />So rather than have a big office where everybody is doing everything., I'm organizing my accountants to be in the same room, and my workshop to be slightly differently because people working in the workshop are going to need different tools than someone working in the accountancy office, and that's how I organize these models. <br /><br />00:12:56 <br />And that goes as far as also changing the right click menus. I've got a very simplified right click menu for the use case packages because I'm not going to do block definition diagrams here. My requirements packages are for capturing requirements, so I can have tables and matrices but not use case diagrams. <br /><br />00:13:20 <br />The profile provides focus for parts of the model to have particular roles, and that becomes important when we look at the process, which is the flow of information between different developers and modelers across a large organization or a large project. </div></div>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-43759009949762045462022-01-17T09:39:00.004+00:002022-01-17T09:39:51.841+00:00How to install Rhapsody Architect, Designer and Developer on the same machine<p>IBM put a lot of support questions and answers on the web. Here's one about shortcuts for launching the most appropriate Edition of Rhapsody, once you have an installation:</p><p><a href="https://www.ibm.com/support/pages/how-install-rhapsody-architect-designer-and-developer-same-machine">https://www.ibm.com/support/pages/how-install-rhapsody-architect-designer-and-developer-same-machine</a></p><p><br /></p>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-67616281994001112472022-01-06T14:19:00.007+00:002022-01-06T14:19:41.831+00:00IBM Engineering Rhapsody Tip #102 - Executable MBSE Profile's Functional Analysis package structure<p>This live recorded video (with sound) gives an overview of the SysML package structure that my Executable MBSE Profile automatically creates for doing the functional analysis part of a method based on Executable MBSE. Key aspects are that simulations are built with actor test benches, and it's the actors that are used to drive the simulation, so that all the test stimulus is visible on an auto-generated sequence diagram. Related to this is to ensure that the structure separates elements related to the system under design/test from model elements used to test it, and having a package that contains the interfaces and events separate from the blocks that use them.</p><div class="separator" style="clear: both; text-align: left;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/tekqHU524GA" width="320" youtube-src-id="tekqHU524GA"></iframe></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Here's the transcript in case that helps:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;">In this video I thought you where I'm at with the executable MBSE profile. The link of which is available at www.executablembse.com. The profile itself is on GitHub. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">You put that profile into your installation and then that gives you this ExecutableMBSEProfile available in the list. So, let's just show you this. I'll just use a simple mouse trap system. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">OK, let's take a quick look at the structure created for this functional analysis scenarios package. The intent here is to have a package that can work on the functional analysis of a use case that's captured with textual actions and textual requirements. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So, the currency here is going to be the requirements, and the way that they are created is through an activity diagram. What's going to happen is I'm going to consume that activity diagram in my functional analysis package, so the intent is that this package is owned by a different user than the user who owns the activity diagram, and it may be added by reference, so the first thing you'll notice in this scenario package is a ‘Working Copy’ package and there's a little helper here which based on dependencies that were created, is going to pull the activity diagram as a copy. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">and on that copy it make a marker here in red, just so we know that this is a copy and that means I can mess around with it. I can delete stuff, and importantly, there's a little helper here which will color the actions or the accept event actions based on me performing the processing of them. For example, converting this action into an event, “Mouse enters trap”, coming from the mouse. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This helper will effectively color this working copy. So the original is kind of pristine and interestingly enough, by the time in which I finish processing this, I'll just throw away the diagram and I'll have traceability to these requirements, that's a fundamental part of the process here, capturing that traceability. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Let's do this operation as well, the “trap springs capturing the mouse”. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">What you'll notice here, is that when I create events they get created on a block, so I've got this Blocks_<Name>Pkg mouse trap package. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">There's a unique name given to all these packages, so there's a root package, this is the Mouse Trap package. This may represent a system, or it may represent a feature, or it could represent in a use case. I leave that quite flexible. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">But it's got a unique name and that unique name is used to create a file on the file system which is going to be unique. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The Blocks_<Name>Pkg package is where the blocks that I'm essentially adding operations to that represent components of the system, so it's the system of interest, the “things I am testing”, and in this case there's a single block, so it's a black box model. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">What you'll also see is this test package. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The Test_<Name>Pkg package here was got actors and these have been stereotyped, just to make them clear, and also the helper will use this stereotype, but essentially the idea is that there's a system called the mouse trap assembly system, that is assembling my Block, which is the mouse trap with these actors, and they are connected through ports and interfaces. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This is a bit messy this (IBD) diagram, because it's auto drawn. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This is my system block and it's connected to these actors. This is the fundamental thing about the simulation structure. We build a system that includes the system and the other parts of that system are actors and I've also got time as an actor. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The helper also created a sequence diagram with lifelines representing those actors and the blocks that represent the subject. The system under test, in essence, because that's what we're doing: We're trying to build test scenarios. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So that means having created this structure, I can build this system assembly. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Hence, you'll see that there's a component here called the Mouse Trap EXE, and it's been set up with a configuration to enable it to build an instance of that assembly with animation and, in this case, it's got webify enabled. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">And when that runs, that executable runs, it's going to talk back to the Rhapsody client, and I've got full simulation capabilities here. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Within my test harness, i.e. the design, I've got this time generator actor called elapsed time and that enables me to control time without using timers. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In my simulations I don't use the Rhapsody standard system timer, rather I simulate time and that enables you to freeze a simulation, or you can move it at different speeds. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This time actor can be configured to drive a simulation, either in a continuous way or a discrete event driven way. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The structure is fairly important and OK, so it looks a bit complex, but essentially everything that will stimulate the system is shown on the sequence diagram, including the stimulus, so the sequence is a full definition of the test cases. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I'm not going to change anything in a simulation directly on the system blocks, rather that the stimulus always comes from an actor, and that that's important. That was important in Harmony/SE classic. It's important in this structure as well. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">And I can hook it into technologies such as test conductor to automatically run tests, build up a test suite that can repeat the injection of the stimulus as defined on a sequence diagram. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Let’s look at the other elements of the structure. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The working package is basically where I can copy things and hack around with them. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The blocks package is where the blocks that represent the system of interest, or if it's a white box, where the components would go. These are where the functions which are represented by operations and the triggers, which are represented by events, are captured on, and value properties. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I've got a separate Interfaces_<Name>Pkg package. Again, that separation of the usage from the interface is important for multi modeling, where you've got multiple models that reference other packages in other models, and then you can bring and import packages into other models, either by reference or by copy. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So that's going to become important and important also here, is that these interfaces are captured with explicit interfaces on the ports. Again, that's to do with test conductor. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So that's what the interfaces package is storing if you like. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I've got my test package, I’ve got my interfaces packets, I've got my blocks package and I've got this block called system assembly. The block called <Name>_SystemAssembly is higher in the hierarchy than the design package. That is partly a usability thing. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In my test package, for example, I've got a panel diagram here, and if you if you start to use panels when you when you go to bind things, I want to find the system assembly first, so I want it to be the first thing it finds. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I don't bind directly to the blocks. I bind to an instance of the block running in the system assembly, so by putting that system assembly block higher, it helps with the usability here to stop you binding to the wrong elements. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So, that's more or less the structure. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The sequence diagrams again, I put a higher level at the scenario package level, because they're the outcome, the handoff that comes from executing and creating this functional model. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The intent is to take the events and operations that I had and put them into a state machine. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So I’ver got mouse enters trap and trap springs, capturing the mouse. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Essentially, I'm integrating the behavior of the use case steps into Statechart, which captures the same behavior at the same level, but it's fully constructed and this enables me to execute this behavior in a way which is integrated with the other scenarios that may be captured on other use cases, or different scenarios in the same use case, until I've got kind of a fully constructed definition of system behavior. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">And importantly, in this behavior, I've got things like operations and events. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Oh, I've got that error here. I need to add a default transition to say the system starts with no mouse. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Let's build and run. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">In this definition I've got these elements, events and operations, which capture the functions of the system from its concept of operations as defined by the formal requirements handoff. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Let me just stop and rerun that see what happened. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Right there we are. The handoff is going to be test scenarios defined that use these operations and events and also trace to the requirements. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So this could be test case 1, trap a mouse. This sequence diagram is in the scenario package, so I may have 20 or 30 of these, in a handoff from black box or white box. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The functions and operations are defined on the blocks and these are all tracing to the requirements, and they’re the same requirements that were handed to me in the use case package. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">This functional model is a separate definition of the same behavior. I've done a model transformation from an activity model into a sequence diagram and statechart model, and this executes. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">So, so that’s the structure. Hopefully I'll do a few more videos in future when I get some time. </div></div>MrChttp://www.blogger.com/profile/11273319434070403497noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-86883931573309561102021-12-29T11:12:00.002+00:002021-12-29T11:13:31.993+00:00IBM Engineering Rhapsody Tip #101 - Transition Label toolbar tips and tricks <p>This is one for those Rhapsody cureos out there, as it is something that I only recently discovered (like this week!) and I think is genuinely useful, which is the ability to add a Transition Label tool to the activity diagram (which does not have it by default). The video first shows how the Transition Label tool works on statecharts (state machine diagrams) and then goes on to how it can be added to the default activity diagram toolbar. Arguably it's even more useful for the activity diagram as it removes clicks when adding guards to transitions coming out of a control flow. Anyway, I'll let you decide. Have fun.</p><div class="separator" style="clear: both; text-align: left;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/qIJFgYc9bk4" width="320" youtube-src-id="qIJFgYc9bk4"></iframe></div><br /><p>Here's the transcript for those that need it:</p><p>I was recently documenting the drawing toolbars for some client docs, and my attention was drawn to the statechart's Transition Label tool (I've rarely used).</p><p>When you first draw a transition between states, you get a "first time" opportunity to type its text. Feature like Intellivisor (Ctrl+Space) are available.</p><p>If you don't type anything then you lose the opportunity.</p><p>Options are to right-click and use Select Trigger to select a trigger (which you can then edit). More commonly users will open the Features General tab for the transition to enter the information.</p><p>The Statechart's Transition Label tool enables you to get edit mode back on a transition with no text. When you click on a transition with no text, the Transition Label tool gives you the text editor back.</p><p>The Transition Label is a useful tool in the Statechart's armoury therefore, so why not make it a useful tool in the Activity Diagram toolbar as well?</p><p>One of the side effects of moving to online delivery of my training has been that I get to watch people's screens when they're using Rhapsody.</p><p>A common task in activity modeling is putting guards on control flows coming out of decision nodes using the Features window. It's a bit of a faff to be honest.</p><p>The Activity Diagram drawing toolbar does not have a Transition Label but why not add it, I thought?</p><p>As no other customizations are present, I'll quickly show it works by locally overriding the General::Graphics::ActivityDiagramToolbar property. Here it is! and it works!</p><p>Since I rarely use Rhapsody without customisations, I've just added it to the textual activity diagram toolbar in my ExecutableMBSEProfile. This diagram is based on a new term stereotype. Its toolbar is defined using different a different set of properties (I update these using a metamodel & associated profile nowadays).</p><p>I can complete the diagram without using the Features window now! How cool is that? ;-)</p><p>Interested in Rhapsody training/customizations then feel free to email me.</p>Fraserhttp://www.blogger.com/profile/17823891705732466528noreply@blogger.com0tag:blogger.com,1999:blog-7798941804590457736.post-28665454135429354322021-12-28T16:27:00.012+00:002021-12-28T16:39:18.775+00:00Update to create V13 of IBM Rhapsody UML/SysML training materialHaving left IBM as technical specialist for Rhapsody in 2015, I have been creating and delivering my own training material specialising in Rhapsody. I've just worked my way through a update cycle to create a Version 13 of my material. Key updates were:<div><br /></div><div>- Re-naming of labs to reflect the more common order I've been settling on for delivery. This involves making sure most valuable/popular labs are given focus in initial choices for a 3 day delivery.</div><div>- Added a bit more differentiation to the Rhapsody Gateway labs with DOORS and Microsoft Word by making customisation of the Gateway Type an extension exercise at the end (i.e. still got expert tips and tricks but can also be used with simple users who don't need the expert bit).</div><div>- I simplified / shortened the sequence diagramming to make it shorter but retain the core knowledge (as the latter can be a bit heavy going for users completely new to SysML/UML).</div><div><div>- Added more differentiation to the ports and interfaces lab to make the conversion to proxy ports an extension exercise at the end (i.e. still got expert tips and tricks but can also be used with simple users who don't need the expert bit).</div></div><div>- Validate the material against IBM Engineering System Design Rhapsody Version 9.0.1 Editions with Jazz 7.0.2 server / DOORS 9.7.</div><div><br /></div><div>The following is an example of a 5 day delivery for software engineers (and systems):</div><div><p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Mastering IBM Engineering Rhapsody in C++ - Sample Agenda V13 - 5 day (incl.
Test Conductor)<o:p></o:p></span></b></p></div><div><br /></div><table border="0" cellpadding="0" class="MsoNormalTable" style="background: white; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 580px;">
<tbody><tr>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 32.8pt;" width="44">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Day<o:p></o:p></span></b></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 100.2pt;" width="395">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Description<o:p></o:p></span></b></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 80.9pt;" valign="top" width="233">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"> </span></b></p>
</td>
</tr>
<tr>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 32.8pt;" width="44">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Day 1 (Core)<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 100.2pt;" width="395">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; margin-left: 0cm; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Rhapsody user interface essentials
and advanced<o:p></o:p></span></b></p>
<p class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 17.85pt; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm 3pt 17.85pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -17.85pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Focused understanding on controlling Rhapsody
user interface.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understand how projects are stored and how
to open them.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Controlling the user interface to navigate
around projects<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Moving around and zooming in and out of diagrams,
incl. full screen.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Navigating between elements, e.g.,
structural to behavioural.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Appreciation of delete from model vs delete
from diagram.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Appreciation of how set-up effectively with profiles and properties.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Use Cases and
requirements</span></b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Creating a model from scratch, including properties and profiles.<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 80.9pt;" valign="top" width="233">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Practical Labs:<o:p></o:p></span></b></p>
<p class="MsoListParagraph" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt; mso-add-space: auto;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab A1:
Controlling the Workspace<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab A2:
Controlling the browser<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab A3: Creating a use case diagram<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab A4: Use case activity modeling<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab A5: Features
and Zoom toolbar (ext)<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 32.8pt;" width="44">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Day 2 (Core)<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 100.2pt;" width="395">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; margin-left: 0cm; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Requirements and tables/metrics</span></b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"><o:p></o:p></span></p>
<p class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understand Rhapsody’s integrations with requirements managed via Gateway
synchronizer (Word, Excel, “classic” DOORS) and/or<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Overview of IBM Jazz platform and remote requirements (demo); OSLC
links to Jazz, RTC Eclipse, accessing models by web-client for review
purposes etc.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Requirement traceability essentials.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Appreciation of tables and matrices and what
they are used for.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Composite structures<o:p></o:p></span></b></p>
<p class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understanding relations in UML/SysML: composition, association,
generalization, aggregation, dependencies.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Controlling compartments and associated display options.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Tips for getting diagrams out of Rhapsody quickly and printing.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Linking elements with hyperlinks and
enabling quick navigation.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Searching projects and using queries to
filter the browser.<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 80.9pt;" valign="top" width="233">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Practical Labs:<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab B1: Rhapsody
Gateway with Word<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab B2: Rhapsody Gateway
with DOORS<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Demo: DNG/Jazz
demo.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab B3:
Properties and Profiles<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";">Lab B4: </span><span face=""Arial",sans-serif" lang="EN-US" style="color: #333333; font-size: 9pt; line-height: 107%; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman";">Requirement tables and matrices<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab C1: Modeling structure<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;">Lab D3: Searching
and Linking (ext)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;"> </span></p>
</td>
</tr>
<tr>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 32.8pt;" width="44">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Day 3 (Core)<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 100.2pt;" valign="top" width="395">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; margin-left: 0cm; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">White-box and architectural
modeling<o:p></o:p></span></b></p>
<p class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understanding use of composite structure for hierarchical decomposition
of systems, including ports, parts, and connectors.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Sequence diagram modeling for defining interfaces.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">State-machine modeling and animated sequence diagrams.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understanding state-chart syntax: Nested/Parallel states and patterns
for usage.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understanding difference between port types, pros and cons.<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 80.9pt;" valign="top" width="233">
<p class="MsoNormal" style="margin-bottom: 3pt;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Practical Labs:<o:p></o:p></span></b></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab C2: </span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";">Interaction modeling</span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab C3: </span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";">State machine
modeling<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;">Lab C4: Ports
and Interfaces<br />
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;">Lab D1:
Elaboration Use Cases<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;">Lab D2:
Executing System Behavior</span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 32.8pt;" width="44">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Day 4 (C++ Case Study)<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 100.2pt;" width="395">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Code generation
workshop in C++<o:p></o:p></span></b></p>
<p class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 17.85pt; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm 3pt 17.85pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -17.85pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Understanding model-driven development with
code generation by building up a working example in C++.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 17.85pt; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm 3pt 17.85pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -17.85pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Using Rhapsody Model Manager / DOORS NG.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Appreciation of dynamic-model code
associativity.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Appreciation of requirements capture and
traceability.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Appreciation of Object Execution Framework
and state-charts.<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 80.9pt;" valign="top" width="233">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Practical Labs:<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab S1-17:
Building a model<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 32.8pt;" width="44">
<p align="center" class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; text-align: center;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Day 5 (C++ Case Study)<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 100.2pt;" width="395">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Test Conductor<o:p></o:p></span></b></p>
<p class="MsoListParagraph" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 6.0pt; margin: 6pt 0cm 3pt 18pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 9pt; mso-bidi-font-family: Symbol; mso-bidi-font-weight: bold; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-bidi-font-weight: bold; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Workshop using TestConductor with a model.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Catch-up/overflow
topics:<o:p></o:p></span></b></p>
<p class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">An of how projects can reference other projects.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">An appreciation of how project units work in conjunction with Model
Manager, role of Rhapsody DiffMerge etc.<o:p></o:p></span></p>
<p class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 18.0pt; margin-right: 0cm; margin-top: 0cm; margin: 0cm 0cm 3pt 18pt; mso-add-space: auto; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt; text-indent: -18pt;"><!--[if !supportLists]--><span style="color: #333333; font-family: Symbol; font-size: 10pt; mso-bidi-font-family: Symbol; mso-bidi-font-size: 9.0pt; mso-fareast-font-family: Symbol; mso-fareast-language: EN-GB;">·<span style="font-family: "Times New Roman"; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;">
</span></span><!--[endif]--><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">An appreciation for options for document generation and html output.<o:p></o:p></span></p>
</td>
<td style="border: 1pt solid black; mso-border-alt: solid black .75pt; padding: 0.75pt; width: 80.9pt;" valign="top" width="233">
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 3.0pt; margin: 3pt 0cm;"><b><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Practical Labs:<o:p></o:p></span></b></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Labs S18-S20: Test Conductor
workshop<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab U1: </span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";">Navigating Rhapsody
Units</span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; line-height: 107%;"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt;">Lab U3:
Referencing External Units</span><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab U4: Handling
Unresolved References<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm;"><span face=""Arial",sans-serif" style="color: #333333; font-size: 9pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-GB;">Lab U5: Rhapsody
DiffMerge<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 3pt;"><br /></p>
</td>
</tr>
</tbody></table><div> </div>Fraserhttp://www.blogger.com/profile/17823891705732466528noreply@blogger.com0