● مقدمه
زبان یکپارچه ی مدل سازی یا "یوام ال" محصول جریانات یکپارچه سازی است که به دنبال "جنگ متدها" آغاز شد. Rumbough، طراح متدلوژی OMT به شرکت Rational که متعلق به Booch بود پیوست و آن ها تلاش خود را برای ایجاد یک زبان مدل سازی شی گرای متحدالشکل به کار گرفتند. ترکیب دو متدلوژی و ایجاد زبانUML اعتبار ویژه ای به آن بخشید.
درسال 1995، شرکت Rational آماده بود تا اولین مستندات UML (نسخه 0.8) را ارایه کند، اما در یک اقدام ناگهانی امتیاز شرکت Jacobson را که مالک Objectory بود، خریداری کرد. پس از این اقدام، شرکت Rational با ترکیب سه متدلوژی سطح بالا قادر به ارایه ی یک استاندارد در روش های شی گرا بود. این نوشتار به بررسی مبانی فلسفی و عملیاتی این زبان می پردازد. متاسفانه هنگاهی که از "یوام ال" سخن به میان می آید صحبت ها با یوزکیس دیاگرام و سایر نمودارهای آن آغاز و به پایان می رسد و به مبانی فلسفی و اساسی آن توجهی نمی شود. از این رو در این مقاله پیش از معرفی نمودارهای این زبان به بررسی مفروضات اساسی این زبان پرداخته می شود.
● مبانی فلسفی و معماری UML
"یو ام ال" چارچوب مفهومی مدل سازی است که از چهار لایه و یا چهار سطح تجرید و انتزاع تشکیل شده است:
1) لایه ماورای ماورای مدل ها[1]
این لایه شامل عناصر اصلی و اساسی یو ام ال می شود. مفهوم "چیز[2]" نشان دهنده هر چیزی است که قابل تعریف است و این سطح تجرید برای رسمی سازی نشانه های زبانی یک مفهوم و تعریف زبان برای مشخص ساختن ماورای مدل ها به کار می رود.
2) لایه ماورای مدل ها
این لایه عناصر سازنده "یوام ال" را دربر می گیرد شامل مفاهیم پارادیم های شی گرایی و کامپوننت گرایی. هر مفهوم در این سطح یک "نمونه[3]" از مفهوم چیز در ماورای ماورای مدل هاست و این سطح تجرید برای رسمی سازی نشانه های زبانی یک مفهوم و تعریف زبان برای مشخص ساختن مدل ها به کار می رود.
3) لایه مدل ها
این لایه مدل های "یو ام ال" را دربرمی گیرد. این سطح، سطحی است که در آن مسایل و راهکارها ویل سیستم ها شکل می گیرند. هر مفهوم در این سطح یک "نمونه" از سطح ماورای مدل ها است و این سطح تجرید برای رسمی سازی نشانه های زبانی یک مفهوم و تعریف زبان برای بیان عبارت در مورد یک موضوع به کار می رود. این سطح، سطح کلاس یا سطح نوع نامیده می شود.
4) لایه مدل های کاربر
این سطح شامل عناصری می شود که مدل های "یو ام ال" را تمثیل می کند. هر مفهوم در این سطح یک نمونه از سطح مدل هاست. این سطح، سطح شی یا نمونه نیز نامیده می شود.
● نماهای معماری در UML
هنگامی که برای یک ساختمان نقشه ای طراحی می شود برحسب ضرورت این ساختمان از زوایای مختلف به تصویر کشید می شود. برای مثال در نقشه نمای بیرونی غربی، نمای بیرونی شرقی و نظایر آن طراحی می شود و یا نقشه ی اسکلت فلزی آن ترسیم می شود. مدل سازی و طراحی سیستم نیز از این قاعده مستثنا نیست. در زبان مدل سازی "یوام ال این امکان وجود که سیستم را از زوایای مختلف مورد تجزیه و تحلیل قرار دهید. در یو ام ال به هریک از این زوایای دید نما و نمای معماری گفته می شود. یا نماهای معمارانه مدل ها و دانش مربوط به سیستم را از زوایای مختلف نمایش می دهند. هر دیدگاه از لحاظ معماری نشان دهنده ی تمرکز بر جهت خاصی است.
▪ زبان "یو ام ال" نمای معمارانه زیر را شامل می شود:
1) معماری از دیدگاه کاربر
این دیدگاه نشان دهنده ی مساله و یا راهکار از زاویه ی دید کسی است که مساله متعلق به اوست. این نما را نمای سناریو و یا نمای یوزکیس نیز می نامند.
2) معماری با دیدگاه ساختاری
این نمای ابعاد ساختاری مساله را نمایش می دهد و به نمای استاتیک و یا نمای منطقی نیز شهرت دارد.
3) معماری با دیدگاه رفتاری
این نمای ابعاد رفتاری مساله و راهکاری را نمایش می دهد و به نماهای پویا، هم زمان، مشارکتی و فرایندی نیز شهرت دارد.
4) معماری از دیدگاه پیاده سازی
این نما ابعاد رفتاری و ساختاری مساله و راهکاری را نمایش می دهد و به نماهای کامپوننت و توسعه نیز شهرت دارد.
5) معماری از دیدگاه محیطی
این نمای ابعاد رفتاری و ساختاری مساله و راهکاری را در جایی که سیستم باید محقق شود، به نمایش می گذارد و به نماهای کامپوننت و توسعه نیز شهرت دارد.
6) سایر دیدگاه ها
دیدگاه های دیگر نیز در صورت لزوم قابل تعریف و قابل به کارگیری هستند. دیدگاه های معماری، نشان دهنده ی تمرکز بر زوایای خاصی از مساله یا راهکار (به ویژه از دیدگاه ذی نفعان) است.
● نمودارهای UML
نمودارهای پدیده ها را به زبانی قابل فهم ترسیم می کنند. نمودارهای مهم UML عبارتند از :
1) مدلسازی از دیدگاه کاربر
یوزکیس دیاگرام ها کارکرد یک سیستم را به تصویر می کشند
2) مدلسازی با دیدگاه ساختاری
کلاس دیاگرام های ساختار ایستا و استاتیک سیستم را به تصویر می کشند
نمودارهای شی نیز ساختار استاتیک سیستم را در یک لحظه خاص به تصویر می کشند.
3) مدلسازی با دیدگاه رفتاری
نمودارهای توالی ، تعامل و ارتباط میان عناصر سیستم را نشان می دهند
نمودارهای همکاری نیز تعامل عناصر سیستم را از لحاظ زمانی و مکانی به تصویر می کشند.
نمودارهای حالت ، شرایط وضعیت و پاسخ عناصر سیستم را به تصویر می کشند
نمودارهای فعالیت فعالیت هریک از عناصر سیستم را به تصویر می کشند
4) مدلسازی از دیدگاه پیاده ساز سیستم
نمودارهای کا مپوننت ، سازمان اجزایی که یک سیستم را شکل می دهند را به تصویر می کشد.
5) مدلسازی با دیدگاه محیطی
نمودارهای استقرار پیکر بندی یک سیستم را نمایش می دهند.
6) سایر نمودارها نیز هرجا که لازم باشند، می توان تعریف و استفاده نمود.
در ادامه به عنوان نمونه به بررسی نمودارهای کلاس پرداخته می شود.
● نمودار کلاس
هدف نمودار کلاس به تصویر کشیدن کلاس ها در یک مدل مب باشد. در یک برنامه کاربردی شی ء گرا ، کلاس ها دارای مشخصات ( متغیرهای اعضا ) و عملیات ( کارکرد اعضا ) و روابط بادیگر کلاس ها هستند. یک آیکون کلاس یک مستطیل ساده با سه بخش است در بخش بالایی اسم کلاس می آید و دربخش میانی لیست مشخصات کلاس می آید و در بخش زیرین لیست عملیات کلاس آورده می شود. البته در بسیاری از کلاس ها دو بخش زیرین حذف می گردد
برای مثال در شکل زیر کلاس یک دایره آورده شده است :
یک دایره را در نظر بگیرد . یک دایره با چه مشخصاتی شناخته می شود ؟ مرکز و شعاع دایره . اگر این دو شناخته شده باشند دایره مشخص است. پس ایندو در زمره مشخصات کلاس دایره قرار می گیرند.
● روابط کلاس ها
همانگونه که در تعریف گفته شد ، کلاس می تواند با یکدیگر روابطی داشته باشد. در ادامه این روابط تشریح میگرد.
1) رابطه شمول ( در برگیری )
در مثال دایره می توان گفت هر دایره یک مرکز دارد. در اینجا گفته می شود رابطه دایره با نقطه رابطه دربرگیری است و بصورت زیر نمایش داده می شود.
شکل فلش مرتبط کننده کلاس مهم است .
همین مفهوم را می توان با زبان برنامه نویسی نیز نشان داد. به مثال زیر که با زبان C++ نوشته شده است دقت کنید :
2) رابطه وراثت
مفهوم این رابطه شبیه مفهوم عامیانه وراثت است. برای مثال مثلث و مربع را در نظر بگیرد با اینکه این دو متفاوت هستند ولی آنها را می توان از خانواده چند ضلعی ها به شمار می رود. بنابراین رابطه این دو با کلاس چند ضلعی ها رابطه وراثت است. یا مربع و دایره را میتوان از خانواده اشکال به شمار آرود.رابطه وراثت بنوعی به طبقه بندی و خانواده سازی در کلاس ها اشاره دارد.
3) رابطه تجمعی
گاهی اوقات یک کلاس از چند نمونه از یک کلاس دیگر را در بر می گیرد. برای مثال یک پنچره چندین شکل را دربر می گیرد. این یک تجمعی میان پنجره و شکل است و بصورت زیر نمایش داده می شود :
همین مفهوم را می توان با زبان برنامه نویسی نیز نشان داد. به مثال زیر که با زبان C++ نوشته شده است دقت کنید :
4) رابطه وابستگی
گاهی دو کلاس به یکدیگر وابسته اند. به رابطه میان کلاس Shape و کلاس Drawingcontextدر شکل زیر توجه کنید.
▪ نتیجه گیری
با توجه به ویژگیها زبان یو.ام.ال می توان گفت این زبان یک زبان رو به تکامل ، همه منظور، با قابلیت کاربرد گسترده ، ابزارمند و استاندارد شده برای مشخص کردن ، به تصویر کشیدن ، بنا کردن و مستند کردن فرایند های سیستم محور می باشد. این زبان یک مکانیزم اساسی ارتباطی است که سازمان ها را برای استخراج دانش و تکنولوژی استراتژیک و عملیاتی توانمند می سازد.این دانش برای بهبود کیفیت، کاهش هزینه ، کاهش زمان تحویل به بازار و نظایر آن به کار می رود.
نویسنده : محمدرضا شاهینی (دانشجوی دکترای مدیریت استراتژیک)
[1] meta-metamodel
[2] Thing
[3] instance