Archive for the ‘Modeling’ Category

Call for workshop proposals at MODELS ‘08

Thursday, January 24th, 2008

Hello,

the organizers of the Models ‘08 conference have asked for workshop proposals.

From their website:

“The MoDELS series of conferences are devoted to the topic of model-driven engineering, covering both languages and systems used to create complex systems.”

The Models ‘08 takes place from 2008-09-28 to 2008-10-03 in Toulouse, France.

Best regards,
Andreas

Abstraction and precision enable better processes

Wednesday, January 16th, 2008

Hello,

this is the third posting in a series of posts about the “Current state of modeling”, a focal point on software modeling in the German Computerzeitung.

The third article was written by Andreas Entgelmeier and Rainer Hochecker, both working for IBM Rational:

Basically they say that better communication helps to create better processes. Since the UML improves the communication between the participants of a project it also helps to improve the processes. The UML improves the communication through

  • Documentation
    The model captures information about the system and makes it accessible.
  • Formalism
    Being formally defined the UML creates a common language for all project participants and thus improves the communication.
  • Unambiguousness
    UMLs precisely defined language offers precision that a natural language does not offer
  • Abstraction
    By providing different abstraction levels the comprehensibility of the system is improved.

Besides improving communication a model can deliver metrics which are also important to improve the processes. Source code yields much less metrics than a UML model. The authors then throw in a couple of more buzzwords which do not really add content, in my view.

Personal comment:
While the statements about improved documentation are true, these benefits are not for free. If you want to utilize the UMLs formal definition to improve the communication all project members must learn (parts of) this formal definition and that may not be fun for everybody.

The statement about using metrics derived from models for improving processes also seems a bit strange to me. Usually processes (for software development projects) are concerned with the way the software is developed, e.g. estimation, resource allocation, defining milestones and deliverables, tracking progress and so on. The characteristics of the software are usually only affected as far as measurable quality criteria (number of error reports, number of findings of static and dynamic code checkers, number of executed/failed automatic tests, rate of code coverage and so on) can be derived. I’ve never saw a process definition discussing the depth of the inheritance hierarchy, e.g.

Also depending on your development style it might be more appropriate to derive metrics from the model but I don’t buy the authors arguments that the source code “provides much less metrics then the model”. In particular the examples mentioned in the article – depth of inheritance hierarchy, package dependency, number of classes – could all be easily derived from the source code.

In summary, the article seems to be mostly a sales blurb.

Best regards,
Andreas

Technorati Tags:

Issue 1, volume 7 of the Journal of Object Technology published

Monday, January 14th, 2008

Hello,

the JOT (Journal of Object Technology) has published it’s new issue 1, volume 7.

It contains (among other content) two UML related articles:

Applying Model Checking to Concurrent UML Models
By Patrice Gagnon, Farid Mokhati, Mourad Badri

Abstract from the authors:
The formal and object-oriented language Maude, based on rewriting logic, supports formal specification and programming of concurrent systems, as well as model checking. We focus on UML class, state and communication diagrams. The major motivations of this work are: (1) translating concurrent UML diagrams into a Maude formal specification and (2) applying model checking to the generated specifications. The approach is illustrated using a concrete case study.

UML and Object Oriented Drama
By Luca Vetti Tagliati, Carlo Caloro

Abstract from the authors:
Daily interdisciplinary tests and hybridisations occur among the different contemporary arts; theatre meets new technologies more and more frequently and it turns out to be a fascinating and complex meeting. As a consequence, the problem of identifying new tools that the dramatist and/or director can use to analyze a text arises. Among these tools, it is important to select which is to be used in order to facilitate the sharing of the project among the different participants (director, dramatist, actors, etc.). The discipline of computer science can provide us with a valid solution to this problem, where comparable problems are, typically, solved by means of UML.

Best regards,
Andreas

Technorati Tags: ,

