Blogs
A quarterly blog on the subject of Model Driven Development.
Summer 2010: Why Flexibility is Key to Model Driven Development
On many programmes a great deal of time is spent in the selection of tools for requirements management, system architecture design, document and code generation. One of the reasons why these choices are not straightforward is that the tools that vendors offer often have broad functionality and roadmaps that are not clearly defined. Why make an investment on a tool which could be off the market this time next year? What happens to models when a new release of the tool or modelling standard is issued? Can the tool interface with legacy models or models developed by other parties?
In reality, a tool is only one element to consider and while it is crucial to get the choice right, the overall process used to manage the model’s metadata, stakeholder views, compliance with standards and open interfaces is, in my opinion, more important.
Metadata is data pertaining to the model that captures its attributes and relationships and is usually stored in a tool’s database. In more recent developments it can also be used to customise a tool’s interface to match specific user needs.
Stakeholder views capture and present business requirements from the perspective of each functional department. For example, they may capture security restrictions that need to be in place to ensure that classified information is only visible to those users with the appropriate access rights. Information classification is obviously a major issue on defence programmes but in my experience tends to be considered too late in the process.
Standards and Open Interfaces is an area where current toolsets can excel and really differentiate themselves from the competition. Unfortunately, they often don’t. Standards have been created to facilitate interoperability across different industries, between industry sectors or simply within an organisation. Experience tells me that while standards don’t solve all modelling problems, they are fundamental in promoting the exchange of models (i.e. ideas!), allowing different organisations with perhaps different languages and processes to interoperate, and increasing the long term maintainability of the models. Standards also generally have a more defined roadmap that is less susceptible to sudden organisational or market changes and other commercial pressures.
On large programmes involving a broad supply chain, the interchange of models is always challenging with every organisation often using different modelling tools and methodologies. There are solutions to address this issue such as XMI (XML Metadata Interchange) which has been defined and promoted by the Open Management Group (OMG). However, it has limitations which are not rooted in the standard itself, but more due to its differing implementations by tool vendors. This is not only due to their reluctance to fully adopt the standard, but also the standard not meeting the diverse needs of all the tool vendors. A working group has been set up by OMG to improve the interoperability of XMI based tools. This working group is composed of key tool vendors and also some of the key users of these tools.
I think a more interesting solution is Eclipse’s M2M project which aims to create a generic framework for model transformation (and not just UML models). The framework enables the transformation of models between different modelling tools, the generation of UML models from syntactical models of the English language, and the interchange of models from quality control tools such as Bugzilla, Mantis and Excel. A tool like M2M that promotes open interfaces and open standards, clearly allows effective automatic translation and interchange of models. This is in fact a key principle of the Model Driven Development approach: flexibility.
So, design flexibility is key to the success of engineering programmes, especially those where a wide range of modelling and design tools are in use. Flexibility enables solution analysts, architects and developers to adapt to changing requirements in an efficient manner. It also enables the interchange of models between different stakeholders and organisations. The question of which tools to use is certainly a major consideration and, foremost among the selection criteria, it is crucial to obtain the ability to interchange models through the use of open interfaces and by adherence to international standards.
If you feel like voicing your opinion in response to this blog entry or contributing to this discussion in any other way, please email me at blogs@critical-software.co.uk.
José Reis (MDD Specialist)
