Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

when we use UML and when not? [closed]

Tags:

uml

modeling

We know UML is unified modeling language. So does it can model any kind of software(like Linux kernel, open office, any web application, etc)? or only can model a software which uses Object Oriented language(Java, c++, etc)?

I think modeling is good way to figure out software. If we do not use UML for modeling, what other modeling methods can we use?

And do you know what kind of modeling methods is used for giant open source projects(Linux kernel, Openoffice.org, Firefox, Apache http, MySQL, Eclipse, VIM, etc) and where do we can find out the modeling documents of them?

Thanks any answers!

like image 460
Nyambaa Avatar asked Jan 14 '11 08:01

Nyambaa


People also ask

When Should UML be used?

UML diagrams can be used as a way to visualize a project before it takes place or as documentation for a project afterward. But the overall goal of UML diagrams is to allow teams to visualize how a project is or will be working, and they can be used in any field, not just software engineering.

Why do we require UML diagram explain?

The main aim of UML is to define a standard way to visualize the way a system has been designed. It is quite similar to blueprints used in other fields of engineering. UML is not a programming language, it is rather a visual language. We use UML diagrams to portray the behavior and structure of a system.

How often are UML diagrams used?

Structural UML Diagram The Pareto Principle seems to apply in terms of UML diagram usage as well – 20% of the diagrams are being used 80% of the time by developers. The most frequently used ones in software development are: Use Case diagrams, Class diagrams, and Sequence diagrams.


1 Answers

UML is first and foremost a communication tool, it helps you communicate ideas to other people on your team (or to yourself three months in the future), and as such, should be evaluated based on how easy it can express whatever you have in mind.

Being language-independent, UML cannot be used to express the expected, idiomatic way to use a given API or module, yet this is an essential part of the design: ignoring it can often end up with code that accurately models the underlying problem but requires dozens of lines of boilerplate code to interact with.

Also, UML cannot easily capture some specific properties of data structures that are relied on by algorithms. A red-black tree, for instance, is more easily represented by small tree-like sketches with "this is a red-black tree" or "this isn't a red black tree because" descriptions, than the corresponding UML class diagram.

Finally, languages may have features that are not represented elegantly in UML at all - for instance, Objective Caml module functors, or closures in any language that has them.

like image 98
Victor Nicollet Avatar answered Sep 23 '22 16:09

Victor Nicollet