Call For Papers for the Fourth European Conference on Model Driven Architecture Foundations and Applications

Monday, January 14th, 2008

Hello,

On the puml mailing list a call for papers for the ECDMA 2008 was published.

From the website:

ECMDA-FA is dedicated to furthering the state of knowledge and fostering the industrialisation of the MDA methodology. Its focus is on engaging the key European research and industrial figures in a dialogue which will result in a stronger, more efficient industry, producing more reliable software on the basis of state-of-the-art research results. The 2008 conference is organised in two tracks of interest dealing with the foundations and applications of MDA. There will be additional workshops and tools and poster exhibitions on these subjects.

Best regards,
Andreas

Technorati Tags:

Call for paper for the TOOLS EUROPE 2008 46th International Conference on Objects, Models, Components, Patterns

Wednesday, January 9th, 2008

Hello,

as announced on the yahoogroups mda-discussion mailing list there are still about 30 days left if you want to submit a paper for the Tools 2008 conference. The conference itself will take place on June 30th to July 4, 2008 in Zurich.

From the webpage:

“TOOLS has broadened its scope beyond the original topics of object technology and component-based development to encompass all modern, practical approaches to software development, in keeping with the traditional TOOLS spirit of technical excellence, focus on practicality, combination of theory and applications, and reliance on the best experts from academia and industry.”

The Tools 2008 also hosts the Conference on Software Engineering Approaches For Offshore and Outsourced Development (SEAFOOD 2008) and the conference on Model Transformation (ICMT 2008).

Seems like you can get a wealth of information and contacts there.

Best regards,
Andreas

The downturn in modeling is over

Monday, January 7th, 2008

Hello,

this is the second posting in a series of posts about the “Current state of modeling”, a focal point on software modeling in the German Computerzeitung.

This is a short article written by Franz Graser, an editor of the Computerzeitung:

  • There was a hype about modeling and model based software development and as with all hypes there have been disappointed expectations as people realized that model based development was not the long awaited silver bullet.
  • For example, a useful generation of source code from a model requires a serious amount of preparation and thus is not appropriate for all types of projects.
  • In addition, the complexity and size of the UML2 language definition discourages many interested parties.
  • But there are also more and more tools that support model based software development.
  • Model based testing also has much to offer.

While this article is exceptionally shallow it is basically consistent with my own perception. Starting approximately 1990 more and more modeling tools appeared, first proprietary (anyone remembers ObjectOry?), then based on UML, with Rational Rose as market leader. Many of these tools ended as Shelfware, either because they where barely usable or because they were imposed by some dumb manager.

Now the bad tools have disappeared and the good tools have matured. With Java and .NET new, powerful implementation platforms are available now. The understanding, how model based software development can be done is much better since standards have been developed and pragmatic open source projects with lively communities have emerged (e.g. Eclipse Modeling Framework, AndroMDA, openArchitectureWare, ModelWare) . A good indicator for the prospect of model based software development is Microsoft’s effort in this area – its DSL tools and Oslo initiative (and we all know that Microsoft is often slow in following trends).

Best regards,
Andreas

Technorati Tags: ,

UML exercises

Monday, December 17th, 2007

Hello,

the UML Ranch contains some UML exercises from an O’Reilly book on UML. I had not yet time to seriously look at them but at first sight they look quite suitable.

Best regards,
Andreas

Technorati Tags:

Thoughts about TextUML

Monday, December 10th, 2007

Hello,

recently I have written a blog post about TextUML. Now the author asked me about my opinion on TextUML. My statement will be long enough to justify a dedicated posting so that I can use some formatting and I can refine it in multiple sessions. All in all, this posting contains a collection of random thoughts.

First of all, I have never used TextUML so I don’t feel qualified to give a statement about its usefulness. That’s the reason I deliberately did not make such a statement in my first posting on TextUML.

