Further thoughts on MBD
I’ve had permission from DannySaro, the author of this comment to turn it into a proper post – he has many valid points – the discussion that will invariably ensue will be interesting …….
” I also love the work done by APG team. As you mention, they have a strong solution based on some of the most recent insights in model driven architecture. I will not pretend to understand the complete depth and breadth of their solution and all of the exciting things they will be able to do with it. But I wanted to make a comment on another aspect of model-based development which is maybe currently not that well served anymore (looking at it optimistically I should say ‘not that well served yet!’)
Let my base my comment on the current use of CA Gen. Well…, the business-oriented part of the CA Gen model is hardly used anymore, all the stuff listed under the planning and analysis submenus of the Toolset. There are various reasons for this, but probably the biggest reason is the fact that working with this business information was/is very much geared towards the IEF methodology and as we all know methodologies have moved along since the early nineties. That formal part of gathering business information, business requirements via analysis has much, much less focus in today’s agile methods. I think it is obvious that if you don’t spend time identifying and describing that information then how is it ever going to be entered into the mode?. The sad thing is that this information does have its use inside the model, it describes the business rules in an abstract technology neutral, even computational neutral, way. And those business rules then govern the downstream effects of what functionality is actually generated. That information also documents the business-IT alignment that everybody is searching for, again, this does have its value when one has governance and compliance in mind.
So where does that information gets stored nowadays if not inside the model? A lot of it is to be found in unstructured text and documents, user scenarios, use cases… And yes, it’s unstructured and therefore not very well suited to fit into a formal metamodel.
I think a possible solution lies in all the technologies that arise around ontologies. An ontology in general is defined as (thank you Wikipedia): ” the philosophical study of the nature of being, existence or reality in general, as well as the basic categories of being and their relations.”…” In computer science and information science, an ontology is a formal representation of a set of concepts within a domain and the relationships between those concepts. It is used to reason about the properties of that domain, and may be used to define the domain.”
That’s modelling, right? The technologies I mention are things like Resource Description Framework (RDF), RDF Schema (RDFS), Ontology Web Language (OWL) … These technologies allow to capture the information inside an unstructured text into a model. A model that is actually governed by its’ own metamodel. RDF and OWL models are very versatile. If you want you can have the definition of the metamodel defined in the same place as the actual model information. The metamodel can also be extended on the fly if some new concepts need to be documented. Models and metamodels can be merged without effort, and because the technologies are based on firm mathematical concepts like set theory, it is even possible to let inference engines run over these models and based on the information in the model and the (business) rules defined in the metamodel they can deduct new non-existing information.
The saying goes: every formal metamodel can be expressed as an ontology, but not every ontology can be expressed as a formal metamodel. So, as a Gen model can be expressed as an ontology, I am interested to find out how a Gen model could be populated by information contained in what would be regarded as fairly unstructured text, i.e. the user scenarios, the use cases, … mentioned above. If we could make that happen then we have again connected the business model, the business requirements with the rest of the application life cycle. We could then truly speak again of a “complete application life cycle”.
There you have it, I wanted to make a small comment, and see what happened…
If there are people out there that would also be interested in exploring how these technologies could contribute to the overall value proposition of CA Gen’s model-based development then please come forward! “
Join the forum discussion
on this post



