طبقه‌بندی(Classification)

  • یوسف مهرداد

فصل چهارم از کتاب Object-Oriented Analysis and Design with Applications نوشته گریدی بوچ، به بررسی یکی از سخت‌ترین موضوعات تفکر بشری که تأثیر شگرفی بر مدلسازی و طراحی دارد، پرداخته است. ضمن دعوت برای مطالعه این کتاب،‌ ترجمه و خلاصه این فصل را که آقای مهندس آزادکیان زحمت آن را تقبل نموده‌اند، در زیر آمده است. از آقای مهندس آزادکیان نیز سپاسگذارم که این متن را در اختیارم قرار دادند.

طبقه‌بندی (classification) توانایی مرتب‌سازی دانش ما نسبت به اشیاء دامنه مساله است. در طراحی شی‌گراء، شناخت یکنواخت اشیاء باعث می‌شود که وجوه اشتراک بین تجریدها و مکانیزمهای کلیدی، نمایان گشته و در نهایت برنامه‌‌‌های نرم افزاری جمع و جور و با معماری ساده‌تر داشته باشیم. اما مشکل اینجاست که یک راهنمای سریع و سهل‌الاستفاده برای این موضوع وجود ندارد. به عبارت دیگر تشخیص اشیاء و دسته‌بندی آنها در غالب کلاسها یک دانش تجربی است.
اهمیت طبقه‌بندی از آنجا ناشی می‌شود که به ما کمک می‌کند تا سلسله مراتب ارتباط بین اشیاء را شناسایی کنیم. همچنین با استفاده از طبقه‌بندی، پیمانه‌بندی سیستم راحت تر انجام پذیرد.
ماهیت طبقه‌بندی یک فرآیند تکرارشونده و فزاینده است. هرچقدر دانش و تجربه تحلیلگر نسبت به دامنه مساله بیشتر می‌شود ، دسته‌بندی بهتری از اشیاء و کلاسها صورت می‌گیرد و راه‌حل‌های بعدی بهتر ارائه می‌شوند. ضمن اینکه هیچ طبقه‌بندی کامل نمی‌تواند باشد و بستگی به سمت و سوی نگاه تحلیلگر به دامنه مساله دارد، کامل بودن آن بستگی به فراست و بصیرت خلاقانه تحلیلگر دارد.
سه نوع دیدگاه عمومی برای طبقه‌بندی وجود دارد: در روش کلاسیک دسته‌بندی بر اساس یک یا چند ویژگی مشترک بین موجودیت‌های مورد مطالعه انجام می‌گیرد. اما همیشه نمی‌توان یک دسته ویژگی را یافت نمود که طبقه‌بندی اشیاء را بر اساس آنها انجام داد. روش دوم طبقه‌بندی مفهومی اشیاء است. در این روش بخش‌بندی دسته‌ها بر اساس یک مفهوم انجام شده و سپس موجودیت‌ها با توجه به حداکثر تناسب با مفهوم ارائه شده برای هر دسته، در آن قرار می‌گیرند. در این روش یک موجودیت ممکن است در چند دسته قرار گیرد. در طراحی نرم‌افزارهای پیچیده اغلب دو روش قبلی برای طبقه‌بندی اشیاء قابل استفاده است. اما در برخی موارد صرفاً استفاده از دو روش مذکور کفایت نمی‌نماید. در این حالت روش نمونه اولیه بکار برده می‌شود. در این روش یک نمونه اولیه ازهر دسته مورد نظر ساخته می‌شود و از این پس هر شی که بیشترین شباهت به نمونه اولیه را دارد در دسته مرتبط قرار می‌گیرد. عملا این سه روش اساس تئوری تحلیل شی گراء می‌باشند.
مرز بین تحلیل و طراحی شیءگرا خیلی شفاف نیست. در تحلیل شیءگرا تمرکز بر روی بررسی کامل مسئله و مدل کردن دنیای آن مسئله بر اساس کلاسها و اشیاء تشکیل‌دهنده آن است. در طراحی تجریدها و مکانیزمهایی برای فراهم ساختن شرایط حل مسئله ابداع می‌شوند.
روشهای اثبات شده‌ای در تحلیل شیءگراء وجود دارد که اساس آنها دیدگاه‌های عمومی مطرح شده در طبقه‌بندی اشیاء است. این روشها عبارتند از: تحلیل کلاسیک، تحلیل رفتاری، تحلیل دامنه، تحلیل سناریوهای کاربردی، کارتهای CRC، تحلیل تشریح به زبان عامه و تحلیل ساختیافته. در اغلب این روشها، سناریوها نقش کلیدی را ایفا می‌نمایند.
در تحلیل شیءگرا تجریدهای کلیدی که شامل واژگان دامنه مسئله است نمایان می‌شود. ضمن اینکه برخی تجریدهای کلیدی نیز در طی طراحی برای ساده‌تر کردن حل مسئله ایجاد می‌شوند. مکانیزمها نیز تصمیمات استراتژیک طراحی را که نمایانگر تعامل بین اشیاء مختلف دامنه مساله است مشخص می‌نمایند.

گزیده:
اگر نمی‌‌توانی یهترین تکنسین‌ها(فنی‌ها) را استخدام کنی، بهترین مدیران را استخدام کن! ماریا داتیز

مرجع: سایت مهندس رسول‌زادگان

https://bibalan.com/?p=229
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برای خروج از جستجو کلید ESC را بفشارید