TheaterFire

Is UML used at all in the industry?

Posted by MeasurementLoud906@reddit | learnprogramming | View on Reddit | 12 comments

Learned it this past semester very throughly. I diagram any project of mine that has data flow. Will it help stand me out or am I wasting my time here. Also erd modeling?

Reply to Post

12 Comments

sydridon@reddit

The only useful part of uml is sequence diagrams. They clearly show the message flow and they are easy to create, understand and change. Best form of documentation for APIs. Class diagrams are pretty much useless as the code often changes and nobody maintains class diagrams.
View on Reddit #6032739

deafpolygon@reddit

It is worth learning and understanding. It won't make you stand out as much these days, and so you can probably skip it without any major loss to your education. However, it is useful to understand - as it is used in some places today (fewer and fewer nowadays) and a good chunk of senior devs have been trained on it. *Being able to diagram your application and its flow is an important skill*.. to do it specifically in UML format is not as valued as it used to be.
View on Reddit #6030458

Taiwanese-Tofu@reddit

In my opinion, UML is very useful when you know your requirements and they won’t ever change, therefore UML is useless .
View on Reddit #6022092

sir_sri@reddit

I have had several coop students where their whole placements were UML and erd diagrams, usually at big engineering jobs. Engineering, even when they hire software people, tends to plan, plan, plan, pause, review, then plan some more. Then write code. At least in defence and nuclear/power generation and construction.
View on Reddit #6018352

_AARAYAN_@reddit

I started learning coding with UML class diagrams. Its good for structuring your project and seeing a top view of all the classes and their dependencies. You can see what contracts you have to create, inheritance and composition and it can help you simplify the design and use various patterns much easily because you are getting a birds eye view. In earlier software development when waterfall model was more popular it was a role of senior developers to decide the object oriented structure of code. They used to design a UML with every class name, members, methods, inheritance and datatypes clearly mentioned. Once Junior Engineers used to see this diagram they can just convert it to code without thinking. It's simply converting a drawing into code. This is why coding used to be called as a simple job, if you know a language then you can just convert UML to code in minutes. In modern days Software Engineering has become a combination of roles. Requirement gathering, architecting, code structuring and coding is usually task of a single developer. You have 2-4 week releases where tasks are mostly divided into coding and testing. Structuring is mostly considered as a part of coding itself. The line between senior and junior developers have also become much more unclear. They both do all the above steps but senior developers usually work on much complex modules. Complexity is decided by the team from experience rather than type of work. ​ I still feel that UML is worth learning and can be used to solve complex object oriented design problems. A good UML can show your exceptional ability to think and solve design problems.
View on Reddit #6008928

MeasurementLoud906@reddit (OP)

It's interesting learning about prior tools and methodologies used before. It makes sense why uml is not often as used alongside waterfall model, especially now in today's agile development. Even more so with modern languages like JS that promote a functional paradigm rather than oop.
View on Reddit #6011711

_Hernandezm8@reddit

UML? More like, Useless Monkey Language! But hey, if you wanna entertain yourself, go ahead! ERD modeling? More like, Extremely Ridiculous Diagrams! Happy wasting!
View on Reddit #6008150

BaronOfTheVoid@reddit

I've used UML myself. Kind of have to remember that it's only a specification that encompasses all the possibilities you could use to depict aspects of software design. It's not a list of requirements that all have to be fulfilled. Even if you're just using 5% of it you're still using UML. Personally I find the most useful kind of charts according to UML are sequence diagrams, for example for interactions with payment service providers, and a sort of dumbed down ERDs for complex databases. No attributes, just the entity names and relations and that's it.
View on Reddit #6004523

michael0x2a@reddit

I create high-level flowcharts and diagrams all the time professionally -- it's a useful way of compactly conveying information in docs or architecture design proposals. However, I don't bother using UML. I don't find its formalisms helpful (and most people I work with wouldn't recognize them anyways). Similar thing with my coworkers. I've seen plenty of diagrams, but never any that use UML. I also think stuff like class diagrams are worse then useless. If you're creating them manually, they're likely going to become out-of-date fairly quickly. If they're auto-generated, it's probably better to auto-generate reference docs instead. At least you can ctrl-f to search through the latter. They're also way too tied to OOP and inheritance. This maybe made sense ~10-20 years ago when heavily OOP languages like Java ruled the game, but make less sense now given the modern trends of using more multi-paradigmatic languages and the overall de-emphasis on inheritance. So, relying on them heavily runs the risk of constraining the design space and making you write suboptimal code. > Will it help stand me out or am I wasting my time here. Being a good communicator is an essential skill if you want to progress up the career chain. After a certain point, your career growth becomes contingent on how well you can explain and advocate for changes to the code or overall technical strategy. Being able to create clean and intuitive diagrams is one way you can improve your ability to communicate. Learning UML could be one way of developing this skill, depending on how exactly it was taught to you. It's not the only way nor sufficient by itself though. For example, if you're terrible at writing, you're probably not going to be an effective communicator no matter how clean your diagrams might be. > Also erd modeling? Personally, I think this is more useful as a tool to teach people about database design. The hard part is figuring how to split up the data and how they should relate to one another. ER diagrams are mostly a tool for exploring these concepts.
View on Reddit #5998605

gramdel@reddit

Not much, i guess some ivory tower architects use those, but people who actually work with code not so much.
View on Reddit #5996996

Loves_Poetry@reddit

It helps to sketch out some basic things on a piece of paper, but I don't know anyone that uses UML at work, since it's usually way too detailed to be worth the time
View on Reddit #5996727

AutoModerator@reddit

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) of commercial third-party apps have announced that this change will compel them to shut down their apps. At least [one accessibility-focused non-commercial third party app](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: 1. Limiting your involvement with Reddit, or 2. Temporarily refraining from using Reddit 3. Cancelling your subscription of Reddit Premium as a way to voice your protest. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*
View on Reddit #5995509