10. Don't immediately assign multiplicities to associations.
9. Don't do such an exhaustive noun and verb analysis that you
pass out along the way.
8. Don't assign operations to classes without exploring use cases
and sequence diagrams.
7. Don't
optimize your code for reusability before making sure you've satisfied the
user's requirements.
6. Don't
debate whether to use aggregation or composition for each of your part-of
associations.
5. Don't presume a specific implementation strategy without
modeling the problem space.
4. Don't
use hard-to-understand names for your classes, like cPortMgrIntf,
instead of intuitively obvious ones, like PortfolioManager.
3. Don't
jump directly to implementation constructs such as friend relationships and
parameterized classes.
2. Don't
create a one-for-one mapping between domain classes and relational database
tables.
1. Don't
perform "premature patternization," which
involves building cool solutions, from patterns, that have little or no
connection to user problems.
From: Use Case Driven Object Modeling with UML: A
Practical Approach by
Doug Rosenberg with Kendall Scott.