زبان مدل سازی UML

(UML(Unified Modeling Language یک زبان شی‌گراست،زبانی استاندارد بمنظور مشخص نمودن ، پیش بینی ، ایجاد و مستند سازی تولیدات نرم افزاری است . UML ، مجموعه ای از بهترین امکانات مهندسی را بمنظور استفاده در مدل سازی سیستم های بزرگ و پیچیده ارائه که کارآئی آنان به اثبات رسیده است . از دید مستندسازی، UML قادر است کل چرخه حیات سیستم را در قالب نمودارهایی بصورت کلی و قابل فهم ارائه نماید که میتواند مستقل از متدلوژی ساخت ارائه شود هرچند که برخی از متدلوژیها دیاگرامهای خاص خود را دارند. اما با توجه به نزدیکی متدلوژیهای شئ‌‌گرا و شباهت دیاگرامهای آنها می‌‌توان UML را در بسیاری از متدلوژی‌‌های شئ‌‌گرا استفاده نمود.UML یا زبان مدلسازی یکنواخت، زبانی است برای مشخص کردن (Specify)، مصورسازی (Visualize)، ساخت (Construction) و مستندسازی (Documenting) سیستمهای نرم‌افزاری و غیر نرم‌افزاری و نیز برای مدلسازی سیستمهای تجاری. روند شکل گیری UML دیدگاه شی‌گرایی (Object Oriented) از اواسط دهه ۱۹۷۰ تا اواخر دهه ۱۹۸۰ در حال مطرح شدن بود. در این دوران تلاشهای زیادی برای ایجاد روشهای تحلیل و طراحی شی‌گرا صورت پذیرفت. در نتیجه این تلاشها بود که در طول ۵ سال یعنی ۱۹۸۹ تا ۱۹۹۴، تعداد متدولوژیهای شی‌گرا از کمتر از ۱۰ متدولوژی به بیش از ۵۰ متدولوژی رسید. تکثر متدولوژیها و زبانهای شی‌گرایی و رقابت بین اینها به حدی بود که این دوران به عنوان ‘جنگ متدولوژیها’ لقب گرفت. از جمله متدولوژیهای پرکاربرد آن زمان می‌توان از Booch، OOSE، OMT، Fusion، Coad-Yourdan، Shlayer-Mellor وغیره نام برد. فراوانی و اشباع متدولوژیها و روشهای شی‌گرایی و نیز نبودن یک زبان مدلسازی استاندارد، باعث مشکلات فراوانی شده بود. از یک طرف کاربران از متدولوژیهای موجود خسته شده بودند، زیرا مجبور بودند از میان روشهای مختلف شبیه به هم که تفاوت کمی در قدرت و قابلیت داشتند یکی را انتخاب کنند. بسیاری از این روشها، مفاهیم مشترک شی‌گرایی را در قالبهای مختلف بیان می‌کردند که این واگرایی و نبودن توافق میان این زبانها، کاربران تازه‌کار را از دنیای شی‌گرایی زده می‌کرد و آنها را از این حیطه دور می‌ساخت. عدم وجود یک زبان استاندارد، برای فروشندگان محصولات نرم‌افزاری نیز مشکلات زیادی ایجاد کرده بود. اولین تلاشهای استانداردسازی از اکتبر ۱۹۹۴ آغاز شد، زمانی که آقای Rumbaurgh صاحب متدولوژی OMT به آقای Booch در شرکت Rational پیوست و این دو با ترکیب متدولوژیهای خود، اولین محصول ترکیبی خود به نام ‘روش یکنواخت’ را ارائه دادند. در سال ۱۹۹۵ بود که با اضافه شدن آقای Jacobson به این دو، روش یکنواخت ارائه شده با روش OOSE نیز ترکیب شد واین خود سبب ارائه UML نسخه ۰٫۹ در سال ۱۹۹۶ گردید. سپس این محصول به شرکتهای مختلفی در سراسر جهان به صورت رایگان ارائه شد و استقبال شدید شرکت‌ها از این محصول و تبلیغات گسترده شرکت Rational، سبب آن شد که گروه OMG، نسخه ۱٫۰ UML را به عنوان زبان مدلسازی استاندارد خود بپذیرد. تلاشهای تکمیلی UML استاندارد ادامه پیدا کرد و نسخه ۱٫۱ آن در سال ۱۹۹۷ و نسخه ۱٫۳ آن در سال ۱۹۹۹ ارائه گردید. در اواسط سال ۲۰۰۱ ، اعضاء OMG ، کار خود را بمنظور ارتقاء به UML 2.0 آغاز نمودند. در حال حاضر ، UML شامل مدل سازی ویژوال ، شبیه سازی و امکانات پیاده سازی است . تعداد زیادی از ابزارهای UML طراحی و در اختیار علاقه مندان قرار گرفتند . Rational Rose از شرکت Rational Software ، نرم افزار Describe Enterprise از شرکت Embarcadero Technologies و Visio از شرکت مایکروسافت . نمونه هائی از ابزارهای UML می باشند . شرکتهایی مانندUnisys, Rational, Oracle, IBM, Microsoft, HP و … از شرکتهایی هستند که ازUML استفاده کرده و آن را پشتیبانی می‌‌نمایند.ویژگی های UML به طور خلاصه : » در ورای نمادهای گرافیکی، یک سمانتیک (معناشناسی) قوی وجود دارد . »  ‘تسهیل ارتباط’ بین اعضای پروژه و یا بین تولیدکنندگان مختلف  » کمی پیچیده است به دلیل :      – فراهم کردن نمودارهایی که در هر موقعیتی و با هر ترتیبی قابل استفاده باشند      – ترکیبی است از زبانهای مختلف – حفظ سازگاری و جمع کردن خصوصیات مثبت آنها  »  موفقیت طرح را تضمین نمی‌کند  »  کاهش هزینه‌های ثابتی نظیر آموزش و استفاده مجدد از ابزارها هنگام ایجاد تغییر در سازمان و طرحها  »  یک زبان برنامه‌نویسی بصری (visual) نیست  »  مهندسی روبه‌جلو و معکوس از مهمترین قابلیتهای UML به شمار می‌روند  »  در مقایسه با زبانهای مدلسازی دیگر نمودارهای قویتر و قابل ‌فهمتری را ارائه می‌دهد  » نمودارهای آن شامل تمامی مراحل چرخه حیات تولید نرم‌افزار (تحلیل، طراحی، پیاده‌سازی و تست) می‌شود  »  برای استفاده از UML، نیاز به استفاده از یک متدولوژی خاص ندارید  » پشتیبانی از مفاهیم سطح بالای شی‌گرایی مثل Collaboration، Framework، Pattern و Component  » امکان ایجاد زبانهای مدلسازی جدیدتری (با گسترش مفاهیم پایه‌ای موجود) را فراهم می کند . و اما شرح مختصری درباره موارد ذکر شده :UML دارای ویژگیهای بارز فراوانی است که در این قسمت به آنها می‌پردازیم. UML یک زبان مدلسازی است اما چیزی فراتر از چند نماد گرافیکی است. بطوریکه در ورای این نمادها، یک سمانتیک (معناشناسی) قوی وجود دارد، بطوریکه یک تولیدکننده می‌تواند مدلهایی تولید کند که تولید‌کننده‌های دیگر و یا حتی یک ماشین آن را بخواند و بفهمد. بنابراین یکی دیگر از نقش‌های مهم UML ‘تسهیل ارتباط’ بین اعضای پروژه و یا بین تولیدکنندگان مختلف می‌باشد. این ارتباط بسیار مهم است. شاید دلیل اصلی اینکه تولید نرم‌افزار به صورت فریبنده‌ای دشوار است، همین عدم ارتباط مناسب بین اعضای پروژه باشد و اگر در تولید نرم‌افزار، بین اعضای پروژه گزارشهای هفتگی و مداوم وجود داشته باشد، بسیاری از این دشواریها برطرف خواهد شد. البته این را هم باید در نظر گرفت که UML کمی پیچیده است و این به خاطر آن است که سعی شده است نمودارهایی فراهم شود که در هر موقعیتی و با هر ترتیبی قابل استفاده باشند. دلیل دیگر پیچیدگی از آنجا ناشی می‌شود که UML ترکیبی است از زبانهای مختلف، که برای حفظ سازگاری و جمع کردن خصوصیات مثبت آنها، ناگزیر از پذیرش این پیچیدگی می‌باشد.UML موفقیت طرح را تضمین نمی‌کند، اما در عین حال خیلی چیزها را بهبود می‌بخشد. به عنوان مثال استفاده از UML، تا حد زیادی، هزینه‌های ثابتی نظیر آموزش و استفاده مجدد از ابزارها را در هنگام ایجاد تغییر در سازمان و طرحها کاهش می‌دهد. مساله دیگر اینکه، UML یک زبان برنامه‌نویسی بصری (visual) نیست، اما مدلهای آن را می‌توان مستقیماً به انواع زبانهای مختلف ارتباط داد. یعنی امکان نگاشت از مدلهای UML به کد زبانهای برنامه‌نویسی مثل Java و++ VC وجود دارد که به این عمل ‘مهندسی روبه‌جلو’ می‌گویند. عکس این عمل نیز ممکن است؛ یعنی این امکان وجود دارد که شما بتوانید از کد یک برنامه زبانی شی‌گرا، مدلهای UML معادل آن را بدست آورید. به این عمل ‘مهندسی معکوس’ می‌گویند. مهندسی روبه‌جلو و معکوس از مهمترین قابلیتهای UML به شمار می‌روند، البته نیاز به ابزار Case مناسبی دارید که از این مفاهیم پشتیبانی‌کنند.اگر با زبانهای مدلسازی دیگر کار کرده باشید، برای کار با UML مشکل چندانی نخواهید داشت. اما برای شروع کار با UML به عنوان اولین زبان مدلسازی، بهتر است فقط با نمودارهای خاصی کار کنید. برای این کار بهتر است ابتدا با نمودارهای مورد کاربرد و تعامل کار کنید و پس از مدتی کار و آشنا شدن با ویژگیهای اولیه آن، به یادگیری و استفاده از نمودارها و اجزای دیگر بپردازید. در مقایسه با زبانهای مدلسازی دیگر مثلER و زبان فلوچارتی DR، زبان UML نمودارهای قویتر و قابل ‌فهمتری را ارائه می‌دهد که شامل تمامی مراحل چرخه حیات تولید نرم‌افزار (تحلیل، طراحی، پیاده‌سازی و تست) می‌شود.یکی دیگر از ویژگیهای مهم UML این است که مستقل از متدولوژی یا فرآیند تولید نرم‌افزار می‌باشد و این بدان معنی است که شما برای استفاده از UML، نیاز به استفاده از یک متدولوژی خاص ندارید و می‌توانید طبق متدولوژی‌های قبلی خود عمل کنید با این تفاوت که مدلهایتان را با UML نمایش می‌دهید. البته مستقل‌بودن از متدولوژی و فرآیند تولید، یک مزیت برای UML می‌باشد؛ زیرا بسیاری از انواع پروژه‌ها و سیستمها نیاز به متدولوژی خاص خود دارند. اگر UML در پی پیاده کردن همه اینها بر می‌آمد، یا بسیار پیچیده می‌شد و یا استفاده خود را محدود می‌کرد. البته متدولوژیهایی براساس UML در حال شکل‌گیری می‌باشند.از دیگر ویژگیهای UML می‌توان به پشتیبانی از مفاهیم سطح بالای شی‌گرایی مثل Collaboration، Framework، Pattern و Component اشاره کرد. همچنین UML با استفاده از یک سری مکانیزمهای گسترش‌پذیر امکان می‌دهد که بتوان زبانهای مدلسازی جدیدتری (با گسترش مفاهیم پایه‌ای موجود) ایجادکرد دیاگرام هایUML UML یک ابزار ویژوال بوده و از انواع متفاوتی دیاگرام استفاده می نماید . هر یک از دیاگرام های UML ، امکان مشاهده یک سیستم نرم افزاری را از دیدگاههای متفاوت و با توجه به درجات متفاوت Abstraction در اختیار پیاده کنندگان قرار می دهد. برخی از دیاگرام های UML عبارتند از :  »   use case diagram  »   Class Diagram   »   behavior diagrams:      State Diagram   &   Activity Diagram  »  interaction diagrams:      Sequence Diagram    &     Collaboration Diagram  »   implementation diagrams:      Component Diagram    &     Deployment Diagram در پاسخ به این سئوال که ‘ چرا UML دیاگرام جریان داده ها را پشتیبانی نمی کند ؟’ باید گفت : به سادگی قرار دادن ، جریان داده ها و سایر انواع دیاگرام ها که UML شامل آن نمی شوند در خور جدا کردن در میان نمونه شئی گراء نیست . دیاگرام فعالیت برای کسانی که به DFD ها وفا دارند استفاده می شود . همچنین دیاگرام فعالیت برای مدل های کاری در حال جریان مورد استفاده است . نویسندگان UML دیاگرام های UML را برای واضح بودن پروژه های شئی گرا بوجود آورده اند . اما لزوما همه دیاگرام های دیگر را محکوم نمی کند . یکی از بزرگترین اهداف طراحی برنامه های سیستم نرم افزاری ایجاد برنامه های صحیح است به نحوی که نیازهای کاربران را بدرستی و با هزینه قابل قبولی برآورده نماید. فهم نیازهای کاربران که مستلزم ایجاد ارتباط با آنهاست، یکی از نکات کلیدی در ایجاد نرم افزارهای مفید می‌‌باشد. روشی که در UML برای نشان دادن این خواسته‌‌ها بکارگرفته می‌‌شودUse Case نام دارد. مجموعه تمامیUse Case ها، تصویر خارجی سیستم را تشکیل می‌‌دهد. یک مجموعه خوب از Use Case ها وقتی حاصل خواهد شد که طراح بداند کاربران چه چیزی از سیستم می‌‌خواهند. Use Case ها همچنین ابزار خوبی برای پیشبرد پروژه می‌‌باشند زیرا ساخت سیستم به طریق تکراری را کنترل می‌‌کند. در واقع از قابلیتهای ویژه متدلوژیهای شئ‌‌گرا این است که می‌‌توان یک مجموعه‌‌ای از نیازها را انتخاب نموده و طراحی و پیاده‌‌سازی آنرا به پیش برد و بدین صورت ساخت سیستم به‌‌صورت افزایشی را مقدور می‌‌سازد همچنین با توجه به این که تیم طراح و برنامه‌‌نویس در هر مرحله با Use Case ها سروکار دارد، در هر مرحله امکان بازگشت سریع به مراحل قبل وجود دارد. این روش خود تکنیک با ارزشی است، زیرا نتایج را مرحله به مرحله به کاربر باز خور می‌‌دهد. در ادامه این بخش، دیاگرام‌‌هایی که در UML برای مدل سازی سیستم های نرم افزاری استفاده می‌‌شود به صورت اجمالی معرفی می‌‌گردد.باز منتشر شده توسط mah_phys در وب سایت تبیان مرکز زنجان

اشتراک گذاری پست

درباره ی نویسنده

tst

مهندس احمدی-مشاور برنامه ریزی و سیستم ها-موسسه رزق حلال
این موسسه آمادگی هرگونه همکاری از ایده پردازی تا طراحی و ساخت محصولات صنعتی، شهری، فرهنگی-اجتماعی، سیستمی و … را دارد. بدین منظور می توانید با ما تماس حاصل فرمائید.
تلفن:09331188467 ایمیل: halaltec@live.com

دیدگاه

دیدگاهی ثبت نشده.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.