Friday, November 10, 2006
UML Usage
Of the several findings of the article, I would like to stress the following ones:
1) Respondents, on average, have been involved in 27 projects, of which only 6.2 used UML.
2) Class Diagram (73%) is the most frequently used technical description, followed by Use Case Diagram and Sequence Diagram.
3) Use Cases Narratives (87%), Activity Diagrams (77%) and Use Case Diagrams (74%) are the preferred means with regard to client involvement.
4) Class Diagram (93%), Sequence Diagram (91%) and Statechart Diagram (82%) are the preferred means with regard to clarify technical understanding.
7) In asking the question, “reasons for not using some UML components”, some findings are intriguing:
a. 50% said that Class Diagrams were not well understood by analysts, 48% said that Activity Diagrams were not well understood by analysts.
b. 42% said that Statechart Diagrams were not useful for most projects.
c. 42% said that Use Case Diagrams have insufficient value to justify cost and that were not useful with programmers.
d. 49% said that Collaboration Diagrams would capture redundant information.
8) “The median “typical” UML project had a budget of around $1, 000,000 and 6.5 person-years and required 50,000 lines of code”
Some observations:
1) Although being the most used UML component, Class Diagram is also the top misunderstood component! If the data collection and treatment is trustful, then this looks like to be a major contradiction. How a team would claim to use UML, and as such be object-oriented, if their team members do not understand the Class Diagram?
2) Of respondents´previous projects, 27 (average), only 6, 2 (23%) used UML!
3) Use Case Narratives were preferred over Use Case Diagrams as a way to communicate with clients. This is a surprise, since common belief is that Use Case Diagrams, given its iconic character, is the most used medium by OO developers when dealing with clients.
4) The data collected by Dobing and Parsons shows a productivity of 7,692 lines of code per year. Above to the industry averages of 2001, according to Gartner ( as cited in the Msdn Blog by EldarM), which is of 6,200. This brings the productivity at the rate of 32 LOC per day per person (240 working days). Of course, it is widely known that LOC is not the best productivity measure, since different context yields different numbers.
Saturday, April 01, 2006
How widespread is UML?
There are several reasons; basically I formed my opinion on my own experience. I have adopted UML as a central focus in my SE undergraduate course at PUC-Rio in 1998, and since 2002, UML is not the central focus anymore. My post does not deal with the ups and downs of UML. If you are interest in this discussion see the UML fever debate. Here, I want to share some data I have found.
Professor Freeman likes to say: “Ideas are cheap, data is dear”. Well, I embarked on a quest for finding some data. My tools were two search engines and a basic protocol formed by the words: uml, data, usage, survey, and industrial. Opportunistic mining for some hint, given by the search engines, was used sporadically.
Here is what I have found.
1) General statement of 15% usage. (Computerworld: Carol Sliwa)
“Although the UML/MDA approach is gaining increasingly wider adoption by
application architects, UML usage includes no more than 15% of developers,
according to several analysts’ estimates. Critics say its complexity can be
daunting, and the cultural change for IT shops accustomed to pounding out code
can be difficult to negotiate.”
2) A Scottish survey finds 30% of UML usage.
3) March, 05 Computerworld survey points to 30%.
“Almost half, 48%, selected “No” when asked if their company was using Unified
Modeling Language (UML), and 33% reported that UML is in use at their
organization. Thirteen percent said that there plans for future use.”
4) A small survey done by ESL an electronics product design firm, points to 3%.
5) A survey on a Visual Basic community despite not referring to UML directly point out that support for technical documentation is not a top priority.
6) Data from Austria point to a 30% figure. (Software Development inAustria: Results of an Empirical Study among Small and Very Small Enterprises by Christian Hofer)
7) Other data, from 2002, also points to the 30% figure. (SDTimes Modeling Usage Low; Developers Confused About UML 2.0, MDA By Alan Zeichick)
“The survey, conducted by BZ Research in late June, was completed by 226
individuals. BZ Research is a sister organization of SD Times. According to the
results, 34 percent of developers presently use UML-based modeling for
applications development; of that group, 2 percent said they use UML to model
all applications, and 32 percent said that UML is used only for modeling some
applications.”
8) Booch (Rational founder) and Selic (involved in the OMG UML 2.0 group) kind of agree with 10%. (Sidebar: Waiting for UML 2.0 News Story by Carol Sliwa)
” Many say UML adoption has been slow, in the range of 10%. Why do you
think it has been slow?”
Selic: “One of the most significant factors is that
there is a tremendous
investment in existing technologies, both corporate and
personal, and
jumping to UML does require some incremental costs and investments on top of the
existing one. …. So the adoption has to increase, and we are
certainly
seeing other large vendors that are realizing that model-driven
development
is something that has to happen.”
Booch: “Ten percent is not
necessarily a bad thing, if we consider the
worldwide developer market according
to IDC is approximately 13 million or
so IT professionals. Ten percent’s a nice
healthy number. That’s a great
penetration in the sense that we’re dealing here
with the community of
people that worry about abstraction and design, and if we
limit ourselves to
just that community, I would dare say that the UML has a
tremendous
penetration. If you look at the community at large, perhaps it is
10%, 20%
we’ve seen in some other cases. … … Ergo, modeling becomes
fundamental, and
the UML is indeed the open standard of choice for
modeling.”
Of course that the examples listed are few and scattered in different contexts, but they are reported as data.
How well could we measure such usage pattern is certainly not a trivial matter, and I am not expert on that. Of course that one of the issues would be type of software, type of industry, for instance.
I just want to share what I have found and ask: if do you have any pointers to other data, please send it to me. Thanks