Объектіге бағытталған бағдарламалауда CRC карталары
Class-responsibility-collaboration card
Объектілі бағдарламалауда CRC карталары – жүйе құрылымын жобалауға арналған тез ойын-сауық құралы. Сыныптарды анықтауға, өзара әрекеттесуді көрсетуге көмектеседі.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Сыныптық жауапкершілік және ынтымақтастық (CRC) карталары – нысанаға бағытталған бағдарламалық құралдарды жобалауда қолданылатын идеялар жинау құралы. Оларды бастапқыда Уорд Каннингэм мен Кент Бек оқу құралы ретінде ұсынған, бірақ олар тәжірибелі дизайнерлердің арасында да танымал және жоғары дәрежелі бағдарламалаушылар ұсынады. Автор Мартин Фаулер CRC карталарының көбінесе мүмкін болатын өзара әрекеттесулерді жылдам ойлап табуға көмектесетінін, себебі олар көптеген сурет салу және түзетулерден сақтайтынын жазған. CRC карталарымен жұмыс істегеннен кейін, анықталған өзара әрекеттесулерді бейнелеу үшін тізбек диаграммаларын жасауға болады. CRC карталары жүйе және бағдарламалық құралдарды әзірлеудің жобалау кезеңінде жиі қолданылады, пайдалану сценарийлерінің сипаттамаларын сынып диаграммаларына ауыстыруға көмектеседі, бұл толыққанды түсінікпен тегіс өтуге және әзірлеушілерге байланыстылығы төмен және үйлесімділігі жоғары шешімдерді жүзеге асыруға мүмкіндік береді. CRC карталары әдетте индекс карталарынан жасалады. Идеялар жинау отырысының қатысушылары өз жобаларының әрбір маңызды класы/объектісі үшін бір CRC картасын жасайды. Карта үш бөлікке бөлінеді:
Class responsibility collaboration (CRC) cards are a brainstorming tool used in the design of object oriented software. They were originally proposed by Ward Cunningham and Kent Beck as a teaching tool but are also popular among expert designers and recommended by extreme programming practitioners. Author Martin Fowler has written that CRC cards may be a sensible means by which multiple alternative interactions may be quickly devised, as they avoid a great deal of drawing and erasing. CRC card sessions may be followed by the creation of sequence diagrams to capture interactions that are identified. CRC cards are frequently employed during the design phase of system and software development to transition use case descriptions into class diagrams, allowing a smoother transition with a greater overview and permitting developers to implement solutions with low binding and high cohesion. CRC cards are usually created from index cards. Members of a brainstorming session will write one CRC card for each relevant class/object of their design. The card is partitioned into three areas:
Картаның жоғарғы жағында – сыныптың атауы,
Сол жағында – сыныптың жауапкершіліктері,
Оң жағында – сыныптың жауапкершіліктерін орындау үшін өзара әрекеттесетін серіктестер (басқа сыныптар).
On top of the card, the class name
On the left, the responsibilities of the class
On the right, collaborators (other classes) with which the class interacts to fulfill its responsibilities
Шағын карталарды пайдалану жобаның күрделілігін азайтады, сыныптардың жауапкершіліктерін шектейді және дизайнерлерді сыныптардың маңызды аспектілеріне назар аударуға, оларды жүзеге асыру егжей-тегжейлеріне тоқталмай, көмектеседі. Карталар жылдам жылжымалы болғандықтан, оларды үстелге қойып, жобаны талқылау кезінде орын аударыстыру оңай.
Using small cards minimizes the complexity of the design, reduces class responsibilities and keeps designers focused on the essentials of the classes without exploring implementation details. Because the cards are portable, they can easily be laid out on a table and rearranged while discussing a design.
CRC карталарын жасау
CRC карталарын жасау әдетте маңызды актерлер мен олардың іс-әрекеттерін анықтайтын сценарий жазудан басталады. Сценарийден есімдер сыныптарға, етістіктер жауапкершіліктерге айналады, ал серіктестер – бұл картаның өзара әрекеттесетін басқа карталары.
Creation of CRC cards normally begins with writing a scenario that identifies the major actors and actions. From the scenario, nouns should become classes, verbs become responsibilities and collaborators are the other cards with which the card will interact.