It was bothering me that I couldn't remember the name of a modeling language that I was referencing in a conversation today. So just in case you care to know...
BPMN (Business Process Modelling Notation) is a new open standard that I was talking about at the time I had my memory lapse. It will allow developers to generate executable code with business intelligence in the code directly from a diagram. While this kind of capability is available in a limited fashion now with certain proprietary code generation tools, BPMN marks the first time that an open standard will be available for businesses to develop interoperable tools from. The BPMN standard is being written by OMG (Object Management Group). OMG is a private think-tank that has membership from all of the major software companies, as well as consumer-based businesses, government agencies, and universities.
What I couldn't remember was UML (Unified Modeling Language). UML is a standard that OMG had developed back in the early 90's. It is the documentation standard that most programmers think of when they think of Object Oriented code. UML is the standard that the government uses when it develops code, as well as pretty much any large development shop. Unfortunately, in my very humble opinion, it is useless. The standard is extremely loose and has become more like a set of guidelines, rather than an actual standard.
When I was in school, I was taught ORM (Object Role Modeling). ORM is a highly structured notation language that allows a modeler to very precisely depict relationships between data. "ORM's rich graphic notation is capable of capturing many business rules that are typically unsupported as graphic primitives in other popular data modeling notations."[cite] Using an ORM model a developer can generate an entire database that is in Fifth Normal Form. If you understand database development, then you can appreciate how powerful a tool ORM is.
To tie it all together…
At the time I blanked on the name “UML”, I was talking about what career paths I might like to pursue in the future. As a student, I really enjoyed project management. I am a highly organized person and have a very good sense for risk verse reward. However, it seems like everyone in IT wants to be a project manager. Fortunately, in the last three quarters of my undergrad program at
I was lucky enough to get on a project team that was developing two parallel tools. The first one is an implementation of the ORM 2.0 standard and is called NORMA (Neumont ORM Architect). The second is a preliminary implementation of the draft BPMN specification, called GWEN (Graphical Workflow ENvironment).
The goal in the future is to tie the two languages together in some fashion. This, theoretically, would allow a business partner and a business modeler to generate an entire working application from a series of graphical models. The code generated could include the database, business logic, and perhaps even a rough UI. What is even more exciting is that when that is possible, code maintenance and application integration would become a matter of properly modeling the process and surrounding data, then simply clicking a button as a fresh batch of code is generated for you.
I guess the point is that I enjoy the process of sitting down with a user/ business partner, eliciting, identifying, and documenting what it is that they really do on a day-to-day basis. I am really excited by the possibilities that the future of code generation can bring to the development table. Most importantly, I love to ask questions and get answers, which of course lead to more questions. Perhaps in the future I will get a chance to explore this space further...
p.s. Here is a short clip of an MSNBC spotlight on Neumont University. The man on the left is Graham Doxey, President of the school and my future father in-law. That's me on the right.

No comments:
Post a Comment