Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
A former student of mine once blurted out the preposterous statement, "I can't possibly do object-oriented (OO) design; I don't have the money!" Inquiring further, it turned out that, in his mind, OO design required a product called Rational Rose, which at the time cost about ,500.00 per seat. In his mind, without Rational Rose, design wasn't possible. Unfortunately, this sort of balderdash is widespread; too many people think OO is a high-tech process requiring high-tech tools. In practice, exorbitantly priced tools sit unused on the shelf (or are vastly underused).
With that in mind, in this article I discuss various OO design tools, how they work, and why I think they're not useful. I also explain how I work, and what does prove useful (at least to me; you're welcome to disagree).
Every successful OO design I've come up with has followed roughly the same process:
None of today's design tools guide you through this process. For the most part, they're over-priced drawing programs that don't work particularly well, even as drawing tools. (Rational Rose, which I consider one of the least capable of the lot, doesn't even support all of UML.)
Not only do these tools not work well, the one trick these tools do perform -- generate code -- is worthless. Almost all OO design tools follow the notion of round-trip engineering in which you begin in a design tool by specifying your design in UML. You create two essential sets of diagrams: the static model showing the classes in the design, their relationships to each other, and the methods they contain; and the dynamic model, which is a stack of diagrams that show the objects in the system performing various tasks at runtime.