Thanks Patrick. This sounds interesting ... similar to FLiP, but not quite. I will do some more digging on this and give it a try.
-- Jeff -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Patrick McElhaney Sent: Sunday, June 04, 2006 2:23 PM To: [email protected] Subject: Re: [CFCDev] OO Domain Modeling Try CRC cards. http://en.wikipedia.org/wiki/CRC_Card CRC stands for Class, Responsibilities and Collaborators. You write the name of a class, its responsibilities and its collaborators (names of other classes that it talks to) on an index card. Pick any part of the system, take a stab at what classes you might need for that part, and make CRC cards for each class. Don't worry about getting it right the first time. You won't. :) Then walk through your wireframe. With each step, ask, "What responsibilites does the system have here"? And with each responsibility, ask, "Which class is responsible"? If you don't have an answer, you'll need to add the responsibility to one of your cards, or create a new card with an new class name. Then ask, "Can this class handle this responsibility on its own, or does it need the help of a collaborator"? For example, ShoppingCart may be responsible for calcuating the total, but it needs ShippingCalculator and TaxCalculator to provide part of that total. Add the names of collaborators to the card. (You'll need to create a new card for the collaborator itself if it doesn't already exist.) It's an iterative process so make sure you have lots of index cards. :) As you work your way though, the design will evolve. You'll come up with better class names. You'll split the responsilbilities of one class into two or more classes, move responsibliites from one class to another, merge classes, etc. Okay, that's my miserable two minute overview of CRC cards and Repsonsiblity-Driven Design. Search the web and the book store for more information. Patrick -- Patrick McElhaney 704.560.9117 http://pmcelhaney.weblogs.us ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [email protected] with the words 'unsubscribe cfcdev' as the subject of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting (www.cfxhosting.com). An archive of the CFCDev list is available at www.mail-archive.com/[email protected] ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [email protected] with the words 'unsubscribe cfcdev' as the subject of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting (www.cfxhosting.com). An archive of the CFCDev list is available at www.mail-archive.com/[email protected]
