View Full Version : Chart software
01-26-2010, 05:57 PM
Hi, I saw a program a while ago that lets you create node based charts of your program architecture and makes it easier to display your classes, their properties, functions, events etc. At the moment I'm creating graphs in word but it's getting messy :sad: . Does anybody know of any software that will allow me to develop easier.
01-26-2010, 11:06 PM
That kind of stuff normally requires a bit of decorating or marking, or can work by parsing alone (but some of the more obfuscated or abstracted programming choices will obviously make a parser based one fall apart), and usually comes in the form of an IDE plugin.
If you use visual studio try having a look here http://www.codeproject.com/KB/macros/classdep.aspx
Haven't used it myself as I haven't developed on windows in ages, but I've seen it recommended.
There is a fair bit of stuff to extend doxygen for such things too if you use it or don't mind adopting it.
If the whole codebase is yours though, and you have problems digging your way back through your own inheritance and templating, you might be overdoing something. Unless you're writing on a relatively large scale or dealing with long term, in which case you might want something more solid than relying on automated graphing alone.
01-26-2010, 11:36 PM
Thanks for the info but it wasn't exactly what I was after. I think I should have worded my question a bit better. I'm more after software for planning purposes, before I start coding. Its a fairly large scale personal project I'm working on but I don't have a lot of time to work on it so I need everything to be clearly documented.
01-27-2010, 02:04 PM
What kind of planning are you after exactly? You mentioned keeping track of classes dependencies and flow, so I assumed you were after something to help tracking, but apparently that's not it.
Planning and documenting tend to be different things usually, and it's hard to give advice without knowing exactly what you're after or what you will be developing. I would suggest tackling them separately.
If it's a large project and you're concerned with concrete structure issues then I can only guess it might be an API of sorts, or a wrapper/bindings, or a toolkit of some description. In any of those cases, especially if it's a one-man-band or a small team project, you might want to start as early as possible with some sort of embedded documenting, wince post documenting will be a monumental and time consuming effort. Doxygen, or one of many other alternatives around, would be a good start, at least you'll be able to keep constantly fresh and up to date simple doco without having to dig (or asking people to) into headers and reverse engineering snippets.
For post deployment wrangling you might want to pick up trac or bugzilla if you have a user base to deal with, and I assume you are using some sort of code management and versioning system, be it svn, git or something else.
Planning tends to be a beast all of its own, and I'm not sure there are that many tools around that make a significant difference speaking purely of code (always in the context of small to super small teams). If there are, I've never really seen any adopted anywhere I worked or I've heard of. Unless you mean project management and planning tools, in which case there is some decent commercial stuff around, but I'd think it more obtrusive and detrimental than useful to agile models that work well at your assumed scale.
It's kind of hard to help further without knowing more about what you're doing and what you've done already. The questions are very generic and open ended :)
01-27-2010, 04:55 PM
Sorry your right my questions are open ended but its because I don't really haven't a clue. I haven't worked in an environment where they deal with these kind of things or have an education in something like software development. I just know how to code so really I'm a novice.
I'm studying Games Design at university and quite often we are required to paper prototypes when conceptualising. I'm always looking for ways to improve workflows and because of a growing trend in Indies Games I thought it would be cool to develop 2d Environment which allows the user to sketch out maps and ideas for faster prototyping. I wouldn't say its a fairly large project because it can start off small scale if I plan carefully.
Could you recommend any resources for learning how software developers plan. Anything would be useful
01-27-2010, 09:54 PM
I mostly learnt what I know as I went, usually from people who'd been at it for much longer than I have, or much more intensely, and only occasionally complemented things with books (which normally require some prior knowledge of the subject to fully appreciate).
I might not be the best to point at resources because of that.
Something worth looking into very early though is versioning/source management, both because it's simply useful even when working solo, and because if you go for a career focused on programming you will have to deal with it at some point.
SVN or Git are both free, very good, widely adopted, and relatively easy to set up.
Next thing would probably be looking at least quickly at development models.
Waterfall VS agile, and then the various types of agile programming, extreme and so on.
Design and architectural patterns and dealing with them would go hand in hand with that, those can very easily become language specific btw when it comes to implementation, but the general principles of the basic and most common types will be shared.
Wiki hopping those subjects for a couple days while getting a repo going would probably get you somewhere in terms of inspiration, from there read a few reviews and sink for a couple books. Probably design patterns would get you the best bang for buck if you struggle with structure a lot.
Design and abstraction VS concretization are also cool subjects, but I've never really looked at any programming specific literature in those regards.
Hopefully somebody else who's more well read will pitch in at this point and offer some titles too :)
01-28-2010, 07:56 AM
It kinda sounds like you might be looking for a UML tool? Here are a few I've used... some commercial but they all do the trick pretty much. If this isn't what you're looking for, I apologize!
01-30-2010, 11:13 AM
That was my thought too. It's the kind of thing that's been preceded by things like Doxygen, some of the stuff BlueJ (more of a teaching tool than a proper IDE) does and SSADM. What it comes down to is learning a structured language that describes everything and letting the interprative program draw it all for you. It's become common enough that it's built in to some of the more modern IDEs. The result looks a lot like a relational databse diagram which is not surprising as they're both entity relationship diagrams.
Personally, I find it easier to sketch things out rough on paper before putting something down as final.
01-30-2010, 11:13 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2013, Jelsoft Enterprises Ltd.