Introduction
How do developers design objects? Here are three ways:
- Code.
Design-while-coding (Java, C#, …), ideally with power tools such as refactorings . From mental model to code. - Draw, then code.
Drawing some UML on a whiteboard or UML CASE tool, then switching to #1 with a text-strong IDE (e.g., Eclipse or Visual Studio). - Only draw.
Somehow, the tool generates everything from diagrams. Many a dead tool vendor has washed onto the shores of this steep island. "Only draw" is a misnomer, as this still involves a text programming language attached to UML graphic elements.
[1] What's a next-generation language? A 5GL? One view is that it's one that raises the level of the coding symbols, from bits to text to perhaps icons (or even gestures), packing more functionality into each symbol. Another view is that a 5GL is more declarative and goal-specifying rather than procedural, although 4GLs already exhibit this.
other design techniques p. 218