These days (1999) I distinguish between Modeling and Designing. I say * "Modeling" is describing something you know. A good model makes correct assertions. * "Designing" is manipulating space for things you don't know. A good design e.g., lets you change things easily (there are many dimensions of 'goodness'). You take a drawing of the Model into the room full of business and database and other experts. They critique it to see whether it contains any FalseAssertionsAndUnattractiveRestrictions regarding their business. --AlistairCockburn ---- "Designing" for me is manipulating space for things you know for sure (i.e. you have running automated tests for). --KentBeck ''I love you - you do all designy things the reverse from me! -- Alistair (in a cheery mood on a sunny day.)'' ---- Just as a good design lets you change things easily, so does a good modeling language. From ''InformationModelingAndRelationalDatabases'' by TerryHalpin, the following criteria provide a basis for evaluating conceptual modeling languages: * Expressibility * Clarity * Simplicity and orthogonality * Semantic stability * Semantic relevance * Validation mechanisms * Abstraction mechanisms * Formal foundation ---- A design is a model without any implementation-specific or technology-specific details. A model is a design with those details. Programmers are prone to seeing a spectrum of detail between designs and models, but this is false. There is a very sharp distinction between the two determined by the fact that users of a system only ever see its design whereas implementors are most interested in the model details. The ExplicitUserModel of a system is its design. '''''Hmm.''' An ''architecture'' is a description (with visuals, perhaps) of a system containing modeling information, but lacking implementation or (sometimes) technology-specific details. A ''design'' is one solution to an architecture that fits technology to the system. The ''code'' is one particular implementation of the design that expresses a particular technology with specific details. This is the normal descent of granularity in designing. Eh?'' ---- CategoryComparisons