CSC/ECE 517 Fall 2007/wiki2 5 pr: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
==Introduction==
==Introduction==


Applying the object-oriented paradigm to the development of software requires individuals and teams to think and act differently than when designing procedural projects. While proponents of the object paradigm often say identifying objects is a simple and intuitive process, experienced developers know that this is not always true. The solution is the CRC (Classes, Responsibilities, Collaboration) Card method, a proven technique for identifying classes and visualizing and testing different class-based models during the design phase.  
    Applying the object-oriented paradigm to the development of software requires individuals and teams to think and act differently than when designing procedural projects. While proponents of the object paradigm often say identifying objects is a simple and intuitive process, experienced developers know that this is not always true. The solution is the CRC (Classes, Responsibilities, Collaboration) Card method, a proven technique for identifying classes and visualizing and testing different class-based models during the design phase.  
 
http://en.wikipedia.org/wiki/Class-Responsibility-Collaboration_card


==Why bother about CRC cards?==
==Why bother about CRC cards?==


     > They are portable... No computers are required so they can be used anywhere. Even away from the office.<br>
     . They are portable. No computers are required so they can be used anywhere. Even away from the office.<br>
     > The allow the participants to experience first hand how the system will work. No computer tool can replace the  
     . The allow the participants to experience first hand how the system will work. No computer tool can replace the  
       interaction that happens by physically picking up the cards and playing the roll of that object.<br>
       interaction that happens by physically picking up the cards and playing the roll of that object.<br>
     > The are a useful tool for teaching people the object-oriented paradigm.<br>
     . The are a useful tool for teaching people the object-oriented paradigm.<br>
     > They can be used as a methodology them selves or as a front end to a more formal methodology.  <br>
     . They can be used as a methodology them selves or as a front end to a more formal methodology.  <br>


==Where to learn about this new and innovative method?==
==Where to learn about this new and innovative method?==


There are many websites and books that talk about this technique. Some in depth and some just enough to make life simpler for everyone. Listed below are some of the many websites that talk about this method along with the effectiveness with which each site explains this method.
    There are many websites and books that talk about this technique. Some in depth and some just enough to make life simpler for everyone. Listed below are some of the many websites that talk about this method along with the effectiveness with which each site explains this method.


==Sites==
==Sites==
Line 28: Line 30:
2) https://olt.qut.edu.au/it/itb611/gen/index.cfm?fa=frameLink&rNum=864389<br>
2) https://olt.qut.edu.au/it/itb611/gen/index.cfm?fa=frameLink&rNum=864389<br>
3) http://www.cs.umu.se/~jubo/Meetings/OOPSLA01/Contributions/MNordstrom.pdf
3) http://www.cs.umu.se/~jubo/Meetings/OOPSLA01/Contributions/MNordstrom.pdf
More learning with Examples on CRC Cards
. http://www.extremeprogramming.org/rules/crccards.html
. http://www.extremeprogramming.org/example/crcsim.html
. http://c2.com/doc/oopsla89/paper.html
. http://c2.com/doc/oopsla89/paper.html
. http://www.excelsoftware.com/crccards.html
. http://c2.com/cgi/wiki?CrcCard
. http://www.agilemodeling.com/artifacts/crcModel.htm
. http://www.cs.umu.se/~jubo/Meetings/OOPSLA01/Contributions/RBiddle.html
Which exercises can be used to teach them best:
(i) interactively over the Web
http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/CRCCards.html#Deposit
http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Statecharts.html
http://www.cs.gordon.edu/courses/cs320/ATM_Example/CRCcards.html
http://www.agilemodeling.com/artifacts/crcModel.htm
(ii) to a class of students, via in-class exercises
(iii) for self-study?
http://www.excelsoftware.com/quickcrcintro.html
CRC Cards generation tool
http://www.fileboost.net/directory/development/miscellaneous/quickcrc_windows/007241/review.html
http://www.freedownloadscenter.com/Programming/Misc__Programming_Tools/QuickCRC_Windows.html
http://www.freedownloadscenter.com/Programming/Misc__Programming_Tools/QuickCRC_Windows_Download.html
http://www.cs.utexas.edu/users/ndale/ObjectOriented.html
Yet to add the CRC concepts wrt Java and Ruby!!
And ii and iii

Revision as of 04:21, 21 October 2007

Introduction

   Applying the object-oriented paradigm to the development of software requires individuals and teams to think and act differently than when designing procedural projects. While proponents of the object paradigm often say identifying objects is a simple and intuitive process, experienced developers know that this is not always true. The solution is the CRC (Classes, Responsibilities, Collaboration) Card method, a proven technique for identifying classes and visualizing and testing different class-based models during the design phase. 

http://en.wikipedia.org/wiki/Class-Responsibility-Collaboration_card

Why bother about CRC cards?

   . They are portable. No computers are required so they can be used anywhere. Even away from the office.
. The allow the participants to experience first hand how the system will work. No computer tool can replace the interaction that happens by physically picking up the cards and playing the roll of that object.
. The are a useful tool for teaching people the object-oriented paradigm.
. They can be used as a methodology them selves or as a front end to a more formal methodology.

Where to learn about this new and innovative method?

   There are many websites and books that talk about this technique. Some in depth and some just enough to make life simpler for everyone. Listed below are some of the many websites that talk about this method along with the effectiveness with which each site explains this method.

Sites

1) http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/

This site gives a very good description about CRC cards. It starts with a very simple definition of CRC cards which does not right away deal with too many technicalities. It gives a succinct description of almost all the required details, starting from a brief history to the reason behind its existence. It also gives a brief description of the advantages of having CRC cards. The Tutorial section in this link gives a step by step approach on how to go about making CRC cards and also how to use them. Inference: A very introductory description to CRC cards. The right kind of site for beginners. Its disadvantage is same as its advantage, i.e it is just a basic layman way of explaining CRC cards.

2) https://olt.qut.edu.au/it/itb611/gen/index.cfm?fa=frameLink&rNum=864389
3) http://www.cs.umu.se/~jubo/Meetings/OOPSLA01/Contributions/MNordstrom.pdf

More learning with Examples on CRC Cards

. http://www.extremeprogramming.org/rules/crccards.html
. http://www.extremeprogramming.org/example/crcsim.html
. http://c2.com/doc/oopsla89/paper.html
. http://c2.com/doc/oopsla89/paper.html
. http://www.excelsoftware.com/crccards.html
. http://c2.com/cgi/wiki?CrcCard
. http://www.agilemodeling.com/artifacts/crcModel.htm
. http://www.cs.umu.se/~jubo/Meetings/OOPSLA01/Contributions/RBiddle.html

Which exercises can be used to teach them best: (i) interactively over the Web http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/CRCCards.html#Deposit http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/Statecharts.html

http://www.cs.gordon.edu/courses/cs320/ATM_Example/CRCcards.html http://www.agilemodeling.com/artifacts/crcModel.htm


(ii) to a class of students, via in-class exercises


(iii) for self-study? http://www.excelsoftware.com/quickcrcintro.html


CRC Cards generation tool

http://www.fileboost.net/directory/development/miscellaneous/quickcrc_windows/007241/review.html http://www.freedownloadscenter.com/Programming/Misc__Programming_Tools/QuickCRC_Windows.html http://www.freedownloadscenter.com/Programming/Misc__Programming_Tools/QuickCRC_Windows_Download.html


http://www.cs.utexas.edu/users/ndale/ObjectOriented.html


Yet to add the CRC concepts wrt Java and Ruby!! And ii and iii