wood burning stoves 2.0*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Companies not using UML Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Companies not using UML" Watch "Companies not using UML" New topic
Author

Companies not using UML

Edmund Yong
Ranch Hand

Joined: Nov 16, 2003
Posts: 164
I was reading this book call "UML DeMystified" by Paul Kimmel, 2005, and the author said that very few companies are using UML or even doing design at all for their software projects. The below is a quote from the book.


This begs the question: Just how many companies are using the UML and actually designing software with models? The answer is still very few. I work all over North America and personally know people in some very successful software companies, and when I ask them if they build software with UML, the answer is almost always no.


So just how true is it? Do companies like Microsoft do any formal modelling at all? If no, then how do they manage to be so successful?
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
The author's statements do not sound credible or very reliable. They do sound a bit narcissistic.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
It also depends on what you mean by "building software with UML". See http://martinfowler.com/bliki/UmlMode.html

A UML model doesn't directly help you build software at all. What you need is to get the model into the heads of the developers. Using UML is just one way to do that.


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Ran Pleasant
Ranch Hand

Joined: Jan 16, 2003
Posts: 75
Edmund

I don't think it's true that just a few companies are using the UML. However, I do think that there are more companies not using the UML and not doing any type of modelling than many might realize. I think one root of the problem is that many managers and developers totally mis-understood what was said in the Agile Manifesto. The statement in the Agile Manifesto that working software is valued over documentation is taken by many managers & developers that they do not need to produce any documentation at all, including domain modeling. This becomes a justification for not learning the UML. My guess is that teams that don't use the UML and don't model almost always produce Anemic Domain Models. I'm currently having to swrim in a puddle of mud with such a team....painful.

Eighties music and development practices just won't go away!


Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
It's not my impression that there are more Agile teams not using UML than non-Agile teams. Also, I think there are a lot of teams that do UML in a way that give them any value (they are doing it by rote, because it's required by the process). Last but not least, UML can be used for other things than domain modeling; and you can do domain modeling without UML.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
The Unified Modeling Language is a tool for designing object-oriented software. It is effectively used by thousands of companies all around the world for all different types of software development, e.g. defense, financial, automotive, etc. It is appropriate for large, complex systems that are created by "teams" of architects, programmers, and business analysts.

Who does not use UML? Programmers working on small applications by themselves, or non object-oriented programmers that do not have the skillset required to use the UML.

Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
James Clark wrote:The Unified Modeling Language is a tool for designing object-oriented software.


Only in the same sense in which the written English Language is a tool for coming up with poems.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
Only in the same sense in which the written English Language is a tool for coming up with poems.


The UML symbols used for Class diagrams, Package diagrams, Association, Aggregation, Composition, Realization, Generalization, Interface, Dependency are all geared towards designing object-oriented software. It is hard to imagine any rational application of these symbols to anything other than designing OO software.

The definition of these symbols are specifically based on object-oriented concepts. And these symbols form the core of the language.

Contrarily, the definition of English words are not based upon "poems."
Ran Pleasant
Ranch Hand

Joined: Jan 16, 2003
Posts: 75
James Clark wrote:Who does not use UML? Programmers working on small applications by themselves, or non object-oriented programmers that do not have the skillset required to use the UML.

James

I don't think the size of a project is a factor. Rather I think it is the culture and skillsets within a company. I have run into many people who can throw out quick hacks and who are always playing with the newest Java features from Sun and yet have little or no knowledge of the UML, proper OOAD, or any theoretical knowledge of object-oriented programming. I have been amazed, dumbfounded, and horrified at the extent that these same people can engage in structured programming while building Web/EJB applications. That their applications work, even with poor performance and ungodly maintance, is taken as proof that they don't need UML, OOAD, etc. Even if you bring the water to the horse, some just won't drink!
Ran Pleasant
Ranch Hand

Joined: Jan 16, 2003
Posts: 75
James Clark wrote:It is hard to imagine any rational application of these symbols to anything other than designing OO software.

