How to Build Shlaer-Mellor Object Models