Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now
64

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 ...


36

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

TO DO lists are wonderful things. I'm not talking about // #TODO: blah blah comments. I mean get an honest to God notebook. You never know when you'll remember something important to do. A notebook will quietly sit there and let you think without complaining about how your handwriting wont compile. Some of my best ideas happen in the bathroom (yes I do ...


16

That looks like SQLite's syntax diagrams. Their FAQ says: How are the syntax diagrams (a.k.a. "railroad" diagrams) for SQLite generated? The answer is a link to this wiki page on "Generating Syntax Diagrams Using Tk". The wiki links to this Tcl source code for generating the diagrams.


13

The more appropriate UML diagram to depict a platform's architecture is a component diagram. If you want to go a level lower, then you'd also need to draw one or more package diagrams, and perhaps even a deployment diagram. The diagram you linked to is not a UML diagram, it's a "marchitecture / marketecture" diagram. It's not really supposed to be ...


12

When it comes to architecture it always depends. When building a simple throw away application you document way less than when building a large service oriented architecture. When building an application in an agile organisation you document less then when building an application in a highly governed waterfall organisation. When it comes to determining what ...


11

This question is too large to be answered exactly point by point. There are books about design, and other books about user experience, which explain in every detail how to make the software, consumer products, books, advertisements, toys for babies more attractive to the target audience. Actually, your question is similar to: I'm a designer, I have some ...


9

NO The legend was based on the failed assumption that writing: class ClassName extends SomeThing { } ...it's hard and needs automation. You still may find the occasional believer, or crowds of believers. But that's how it goes with religions and cults.


9

I think what you're looking for here is a Sequence Diagram. These allow you to visualize the order in which various modules call eachother via the use of arrows. Constructing one is simple: Draw your starting class with a dotted line below it. Draw the next class/method in the call trace with a dotted line below that Connect the lines with an arrow, ...


8

"Everything should be built top-down, except for the first time", they say. I'd start from the lowest level (e.g. basic vector math), and made sure I understand it well and it has a good test coverage. Then I'd build one more layer on top of that, allowing for more abstract operations (e.g. groups / entities, collision detection, collisions mechanics). ...


7

That is a syntax diagram. I think I first saw them in Grogono's "Programming in Pascal", from 1980, but they were used in Wirth's 1973 report on PASCAL.


7

Your confusion comes probably from the fact that databases, especially normalized relational databases, when seen as a component, typically provide very broad interfaces. Any public table, any view and sometimes also stored procedures represents an interface on its own. So except for trivial databases, depicting each entity with an interface symbol is not a ...


7

Problem Your diagram has several flaws. For instance, you'd need a join to synchronize the camera recording and the timer. But then, the semantic would mean that both activities must be finished before going on, so that in the end you would wait at least 2 minutes. Solution To solve this correctly, you must enclose the sequence of action that can be ...


6

Been there, didn't find it too useful. Generally the diagrams specific enough to generate some code from them, mainly class diagram, don't add much in the way of actually understanding the program and you can't generate code from the overview diagrams like use case or overview-level activity that are crucial for documentation. One diagram that is useful for ...


6

The best documentation I've been given to implement was drawn as wireframes with notes. Each page of the documentation was one wireframe with as many notes as necessary. Each state of any element that needed further explanation spawned another page. For example, a standard drop-down is obvious, but an expanding menu would get notes about sliding effects ...


6

That is a standard component diagram that is found in UML. I've heard some people call them a "lollipop diagram" because the sticks with small circles on the ends to represent a provided interface look like lollipops or a "ball and socket diagram" because of the balls and sockets used to represent provided and needed interfaces


6

In the UML specification, Section 11 describes component diagrams and Section 19 describes deployment diagrams. There's nothing that says that you can or can't include external systems, services, or components on either diagram type. Personally, I would probably do the opposite of what you are doing. I would include external services on the deployment ...


6

They are called railroad diagrams or syntax diagrams. Syntax diagrams (or railroad diagrams) are a way to represent a context-free grammar. They represent a graphical alternative to Backus–Naur form or to EBNF as metalanguages. Early books using syntax diagrams include the "Pascal User Manual" written by Niklaus Wirth 1 (diagrams start at page 47) and the ...


5

All the documents you described will work to describe your system from the perspectives they capture. A class diagram is to show the structure of your project without needing to see the code, the fact your code is very structured is irrelevant. A DFD does not need to have a data storage listed, not all systems store data, but its still important to map how ...


5

I would focus on use-cases and user-stories. I could document them, perhaps in a wiki, and give each one an ID (like UC00001). Then when I wrote unit tests and/or integration tests, I'd label them with the use case they inform. Then when I get to two unit tests that can't both pass because they're mutually exclusive, I'd throw those two use cases back at ...


5

Classic UML Diagram References Two great references for UML and its many diagram types include Martin Fowler's UML Distilled in which each diagram is described in much the same way as you might expect a pattern to be described (it is named, described, the forces on it are enumerated, and the applicability is identified). A more comprehensive reference is ...


5

I'm looking for a way to clearly diagram how multiple applications communicate via a service bus. That would be awesome. Unfortunately, I don't think it is possible for configurations of any complexity. A sequence diagram for simple scenarios is probably as good as anything else. Components on a bus both publish and subscribe to messages. Some of the ...


5

The level of abstraction provided by Entity Relationship Diagrams created with modeling tools, the entity model provided by EF, and UML class diagrams is almost the same. When I create my POCO entities I generally put them in my Model project with my other domain classes, and so a class diagram of the domain model contains the same POCO entities found in the ...


5

Doing use-cases for an existing manual system is difficult because use-cases require a "system". Where are the boundaries of the "system" in the manual system? If you want your work to be relevant to your planned automated system then you should choose the part being automated as the "system". In which case, both the manual and automated systems should have ...


5

I think a call graph would be the most appropriate visualization. If you decide not to do it by hand, there's a nice little tool called pyan that does static analysis on a python file and can generate a visualized call graph by way of a graphviz dot file (which can be rendered to an image). There have been a couple of forks, but the most fully-featured one ...


5

I would model the schema as a UML class diagram. Class diagrams are not specifically aimed at relational databases, but rather at object oriented environments. In my opinion, MongoDB conceptually matches UML better than a relational database. The question you refer to provides more information about how to use UML for MongoDB.


5

To me, the fundamental objective of the SRS is to tell the software team what the software is supposed to do. This is an alternative to just making it up as you go along (aka "agile"). If you're going object-oriented, then you need to take an object-oriented analysis and design approach. Most likely, the first step is to identify the actors in the SRS and ...


5

This is the symbol for a Database: This is the symbol for a Database Server:


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