James

I think the UML could have great use outside of just software development. Just as the UML is used to model business processes it can be used to model and understand other processes and domains. One of my favorite articles on object-oriented programming is "Objects in the Constitution" in the book OMT Insights by James Rumbaugh, in which he presents an OMT model of the US govenment. I have tried without luck to get a couple of anthropologist friends to learn and use the UML in their studies.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
I think the UML could have great use outside of just software development.


Ran, in regards to the UML symbols for Association, Aggregation, Composition, Realization, Generalization, Interface, Dependency, what would you use them for besides OO software design?

Ran Pleasant
Ranch Hand

Joined: Jan 16, 2003
Posts: 75
James Clark wrote:Ran, in regards to the UML symbols for Association, Aggregation, Composition, Realization, Generalization, Interface, Dependency, what would you use them for besides OO software design?

James

We may have been talking pass each other, if so I'm sorry. Personally, I do not see any use of the UML symbols outside of the UML itself. If that is what you are meaning then I fully agree. However, as I stated earlier, I do think the UML has a lot of potential for other fields and disciplines that need to model systems they study and/or interact with.

Ran
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
The Unifed Modeling Language is a visual language. There are no words, just symbols and diagrams that can be created with the symbols.

Ran, your statements concerning the application of the language to other things than software design are confusing. The symbols of the language have specific definitions. The ones I picked out are specifc to object-oriented design. How would you apply these symbols to anything other than OO software design?

Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
James Clark wrote:The Unifed Modeling Language is a visual language. There are no words, just symbols and diagrams that can be created with the symbols.

Ran, your statements concerning the application of the language to other things than software design are confusing. The symbols of the language have specific definitions. The ones I picked out are specifc to object-oriented design. How would you apply these symbols to anything other than OO software design?


James, there is, for example, the whole field of Object Oriented Analysis, which doesn't even need to have to do with software at all. The meaning of the symbols actually changes slightly when used for that purpose. The same is true for words when used in different contexts, as far as I can tell. (I'm not a fan of OOA, but there is no way denying that UML is used for that purpose by some.)

Also, there are whole diagram types in UML that don't have anything to do with design: use case diagrams, deployment diagrams, activity diagrams, timing diagrams.

Last but not least, even when a UML diagram depicts a software design, UML isn't necessarily used *for designing*. It could as well be used to simply communicate an already existing design.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
I have never heard of Object-oriented analysis which doesn't relate to software at all. Sounds pretty crazy to me
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
James Clark wrote:I have never heard of Object-oriented analysis which doesn't relate to software at all. Sounds pretty crazy to me


Well, yeah - OOA *is* crazy.

Do you agree that - besides being crazy - it is also not design?
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
Sounds like we are playing with words

In order to design software, analysis is required. There are parts of the UML that support OO analysis and the other parts support OO software design.
The analysis is for creating software however. In practice, individuals don't create Use-Case diagrams for baking cookies or cleaning bathrooms
Hong Anderson
Ranch Hand

Joined: Jul 05, 2005
Posts: 1936
James Clark wrote:
I think the UML could have great use outside of just software development.


Ran, in regards to the UML symbols for Association, Aggregation, Composition, Realization, Generalization, Interface, Dependency, what would you use them for besides OO software design?


James, I think you misunderstand, we can use UML to model *anything*, it's not only for OO. "U" from UML stands for *unified*.


SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
Kengkaj Sathianpantarit, since you haven't posted an answer to the question I asked Ran, we can assume that you cannot answer it.

Either way, it is called "Unified" because it there were many competing ways to model OO software and the various organizations came together and "unified", i.e. standardized, a single method to model OO software -- Unified Modeling Language.
Ran Pleasant
Ranch Hand

Joined: Jan 16, 2003
Posts: 75
James

