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.