Greetings, fellow modelers!
Jordi Cabot was kind enough to invite me to blog a little on his site from time to time. So here I am with an introductory post.
My most recent writing consists of a couple of papers and animation I originally published on UML.org as PDFs. (The link takes you to the most recent online versions). In any case, I don’t recommend them. Each is considerably longer than a Stack Overflow answer and, therefore, too long to read by anyone under the age of thirty.
Of course, I just wrote that after procrastinating by reading just the top half of three articles. Clearly, we are all drinking way too much coffee. Maybe try cutting back or switching to tea every now and then and maybe you’ll make it all the way through a couple of scrolls on occasion.
Unlikely, I know, which is why lately I have gone to the other extreme and attempted tweeting. This is an excellent way to impulsively broadcast incomplete thoughts and vague plans. And it turns out to be a lot less effort than writing books or articles so I can quit work earlier in the day. For example, I can tweet something like ‘I’m designing a new action language, cuz the existing options suck.’ Now, let’s go see if the Imitation Game is streaming yet.
However, Jordi had to go and ruin this scheme by asking me to show my work. So now I have to write a grammar, metamodel and, of course, justify the reasoning behind a new and different Executable UML action language. Well, why not? The stupid movie didn’t have a happy ending anyway.
While the miUML action language, a work in progress, is the impetus for blogging here, there are a number of other projects in the works that I may be writing about also. These include good modeling, Executable UML in general, model patterns and excerpts from the upcoming code generation book. Shh, don’t tell anyone about that last part, it is still a secret. I also hope to shout out to some of my many colleagues worldwide who are doing good and interesting things in the software modeling and Executable UML community. I will, of course, tweet an announcement when each new post goes live if you would like to follow me.
Now’s an excellent time to stop scrolling if you need to check Instagram.
For those of you that don’t know me, I have been active in software development since the first TRS-80 (look it up, kids). Soon after I became seriously interested in models as a way to raise the level of abstraction and not writing low level code and feeling like I’m digging a tunnel with a spoon when building systems.
I apprenticed with Sally Shlaer and Stephen Mellor in the early 80’s as they devised the Shlaer-Mellor method which, with a change of notation in 1997 became Executable UML, xtUML and what I am fashioning as miUML to recapture the powerful mathematical foundations that got chopped and discarded with early tool releases and, sadly, were never recovered.
Over the years I have taught hundreds of executable UML classes and helped build a wide variety of real-time, distributed and embedded systems. These projects include implantable medical devices, ultrasound diagnosis stations, networked battle simulations, real time video special effects, CAD drawing, semiconductor fabrication robotics, embedded vehicle networks, factory automation and, most recently, a next generation fighter jet.
And those of you that do know me may wonder why all the work on miUML slowed down for a while. I blame it on the fighter jet. It sucked the life out of me for a couple of years. But, damn, I had fun helping many brilliant engineers do some serious modeling! I learned a lot on there about reconciling systems engineering with Executable UML and domain specific and mathematical modeling languages.
Since 1991 I have been working at my own company, Model Integration in San Francisco, California, where I provide awesome training, consulting and model development services to projects using Executable UML, Simulink and other modeling tools to build significantly better safety and mission critical software.
Now that the introduction is out of the way, I look forward to posting useful (or at least entertaining) things here in the very near future.
I help agile software teams succeed with requirements analysis, domain definition, platform independent, executable modeling and high quality code generation. Other websites: executableuml.org, modelstocode.com