در تحليل و طراحي شي ءگرا پنج فعاليت اساسي زير بايد انجام شود:

  1. يافتن کلاس ـ شي ها
  2. شناسايي ساختارها
  3. تفکيک موضوعي
  4. تعريف مشخصه ها
  5. تعريف روالها
    هرچند اين فعاليت ها به مفهوم دقيق کلمه، مراحل متوالي اجراي متدولوژي نيستند و برخي از آنها را مي توان جزئاً به صورت موازي انجام داد، با اين وجود به خاطر وابستگي موضوعي فعاليت هاي پسين به فعاليت هاي پيشين و حرکت تدريجي از کليات به جزئيات مي توان آنها را هم ارز مراحل پيشرفت متدلوژي به مفهوم متداول آن شمرد.
    در اين بخش اهداف و جزئيات هر مرحله (فعاليت ) شرح داده شده است:

1.يافتن رده ـ شي ها: هدف اصلي تحليل گر در اين مرحله، کسب شناخت از قلمرو کار سيستم و تشخيص رده ها و اشيايي است که نقش اساسي در کارکرد آن بازي مي کنند. نوع اقداماتي را که در اين مرحله انجام مي شود، مي توان با اولين مراحل مدلسازي داده ها در روشهاي کلاسيک ساخت يافته مقايسه کرد. در آن روشها، تحليل گر از طريق مطالعه قلمرو کار و يا روشهايي مانند مصاحبه، مرور مدارک و… سعي مي کند هستنده هاي عمده و اساسي سيستم را شناسايي و ثبت کند. در OOA نيز وظيفه تحليل گر در اين مرحله، کشف و شناسايي رده ها و اشياي مهم سيستم است. براي اين کار او بايد مدارک موجود را مطالعه کرده، با افراد مختلفي مصاحبه کند و احياناً سيستم هاي موجود يا مرتبط را بررسي نمايد.
عمل اساسي تحليل گر، به عنوان استخراج رده ها و اشياء از قلمرو کار توصيف شده است. يک کلاس ـ شي ء که آنرا با نماد زير نشان مي دهند، واحدي است متشکل از يک کلاس و اشيايي که در آن رده قرار مي گيرند.

در اين نماد، چهار گوش داخلي که نماينده رده است، به سه قسمت تقسيم مي شود. نام کلاس در قسمت بالايي، مشخصه هاي کلاس در قسمت مياني و روالهاي کلاس در قسمت پائيني نوشته مي شود.
به طور خلاصه اصطلاحات اساسي OOA در اين زمينه را مي توان چنين تعريف کرد.

  • شيء، مدل تجريدي چيزي است که در قلمرو کار وجود دارد.
  • اطلاعاتي که در مورد هر شي ء مي خواهيم در سيستم نگهداي کنيم، مشخصه هاي شي ء مي ناميم.
  • اندرکنش ميان هر شي ء و ديگر اشياء روالها (يا خدمات ) شي ء ناميده مي شود.
  • کلاس، مجموعه اي است از اشيايي که اطلاعات و اندرکنشهاي مشترک دارند.

