8

Currently, during my thesis there was hot debate about "Is UML only made for OO development only?" I've searched from some sources, that give many arguments about it. For myself, I believe that not all UML diagrams are made only for OO system/software development i.e (state diagram). So, I hope for your enlighten, and please give strong theory that support your answer from books or international journal not from wiki or web.

please help me out, I don't know what to say

Many thanks

Briant Stevanus
  • 155
  • 2
  • 10
  • possible duplicate of [Are UML diagrams only for Object oriented approach?](http://stackoverflow.com/questions/26212374/are-uml-diagrams-only-for-object-oriented-approach) – bdulac Mar 20 '15 at 12:51

3 Answers3

11

Historically, the three founders (Ivar, Grady and James) all came from backgrounds as OO-software development methodologists when they decided to join their three respective methodologies into what later became UML 1.0.

However, the language as such is not restricted to modelling software. Ivar himself demonstrated its applicability for modelling business situations as early as 1994 (three years before UML 1.0 was release) in the "The object advantage" book and many others have done the same after this.

Moreover, UML is not restricted to model something based on an object oriented stand point. One might argue that object orientation is a methodological perspective you have on the problem domain; not just a name for a type of programming languages. Hence, you might model your problem domain using OO techniques and then implement a system based on that analysis using procedural languages and vice verse. And in all situations you can use UML, but maybe you would employ different elements and diagram types in different situations.

Finally, many people miss to make the distinction between notation and language, on the one hand, and how and what you do with the notation, on the other hand. UML is a language! what you "write" in this language is up to you; english is a language, but no one would make the claim that you could only write novels and not scientific text or recipes for food using english.

UML is a language; object orientation is a philosophical perspective on how to understand and structure a problem.

If you are interested in these sorts of questions, you might be interested in a course that I am delivering in advanced conceptual modeling using UML on Udemy. You can get it with a 90% discount using this link: https://www.udemy.com/get-your-concepts-straight/?couponCode=CONCEPTS29

Cheers!

Per
  • 136
  • 3
  • What a very nice explanation! – Geert Bellekens Mar 20 '15 at 10:34
  • It seems to my you are developing an opinion. Could you cite a reference document please ? I see only the three founding fathers here. As far as I know their perspective was purely OO. What about the OMG ? It is obvious modeling should not be limited to OO programming. But it seems to me that UML focuses on OO. – bdulac Mar 20 '15 at 12:58
  • Some references from the spec 2.4.1 (http://www.omg.org/spec/UML/2.4.1/). Regarding the four compliance levels of UML: Level 0...contains a single language unit that provides for modeling the kinds of class-based structures encountered in most popular object-oriented programming languages... Level 1...adds new language units...specifically, ...use cases, interactions, structures, actions, and activities...Level 2...adds language units for deployment, state machine modeling, and profiles. Level 3...adds new language units for modeling information flows, templates, and model packaging. – Per Mar 21 '15 at 06:06
  • So, classes, associations, generalizations, instances specifications, etc., (L0) are of course UML elements that you would use when using an OO perspective. But use cases, activity diagrams, state diagrams, timing diagrams, deployment diagrams, etc., are not bound to OO techniques. Moreover, with the help of stereotypes you can alter the semantics of a class so that it for example represents a table instead of a class. – Per Mar 21 '15 at 06:12
  • One more example, from the definition of activities in the spec (page 303): "There are potentially many ways of implementing the same specification, and any implementation that preserves the information content and behavior of the specification is acceptable. Because the implementation can have a different structure from that of the specification, there is a mapping between the specification and its implementation. This mapping need not be one-to-one: an implementation need not even use object-orientation, or it might choose a different set of classes from the original specification." – Per Mar 21 '15 at 06:15
  • And from page 324 "In an object-oriented model, activities are usually invoked indirectly as methods bound to operations that are directly invoked. Activities may describe procedural computation. In this context, they are the methods corresponding to operations on classes. Activities may be applied to organizational modeling for business process engineering and workflow... Activities can also be used for information system modeling to specify system level processes." – Per Mar 21 '15 at 06:17
  • As you see the spec makes the distinctions quite clearly between the modeling element defined in the spec and the context which in it can be applied, for example OO, procedural, information modelling, etc. So back to your question, "is it made for OO development ONLY?". The answer is "NO" on that. If the question was "Does it FOCUS on supporting OO development?", then one might arguably answer "It used to do so (in UML1.0) but nowadays the parts that supports general purposes are so vast so I would not agree on that this is the case now" on that. – Per Mar 21 '15 at 06:26
1

I think UML is independent of the type of language. For example, in you can implement c language project with UML and also c++ for the same UML. As you can use structure and use of pointers in C for defining class like structure.

All structural and behavioral UML diagram can be put into non-object oriented code also.

s_ag
  • 82
  • 1
  • 7
1

http://uml.org/

Under the description of the OMG UML, it indicates that modeling language also applies to non-software systems.

KevinT
  • 21
  • 3