كلیه اطلاعات این سایت مربوط به شركت طراحی سایت - شركت نرم افزاری بهپردازان می باشد


موضوع مقاله : مفاهیم مقدماتی UML :

شرح :

لزومي نداره در مورد فوائد طراحي شيء گراي يک سيستم نرم افزاري توضيحات مفصلي ارائه بشه، همگي کم و بيش در اين باب مطالعاتي داشتيد و واضح و مبرهنه که براي پياده سازي صحيح و استفاده‌ي بهينه‌ي منابع بايد طراحي ساختارمند و شيء گراي سيستم در اولويت باشه. کليد و راهيافت طراحي شيء گرا و مناسب يک سيستم نرم افزاري، «مدل» است! مدل، ابزاري «بصري» (Visual) است، براي چينش اجزاء مختلف سيستم نرم افزاري و نمايش روابط بين آن‌ها و ساير موجوديت‌هاي سيستم نرم افزاري. براي اينکه طراحي مدل براي سيستم‌هاي نرم افزاري قالبي يک‌دست و يک‌پارچه و جهان شمول داشته باشد و تبادل اطلاعات بين مدل‌هاي طراحي شده توسط افراد مختلف امکان‌پذير باشد تلاش‌هاي متعددي صورت گرفته است که UML يکي از آن‌هاست، که در حال حاضر متداول‌ترين استاندارد توليد مدل براي سيستم‌هاي نرم افزاري در سراسر دنياست. UML مخفف Unified Modeling Language است. UML براي مدل سازي سيستم‌هاي نرم افزاري و تسهيل طراحي شيء گراي سيستم 9 دياگرام (و استانداردهاي مرتبط با هرکدام) را ارائه مي‌نمايد. قبل از توضيح بيش‌تر و ارائه‌ي تعاريف مقدماتي به نکته‌ي ذيل توجه کنيد: دوستان کم تجربه اغلب سوال مي‌کنند که چرا UML مهم است و اين روزها مانور زيادي روي آن مي‌شود؟ آيا لزومي دارد که به UML مسلط شويم؟ آيا اصولا اين جانور به درد ما مي‌خورد؟ جوابي که من به اين دوستان مي‌دهم اينه: تا حالا ديده‌ايد که کسي يک ساختمان بزرگ با پيچيدگي‌هاي مختلف را «بدون نقشه» و الگوي از پيش معين شده بسازد و اين پروژه موفقيت آميز باشد؟ آيا تا کنون شنيده‌ايد که هيچ کدام از کارخانه‌هاي تلوزيون سازي بودن هيچ نقشه و پيش بيني فني موفق به ساخت تلوزيوني شوند که کار کند؟ يا اصلا ساخته شود؟ آيا تا کنون ديده‌ايد کشوري بدون سياست‌هاي کلان و بدون سنجش جوانب امر، موفق به مديريت امور داخلي خود شود؟ و ده‌ها سوال از اين دست! خواندن اين سوال‌ها بدون اينکه حتي ثانيه‌اي به جواب آن‌ها فکر کنيد، خود، جواب به سوالات اولي است که عرض کردم! UML به عنوان استانداردي براي طراحي و پيش بيني جزئيات فني سيستم نرم افزاري، نحوه‌ي ارتباط اجزاء، نوع و نحوه‌ي کارکرد قسمت‌هاي مختلف و ... يکي از ملزومات توليد کنندگان نرم افزار در دنياي امروز است. حتي اگر مستقل کار مي‌کنيد و نرم افزارهاي کوچک توليد مي‌کنيد با استفاده از UML در «اغلب» موارد به بالاترين حد بهينگي مراحل طراحي و توليد نرم افزارتون خواهيد رسيد و نکته‌ي آخر اين که UML و استانداردهاي آن و ابزارهاي آن، آن‌قدر ساده و سهل هستند که صرف هزينه و وقت براي يادگيري و تسلط بر آن‌ها نسبت به مزايائي که در قبال آن کسب خواهيد کرد تقريبا غير قابل توجه است!

  • تعريف کلمات کليدي و عناصر اصلي UML
مدل: علاوه بر تعريفي که در قسمت قبلي ارائه شد، مدل از تعدادي «شيء» تشکيل شده است.
شيء: هر يک از اجزاء نرم افزار يک «شيء» نام دارد.
کلاس: مشخصه‌ها و تعاريف عمومي يک «شيء» در کلاس مربوط به آن تعريف مي‌شود. هر شيء نمونه‌ي ساخته شده از يک کلاس است. کلاس، وظايف، قابليت‌ها، خصوصيت‌هاي آن موجوديت نرم افزاري را تعريف مي‌کند و طراح با ساختن يک نمونه از کلاس (شيء) و ارائه‌ي مقادير مرتبط با محل خاص استفاده آن يا قرار دادن آن در مسير وقايع لازم، محيط مورد نظر خود را طراحي مي‌کند. نمونه‌هاي مختلفي از يک کلاس در قالب اشياء مختلف ساخته مي‌شوند، ضمن اينکه مي‌توان يک شيء را بطور همزمان از دو يا تعداد بيشتري کلاس ساخت. يعني شي مذکور تمام مشخصه‌هاي کلاس‌هاي فوق خود را به «ارث» خواهد برد.
در يک مدل شيء گرا، شيءها از طريق Message ها با يک‌يگر ارتباط برقرار مي‌کنند. يک نمونه Message، فشرده شدن کليد چپ ماوس وقتي اشاره گر آن روي يک Button، مي‌باشد. اينجا ماوس (به عنوان يکي از اشياء موجود در هر سيستم نرم افزاري) به شيء ديگري بنام Button (که مثلا از CButton يا TButton که کلاس‌هاي فوق آن هستند ساخته شده است) يک Message ارسال نموده است.
هر شيء داراي تعدادي مشخصه يا Attribute است. مشخصه‌هاي يک شيء حاوي مقادير مختلف اجزاء آن شيء هستند. به عنوان يک مثال ساده وقتي مختصات يک کليد روي فرم 20 و 40 است، يعني مشخصه‌هاي طول و ارتفاع آن 20 و 40 هستند. (مشخصه تعاريف پيچيده‌تري هم داره که خواهيد ديد.)
اشياء «مي‌توانند» کارهايي انجام دهند که به آن‌ها اصطلاحا Behavior مي‌گويند. به عنوان مثال وقتي ماژول رمزنگاري نرم افزار شما مي‌تواند درهم سازي با متد MD5 هم انجام دهد، اين توانائي يکي از Behavior هاي اين شيء محسوب مي‌گردد.

  • دياگرام‌هاي UML
  1. Use Case Diagram
  2. Class Diagram
  3. Object Diagram
  4. Sequence Diagram
  5. Collaboration Diagram
  6. StateChart Diagram
  7. Activity Diagram
  8. Component Diagram
  9. Deployment Diagram