Admin
9th September 2008, 05:44 PM
UML دستاورد بزرگ جنگ متدها
http://www.systemgroup.net/admin/images/attachs/BA545.gif
مقدمه
زبان يكپارچهي مدلسازي يا "يوامال" محصول جريانات يكپارچهسازي است كه به دنبال "جنگ متدها" آغاز شد. Rumbough، طراح متدلوژي OMT به شركت Rational كه متعلق به Booch بود پيوست و آنها تلاش خود را براي ايجاد يك زبان مدلسازي شيگراي متحدالشكل به كار گرفتند. تركيب دو متدلوژي و ايجاد زبانUML اعتبار ويژهاي به آن بخشيد. درسال 1995، شركت Rational آماده بود تا اولين مستندات UML (نسخه 0.8) را ارايه كند، اما در يك اقدام ناگهاني امتياز شركت Jacobson را كه مالك Objectory بود، خريداري كرد. پس از اين اقدام، شركت Rational با تركيب سه متدلوژي سطح بالا قادر به ارايهي يك استاندارد در روشهاي شيگرا بود. اين نوشتار به بررسي مباني فلسفي و عملياتي اين زبان ميپردازد. متاسفانه هنگاهي كه از "يوامال" سخن به ميان ميآيد صحبتها با يوزكيس دياگرام و ساير نمودارهاي آن آغاز و به پايان ميرسد و به مباني فلسفي و اساسي آن توجهي نميشود. از اين رو در اين مقاله پيش از معرفي نمودارهاي اين زبان به بررسي مفروضات اساسي اين زبان پرداخته ميشود.
مباني فلسفي و معماري UML
"يوامال" چارچوب مفهومي مدلسازي است كه از چهار لايه و يا چهار سطح تجريد و انتزاع تشكيل شده است:
1- لايه ماوراي ماوراي مدلها[1] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftn1)
اين لايه شامل عناصر اصلي و اساسي يوامال ميشود. مفهوم "چيز[2] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftn2)" نشاندهنده هر چيزي است كه قابل تعريف است و اين سطح تجريد براي رسميسازي نشانههاي زباني يك مفهوم و تعريف زبان براي مشخص ساختن ماوراي مدلها به كار ميرود.
2- لايه ماوراي مدلها
اين لايه عناصر سازنده "يوامال" را دربرميگيرد شامل مفاهيم پاراديمهاي شيگرايي و كامپوننتگرايي. هر مفهوم در اين سطح يك "نمونه[3] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftn3)" از مفهوم چيز در ماوراي ماوراي مدلهاست و اين سطح تجريد براي رسميسازي نشانههاي زباني يك مفهوم و تعريف زبان براي مشخص ساختن مدلها به كار ميرود.
3- لايه مدلها
اين لايه مدلهاي "يوامال" را دربرميگيرد. اين سطح، سطحي است كه در آن مسايل و راهكارها ويل سيستمها شكل ميگيرند. هر مفهوم در اين سطح يك "نمونه" از سطح ماوراي مدلها است و اين سطح تجريد براي رسميسازي نشانههاي زباني يك مفهوم و تعريف زبان براي بيان عبارت در مورد يك موضوع به كار ميرود. اين سطح، سطح كلاس يا سطح نوع ناميده ميشود.
4- لايه مدلهاي كاربر
اين سطح شامل عناصري ميشود كه مدلهاي "يوامال" را تمثيل ميكند. هر مفهوم در اين سطح يك نمونه از سطح مدلهاست. اين سطح، سطح شي يا نمونه نيز ناميده ميشود.
نماهاي معماري در UML
هنگامي كه براي يك ساختمان نقشهاي طراحي ميشود برحسب ضرورت اين ساختمان از زواياي مختلف به تصوير كشيد ميشود. براي مثال در نقشه نماي بيروني غربي، نماي بيروني شرقي و نظاير آن طراحي ميشود و يا نقشهي اسكلت فلزي آن ترسيم ميشود. مدلسازي و طراحي سيستم نيز از اين قاعده مستثنا نيست. در زبان مدلسازي "يوامال اين امكان وجود كه سيستم را از زواياي مختلف مورد تجزيه و تحليل قرار دهيد. در يو ام ال به هريك از اين زواياي ديد نما و نماي معماري گفته ميشود.يا نماهاي معمارانه مدلها و دانش مربوط به سيستم را از زواياي مختلف نمايش ميدهند. هر ديدگاه از لحاظ معماري نشاندهندهي تمركز بر جهت خاصي است. زبان "يوامال" نماي معمارانه زير را شامل ميشود:
1-معماري از ديدگاه كاربر
اين ديدگاه نشاندهندهي مساله و يا راهكار از زاويهي ديد كسي است كه مساله متعلق به اوست. اين نما را نماي سناريو و يا نماي يوزكيس نيز مينامند.
2-معماري با ديدگاه ساختاري
اين نماي ابعاد ساختاري مساله را نمايش ميدهد و به نماي استاتيك و يا نماي منطقي نيز شهرت دارد.
3-معماري با ديدگاه رفتاري
اين نماي ابعاد رفتاري مساله و راهكاري را نمايش ميدهد و به نماهاي پويا، همزمان، مشاركتي و فرايندي نيز شهرت دارد.
4-معماري از ديدگاه پياده سازي
اين نما ابعاد رفتاري و ساختاري مساله و راهكاري را نمايش ميدهد و به نماهاي كامپوننت و توسعه نيز شهرت دارد.
5-معماري از ديدگاه محيطي
اين نماي ابعاد رفتاري و ساختاري مساله و راهكاري را در جايي كه سيستم بايد محقق شود، به نمايش ميگذارد و به نماهاي كامپوننت و توسعه نيز شهرت دارد.
6-ساير ديدگاهها
ديدگاههاي ديگر نيز در صورت لزوم قابل تعريف و قابل به كارگيري هستند. ديدگاههاي معماري، نشاندهندهي تمركز بر زواياي خاصي از مساله يا راهكار (به ويژه از ديدگاه ذينفعان) است.
نمودارهاي UML
نمودارهاي پديده ها را به زباني قابل فهم ترسيم مي كنند. نمودارهاي مهمUML عبارتند از :
1-مدلسازي از ديدگاه كاربر
يوزكيس دياگرام ها كاركرد يك سيستم را به تصوير مي كشند
2-مدلسازي با ديدگاه ساختاري
كلاس دياگرام هاي ساختار ايستا و استاتيك سيستم را به تصوير مي كشند
نمودارهاي شي نيز ساختار استاتيك سيستم را در يك لحظه خاص به تصوير مي كشند.
3-مدلسازي با ديدگاه رفتاري
نمودارهاي توالي ، تعامل و ارتباط ميان عناصر سيستم را نشان مي دهند
نمودارهاي همكاري نيز تعامل عناصر سيستم را از لحاظ زماني و مكاني به تصوير مي كشند.
نمودارهاي حالت ، شرايط وضعيت و پاسخ عناصر سيستم را به تصوير مي كشند
نمودارهاي فعاليت فعاليت هريك از عناصر سيستم را به تصوير مي كشند
4-مدلسازي از ديدگاه پياده ساز سيستم
نمودارهاي كا مپوننت ، سازمان اجزايي كه يك سيستم را شكل مي دهند را به تصوير مي كشد.
5-مدلسازي با ديدگاه محيطي
نمودارهاي استقرار پيكر بندي يك سيستم را نمايش مي دهند.
6- ساير نمودارها نيز هرجا كه لازم باشند، مي توان تعريف و استفاده نمود.
در ادامه به عنوان نمونه به بررسي نمودارهاي كلاس پرداخته مي شود.
نمودار كلاس
هدف نمودار كلاس به تصوير كشيدن كلاس ها در يك مدل مب باشد. در يك برنامه كاربردي شي ء گرا ، كلاس ها داراي مشخصات ( متغيرهاي اعضا ) و عمليات ( كاركرد اعضا ) و روابط باديگر كلاس ها هستند. يك آيكون كلاس يك مستطيل ساده با سه بخش است در بخش بالايي اسم كلاس مي آيد و دربخش مياني ليست مشخصات كلاس مي آيد و در بخش زيرين ليست عمليات كلاس آورده مي شود. البته در بسياري از كلاس ها دو بخش زيرين حذف مي گردد.
http://www.systemgroup.net/admin/images/attachs/shah10.gif
براي مثال در شكل زير كلاس يك دايره آورده شده است :
يك دايره را در نظر بگيرد . يك دايره با چه مشخصاتي شناخته مي شود ؟ مركز و شعاع دايره . اگر اين دو شناخته شده باشند دايره مشخص است. پس ايندو در زمره مشخصات كلاس دايره قرار مي گیرند.
http://www.systemgroup.net/admin/images/attachs/shah11.gif
روابط كلاس ها
همانگونه كه در تعريف گفته شد ، كلاس مي تواند با يكديگر روابطي داشته باشد. در ادامه اين روابط تشريح ميگرد.
1-رابطه شمول ( در برگيري )
در مثال دايره مي توان گفت هر دايره يك مركز دارد. در اينجا گفته مي شود رابطه دايره با نقطه رابطه دربرگيري است و بصورت زير نمايش داده مي شود.
http://www.systemgroup.net/admin/images/attachs/shah12.gif
شكل فلش مرتبط كننده كلاس مهم است .
همين مفهوم را مي توان با زبان برنامه نويسي نيز نشان داد. به مثال زير كه با زبان C++ نوشته شده است دقت كنيد :
http://www.systemgroup.net/admin/images/attachs/shah13.gif
2-رابطه وراثت
مفهوم اين رابطه شبيه مفهوم عاميانه وراثت است. براي مثال مثلث و مربع را در نظر بگيرد با اينكه اين دو متفاوت هستند ولي آنها را مي توان از خانواده چند ضلعي ها به شمار مي رود. بنابراين رابطه اين دو با كلاس چند ضلعي ها رابطه وراثت است. يا مربع و دايره را ميتوان از خانواده اشكال به شمار آرود.رابطه وراثت بنوعي به طبقه بندي و خانواده سازي در كلاس ها اشاره دارد.
http://www.systemgroup.net/admin/images/attachs/shah14.gif
3-رابطه تجمعي
گاهي اوقات يك كلاس از چند نمونه از يك كلاس ديگر را در بر مي گيرد. براي مثال يك پنچره چندين شكل را دربر مي گيرد. اين يك تجمعي ميان پنجره و شكل است و بصورت زير نمايش داده مي شود :
http://www.systemgroup.net/admin/images/attachs/shah15.gif
همين مفهوم را مي توان با زبان برنامه نويسي نيز نشان داد. به مثال زير كه با زبان C++ نوشته شده است دقت كنيد :
http://www.systemgroup.net/admin/images/attachs/shah16.gif
4-رابطه وابستگي
گاهي دو كلاس به يكديگر وابسته اند. به رابطه ميان كلاس Shape و كلاس Drawingcontext در شكل زير توجه كنيد.
http://www.systemgroup.net/admin/images/attachs/shah17.gif
نتيجه گيري
با توجه به ويژگيها زبان يو.ام.ال مي توان گفت اين زبان يك زبان رو به تكامل ، همه منظور، با قابليت كاربرد گسترده ، ابزارمند و استاندارد شده براي مشخص كردن ، به تصوير كشيدن ، بنا كردن و مستند كردن فرايند هاي سيستم محور مي باشد. اين زبان يك مكانيزم اساسي ارتباطي است كه سازمان ها را براي استخراج دانش و تكنولوژي استراتژيك و عملياتي توانمند مي سازد.اين دانش براي بهبود كيفيت، كاهش هزينه ، كاهش زمان تحويل به بازار و نظاير آن به كار مي رود. [1] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftnref1)meta-metamodel
[2] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftnref2)Thing
[3] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftnref3)instance
منبع: http://www.systemgroup.net (http://www.systemgroup.net/)
http://www.systemgroup.net/admin/images/attachs/BA545.gif
مقدمه
زبان يكپارچهي مدلسازي يا "يوامال" محصول جريانات يكپارچهسازي است كه به دنبال "جنگ متدها" آغاز شد. Rumbough، طراح متدلوژي OMT به شركت Rational كه متعلق به Booch بود پيوست و آنها تلاش خود را براي ايجاد يك زبان مدلسازي شيگراي متحدالشكل به كار گرفتند. تركيب دو متدلوژي و ايجاد زبانUML اعتبار ويژهاي به آن بخشيد. درسال 1995، شركت Rational آماده بود تا اولين مستندات UML (نسخه 0.8) را ارايه كند، اما در يك اقدام ناگهاني امتياز شركت Jacobson را كه مالك Objectory بود، خريداري كرد. پس از اين اقدام، شركت Rational با تركيب سه متدلوژي سطح بالا قادر به ارايهي يك استاندارد در روشهاي شيگرا بود. اين نوشتار به بررسي مباني فلسفي و عملياتي اين زبان ميپردازد. متاسفانه هنگاهي كه از "يوامال" سخن به ميان ميآيد صحبتها با يوزكيس دياگرام و ساير نمودارهاي آن آغاز و به پايان ميرسد و به مباني فلسفي و اساسي آن توجهي نميشود. از اين رو در اين مقاله پيش از معرفي نمودارهاي اين زبان به بررسي مفروضات اساسي اين زبان پرداخته ميشود.
مباني فلسفي و معماري UML
"يوامال" چارچوب مفهومي مدلسازي است كه از چهار لايه و يا چهار سطح تجريد و انتزاع تشكيل شده است:
1- لايه ماوراي ماوراي مدلها[1] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftn1)
اين لايه شامل عناصر اصلي و اساسي يوامال ميشود. مفهوم "چيز[2] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftn2)" نشاندهنده هر چيزي است كه قابل تعريف است و اين سطح تجريد براي رسميسازي نشانههاي زباني يك مفهوم و تعريف زبان براي مشخص ساختن ماوراي مدلها به كار ميرود.
2- لايه ماوراي مدلها
اين لايه عناصر سازنده "يوامال" را دربرميگيرد شامل مفاهيم پاراديمهاي شيگرايي و كامپوننتگرايي. هر مفهوم در اين سطح يك "نمونه[3] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftn3)" از مفهوم چيز در ماوراي ماوراي مدلهاست و اين سطح تجريد براي رسميسازي نشانههاي زباني يك مفهوم و تعريف زبان براي مشخص ساختن مدلها به كار ميرود.
3- لايه مدلها
اين لايه مدلهاي "يوامال" را دربرميگيرد. اين سطح، سطحي است كه در آن مسايل و راهكارها ويل سيستمها شكل ميگيرند. هر مفهوم در اين سطح يك "نمونه" از سطح ماوراي مدلها است و اين سطح تجريد براي رسميسازي نشانههاي زباني يك مفهوم و تعريف زبان براي بيان عبارت در مورد يك موضوع به كار ميرود. اين سطح، سطح كلاس يا سطح نوع ناميده ميشود.
4- لايه مدلهاي كاربر
اين سطح شامل عناصري ميشود كه مدلهاي "يوامال" را تمثيل ميكند. هر مفهوم در اين سطح يك نمونه از سطح مدلهاست. اين سطح، سطح شي يا نمونه نيز ناميده ميشود.
نماهاي معماري در UML
هنگامي كه براي يك ساختمان نقشهاي طراحي ميشود برحسب ضرورت اين ساختمان از زواياي مختلف به تصوير كشيد ميشود. براي مثال در نقشه نماي بيروني غربي، نماي بيروني شرقي و نظاير آن طراحي ميشود و يا نقشهي اسكلت فلزي آن ترسيم ميشود. مدلسازي و طراحي سيستم نيز از اين قاعده مستثنا نيست. در زبان مدلسازي "يوامال اين امكان وجود كه سيستم را از زواياي مختلف مورد تجزيه و تحليل قرار دهيد. در يو ام ال به هريك از اين زواياي ديد نما و نماي معماري گفته ميشود.يا نماهاي معمارانه مدلها و دانش مربوط به سيستم را از زواياي مختلف نمايش ميدهند. هر ديدگاه از لحاظ معماري نشاندهندهي تمركز بر جهت خاصي است. زبان "يوامال" نماي معمارانه زير را شامل ميشود:
1-معماري از ديدگاه كاربر
اين ديدگاه نشاندهندهي مساله و يا راهكار از زاويهي ديد كسي است كه مساله متعلق به اوست. اين نما را نماي سناريو و يا نماي يوزكيس نيز مينامند.
2-معماري با ديدگاه ساختاري
اين نماي ابعاد ساختاري مساله را نمايش ميدهد و به نماي استاتيك و يا نماي منطقي نيز شهرت دارد.
3-معماري با ديدگاه رفتاري
اين نماي ابعاد رفتاري مساله و راهكاري را نمايش ميدهد و به نماهاي پويا، همزمان، مشاركتي و فرايندي نيز شهرت دارد.
4-معماري از ديدگاه پياده سازي
اين نما ابعاد رفتاري و ساختاري مساله و راهكاري را نمايش ميدهد و به نماهاي كامپوننت و توسعه نيز شهرت دارد.
5-معماري از ديدگاه محيطي
اين نماي ابعاد رفتاري و ساختاري مساله و راهكاري را در جايي كه سيستم بايد محقق شود، به نمايش ميگذارد و به نماهاي كامپوننت و توسعه نيز شهرت دارد.
6-ساير ديدگاهها
ديدگاههاي ديگر نيز در صورت لزوم قابل تعريف و قابل به كارگيري هستند. ديدگاههاي معماري، نشاندهندهي تمركز بر زواياي خاصي از مساله يا راهكار (به ويژه از ديدگاه ذينفعان) است.
نمودارهاي UML
نمودارهاي پديده ها را به زباني قابل فهم ترسيم مي كنند. نمودارهاي مهمUML عبارتند از :
1-مدلسازي از ديدگاه كاربر
يوزكيس دياگرام ها كاركرد يك سيستم را به تصوير مي كشند
2-مدلسازي با ديدگاه ساختاري
كلاس دياگرام هاي ساختار ايستا و استاتيك سيستم را به تصوير مي كشند
نمودارهاي شي نيز ساختار استاتيك سيستم را در يك لحظه خاص به تصوير مي كشند.
3-مدلسازي با ديدگاه رفتاري
نمودارهاي توالي ، تعامل و ارتباط ميان عناصر سيستم را نشان مي دهند
نمودارهاي همكاري نيز تعامل عناصر سيستم را از لحاظ زماني و مكاني به تصوير مي كشند.
نمودارهاي حالت ، شرايط وضعيت و پاسخ عناصر سيستم را به تصوير مي كشند
نمودارهاي فعاليت فعاليت هريك از عناصر سيستم را به تصوير مي كشند
4-مدلسازي از ديدگاه پياده ساز سيستم
نمودارهاي كا مپوننت ، سازمان اجزايي كه يك سيستم را شكل مي دهند را به تصوير مي كشد.
5-مدلسازي با ديدگاه محيطي
نمودارهاي استقرار پيكر بندي يك سيستم را نمايش مي دهند.
6- ساير نمودارها نيز هرجا كه لازم باشند، مي توان تعريف و استفاده نمود.
در ادامه به عنوان نمونه به بررسي نمودارهاي كلاس پرداخته مي شود.
نمودار كلاس
هدف نمودار كلاس به تصوير كشيدن كلاس ها در يك مدل مب باشد. در يك برنامه كاربردي شي ء گرا ، كلاس ها داراي مشخصات ( متغيرهاي اعضا ) و عمليات ( كاركرد اعضا ) و روابط باديگر كلاس ها هستند. يك آيكون كلاس يك مستطيل ساده با سه بخش است در بخش بالايي اسم كلاس مي آيد و دربخش مياني ليست مشخصات كلاس مي آيد و در بخش زيرين ليست عمليات كلاس آورده مي شود. البته در بسياري از كلاس ها دو بخش زيرين حذف مي گردد.
http://www.systemgroup.net/admin/images/attachs/shah10.gif
براي مثال در شكل زير كلاس يك دايره آورده شده است :
يك دايره را در نظر بگيرد . يك دايره با چه مشخصاتي شناخته مي شود ؟ مركز و شعاع دايره . اگر اين دو شناخته شده باشند دايره مشخص است. پس ايندو در زمره مشخصات كلاس دايره قرار مي گیرند.
http://www.systemgroup.net/admin/images/attachs/shah11.gif
روابط كلاس ها
همانگونه كه در تعريف گفته شد ، كلاس مي تواند با يكديگر روابطي داشته باشد. در ادامه اين روابط تشريح ميگرد.
1-رابطه شمول ( در برگيري )
در مثال دايره مي توان گفت هر دايره يك مركز دارد. در اينجا گفته مي شود رابطه دايره با نقطه رابطه دربرگيري است و بصورت زير نمايش داده مي شود.
http://www.systemgroup.net/admin/images/attachs/shah12.gif
شكل فلش مرتبط كننده كلاس مهم است .
همين مفهوم را مي توان با زبان برنامه نويسي نيز نشان داد. به مثال زير كه با زبان C++ نوشته شده است دقت كنيد :
http://www.systemgroup.net/admin/images/attachs/shah13.gif
2-رابطه وراثت
مفهوم اين رابطه شبيه مفهوم عاميانه وراثت است. براي مثال مثلث و مربع را در نظر بگيرد با اينكه اين دو متفاوت هستند ولي آنها را مي توان از خانواده چند ضلعي ها به شمار مي رود. بنابراين رابطه اين دو با كلاس چند ضلعي ها رابطه وراثت است. يا مربع و دايره را ميتوان از خانواده اشكال به شمار آرود.رابطه وراثت بنوعي به طبقه بندي و خانواده سازي در كلاس ها اشاره دارد.
http://www.systemgroup.net/admin/images/attachs/shah14.gif
3-رابطه تجمعي
گاهي اوقات يك كلاس از چند نمونه از يك كلاس ديگر را در بر مي گيرد. براي مثال يك پنچره چندين شكل را دربر مي گيرد. اين يك تجمعي ميان پنجره و شكل است و بصورت زير نمايش داده مي شود :
http://www.systemgroup.net/admin/images/attachs/shah15.gif
همين مفهوم را مي توان با زبان برنامه نويسي نيز نشان داد. به مثال زير كه با زبان C++ نوشته شده است دقت كنيد :
http://www.systemgroup.net/admin/images/attachs/shah16.gif
4-رابطه وابستگي
گاهي دو كلاس به يكديگر وابسته اند. به رابطه ميان كلاس Shape و كلاس Drawingcontext در شكل زير توجه كنيد.
http://www.systemgroup.net/admin/images/attachs/shah17.gif
نتيجه گيري
با توجه به ويژگيها زبان يو.ام.ال مي توان گفت اين زبان يك زبان رو به تكامل ، همه منظور، با قابليت كاربرد گسترده ، ابزارمند و استاندارد شده براي مشخص كردن ، به تصوير كشيدن ، بنا كردن و مستند كردن فرايند هاي سيستم محور مي باشد. اين زبان يك مكانيزم اساسي ارتباطي است كه سازمان ها را براي استخراج دانش و تكنولوژي استراتژيك و عملياتي توانمند مي سازد.اين دانش براي بهبود كيفيت، كاهش هزينه ، كاهش زمان تحويل به بازار و نظاير آن به كار مي رود. [1] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftnref1)meta-metamodel
[2] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftnref2)Thing
[3] (http://www.systemgroup.net/fa/pages/print.asp?p=5.3&i=545#_ftnref3)instance
منبع: http://www.systemgroup.net (http://www.systemgroup.net/)