Nevertheless, here are some thoughts on the the topic:

  • The UML model is contained in some repository and there are multiple ways to manipulate (and present) the content of the repository. The repository must be made persistent in some way over multiple tool invocations (database, XMI text files, proprietary text files). The persistence technology and format are distinct from the presentation, even if a textual presentation exists.
  • Diagrams are “views” onto the repository which show a (possibly tiny) part of the repository. The main purpose of diagrams is to enable the comprehension of some aspects of the model. To achieve this goal a diagram must carefully be crafted manually, leaving out all irrelevant detail (”as much as necessary, as little as possible”).
  • All relevant modeling tools use solely some kind of graphical editor to manipulate the model. This is either a diagram or a tree like presentation of the repository (”model browser”).
  • Basically, there could be multiple ways to manipulate the repository, e.g. the conventional – graphical – way or a textual notation.
  • If multiple users work on the same model, the tool must be able to allow manipulations of the model with sufficiently small granularity so that conflicts are reduced as much as possible. With a graphical tool this is typically achieved because only the selected model element is manipulated. With a text based approach that would mean that only a short fragment of text is presented to the user which makes it hard to see the context.
  • Supporting two different manipulation models (graphical and text based) would mean additional effort for a tool vendor with no additional capabilities (I was tempted to write “no added value” but that would be a subjective statement). Tool vendors are usually driven by actual or assumed customer demand and since no tool contains the capability to modify the repository with a textual notation I think TextUML appeals only to relatively few users.
  • A text based model manipulation would probably be harder to learn thus decreasing the number of potential users (customers, for a tool vendor). While a person who prefers the text based model manipulation would probably achieve good results when using the graphical approach the opposite is probably not true. And – as Rafael has written on his blog – TextUML is intended to be part of a product that will “aim at mainstream business application developers”. This is a bit contradictory.
  • Modern UML tools can do so much more than just the manipulation of a UML repository. E.g. they can track requirements and link them to model elements, maintain access rights and permissions for model elements, calculate risks and efforts, maintain documentation and much more. Do you restrict the textual manipulation capability to the actual UML model? Does it include proprietary extensions of model elements, e.g.the costs associated with a model element? Must the user switch between the two manipulation models for the same model element?
  • So if TextUML does restrict itself to the plain UML repository leaving other aspect to a graphical GUI (e.g. as an Eclipse plugin) the TextUML source must be kept synchronized with the repository – not an easy task.

Rafael has created the capability to visualize the models automatically. As written above I think that UML diagrams are about including and omitting the right information and that is difficult to achieve in automatically created diagrams. This applies both to the level of detail, the layout of the diagram and the occasional note that further increases the diagrams value.
Automatically created diagrams can be of value when a model is explored in the sense that one picks some element – typically a class – and wants to see all its relationships immediately without explicitly figuring out the related elements and adding them manually to a diagram. Since there is no significant user contribution to such a diagram it is a light weight, “throw away” artifact, more like a “state view” in a debugger.

I like to create language processing software so I think that TextUML is an interesting project but I don’t believe that it is the best approach for a commercial application.

Best regards,
Andreas

Technorati Tags: , ,

Popularity of UML modeling tools

Sunday, December 9th, 2007

Hello,

the UML forum contains a poll about the popularity of modeling tools. You can (and should!) vote too but you can also only view the results (the link is in the lower left corner and its written “View Results”). They also have a poll for the best UML book and they seem to display one of these polls randomly so you might need to refresh the page a couple of times.

Personally, I would have preferred to ask which tools are actually used, not just which the readers think are best. But I assume the results would be quite similar.

Best regards,
Andreas

Technorati Tags: ,

Text based modeling with TextUML

Monday, December 3rd, 2007

Hello,

a UML model is a description of entities based on the UML metamodel. The OMG uses the term “repository” to describe the container for such a model. Usually repositories are either databases or text files in a proprietary or (more or less – see XMI) standard format.

