Tag Info

Hot answers tagged

51

Yes, UML CASE tools were one of the hot items of the 90s... and then failed to deliver. The fundamental reason for this is that UML (or most any other kinds of) diagrams help to understand the problem and/or the program solving it only insofar the diagram is abstracting away the implementation details of the actual code. Thus (for any nontrivial piece of ...


41

Never. Heck, it's been years since I last created any UML. Line diagrams on whiteboards and scraps of paper don't count. In fact, we just removed the sole UML question from the guide we use during interviews, because none of us really cared about the answers.


32

So when I was at uni (a while ago now), I was told that UML was the future, UML will replace programming and we'll just generate code from diagrams etc. They were wrong. That will happen about the time people abandon speech and go back to cave painting. Real-world problems, and the programs that solve them, have an essential complexity that cannot be ...


29

Well, I'm the academic who posted the original tweet. Tweets are not meant to be scholarly articles. They are advertisements, and I think they can also be controversial. Here are my follow-up tweets: 1) UML was created to model OO designs. It effect you are modeling the code of a system, not the system's behavior. UML is at wrong level. 2) the idea that 7 ...


18

Your problem is a lack of communication between you and your managers/stakeholders. They don't understand the problems that making frequent changes can cause - even if you have an agile process in place. But equally the developers don't understand the need that the program is designed to solve or the business process as well as you should. Why do I say ...


15

It can be very useful if the project is large enough that you have trouble keeping everything straight in your head. Getting something out onto paper/diagrams can also help the design and problem-solving process, at least for me. ...I also admit that for personal projects my diagrams aren't as formal as they would be for at-work projects, they're just good ...


13

Plantuml ? PlantUML is a component that allows to quickly write : * sequence diagram, * use case diagram, * class diagram, * activity diagram, * component diagram, * state diagram * object diagram Diagrams are defined using a simple and intuitive language. They can be generated in PNG or SVG format. It is also possible to generate ...


12

I have a start up background. What you are experiencing is highly typical, and despite what many say - if you are making enough money to survive, you are doing it right....for now. Your question is very valid, very relevant, and (assuming the start-up is about 2-3 years old, based on how long you have been there) very timely. The most common failure time ...


11

When I've had them created before coding, we view them as "temporary" documents. That is, we create the diagrams and get our thoughts onto paper. We start coding from those class diagrams. We then throw them out. It's not worth spending the time to maintain them once coding has started. And if you want up-to-date class models, use a tool to create them from ...


11

I use just enough UML (in terms of both the types of diagrams and the content of the information in the diagram) to get my point across to allow myself or someone else to implement the system or subsystem. And the only reason I use UML is because its a widely known set of symbols that each mean something very specific, so there's no ambiguity - any software ...


11

It is very useful and valuable. As others have said it is best for communication and at a cursory glance you could say "only 1 developer so... no communication needed" but I don't think that's true. So who is the UML and the communication for? You! - Yes you. When you go away from the project for a while and then come back it will be there to help you ...


11

As in many types of UML diagrams, you can use guards to denote a condition. A guard is a boolean expression that you can write over a transition. Here's a picture with an example: Notice the "[pastDueBalance = 0]" condition. You can also use combined fragments for more complicated conditional logic. See this nice msdn article for further information.


10

Exactly those classes which are necessary to understand the aspect of the system which that particular class diagram depicts. It could be the entire domain model, or all classes that make up the external API of a particular layer or subsystem, or whatever you think is important. But note that class diagrams are not the only type of diagram, nor the most ...


10

So you want to know, how to become an efficient developer? 1) You have to develop communication skills Before you start any project, you have to talk to you customer (in your case your boss) about what he wants. The difficulty here is not only to understand, what your customer says, but what he really means - these are most of the time two different ...


9

Ironically, UML is supposed to be flexible. In the real world, it is not supposed to be a pedantic exercise in doing it one right way. It is about effectively communicating and documenting a system/process/idea. To answer your question, I'm with the others. I've never fully utilized full-on, formal UML.


9

UML: Sequence Diagram Tutorial The data is included as the parameters within the messages. For example the instance buyersBank of the Bank class takes an accountNumber and returns the balance for the buyersBank instance. Update: I have highlighed the key points from the OMG specification. pg 491-494 Asynchronous Messages have an open arrow head. ...


9

Unless you think watching paint dry while neck-deep in sewage is a jolly good time, ignore the Unified Process. Wait, ignoring it is not enough. Fear it. As far as I know, it's only used these days by enormous places that are beyond all hope of efficiency, quality, or sanity. UML, on the other hand, can be a handy notation for important programming ...


9

When it comes to discussing a problem or designing, nothing beats the Whiteboard. You should use a whiteboard and informal UML sketches to discuss things. After that you should go to the IDE. It is slightly tedious to have formal and complete UML sketches for the design because, then you will have to maintain them as they tend to fall behind as code ...


9

Can you use UML in a TDD project? The use of TDD does not prevent the use of UML, nor does the use of UML prevent TDD. In fact, I would suspect that using UML as a design tool to capture the behavior and interactions of the system would make it easier to write tests first. You would have a reference model of the implementation to use. However, as you ...


9

Planning is critical, but as the famous strategist Carl von Clausewitz warns No campaign plan survives first contact with the enemy So its not a huge waste of time for planning how to initially attack the problems. But likely a waste of time for documenting your code for future programmers. To use a military metaphor, you need a battle plan, but you ...


9

I think UML diagrams can only be useful if they express something in a higher level of abstraction than your code. Writing UML just for the sake of writing UML becomes unneeded bureaucracy and makes the project and the code less adaptable to changes with no benefit whatsoever. For example, a UML class diagram showing all the classes on a package, with all ...


9

As a general guideline: One deployment diagram for an overview of the architecture (good for any system) One use case diagram for an overview of what users will do with the system (dito) One class diagram for the data model Activity diagrams for the flow of individual use cases if they are complex Perhaps a state machine diagram if you have a ...


9

It makes no sense to say that a class can implement an interface. Either it does or it doesn't, and that's determined as the code is written. Specific instances (users) can't make that decision for themselves, although they can set an IsAdministrator flag instead. If the IsAdministrator flag is insufficient, then (as @superM said) the design you want is ...


8

If you create them before, they will be part of the design phase. If you create them after, you can just use them for documentation. But documenting is better and faster if you do that during design and coding. By the way, you don't lose time in doing design! The coding part will be faster. And better. After all, you think that doing design of a ...


8

To blatantly answer your question: It might or might not be worth it to draw a class diagram. You need to look at your system and determine what diagrams (if any) would add value to anyone working on the system. If producing a diagram will make the lives of developers, testers, or maintainers easier, then the diagrams should be produced. If they don't add ...


8

I tend to think of UML as a method of communication rather than documentation or design. I almost never create UML diagrams for myself, because if I am the only consumer, then I can just use a quicker shorthand that I know I will understand. But that doesn't work when a lot of people are involved in a project. Different types of diagrams are very useful ...


8

I really liked Martin Fowler's UML Distilled. Short and sweet, and more than adequate for whiteboard discussions. Get a couple of copies and pass them around the team.


8

XP doesn't explicitly call for the creation of a model, but it doesn't say that one should never be produced. If developing a model helps you to build and then document your system, it should absolutely be done. The difference is that Agile Modeling has a different focus than system modeling in a plan-driven environment. In fact, the Agile Modeling site even ...



Only top voted, non community-wiki answers of a minimum length are eligible