As a long time practitioner of the Executable UML method, I was quite excited when One Fact announced, in October, the xtUML 2015 conference.
If you don’t know about One Fact, they took over the development and maintenance of the BridgePoint xtUML Eclipse-based development tool from Mentor Graphics, who bought it from Steve Mellor and Sally Shlaer’s company, Project Technology. One Fact provides BridgePoint free and open source at xtUML.org.
Conference was announced as “Join us for a two day convention in Lafayette, Indiana that will cover xtUML Modeling and OSS tool development. Presentations will be given by experienced xtUML methodologists and long-time BridgePoint developers.” Only about ten people attended in person, but the announcement date probably didn’t give many people much time to make arrangements.
For those that could not make it, this is our summary of what happened there. All the presentations mentioned in our summary are available for download here.
Day one of the conference kicked off with a nice informal breakfast that One Fact had catered. The conference was held in Lafayette, Indiana, USA in a coworking space called, Matchbox, that used to be a warehouse, and the hotel the attendees used was right across the street. The breakfast gave the attendees a chance to meet before the presentations got started.
Cortland Starrett, CEO of One Fact, gave the technical presentations on day one. The presentations started with Class Modeling and the technique of using an object blitz to discover classes for the identified subject matter, and discussion of the types of classes that are commonly identified, both tangible and intangible. This was an interactive presentation, so Cort named a subject matter and conference attendees got first crack at naming the classes. Cort then added classes that were missed. Discussion then moved to attributes of classes and relationships between classes. The attendees were encouraged to construct the class diagram on paper, and then these were all combined and discussed on the whiteboard.
The presentations moved on to state modeling and process modeling. State modeling included a discussion of Mealy vs. Moore state models, and the difference between class-based state models and instance-based state models. Process modeling talked about the BridgePoint object action language (OAL), the introduction of Action Semantics to the UML specification, and the differences between an action language and a programming language like C or C++.
The final presentation on day one was Component Modeling. For the attendees, who only had experience with the Shlaer-Mellor notation, this was something new, because Components have replaced Domains, in Shlaer-Mellor terminology, and Interfaces have replaced Bridges. The system is now constructed from components with required and provided interfaces. The notion of domain replacement, where a generic subject matter is modeled for specific solutions, is now handled via the components and their interfaces. e.g., serial communication is a generic subject matter, and the UART protocol is a specific solution. The replacement of a UART component with a SPI component doesn’t change the model in the component that interfaces with the communication component.
The day ended with dinner at one of the nicer downtown restaurants, which was a good way to extend the conference into the evening.
Day two also started with breakfast and presentations from Japan. These were user presentations, and the highlight of the conference. One of the Japanese presenters, Associate Professor Kenji Hisazumi, was there in person, but the rest were staying up late in Japan to be part of xtUML 2015. The USA conference attendees were introduced to xtUML.jp, and there were about ten enthusiastic people participating in the conference call on their end. I think we’re going to be hearing a lot more from them in the near future, and I recommend viewing the presentations.
Keith Brown, Customer Support Manager for One Fact, gave the technical presentations on day two. The first presentation was on raising issues using the One Fact Redmine issue tracker. One Fact offers both public and private (support customer) issues, and they use a commit message format to provide tracing between Redmine and Github. They also use the issue tracker to specify manual tests and ensure they have been run with each release of BridgePoint.
The next presentation covered building BridgePoint. BridgePoint is built using BridgePoint, so you can build and launch your changes from inside of BridgePoint and use all the Eclipse tools in your installation. Testing of the BridgePoint build include some automated tests as well as the manual ones previously discussed. Keith demonstrated how to launch the automated tests, and how to troubleshoot issues found.
The next presentation was on configuration management via Github and how to fork, pull, and merge. There are multiple repositories involved: one for BridgePoint source, one for models (test models, library models, and example models), and one for model compilers.
Finally Keith presented, “10 Steps to Supplying a Patch or a Feature”. This gave a step by step view of the best way to get your contributions accepted quickly by the One Fact team. It discussed many of the things already covered on this day, plus how to document your change. Documentation for issues is stored in the bridgepoint repository in markdown format, and it is split into analysis, design, and implementation notes; the issue number is used in naming the folders where the notes are stored. Cort pledged that contributors would not see the nastiness that has been attributed to some famous open source projects, but did state that One Fact would expect contributors to follow the defined processes.
Hopefully xtUML 2016 will bring more attendees and more user presentations. While I’d like to see everyone come to Lafayette, there’s talk that there might be European and Japanese versions of the conference, and to tell the truth, I do like to travel.
Owner and senior consultant of frogooa.
Member of xtUML.org.
Founder of the Executable UML LinkedIn Group.
Great post! I have a simple question: what is the difference between xtUML and fUML?
Bruno’s question was answered on the xtUML.org Community Chat, as he also asked it there. Jordi requested that I copy the replies here as well. NOTE: Cort gives a much better reply than I did.
[9:13:35 AM] Lee Riemenschneider: This might help clarify the difference: https://en.wikipedia.org/wiki/Talk%3AExecutable_UML
[9:14:25 AM] brccosta: Thank you!
[9:14:32 AM] Lee Riemenschneider: Look at the section titled, ” Is fUML Executable UML?”
[9:22:09 AM] brccosta: As I could understand, Executable UML (xtUML or xUML) is a UML profile. In turn, fUML is a subset of the UML for which there are standard, precise execution semantics
[9:23:34 AM] brccosta: it means that fUML and xtUML are not complementary but different approaches to construct executable UML models. Is that right?
[9:26:56 AM] Lee Riemenschneider: Yes. The original intent was for fUML to be complimentary, but in the end there are still differences.
[9:27:14 AM] brccosta: great. Thank you again!
[9:28:44 AM] brccosta: Just a last question: fUML is the newest OMG standard to construct executable UML models. Do you know some reference that guide us when use fUML or xtUML?
[9:42:33 AM] Cortland Starrett: I can take a stab at this.
[9:43:33 AM] Cortland Starrett: fUML is a meta-modeling ‘representation’. It was not intended to be a modeling dialect.
[9:44:50 AM] Cortland Starrett: Ideally, you model in xtUML and “under the hood” your models are represented in fUML instances… at least in memory. This facilitates model data exchange and the leveraging of standard tools.
[9:45:37 AM] brccosta: gotcha, I thing
[9:45:44 AM] brccosta: *think
[9:47:00 AM] brccosta: but, I can model my system with just UML (or SysML) and represent it fUML aiming at executing it, right?
[9:47:08 AM] Cortland Starrett: Stated another way:
– You cannot really build models in fUML. It’s ASM compared to the C++ of xtUML or UML-RT.
– fUML is evolving through efforts such as PSCS and PSSM to become complete enough to allow other languages like UML-RT and xtUML to be compiled into it.
[9:47:36 AM] Cortland Starrett: If you want to execute your model, you need to choose an executable dialect from the start.
[9:48:23 AM] Cortland Starrett: UML diagrams do not execute.
SysML diagrams do not execute.
models represented as UML/SysML will execute when built following an executable paradigm.
[9:48:47 AM] Cortland Starrett: Execution is not an afterthought.
[9:49:52 AM] brccosta: Ok, thanks! fUML is a kind of executable dialect?
[9:51:52 AM] Cortland Starrett: Yes, if you want to build your models at the lowest level of executability (like assembly language).
[9:52:59 AM] Cortland Starrett: Sadly, there is no user’s guide or reference manual intended to help you build models in fUML. There is only the specification available on the OMG web site. In contrast there are books for languages like UML-RT and xtUML. These books are a bit dated, but for xtUML the books are augmented by material (including videos) available at xtUML.org.