How Do The Professionals Do It?
April 4, 2005 4:32 PM   Subscribe

Programmers help please. I program DVDs using a very simple language which is proprietary to DVD. Typically instructions will be used to link to specific menus or video, or to set audio or subtitle streams etc, and most of these instructions exist as pre or post commands (i.e. at the start/ end of a specific menu or video section), or as button actions. And because all the code exists at numerous different locations (i.e. different menus, different video sections across the disc), in extremely complex projects it is quite difficult to keep track of what's going on where, and more so, almost impossible to remember what on earth is going on when you return to a project months later. In order to get round this problem, I recently started using basic flowchart software, cutting and pasting all the code into an infrastructure so that I could see the project code (and flow) as a whole. I found this incredibly useful, and was just wondering if this is a common way to keep track of those projects that involve a lot of mental juggling, or if there are other ways to keep track of what the hell's going on?
posted by forallmankind to Computers & Internet (8 answers total)
I used the flowchart elements of MS Visio for a similar brain-bender (the changing/evolving menu tree design and setup options for a multi-player computer game). I was just using it in the visual sense - an updateable map of the system, but I like your idea of cut&pasting (or writing) the code right into the flowchart boxes, making it more like a blueprint than a map.

So, nothing groundbreaking to suggest, just a note that I ended up using the same method.
posted by -harlequin- at 5:18 PM on April 4, 2005

if i understand you right then you're describing the same problem that every pogrammer faces - how to describe something that is complicated in a simple way.

some solutions are graphical - flow charts like you're doing, or more fancy stuff with uml, for example. other solutions use text in different ways - this is one reason why different programming languages are used. compromises that use a gui to improve text are also common - called "interactive development environments" (IDEs) - they can do things like show graphs of how one part of the code depends on another.

it's nice if the documentation and the code are "the same thing" or, at least, if you can automatically go between them. so something you might want to do is look at ways to automate going between the flow chart and the dvd, if that's not already part of what you do - although i can't imagine how, unless there's some way to save the project to xml. if so, you may be able to transform the xml using xsl (if you're not an xsl programmer that's probably too much work, but in theory you could go between, say, a flowchart in svg and "code" in the proprietary xml format). for example, we can develop our design in uml and then generate java code from that (or generate uml from java code - we use enterprise architect, which has a free demo if you're curious).

you could also look at tools used during program design. we use something called "caliber" that lets us track how different requirements are related to each other. you could use something like that to relate different ideas together.
posted by andrew cooke at 5:25 PM on April 4, 2005

here's an example analysis diagram from the enterprise architect site.

even if you look at all the different diagrams it might not be clear what the advantage of a tool like ea is - it stores "in the background" the information in each diagram and makes sure they are consistent, letting you carry information automatically from one diagram to another. so you end up with lots of different kinds of "views" onto the design, which together constrain the code very tightly.

however, this approach (uml) is specific to a particular kind of programming language. while you could use, say, the analysis diagram instead of your own flowchart system, you wouldn't get the advantages that come from using it with a supported language (java, c++, etc).
posted by andrew cooke at 5:30 PM on April 4, 2005

petri nets are another way of diagramming processes. they're used particularly for when you have several things happening at the same time (parallel asynchronous events).
posted by andrew cooke at 5:57 PM on April 4, 2005

automate going between the flow chart and the dvd
Great post! If you can get a programmer on this they might be able to automate the process.
posted by holloway at 7:59 PM on April 4, 2005

wow andrew - you really went to town on your answers: thanks!
posted by forallmankind at 9:58 PM on April 4, 2005

Not sure how relevant this is, but the company I used to work for here in the UK have released a development tool called DVD Extra Studio. I don't know a great deal about it (I was in a different department) but it seems to be development environment for simplifying the production of DVD menus and DVD games and so on. It'll probably be quite expensive though.

Anyway, here's the link.
posted by uk_giffo at 12:03 AM on April 5, 2005

You might like Compendium for doing your mapping. A little more stripped down and flow oriented than Visio and the like, plenty of ability to add text and comments.
posted by phearlez at 11:26 AM on April 5, 2005

« Older Language of Ireland   |   Is it acceptable to ask the bride not to seat me... Newer »
This thread is closed to new comments.