Archive for the ‘UML’ Category

More Science for Computer Science

Sunday, June 1st, 2014

In Debunking Linus’s Law with Science I pointed you to a presentation by Felienne Hermans outlining why the adage:

given enough eyeballs, all bugs are shallow

is not only false but the exact opposite is in fact true. The more people who participate in development of software, the more bugs it will contain.

Remarkably, I have found another instance of the scientific method being applied to computer science.

The abstract for On the use of software design models in software development practice: an empirical investigation by Tony Gorschek, Ewan Tempero, and, Lefteris Angelis, reads as follows:

Research into software design models in general, and into the UML in particular, focuses on answering the question how design models are used, completely ignoring the question if they are used. There is an assumption in the literature that the UML is the de facto standard, and that use of design models has had a profound and substantial effect on how software is designed by virtue of models giving the ability to do model-checking, code generation, or automated test generation. However for this assumption to be true, there has to be significant use of design models in practice by developers.

This paper presents the results of a survey summarizing the answers of 3785 developers answering the simple question on the extent to which design models are used before coding. We relate their use of models with (i) total years of programming experience, (ii) open or closed development, (iii) educational level, (iv) programming language used, and (v) development type.

The answer to our question was that design models are not used very extensively in industry, and where they are used, the use is informal and without tool support, and the notation is often not UML. The use of models decreased with an increase in experience and increased with higher level of qualification. Overall we found that models are used primarily as a communication and collaboration mechanism where there is a need to solve problems and/or get a joint understanding of the overall design in a group. We also conclude that models are seldom updated after initially created and are usually drawn on a whiteboard or on paper.

I plan on citing this paper the next time someone claims that UML diagrams will be useful for readers of a standard.

If you are interested in fact correction issues at Wikipedia, you might want to suggest that in the article on UML the statement:

UML has been found useful in many design contexts,[5] so much so that is has become ubiquitous in its field.

At least the second half of it, “so much so that is has become ubiquitous in its field,” appears to be false.

Do you know of any other uses of science with regard to computer science?

I first saw this in a twee by Erik Meijer

Topic Map Patterns/Use Cases

Tuesday, April 2nd, 2013

The sources for topic map patterns I mentioned yesterday use a variety of modeling languages:

Data Model Patterns: Conventions of Thought by David C. Hay. (Uses CASE*Method™ (Baker’s Notation))

Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. (Uses UML (Unified Modeling Language))

Developing High Quality Data Models by Matthew West. (Uses EXPRESS (EXPRESS-G is for information models))

The TMDM and Kal’s Design Patterns both use UML notation.

Although constraints will be expressed in TMCL, visually it looks to me like UML should be the notation of choice.

Will require transposition from non-UML notation but seems worthwhile to have a uniform notation.

Any strong reasons to use another notation?

10 Free, Standalone and Easy to Use UML Editors

Monday, March 26th, 2012

10 Free, Standalone and Easy to Use UML Editors by Çağdaş Başaraner.

From the post:

Below is a compilation of UML drawing & editing tools which are:

  • Free (and most of them are open source),
  • Standalone (not installed as plug-in or add-in),
  • Easy to download and install,
  • No-need to registration and activation keys,
  • Fast to start and use.

Note: Last 2 editors are text based web uml tools.

Curious, rather than creating a separate graphic language for topic maps, would it be useful to annotate/extend the existing UML language with topic map constructs?