
Computer programs play a bigger role in business today than ever before.
And as businesses depend more and more on these programs, it has become
increasingly important that they are structured for reliability, maintainability,
and reusability from the very beginning. Object-Oriented Analysis and Design
(OOA/OOD) was created specifically to build these qualities into software
throughout the entire development cycle.
OOA/OOD also helps bridge the gap between users’ needs and programmers
abilities. As client-server applications have become larger and more complex,
it become less likely that programmers alone can fully grasp the full problem
domain they must address without increased outside participation. So OOA/OOD
is tailored to the way everyday people look at the world, not just the
way computers execute instructions.
Object-Oriented Analysis and Design has proven itself so effective at tackling complex projects, that every major programming language today has embraced it whole-heartedly. Programmers around the world are abandoning out-dated structured design and procedural programming for OOP. And by concentrating on the Object Model, IS teams are much more efficient than teams struggling to bridge the syntax-based language barriers of programmers with different backgrounds.
Staying On Track
It has been said the learning OOA/OOD is actually more difficult for programmers than laymen. The Object-Oriented approach to software design can be a difficult shift from the "try to think like the computer" approach experienced programmers are used to using. The value of the solid foundation that OOA/OOD provides can also be difficult to perceive at the beginning of a project. And in today’s mission critical environment, it is tempting for programmers to fall back on the techniques they’ve already mastered; even though this creates more work later on.
CRC Cards To The Rescue
By addressing structure before syntax, CRC (Class – Responsibility – Collaborator) Cards let programmers concentrate on the "what" instead of getting tangled up in the "how". The CRC card method of OOD builds on itself naturally – each known object in the problem domain gets a card, each card lists collaborating objects, and each collaborating object must also have a card, and so on. Crucial elements don’t get left out and responsibilities are accurately assigned. And by keeping object interactions from being buried under pages of code, design flaws in Client-Server architecture become apparent long before they’re accidentally coded into the program’s structure.
Plus, the intuitive Object Model of the cards allows non-technical users to participate in the design sessions, and communicate their needs to IS teams in simple yet useful terms - without being blinded by syntax. And because the CRC Cards are actually the basis for a program’s class structure, the ability of users to further define the problem domain to IS teams is retained even after the program has reached a high level of complexity.
Making It Easy
Using paper index cards for a CRC session may be simple for non-technical team members, but they are not as easy to use as a well designed CRC tool. As the one set of cards is continually changed and updated, information can get lost by the time it is manually translated into class diagrams. MicroGold CRC Pro is like a word processor for CRC sessions:
Creating useable code from CRC sessions couldn’t be easier with CRC Pro. Using MicroGold’s WithClass 97 or WithClass 98, sessions stored in the CRC Pro repository can be turned into class diagrams in three easy steps:
Step 1: Save your CRC Session.

Step 2: Select "Import CRC Cards" from the Utilities menu in WithClass 97 or 98.





From there you can easily generate the actual code for your object structures in C, C++, Java, Delphi, VB, Smalltalk, Eiffel, VHDL, or a host of other languages. Or if you use a different CASE tool, you can use MS-Access or the built-in Crystal Reports to extract whatever information you want to import in a variety of formats.