Most of the OOAD methodology is driven by use cases to find the objects first, whereas, methods/functions of the objects are defined by the relationships among the objects. This is what textbooks teach and general recommend. However, we seems forget the top-down method, which has being used for procedure programming. It may be more effective to use top-down method for OOAD as it is an effective and easy way to build a system, just replace procedure with object.
Welcome comments!