فصل چهارم از كتاب Object-Oriented Analysis and Design with Applications نوشته گريدي بوچ، به بررسي يكي از سختترين موضوعات تفكر بشري كه تأثير شگرفي بر مدلسازي و طراحي دارد، پرداخته است. ضمن دعوت براي مطالعه اين كتاب، ترجمه و خلاصه اين فصل را كه آقاي مهندس آزادكيان زحمت آن را تقبل نمودهاند، در زير آمده است. از آقاي مهندس آزادكيان نيز سپاسگذارم كه اين متن را در اختيارم قرار دادند.
طبقهبندي (classification) توانايي مرتبسازي دانش ما نسبت به اشياء دامنه مساله است. در طراحي شيگراء، شناخت يكنواخت اشياء باعث ميشود كه وجوه اشتراك بين تجريدها و مكانيزمهاي كليدي، نمايان گشته و در نهايت برنامههاي نرم افزاري جمع و جور و با معماري سادهتر داشته باشيم. اما مشكل اينجاست كه يك راهنماي سريع و سهلالاستفاده براي اين موضوع وجود ندارد. به عبارت ديگر تشخيص اشياء و دستهبندي آنها در غالب كلاسها يك دانش تجربي است.
اهميت طبقهبندي از آنجا ناشي ميشود كه به ما كمك ميكند تا سلسله مراتب ارتباط بين اشياء را شناسايي كنيم. همچنين با استفاده از طبقهبندي، پيمانهبندي سيستم راحت تر انجام پذيرد.
ماهيت طبقهبندي يك فرآيند تكرارشونده و فزاينده است. هرچقدر دانش و تجربه تحليلگر نسبت به دامنه مساله بيشتر ميشود ، دستهبندي بهتري از اشياء و كلاسها صورت ميگيرد و راهحلهاي بعدي بهتر ارائه ميشوند. ضمن اينكه هيچ طبقهبندي كامل نميتواند باشد و بستگي به سمت و سوي نگاه تحليلگر به دامنه مساله دارد، كامل بودن آن بستگي به فراست و بصيرت خلاقانه تحليلگر دارد.
سه نوع ديدگاه عمومي براي طبقهبندي وجود دارد: در روش كلاسيك دستهبندي بر اساس يك يا چند ويژگي مشترك بين موجوديتهاي مورد مطالعه انجام ميگيرد. اما هميشه نميتوان يك دسته ويژگي را يافت نمود كه طبقهبندي اشياء را بر اساس آنها انجام داد. روش دوم طبقهبندي مفهومي اشياء است. در اين روش بخشبندي دستهها بر اساس يك مفهوم انجام شده و سپس موجوديتها با توجه به حداكثر تناسب با مفهوم ارائه شده براي هر دسته، در آن قرار ميگيرند. در اين روش يك موجوديت ممكن است در چند دسته قرار گيرد. در طراحي نرمافزارهاي پيچيده اغلب دو روش قبلي براي طبقهبندي اشياء قابل استفاده است. اما در برخي موارد صرفاً استفاده از دو روش مذكور كفايت نمينمايد. در اين حالت روش نمونه اوليه بكار برده ميشود. در اين روش يك نمونه اوليه ازهر دسته مورد نظر ساخته ميشود و از اين پس هر شي كه بيشترين شباهت به نمونه اوليه را دارد در دسته مرتبط قرار ميگيرد. عملا اين سه روش اساس تئوري تحليل شي گراء ميباشند.
مرز بين تحليل و طراحي شيءگرا خيلي شفاف نيست. در تحليل شيءگرا تمركز بر روي بررسي كامل مسئله و مدل كردن دنياي آن مسئله بر اساس كلاسها و اشياء تشكيلدهنده آن است. در طراحي تجريدها و مكانيزمهايي براي فراهم ساختن شرايط حل مسئله ابداع ميشوند.
روشهاي اثبات شدهاي در تحليل شيءگراء وجود دارد كه اساس آنها ديدگاههاي عمومي مطرح شده در طبقهبندي اشياء است. اين روشها عبارتند از: تحليل كلاسيك، تحليل رفتاري، تحليل دامنه، تحليل سناريوهاي كاربردي، كارتهاي CRC، تحليل تشريح به زبان عامه و تحليل ساختيافته. در اغلب اين روشها، سناريوها نقش كليدي را ايفا مينمايند.
در تحليل شيءگرا تجريدهاي كليدي كه شامل واژگان دامنه مسئله است نمايان ميشود. ضمن اينكه برخي تجريدهاي كليدي نيز در طي طراحي براي سادهتر كردن حل مسئله ايجاد ميشوند. مكانيزمها نيز تصميمات استراتژيك طراحي را كه نمايانگر تعامل بين اشياء مختلف دامنه مساله است مشخص مينمايند.
گزيده:
اگر نمیتواني يهترين تكنسينها(فنيها) را استخدام كني، بهترين مديران را استخدام كن! ماريا داتيز
مرجع: سايت مهندس رسولزادگان