مهمترين و حساس ترين وظيفه تحليل گر در اين مرحله، تشخيص و شناسايي صحيح اشياء در قلمرو کار است. کد و يوردون چند ضابطه زير را به عنوان ملاکهاي تشخيص اشياء و کلاس هاي سيستم برمي شمرند :

  • ماندگاري اطلاعاتي ؛ آيا هيچ يک از داده هاي مربوط به شي ء لازم است در سيستم حفظ شود؟ اگر چنين نيست، احتمالا اين شي ء را نبايد جزء اشياء سيستم به شمار آورد.
  • ماندگاري عملياتي ؛ آيا هيچ يک از عمليات يا پردازشهاي مربوط به شي ء لازم است در سيستم حفظ شود ؟ اگر چنين نيست، احتمالا لزومي به وارد کردن شي ء در اشياء؛ سيستم نمي باشد. اگر براي شيئي، نه داده و نه پردازش ماندگاري وجود نداشته باشد، يقيناً مي توان آن را از مجموعه اشياء سيستم ها خارج کرد.
  • بيش از يک مشخصه ؛ اشياء سيستم معمولا بايد بيش از يک مشخصه داشته باشند.
  • بيش از يک شي ء در يک کلاس ؛ آيا همه مشخصه هاي تعيين شده، به همه اشياء عضو کلاس قابل اطلاق هستند ؟ اگر چنين نباشد، احتمالا بايد آن کلاس را به دو يا چند کلاس (به صورت سلسله مراتبي ) تجزيه کرد.
  • قابليت اطلاق عمليات ؛ آيا همه عمليات (خدمات ) تعيين شده، به همه اشياء عضو کلاس قابل انتساب هستند ؟ اگر چنين نباشد، مشابه ضابطه فوق، بايد کلاس هاي فرعي ايجاد کرد.
  • وجود اشياء در قلمرو کار ؛ همه اشياء سيستم را بايد از قلمرو کار (مسأله ) استخراج کرد و نه از راه حلهاي مسأله. به عنوان مسأله در يک سيستم ثبت نام دانشگاه، “دانشجو” شيي است که در قلمرو کار مستقيماً وجود دارد. اما چيزي مانند “فرم ثبت نام “، عليرغم آنکه در جهان خارجي واقعاً وجود دارد، وجودش وابسته به نحوه پياده سازي يکي از راه حلهاي سيستم است. به عبارت ديگر مي توان راه حلي براي پياده سازي سيستم تصور کرد که در آن شي ء “فرم ثبت نام ” وجود نداشته باشد.
  • اجتناب از اشياء مشتق ؛ اشياء مشتق، اشيايي هستند که مي توان آنها را از ساير اشياء يا مشخصه ها استخراج کرد، اينگونه اشياء را نبايد جزو اشياء واقعي سيستم به شمار آورد.

نتيجه اين مرحله، تهيه فهرست کلاس ها و اشياء سيستم است که به نحو مناسبي مي توان آنها را در ارتباط با يکديگر مستند کرد.

  1. شناسايي ساختارها: کلاس ها و اشياء پايه اي سيستم که در مرحله قبل فهرست آنها تهيه شده، در اين مرحله بايد در يک مدل رابطه اي سازماندهي شوند. به اين معني که ارتباط ميان آنها کشف و مدلسازي شود.
    کود و يوردون دو شکل اساسي زير را براي ارتباط ميان کلاس ها پيشنهاد کرده اند.

ساختار عموم ـ خصوص ؛ در اين نوع ارتباط که آن را به اختصار gen-spec مي نامند، يک کلاس عمومي به دو يا چند کلاس فرعي مرتبط مي شود. به عنوان مثال کلاس “کارکنان ” را مي توان به دو کلاس “کارکنان تمام وقت ” و “کارکنان پاره وقت ” تجزيه کرد. اين نوع رابطه بين کلاس ها را با نماد زير نشان مي دهند.

ساختار کل – جزء ؛ رابطه کل ـ جزء ميان چند کلاس برقرار است که يکي از آنها دربرگيرنده بقيه محسوب مي شود. اين رابطه ممکن است به يکي از اشکال زير برقرار باشد:

o رابطه يک کلاس کلي و اجزاء تشکيل دهنده آن ؛ مثلا بين يک سازمان و واحدهاي مختلف آن
o رابطه ظرف و مظروف ؛ مثلا بين يک کلاس درس و صندلي هاي موجود در آن
o رابطه مجموعه و اعضاي آن ؛ مثلا يک دانشکده و اساتيد آن
ساختار کل ـ جزء با نماد زير نشان داده مي شود.

