Third ECMDA Conference A Great Success
IBM Haifa Labs News Center
Haifa, Israel - June 20, 2007 - the Third European Conference on Model Driven ArchitectureŽ Foundations and Applications (ECMDA), one of two major events dedicated to model driven architecture, drew engineers, developers, and researchers from around the world to the Dan Carmel hotel in Haifa, Israel. The conference program was organized in two tracks dealing with the foundations and applications of MDA, with workshops, a consultancy corner, and tool exhibitions.
"Our feedback from the conference attendees has been outstanding and the atmosphere sparked a lot of networking, planting the seeds for future collaborations," said Alan Hartman, manager of the model-driven engineering technology group at the IBM Haifa Research Lab and one of the conference chairs. "Our goal was to generate a dialog between the researchers and academics in Europe together with the major players in industry in order to further the development of more reliable software."
Model-Driven Architecture MDAŽ is an initiative proposed by the Object Management Group (OMG) for platform-generic software development. It promotes the use of models in the specification, design, analysis, synthesis, deployment, and evolution of complex software systems.
"Haifa was a very logical place to have the conference," noted Stuart Kent, Program Manager of Domain Specific Language Tools at Microsoft and one of the keynote speakers at the conference. "IBM Haifa Research is clearly doing some very advanced work, there are key players like Telelogic who've built strong technology in Israel, and of course the work of David Harell in state charts. The conference created a synergy that brought together new and fresh ideas. And, of course, the advantage to a dedicated conference is that you can get right into the important details and get down to some serious issues."
Kent went on to explain that the expanded role software now plays is being accompanied by a growing realization that industry needs a more engineering approach to software. There are still too many enormous IT projects that go way over budget and over schedule, and don't necessarily achieve their goals. "If you build a building or a bridge, it may be well designed? or not, but it will work. With software, you can build an entire system and it won't work at all if it's not built correctly."
Model driven development tries to look for patterns of commonalities across a domain. For example, if we look at systems that manage insurance claims, there are many high level concepts shared by all insurance companies, including policies, claims handling, contracts, and so forth. What differs is the specific details. Model driven development works to abstract out the differences and leave the commonality. Developers can then use the commonality, or 'model', and wrap tools around the models to automate the entire process. Once the model abstraction is created, it can then be used to quickly generate large chunks of code. The models and their tools are also ideal for quickly generating early prototypes, which can be used to get early feedback from customers and subsequently fine tune the system requirements.
When projects scale up to become more complex and massive a more engineering approach is required. Some of today's big challenges in this area involve raising the level of abstraction for software development and then facilitating the process by which developers and engineers can customize these abstract models for their specific projects and applications.
Take, for example, the new trend towards systems with Service Oriented Architecture (SOA). There are plenty of technology standards that describe ways to interface with services - but all are somewhat different. On the other hand, models and abstractions are the same no matter which technology is being used. This means the new system can be more easily integrated and doesn't have to be built based on legacy technology. In short, using models enables us to more quickly engineer and design these SOA systems by describing the way applications and components talk to each other through services.
"Raising the level of abstraction helps us get away from specific technologies, while enabling us to design more complex, yet reliable, systems," noted Hartman. "Our vision is to create tools that use models to automatically generate 90% of the code needed, thereby raising the quality of the software and the systems being designed."