I'm having difficulties with designing my classes to fit my needs. More specifically, I find that I sometimes miss the forest for the trees when writing my code, which makes the individual classes usually work well on their own but somewhat awkwardly with each other. Is there a tool/program I can use to quickly lay out my plans for an individual subsystem of my program manually so that I can organize my thoughts better? I would draw the diagrams myself on a piece of paper, but unfortunately, my handwriting isn't very good and I sometimes have difficulties reading what I write.
There are many software tools available for modeling software and some will be free, while others can be expensive. LibreOffice Draw is free/open source and is available for *nix / Windows / Mac. If you're on Windows and don't mind spending some money, Microsoft Visio 2013 is a popular diagraming/modeling package. Pencil Project, Dia, Diagramly, and LucidChart are free alternatives to Visio. If you're on *nix, a search in your package manager should help as well. I have minimal experience with Mac, but a web search will probably give you more products than you ever wanted for all platforms.
My favourite software design tool is a pencil, paper, and an eraser. If your handwriting is a bit 'free-form' then try writing slower to improve it, the extra time taken will give you more time to consider your design options.
Tim's post reminded me of a plastic drawing tool I saw a number of years ago. It was intended for software design with paper and pencil and had hollowed out shapes like diamonds, circles, and triangles of various sizes. You could just trace the shapes you needed and connect them with lines and arrows, similar to UML diagrams and such. I can't tell you if the thing even exists these days or what it was called (it was bundled with a book when I saw it), but it may help you with pencil and paper design if you can find one. I would check art supply stores or college book/supplies stores. Good luck!
Ugh. That reminds of my COBOL class some 30+ years ago. I have to admit, I usually wrote the code first, then went back and created a diagram that matched the code. Maybe that's why I never became a COBOL programmer.
"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." -- Ted Nelson
Joined: Oct 13, 2005
J. Kevin Robbins wrote: . . . I usually wrote the code first, then went back and created a diagram that matched the code. . . .
I thought that was how everybody created UML diagrams