در اين نمودار علاوه بر رابطه بين کل و جزء، چندبه چندي آن نيز نشان داده مي شود.
در پايان مرحله شناسايي ساختارها، مدل کلي ساختار روابط بين کلاس ها ساخته شده و مستند مي گردد.

  1. تفکيک موضوعي: تفکيک موضوعي که مي توان آن را شناسايي موضوعات نيز نام نهاد، مرحله اي است که در آن مدل توليد شده در مراحل قبل که شامل فهرست و ساختار کلاس ها و اشياء سيستم است، به محدوده هاي موضوعي مختلف تفکيک مي شود. اين کار ممکن است در سيستم هاي کوچک تر ضروري نباشد، اما در سيستم هايي که بيش از 20 تا 30 کلاس در آنها شناسايي شده است، بدون تفکيک موضوعي نمي توان تحليل و طراحي را به خوبي پيش برد.
    مرحله تفکيک موضوعي در روش OOA مشابه خوشه سازي فعاليت ها در رهيافت هاي سنتي مي باشد. تحليل گر بايد با دريافت نظرات کاربران، کلاس هاي شناسايي شده را در چند محدوده موضوعي شامل کلاس هاي مرتبط با هم تقسيم بندي کند. حاصل کار در اين مرحله به توليد مدلي منجر مي شود که شامل فهرست محدوده هاي موضوعي و کلاس هاي موجود در هر محدوده است. اين مدل را لايه موضوعي سيستم مي نامند که مکمل لايه ساختاري سيستم است.
    به عنوان مثالي از لايه موضوعي در يک سيستم، مي توان به تقسيم بندي تراکنش هاي يک مؤسسه بانکي به دريافت، پرداخت، گشايش اعتبار و تهاتر اشاره کرد.
    بايد توجه کرد لايه موضوعي، خود ساختاري سلسله مراتبي دارد. يعني هر موضوع ممکن است از چند موضوع فرعي تشکيل شده باشد و همين طور الي آخر.
  2. شناسايي مشخصه ها: در اين مرحله مشخصه هاي کلاس ـ شي ءها تعيين مي گردد. اين مرحله با مرحله تعيين مشخصه ها در مدل داده اي روشهاي سنتي متناظر است. نام مشخصه هايي که براي هر شي ء تعريف مي شوند، در قسمت مياني نماد کلاس ـ شي ء نوشته مي شود.
    تعيين رابطه بين کلاس ـ شي ءها مهم در همين مرحله انجام مي شود. اگر بين دو کلاس ـ شي ء ارتباطي وجود داشته باشد (در واقع بين مصداقهاي آنها رابطه اي باشد)، اين ارتباط با خطي که بين نماد دو کلاس ـ شي ء کشيده مي شود، نمايش داده مي شود. چندبه چندي رابطه نيز در دو انتهاي خط فاصل نوشته مي شود.
    در OOA ملاحظات مربوط به پياده سازي بانک اطلاعاتي، مانند بهنجارسازي يا تعيين کليدها در مراحل بعد (طراحي ) انجام مي شود.
  3. تعريف فرآيند: منظور از فرآيند (که در روشهاي مختلف شي ءگرايي به آن خدمت ، روش يا رفتار نيز گفته مي شود) عملياتي است که يک شي ء در پاسخ به دريافت يک پيام انجام مي دهد. در اين مرحله از OOA، فرآيندهاي کلاس ـ شي ءها تعيين مي گردد. يک راه براي تعيين
    فرآيندهاي لازم، تعريف فرآيندهايي است که براي تغيير دادن حالت شي ءها لازم به نظر مي رسد. به اين منظور مي توان به مدل داده اي تهيه شده در مرحله قبل مراجعه کرد. برخي از فرآيندهاي ديگر از اعمال فرآيندهاي اساسي ايجاد، حذف و دسترسي به شي ءهاي مختلف حاصل ميشود.
    غير از اين اعمال اساسي، بقيه فرآيندها به دو دسته کلي تقسيم مي شوند :
  • فرآيندهاي محاسباتي
  • فرآيندهاي مرتبط با محيط خارجي، يعني فرآيندهايي براي کشف و پاسخگويي به رويدادها.

بعد از تهيه فهرست فرآيندها، هر فرآيند با استفاده از ابزاري مانند انگليسي ساخت يافته يا نموداردهاي روندنما کاملا توصيف مي شود.
با پايان گرفتن اين مرحله، مدل اشياء کامل مي شود و فعاليت هاي OOA خاتمه مي يابد. مي توان از نمادها و روشهاي OOA در مرحله طراحي نيز استفاده کرد، هرچند اين مرحله در OOA پوشش داده نمي شود

 