Here is an online copy of OMT Insights. If I had to teach a class today on the structure of the US government I would used the article from the book "Objects in the Constitution" as a handout (if legally possible) because it easily and clearly explains the relationship between the different parts of the government that would otherwise requires throusands of words to explain. So just as an UML model helps software developers to understand a system it can also help others to understand the same system. If I put together a really nice UML model to explain a business system to IT personnel I'm surely not going to leave it behind when when attempt to explain the same business system to customers and/or upper management. Let us also remember that the first domain model we create in OOAD is conceptual and do not represent software components (see Craig Larman, Applying UML and Patterns, page 134). A good conceptual model should be understandable to anyone, regardless of their profession.

Ran
Hong Anderson
Ranch Hand

Joined: Jul 05, 2005
Posts: 1936
James Clark wrote:Kengkaj Sathianpantarit, since you haven't posted an answer to the question I asked Ran, we can assume that you cannot answer it.

Not so fast, I just want to see your response first .

James Clark wrote:
Either way, it is called "Unified" because it there were many competing ways to model OO software and the various organizations came together and "unified", i.e. standardized, a single method to model OO software -- Unified Modeling Language.

Actually, UML is not just for OO, though its origin come from some OO methodologies.

Do you know what is "Class" in UML? This is definition from UML Superstructure:
7.11.3 Class (from Kernel)
A class describes a set of objects that share the same specifications of features, constraints, and semantics.
Description
Class is a kind of classifier whose features are attributes and operations. Attributes of a class are represented by instances of
Property that are owned by the class. Some of these attributes may represent the navigable ends of binary associations.

Then we need to know what "classifier", "feature", "attribute", "operation" are.
7.8.1 Classifier (from Kernel, Dependencies, PowerTypes)
A classifier is a classification of instances — it describes a set of instances that have features in common.
Description
A classifier is a namespace whose members can include features. Classifier is an abstract metaclass.
A classifier is a type and can own generalizations, thereby making it possible to define generalization relationships to other
classifiers. A classifier can specify a generalization hierarchy by referencing its general classifiers.
A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers.

7.9.2 Feature (from Kernel)
A feature declares a behavioral or structural characteristic of instances of classifiers.
Description
A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass.


You can find out more what "attribute" and "operation" are in UML.
Now, do you think "Class" in UML and "Class" in OO are the same thing?

From definition it's so generic and can be anything, no need to be element in OO.
Hong Anderson
Ranch Hand

Joined: Jul 05, 2005
Posts: 1936
James Clark wrote:
I think the UML could have great use outside of just software development.


Ran, in regards to the UML symbols for Association, Aggregation, Composition, Realization, Generalization, Interface, Dependency, what would you use them for besides OO software design?

About this question, do you know Profile?
Profile is a lightweight extension mechanism of UML, it contains many stereotypes, we can use Profile/Stereotype to extend UML to model anything we want.

For example, if I want to use UML to do data modeling, I can create a Stereotype name Table, and apply it to a Classes, and a Stereotype name Column and apply it to Attributes.

Or if I want to use UML to do UI modeling, I can create a Stereotype name Screen and apply to Component, and Stereotypes for UI widgets like Button, Combo, List, Dropdown, TextBox, TextArea, etc.

Or if I want to do Requirement modeling with UML, I can create a Stereotype name Requirement which has Tagged Values, ID and Text and apply to Classes.

And do you know SysML? SysML is a modeling language for system engineering applications. It reuses UML, and primarily extends UML using UML profile mechanism.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
lol, some impressive copy and paste skills you have there.
Hong Anderson
Ranch Hand

Joined: Jul 05, 2005
Posts: 1936
James Clark wrote:lol, some impressive copy and paste skills you have there.

Thanks for compliment . Actually, copy and paste is a normal method when we discuss about specifications, sometimes it's boring to do so.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Companies not using UML
 
Similar Threads
learning PSP and a suitable IDE
Hiring people lacking relevant skills for a job
UML tool for team development
How much UML must I understand to read the book?
book Q: bug tracking and 'The List'