Rafael Chaves created TextUML, a text based repository for UML models that is designed to be used directly for creating UML models. Instead of the usual approach of creating the model by manipulating diagram elements in some graphical editor the modeler uses a programming language to create the model. There is even an Eclipse project that supports modelers in creating TextUML models.

Whether you think this is a good idea or not, Rafaels blog is an interesting read.

Best regards,
Andreas

Technorati Tags: ,

nUML – A UML Metamodel implementation for .NET

Monday, December 3rd, 2007

Hello,

if you are a .NET developer and you are interested in the UML chances are you have had some jealous looks at the rich support for modeling and UML in the Java (well Eclipse…) world.

Now its seems as if a person has taken the challenge to create the base for a similar architecture in the .NET world. Rodolfo Campero published nUML, a library for creating UML models in .NET applications. Unfortunately, he writes his blog in spain, which surely does not help to find people who are interested in supporting him.

Also, since the initial release on 2007-07-01 neither the blog nor the download page on sourceforge.net has been updated – not a good sign.

I wish Rodolfo good luck and endurance.

Best regards,
Andreas

Technorati Tags: , ,

Article translation: being close to the domain is important when modeling

Tuesday, November 20th, 2007

Hello,

as I have promised I will translate and summarize some of the articles from the German Computerzeitung issue 44 which has a focal point on software modeling.

The first article cites 3 persons:

  • Harald Böttcher from Optaros (consultant)
  • Ralph Schoon from IBM Rational (tool vendor)
  • Wolfgang Neuhaus from Itemis (consultant)

Harald states that Optaros has completed many UML consulting projects for customers but that most of these projects had disappointing results. Main reason is that the clients domain specialists are not willing to use sophisticated and rigid tools to model their business processes.

Ralph disagrees and thinks that UML based projects can be successful but that often an adaption of the UML to the specific domain is necessary. He also thinks that many domain specialists want to express their analysis without the constraints of a rigid tool and process (e.g. in a program like Visio or even in Microsoft Word) – at the cost of precision and ambiguousness.

Wolfgang thinks that modeling languages should better not be based on UML to achieve best productivity. The main focus should not be on the tools but on creating a common vocabulary, views on the domain and an appropriate modeling language.

My opinion:
The article seems to be aimed on modeling domain specific aspects (analysis model) – in particular business processes – of a software system. In this case it is mandatory to enable the domain specialists to create, maintain or at least understand the model. But modeling is also used to describe the technical aspects of a software model (implementation model) and such a model is usually only used by software engineers who are (should be :-) ) more used to formal methods.
As far as DSLs are concerned I think that modern UML tools offer rich capabilities for creating very specific modeling languages by using UML profiles, owner drawn model elements on diagram and extension mechanisms. These languages are based on a well defined meta model, the tools are mature now and the models are – to a certain degree – interchangeable.

Best regards,
Andreas

Technorati Tags: , ,

Current state of software modeling

Thursday, November 15th, 2007

Hello,

the German information technology magazine Computerzeitung had a focal point on software modeling in its issue 44 of 2007.

Some of the statements and views are quite interesting and I’d like to translate and summarize the articles for your convenience.

Here is the list of articles (the articles are all in German):

I’ll write separate posts about each article in the next weeks. If some of the titles sound more interesting to you please leave a comment and I’ll write about them first.

Best regards,
Andreas

Technorati Tags: ,

Tangible releases free modeling tools for Visual Studio 2005

Monday, October 8th, 2007

Hello!

Tangible has released a free (as in beer) AddIn for Visual Studio 2005 that supports the creation of some basic modeling diagrams within Visual Studio 2005. They don’t claim to be UML compliant which would be hard since they use the Microsoft DSL tools which are explicitly designed as an alternative to UML.

I had a look at this AddIn and here are my impressions:

Pros:

  • Slick visual appearance
  • Convenient interface due to reuse of Visual Studios interface elements
  • Diagrams are part of the project
  • Therefore, they are automatically integrated in the source code management systems