در تحليل و طراحي شي ءگرا پنج فعاليت اساسي زير بايد انجام شود:

  1. يافتن کلاس ـ شي ها
  2. شناسايي ساختارها
  3. تفکيک موضوعي
  4. تعريف مشخصه ها
  5. تعريف روالها
    هرچند اين فعاليت ها به مفهوم دقيق کلمه، مراحل متوالي اجراي متدولوژي نيستند و برخي از آنها را مي توان جزئاً به صورت موازي انجام داد، با اين وجود به خاطر وابستگي موضوعي فعاليت هاي پسين به فعاليت هاي پيشين و حرکت تدريجي از کليات به جزئيات مي توان آنها را هم ارز مراحل پيشرفت متدلوژي به مفهوم متداول آن شمرد.
    در اين بخش اهداف و جزئيات هر مرحله (فعاليت ) شرح داده شده است:

1.يافتن رده ـ شي ها: هدف اصلي تحليل گر در اين مرحله، کسب شناخت از قلمرو کار سيستم و تشخيص رده ها و اشيايي است که نقش اساسي در کارکرد آن بازي مي کنند. نوع اقداماتي را که در اين مرحله انجام مي شود، مي توان با اولين مراحل مدلسازي داده ها در روشهاي کلاسيک ساخت يافته مقايسه کرد. در آن روشها، تحليل گر از طريق مطالعه قلمرو کار و يا روشهايي مانند مصاحبه، مرور مدارک و… سعي مي کند هستنده هاي عمده و اساسي سيستم را شناسايي و ثبت کند. در OOA نيز وظيفه تحليل گر در اين مرحله، کشف و شناسايي رده ها و اشياي مهم سيستم است. براي اين کار او بايد مدارک موجود را مطالعه کرده، با افراد مختلفي مصاحبه کند و احياناً سيستم هاي موجود يا مرتبط را بررسي نمايد.
عمل اساسي تحليل گر، به عنوان استخراج رده ها و اشياء از قلمرو کار توصيف شده است. يک کلاس ـ شي ء که آنرا با نماد زير نشان مي دهند، واحدي است متشکل از يک کلاس و اشيايي که در آن رده قرار مي گيرند.

در اين نماد، چهار گوش داخلي که نماينده رده است، به سه قسمت تقسيم مي شود. نام کلاس در قسمت بالايي، مشخصه هاي کلاس در قسمت مياني و روالهاي کلاس در قسمت پائيني نوشته مي شود.
به طور خلاصه اصطلاحات اساسي OOA در اين زمينه را مي توان چنين تعريف کرد.

  • شيء، مدل تجريدي چيزي است که در قلمرو کار وجود دارد.
  • اطلاعاتي که در مورد هر شي ء مي خواهيم در سيستم نگهداي کنيم، مشخصه هاي شي ء مي ناميم.
  • اندرکنش ميان هر شي ء و ديگر اشياء روالها (يا خدمات ) شي ء ناميده مي شود.
  • کلاس، مجموعه اي است از اشيايي که اطلاعات و اندرکنشهاي مشترک دارند.

