I'm looking for simple models with concise, concrete problem descriptions and greater than 50% chance that a particular answer provides a particular insight into one of a number of skills, to be given to prospective candidates for hire for a software engineering position. The coffee maker problem, for example, does not lend itself to a quick, in-office test taking scenario. Variations of shape, appliance, vehicle, coin or Lego™ management systems would probably be good.
Desired skills are primarily understanding of:
- When to use inheritance vs. composition
- When to use members for state vs. parameters or locals
- Importance of utilizing business domain terminology
- When to abstract out patterns vs. reducing complexity
- How to model responsibility vs. convenience
- When to use control inversion
- When to use an association class
My focus is on static structure.