Cons:

  • Existing classes cannot be dropped on diagram
  • No repository or browser view of the modeled classes
  • Almost no semantic information can be captured
  • Obvious bug in the specification of superclasses (the field is named “subclasses”)

All in all I think it is a nice tool for people that wish to add some diagrams to their projects and thus improve the documentation. However, if you are seriously interested in using UML in Visual Studio you could consider Sparx Systems MDG link for Visual Studio (no, I’m not affiliated with them).

Tangible modeling tools in Visual Studio 2005

Best regards,
Andreas

Technorati Tags: , , , ,

The effect of being submitted to dzone

Monday, October 8th, 2007

Hello!

One of my older postings was submitted to dzone (thanks gst!). In the first 5 days after the submission 738 visitors have viewed this entry and 434 of them have clicked on the link and hopefully :-) read my posting. So far, one comment was made.
The first two days we had no noteable traffic from dzone, then on friday about 40% of the overall traffic from dzone arrived, on saturday about 35%, on sunday about 15% and on monday about 10%.

dzone seems to be an interesting site, most of the articles seem to be of high quality. And it seems to have a significant community which keeps the fire burning. There are also quite a view postings about UML on dzone.

Best regards,
Andreas

Technorati Tags:

Topcoder.com chooses to write their own UML tool

Thursday, September 27th, 2007

Hello,

topcoder.com is a website that hosts various contests for software designers and developers. Topcoder seems to strive for rather high quality and therefore they also appreciate UML models for the software that will be developed in the course of a contest.

Until recently, they used Gentlewares Poseidon tool, partly because it had a free community edition so that no participant was forced to spend money just to participate in the contest. They have abandoned Poseidon now and have chosen to create their own UML tool. They do not really state their reasons for this decision, except that “this approach will allow us to develop a tool that is closely aligned with our members’ needs”.

When I read this, I thought “oh boy, please not another half hearted UML tool that nobody will ever use seriously”. To verify or disprove my bias I installed the tool in a Virtual Machine (so that I could delete it without any traces). My worst expectations have been fulfilled.

  • The tool is written in plain Java, making it look ugly
  • No reuse of existing software like the Eclipse Modeling Framework and/or the Graphical Editor Framework
  • Non intuitive user interface (granted, this is a subjective statement)
  • No online help, no documentation

Topcode UML tool

Seems like a heavy case of Not Invented Here syndrome.

Best regards,
Andreas

Technorati Tags: ,

Templates aka generics aka instantiable types in UML

Wednesday, August 22nd, 2007

Hello,

Since Java and .NET have generics the usage of so called class templates has become much more widespread than in the days before where only C++ had reasonable support for templates. Therefore I thought it would be interesting for our readers to read a bit about how templates are integrated in the UML.

Template definition in the UML specification

Chapter 17.5 in the ULM 2.1.1 superstructure specification is devoted to the topic of templates. It describes in detail how templates are modeled in the UML metamodel but only briefly illustrates how templates are used at the model level.

Description of the template concept

In general, the important concepts are template (usually - and in the case of Java and .NET always – template classes) and template parameter (therefore, templates are also called “parameterized types”). The template class defines a class but for one or more of the types used in the class (as member and/or as part of the argument list of some method(s) and/or as return value of some method(s)) a placeholder is used instead of concrete, defined types. These placeholders are declared as part of the template definition, immediately before the template class:

C++ example:

template <class T> class Mypair
{  
    public:
    Mypair(T first, T second)
    {
        values[0] = first;
        values[1] = second;
    }
    T values [2];
};

This template definition defines the template parameter T and the template class Mypair. An instance of this class stores two values of type T. The template parameter T is used to declare a member – the array values – and the types of two arguments of a method – the constructor Mypair(T first, T second).
Such a class cannot be used directly. You have to create a concrete template instantiation to use the class. Conceptually, each template instantiation is a new class which is independent of all other instantiations of the same template class. In the context of the example above you could create two instantiations of the Mypair class, one for variables of type int, the other one for variables of type double:

Mypair<int> intPair(0, 42);
Mypair<double> doublePair( 2.71, 3.1415);

then intPair and doublePair can be used to store two variables of type int or double, respectively. Both template instantiations would be treated as discrete types.
The most popular application is the creation of strongly typed container classes, e.g. lists or hash tables. In this case the library developers provide an implementation of a container as template class and the client of the library may then instantiate the container for a given data type. The instantiated class can then handle only elements which are of the same type as the template parameter. This assures compile time type safety. Sometimes, the type parameters must have certain characteristics to be used with the template class. (e.g. a template parameter for a C++ STL container must have a default constructor). Java and .NET have some language level construct to specify such constraints, whereas C++ does not have such capabilities.

Although containers are probably the most prominent example for templates, there are of course many other applications for templates.

Finally, I’d like to mention that in UML not only classes but also packages and operations can be parametrized.

Template representation

The UML specification suggests a graphical representation (”Notation”, as they call it) but strangely it is only presented verbal and not as image.

Here is, how it looks in Enterprise Architect:

Template class in Enterprise Architect class diagram

If you have any questions concerning this topic please ask!

Best regards,
Andreas

Update: I found another post on the same topic.

Technorati Tags: , , ,

UML modeling tool for Tablet PCs (Tablet UML)

Tuesday, July 3rd, 2007

Hello!

There is Tablet UML, a UML tool designed for Tablet PCs. You can just draw various diagrams directly on the tablet with your pen and also enter associated text and the tool converts your drawings in a structured UML model. While I think that’s not necessarily the best approach for long design sessions on your own it is probably great if you sit together with a coworker or client and try to capture the essence of some use case or object interaction e.g.

Unfortunately, they seem to support export only to images, not to other UML tools. From what I have seen on their website Tablet UML seems to be a bit low on features compared to mainstream UML tools like Enterprise Architect or MagicDraw (e.g. no support for code generation and reverse engineering). I think the most useful way to use Tablet UML is for interactive design sessions and later import of the model fragments into a more comprehensive modeling tool. Unfortunately, this approach seems not to be supported. I think they would benefit from offering AddIns for popular UML modeling tools that allow the (repeated/incremental) merge of Table UML models into other tools.

Nevertheless it sure fills a gap for those that have a Tablet PC.

Best regards,
Andreas

Technorati Tags: , ,

OpenAmeos: new open source UML tool

Saturday, June 23rd, 2007

Hello!

Aonix released its UML product Ameos as Open Source (now called OpenAmeos).
I had a look at the site and I noted:

  • The site is minimalistic and the design looks cheap
  • No screenshots, no documentation
  • No source code. Heck, thats the main point of open source at all

It seems to me as if Aonix realized that the UML tool market is extremely competitive and they have decided to dump Ameo (btw. anyone heard of this product before?). Instead of silently taking the product out of live they hope that they can generate some buzz and that some open source volunteers will provide bug fixes and feature enhancements for this product.

Ameos may be a good product, but Aonix should invest a bit more. Otherwise I’m afraid OpenAmeos will be a still birth.

Nevertheless, I wish the guys behind OpenAmeos good luck.

Best regards,
Andreas

Natural Language Translation of OCL expressions

Monday, May 14th, 2007

Hello!

There is a nice post from Miguel Garcia on the topic of automatically translating OCL expressions in natural language. I think that can significantly improve the acceptance of OCL because the expressions can be better understood by people who do not know OCL, in particular domain experts without education in formal languages. The examples in the blog posting are quite impressive. Unfortunately, the underlying software seems to use an exotic programming environment and proprietary input models; so integration in other software is probably not so easy.

Best regards,
Andreas

Technorati Tags: ,