مهمترين و حساس ترين وظيفه تحليل گر در اين مرحله، تشخيص و شناسايي صحيح اشياء در قلمرو کار است. کد و يوردون چند ضابطه زير را به عنوان ملاکهاي تشخيص اشياء و کلاس هاي سيستم برمي شمرند :

  • ماندگاري اطلاعاتي ؛ آيا هيچ يک از داده هاي مربوط به شي ء لازم است در سيستم حفظ شود؟ اگر چنين نيست، احتمالا اين شي ء را نبايد جزء اشياء سيستم به شمار آورد.
  • ماندگاري عملياتي ؛ آيا هيچ يک از عمليات يا پردازشهاي مربوط به شي ء لازم است در سيستم حفظ شود ؟ اگر چنين نيست، احتمالا لزومي به وارد کردن شي ء در اشياء؛ سيستم نمي باشد. اگر براي شيئي، نه داده و نه پردازش ماندگاري وجود نداشته باشد، يقيناً مي توان آن را از مجموعه اشياء سيستم ها خارج کرد.
  • بيش از يک مشخصه ؛ اشياء سيستم معمولا بايد بيش از يک مشخصه داشته باشند.
  • بيش از يک شي ء در يک کلاس ؛ آيا همه مشخصه هاي تعيين شده، به همه اشياء عضو کلاس قابل اطلاق هستند ؟ اگر چنين نباشد، احتمالا بايد آن کلاس را به دو يا چند کلاس (به صورت سلسله مراتبي ) تجزيه کرد.
  • قابليت اطلاق عمليات ؛ آيا همه عمليات (خدمات ) تعيين شده، به همه اشياء عضو کلاس قابل انتساب هستند ؟ اگر چنين نباشد، مشابه ضابطه فوق، بايد کلاس هاي فرعي ايجاد کرد.
  • وجود اشياء در قلمرو کار ؛ همه اشياء سيستم را بايد از قلمرو کار (مسأله ) استخراج کرد و نه از راه حلهاي مسأله. به عنوان مسأله در يک سيستم ثبت نام دانشگاه، “دانشجو” شيي است که در قلمرو کار مستقيماً وجود دارد. اما چيزي مانند “فرم ثبت نام “، عليرغم آنکه در جهان خارجي واقعاً وجود دارد، وجودش وابسته به نحوه پياده سازي يکي از راه حلهاي سيستم است. به عبارت ديگر مي توان راه حلي براي پياده سازي سيستم تصور کرد که در آن شي ء “فرم ثبت نام ” وجود نداشته باشد.
  • اجتناب از اشياء مشتق ؛ اشياء مشتق، اشيايي هستند که مي توان آنها را از ساير اشياء يا مشخصه ها استخراج کرد، اينگونه اشياء را نبايد جزو اشياء واقعي سيستم به شمار آورد.

نتيجه اين مرحله، تهيه فهرست کلاس ها و اشياء سيستم است که به نحو مناسبي مي توان آنها را در ارتباط با يکديگر مستند کرد.

  1. شناسايي ساختارها: کلاس ها و اشياء پايه اي سيستم که در مرحله قبل فهرست آنها تهيه شده، در اين مرحله بايد در يک مدل رابطه اي سازماندهي شوند. به اين معني که ارتباط ميان آنها کشف و مدلسازي شود.
    کود و يوردون دو شکل اساسي زير را براي ارتباط ميان کلاس ها پيشنهاد کرده اند.

ساختار عموم ـ خصوص ؛ در اين نوع ارتباط که آن را به اختصار gen-spec مي نامند، يک کلاس عمومي به دو يا چند کلاس فرعي مرتبط مي شود. به عنوان مثال کلاس “کارکنان ” را مي توان به دو کلاس “کارکنان تمام وقت ” و “کارکنان پاره وقت ” تجزيه کرد. اين نوع رابطه بين کلاس ها را با نماد زير نشان مي دهند.

ساختار کل – جزء ؛ رابطه کل ـ جزء ميان چند کلاس برقرار است که يکي از آنها دربرگيرنده بقيه محسوب مي شود. اين رابطه ممکن است به يکي از اشکال زير برقرار باشد:

o رابطه يک کلاس کلي و اجزاء تشکيل دهنده آن ؛ مثلا بين يک سازمان و واحدهاي مختلف آن
o رابطه ظرف و مظروف ؛ مثلا بين يک کلاس درس و صندلي هاي موجود در آن
o رابطه مجموعه و اعضاي آن ؛ مثلا يک دانشکده و اساتيد آن
ساختار کل ـ جزء با نماد زير نشان داده مي شود.

