CSC/ECE 517 Fall 2009/wiki3 10 OT
Topic : CRC cards are useful, but have some limitations. For example, they require that a group be present; it is sometimes hard to get a group together. One alternative technique is "Object Think." Compare CRC cards with Object Think and any other alternatives for the first stages of analysis and design.
CRC Cards
Object Think
Simon Horwith defines “Object Think” is an approach to Object Oriented Programming that is based on the practice of object personification.
Object Think represents a way to think the domian model in terms of objects, which further helps in developing or designing classes. Object Think was suggested as a practical alternative to CRC cards in 1993 by Coad and Nicola. Primary benefits of Object Think is that it can be done individually and no group is required unlike CRC cards.
In object think perspective, objects are modeled to carry out real world functions. Then the responsibilites are distributed across objects as part of the design. Object Think therefore helps to create an accurate domain model where every object in the domain model handles all of its own responsibilities.The advantage of this approach is that as the software system is initially designed, the designers might start with fewer objects carrying out many functionalities. As the system grows over time Object Think will lead to design a community of objects sharing those responsibilities.
Object Think also bridges the traditional process-oriented thinking with the object mindsets. For example, the real world scenario of communication translates to Messaging in the Object Oriented paradigm.
Object Think perceives Objects as independent entity performing actions and making decisions on its own. Mike Abney, in the article -"Object Think: A Perspective on Objects" suggests that an object's capability to act is one of its three categories of responsibilities: "whom I know," "what I do," and "what I know." Peter Coad and Edward Youdon (in Object-Oriented Analysis, 2nd ed., Prentice Hall, 1990)refers this to object's services. Although technically services refer to an operation or procedure, when an object performs the services they are viewed as actions on the objects. As an example, an account object provides a debit method. So, when the debit method is acted on the object, it is viewed as debit action being carried upon the object. This means the state of the object changes based on the action that is being performed on the object.