Step | Name | Description | Question |
1NF | Use Components | Object behaviors should not be redundant (re-invented) if a component (ivar) could do the job | Could components (ivars) be added to provide required functionality? |
2NF | Generalize Components | The type of each component should be as general as practical | Could any of the component types be more general? |
3NF | Use Inheritance | Objects with redundant components/behaviors should have a common super-type where practical | Do two or more of the designed object types have redundant components or functionality? |