در اين نمودار علاوه بر رابطه بين کل و جزء، چندبه چندي آن نيز نشان داده مي شود.
در پايان مرحله شناسايي ساختارها، مدل کلي ساختار روابط بين کلاس ها ساخته شده و مستند مي گردد.

  1. تفکيک موضوعي: تفکيک موضوعي که مي توان آن را شناسايي موضوعات نيز نام نهاد، مرحله اي است که در آن مدل توليد شده در مراحل قبل که شامل فهرست و ساختار کلاس ها و اشياء سيستم است، به محدوده هاي موضوعي مختلف تفکيک مي شود. اين کار ممکن است در سيستم هاي کوچک تر ضروري نباشد، اما در سيستم هايي که بيش از 20 تا 30 کلاس در آنها شناسايي شده است، بدون تفکيک موضوعي نمي توان تحليل و طراحي را به خوبي پيش برد.
    مرحله تفکيک موضوعي در روش OOA مشابه خوشه سازي فعاليت ها در رهيافت هاي سنتي مي باشد. تحليل گر بايد با دريافت نظرات کاربران، کلاس هاي شناسايي شده را در چند محدوده موضوعي شامل کلاس هاي مرتبط با هم تقسيم بندي کند. حاصل کار در اين مرحله به توليد مدلي منجر مي شود که شامل فهرست محدوده هاي موضوعي و کلاس هاي موجود در هر محدوده است. اين مدل را لايه موضوعي سيستم مي نامند که مکمل لايه ساختاري سيستم است.
    به عنوان مثالي از لايه موضوعي در يک سيستم، مي توان به تقسيم بندي تراکنش هاي يک مؤسسه بانکي به دريافت، پرداخت، گشايش اعتبار و تهاتر اشاره کرد.
    بايد توجه کرد لايه موضوعي، خود ساختاري سلسله مراتبي دارد. يعني هر موضوع ممکن است از چند موضوع فرعي تشکيل شده باشد و همين طور الي آخر.
  2. شناسايي مشخصه ها: در اين مرحله مشخصه هاي کلاس ـ شي ءها تعيين مي گردد. اين مرحله با مرحله تعيين مشخصه ها در مدل داده اي روشهاي سنتي متناظر است. نام مشخصه هايي که براي هر شي ء تعريف مي شوند، در قسمت مياني نماد کلاس ـ شي ء نوشته مي شود.
    تعيين رابطه بين کلاس ـ شي ءها مهم در همين مرحله انجام مي شود. اگر بين دو کلاس ـ شي ء ارتباطي وجود داشته باشد (در واقع بين مصداقهاي آنها رابطه اي باشد)، اين ارتباط با خطي که بين نماد دو کلاس ـ شي ء کشيده مي شود، نمايش داده مي شود. چندبه چندي رابطه نيز در دو انتهاي خط فاصل نوشته مي شود.
    در OOA ملاحظات مربوط به پياده سازي بانک اطلاعاتي، مانند بهنجارسازي يا تعيين کليدها در مراحل بعد (طراحي ) انجام مي شود.
  3. تعريف فرآيند: منظور از فرآيند (که در روشهاي مختلف شي ءگرايي به آن خدمت ، روش يا رفتار نيز گفته مي شود) عملياتي است که يک شي ء در پاسخ به دريافت يک پيام انجام مي دهد. در اين مرحله از OOA، فرآيندهاي کلاس ـ شي ءها تعيين مي گردد. يک راه براي تعيين
    فرآيندهاي لازم، تعريف فرآيندهايي است که براي تغيير دادن حالت شي ءها لازم به نظر مي رسد. به اين منظور مي توان به مدل داده اي تهيه شده در مرحله قبل مراجعه کرد. برخي از فرآيندهاي ديگر از اعمال فرآيندهاي اساسي ايجاد، حذف و دسترسي به شي ءهاي مختلف حاصل ميشود.
    غير از اين اعمال اساسي، بقيه فرآيندها به دو دسته کلي تقسيم مي شوند :
  • فرآيندهاي محاسباتي
  • فرآيندهاي مرتبط با محيط خارجي، يعني فرآيندهايي براي کشف و پاسخگويي به رويدادها.

بعد از تهيه فهرست فرآيندها، هر فرآيند با استفاده از ابزاري مانند انگليسي ساخت يافته يا نموداردهاي روندنما کاملا توصيف مي شود.
با پايان گرفتن اين مرحله، مدل اشياء کامل مي شود و فعاليت هاي OOA خاتمه مي يابد. مي توان از نمادها و روشهاي OOA در مرحله طراحي نيز استفاده کرد، هرچند اين مرحله در OOA پوشش داده نمي شود