Another comment to my own comment, since I forgot to write. CA Gen of course can be a main role player in the tool chain mentioned above (tool integration). Some part of the resulting solution can be written in CA Gen pseudo code. The most successful approach regarding CA Gen would be the enhancements to the tool. Those enhancements are external models and generated code which seamlessly enhances CA Gen applications. Through model transformation and conversion the CA Gen functionality can be used as run time component. The ISP’s and BAA’s can be done outside for example using UML2 and be brought into CA Gen.
According to me the practical solution to your article relies behind tool integration and semantic reasoning. The ontology over a domain may capture the three mentioned issues namely ‘AAA’, ‘Open World’ and ‘Non-unique Naming’. The EMF infrastructure may be the one, which is more suitable to use for the development of a related software. The generic nature of model based development in the eclipse environment enables the developers to adopt the metamodel(s) if necessary and the generators in eclipse can be adopted accordingly. As an example the SWT generation which has the nature of a rich client can easily be replaced with a struts based application for a browser environment. The modern tools do not have rigid meta-models but generic infrastructures. The versioning and on-the fly changes in schemas can be done easily. EMF offers all necessary technologies for that.
Estefan,
I do get your points and as I said I do not doubt that ModelCVS can offer valid solutions in transforming the formalised “understanding” of a business subject matter expert or a business system analist into the Information Strategy Planning (ISP) and Business Area Analysis (BAA) part of the CA Gen model. (BTW if the user community would agree on a more contemporary meaning of some of the ISP and BAA model objects and we add some naming standards and some other agreements then we could very well call it a Service Strategy Planning which would be more in line with what businesses want these days)
My point was more that it is not as much a technical as it is a human issue. It seems to me that it is not the fashion anymore to capture requirements, business processes, business rules, etc… in a formalised way.
The Semantic Web technologies (RDF, RDFS, OWL) were indeed created to put some semantic meaning behind the often unstructured text in HTML pages. Following are some of the fundamental concepts they are based on (I somewhat freely quote these concepts from the book “Semantic Web for the Working Ontologist”):
1) “The AAA slogan: Anyone can say Anything about Any topic” – for me this is relevant to the above mentioned human issue in two ways. First, the business subject matter expert and the business analist don’t want to be constrained by a “method” which tells them what kind of information to enter in what document section or tool panel. There is the (misguided?) feeling that this limits their creativity in coming up with a solution to the business problem they need to solve. Secondly, it is also relevant to the fact of real life that the “semantics” captured in one tool can not cater for all the different kind of businesses out there, all of them will have something specific to say about something.
2) “The Open World/Closed World” assumption, the semantic web technologies assume an “open world” meaning that there can always be more information out there then what we know right now – relevance for me again two-fold, first it goes back to all these different kinds of businesses out there, one rigid ISP and BAA metamodel can not cater for all the specific things. Secondly, also in time there is an evolution of the kind of information that needs to be captured, and again one rigid ISP and BAA metamodel doesn’t cut it. The CA Gen metamodel is very rigid, very “Closed World”, right now it can only be extended with every major version of the product. For UML one can use the UML Profiles to cater for flexibility in the semantics one wants to capture. To my knowledge the semantic web technologies offer even more flexibility, new concepts can be introduced which are new concepts in their own rights, not just stereotyped existing concepts. These new concepts can also have newly defined associations to whatever existing concept already existing in the metamodel. And this “metamodel extension” can basically happen during the actual capture of the information because the metamodel can be defined in the same document as the actual model which one describes. When an analist starts making a bulleted list in his analysis document to start describing some specifics of his organisation’s business he might have identified a new concept with each bullit point being an instance of this new type of information. (I realize that a big part of the challenge would be to get the analist to realize that he identified a new concept).
3) “Nonunique naming” solution – a classical issue, not just for different HTML pages which describe the same thing but give it a different name. I think we have all come across this issue that business subject matter experts name things differently then what IT names them. The semantic web technologies allow to define “equivalence” between different named concepts in diffferent documents. (I guess that same effect is achieved by the metamodel mapping in ModelCVS).
I believe that a solution which would allow business subject matter experts and business analysts to describe the requirements, business processes, business rules , etc… with support for the “AAA”, “Open World” and “Nonunique Naming” concept would potentially solve the human issue. And it would give us a starting point for a “semi-automatic transformation” of that information into the ISP and BAA part of the CA Gen model. We would have closed CA Gen’s full lifecycle model-based development loop again.
What does that solution look like? I don’t know yet! (I might have some ideas though). It will be challenging, that’s for sure, so I welcome any thought, suggestion, comment that anyone has to offer.
Cheers,
Danny
ModelCVS, Ontologies, Meta-Models, .. and co.
As I wrote in some of my articles, the crucial point in the systems analysis is the ability of capturing the correct meaning of the analyzed system. I call this behavior of the tool ‘the understanding’. This behavior is important if the computer program (tool) has to make any decisions depending on the meaning of the scanned source text.
This can be an unstructured text. An unstructured text may depend on a formal grammar or not. The difference here is similar to the difference between natural languages and the formal languages. Natural languages have many ‘name spaces’, which are context dependent. In the formal languages this name space is given by the the grammar of the language. In natural languages the namespace must be identified correctly to capture the real meaning of the used token or series of tokens. In the name space of food ‘hot dog’ is a sausage sandwich but in the namespace of animals ‘hot dog’ has another meaning.
In the literature there are techniques to analyze the meanings in a correct way. Those are partly stochastic techniques, which are applied to identify the namespace to which the analyzed code belongs. Depending on the environmental information and some other criteria the namespace may be deducted and the real meaning of the analyzed text can be identified. But those types of analysis always have a certain possibility of confusion. If the language is formal, there is no way of confusion during the analysis, since the sequence and dependencies of the language tokens and artifacts are described in a mathematical formal way.
Now the rules of a formal language can also be mapped to a meta-model. A meta-model contains the rules which apply to its related model. What is the next layer over a meta-model. It is an ontology. A meta-model is still specific. For example CA Gen has a meta-model, eclipse has also a meta-model. Each other tool has also a meta-model. The question is, whether those meta-models are the same? Even if the tools cover the same domains, the meta-models are mostly different. But ie. the ontology of model based development tools is normally unique. This ontology covers all the artifacts of all tool’s meta-models.
ModelCVS is based on the idea of a semi-automatic transformation generation based on ‘lifting’ the tools meta-models to their model based tool ontology. The idea is some sort of automatic plug-and-play connection among tools. The tools specific meta-models should be mapped (lifted) to the related ontology and the identification of corresponding meta-model components of different model based development tools should be accomplished during this mapping process to the same classes of the MBD tools ontology. The next step would then be the generation of the transformation scripts which have been deducted from the meta-model classes mapped to a certain part of the ontology. The ModelCVS transformation framework is based on an ontology deducted grammar alignment model, which automatically generates the target language from the equivalent grammar artifacts of the source language. This includes the alignment of language structure and then the code transformation. In another future article I am going to write detailed about this transformation.
Now coming back to Danny’s proposal of scanning CA Gen model related unstructured texts into ontologies. Here the ontology of model based development tools or ontology of process models can be used, finally the related model instances will contain the related information and those will be modeled maybe in a modern language like UML and will be brought finally into CA Gen. That’s what ModelCVS ProgGen is already doing. The usage of ontologies are arisen with the need for stronger results in web queries. Instead of looking for a restaurant for a dinner, people can include the types of food they want to get etc.. and semantic web, how the technology is called, makes it possible and delivers the needed information from the big pool of internet. This kind of information mining can be used in various other areas and also in systems modernization as we do.