Recently I have been working on a project revamping a very poorly designed database. This activity brought me to look for some new tools, and I came across something called ORM. That is Object-Role Modeling, not to be confused by my developer friends in the OO world with ORM or Object Relational Mapping. Somewhere, somehow, we have to get a handle on all these TLAs, but I digress. In the past I have touched briefly on the apparent divide between the business and IT. If both of those groups would just speak the same language then application development be better for it, and IT would be able to support the business in the way it was intended.
So what does Object-Role Modeling do for me?
ORM is not a new concept - it dates back to the 1970's, but it is a way to build simple information models using nothing more than simple facts. For example a Customer has a Name. When designing a new system, or even upgrading an existing system, we can easily retrieve these natural language facts, and combine them into a powerful information model that the business can look at and say "yes that is true, but you forgot that a customer also has an address!" Add a couple constraints that tell about the relationship between the object and it's roles, and the developers can automatically generate all the ER diagrams and class models it wants. ORM provides a simpler, more accurate and more powerful approach to information modeling than other approaches such as Entity-Relational Modeling and UML.
ORM is really a very simple approach that, once you get past the "there has to be more to it" reaction, will give you some better communication tools for use between the business and the application development team. In fact if they don't already know it, ORM has been part of Visio for Enterprise Architects for quite some time now, and there are even some open source ORM tools that plug into Visual Studio. The integration of these tools into your application development environment will make your business analysts and database analysts far more productive. As such I will impart, over the next couple of posts, some tidbits that will get you going. In the mean time if you are chomping at the bit, I suggest you jump over to The ORM Foundation for some additional reading.
So what does Object-Role Modeling do for me?
ORM is not a new concept - it dates back to the 1970's, but it is a way to build simple information models using nothing more than simple facts. For example a Customer has a Name. When designing a new system, or even upgrading an existing system, we can easily retrieve these natural language facts, and combine them into a powerful information model that the business can look at and say "yes that is true, but you forgot that a customer also has an address!" Add a couple constraints that tell about the relationship between the object and it's roles, and the developers can automatically generate all the ER diagrams and class models it wants. ORM provides a simpler, more accurate and more powerful approach to information modeling than other approaches such as Entity-Relational Modeling and UML.
ORM is really a very simple approach that, once you get past the "there has to be more to it" reaction, will give you some better communication tools for use between the business and the application development team. In fact if they don't already know it, ORM has been part of Visio for Enterprise Architects for quite some time now, and there are even some open source ORM tools that plug into Visual Studio. The integration of these tools into your application development environment will make your business analysts and database analysts far more productive. As such I will impart, over the next couple of posts, some tidbits that will get you going. In the mean time if you are chomping at the bit, I suggest you jump over to The ORM Foundation for some additional reading.
Comments for Object-Role Modeling In your Enterprise