(a) Simulations model read world activities, which have real world objects acting independantly, but interacting with each other. (that sounds a bit contradictory, but you know what we mean)
(b) Class Responsibility Collaboration Cards describe a class, it's responsibilities, and its collaborators. They are "a way of exploring how classes interact with one another and provide services to one another while performing various scenario tasks" (Guzdial). We use the CRC card in the initial design phase (OOA) and could edit them as you go through development if you wish.
(c) Parents give (delegate) responsibilities to their children (that is inheritance). Subclasses will be able to handle all the responsibilities (listed on the left hand side of the CRC card) of their parents, because their parents have delegated the responsibilities to them. The only thing is the parents are still stuck with the responsibilities as well (unlike normal delegation).
(d) This is the I cubed law (I^3) (patented my Michael Emard)
Each object is Independent, Indivisible, and Interactive just like a biological cell. Oh it is interactive only along standard mechanisms (says Michelle Burnett).
Children are allowed to delegate responsibilities to their parents.
(a) No, I can't figure out what you mean. Try again, please.
(b) Try again without quoting me. What's critical about CRC cards and when they're used?
(c) Not even close. Mark Guzdial
(A again) Object-oriented programming is related to simulations in that they both try to model the real world. Simulations model real world objects, which are independant, but interact with other objects. Object-oriented programming uses this same approach. OOP encapsulates objects to make them independant but still allows communication/interaction between objects. Michael Emard
(c) Delegation is asking another object to perform the requested service for the requested object. Inheritance is a form of delegation when a message is sent to a subclass and that subclass does not have a method to override the superclasses' method.
Much cleaner! Does (a) mean that any OO language must be multiprocessing?
(b) 'The critical' part of CRC cards is they are physical representations of the classes. The cards can answer design questions way down the implementation road when most of the preliminary thought has been forgotten.