UML چیست؟ انواع، کاربردها و آموزش مبانی اولیه
UML به معنای زبان مدل سازی یکنواخت است که در حقیقت یک زبان مدل سازی گرافیکی استاندارد برای مستندسازی و تجسم سیستم ها است.
تعریف UML
Unified Modeling Language که معمولاً به اختصار UML نامیده می شود – یک زبان مدل سازی گرافیکی برای مستند سازی و تجسم سیستم های نرم افزاری است که انواع نمودارهای مختلف را برای تجزیه و تحلیل سازه ها و طراحی رفتار سیستم ها ارائه می دهد. در واقع می توان گفت کهUML روشی برای به تصویر کشیدن یک برنامه ی نرم افزاری با استفاده از مجموعه ای از نمودارهاست.
ایده UML به Grady Booch، James Rumbaugh و Ivar Jacobson برمی گردد که روشهای شی گرا مختلفی را در زمینه های کاربردی تعریف شده در یک رویکرد تلفیقی توسعه دادند. رویکرد three amigos که از طرف شرکت راشنال رز معرفی شد، به سرعت تبدیل به یک شبه استاندارد شد. Object Management Group (OMG) این رویکرد را در پیش گرفت و نسخه UML 1.1 را در سال 1997 منتشر کرد. نسخه فعلی UML 2.5.1 است که توسط OMG در دسامبر 2017 منتشر شده است. همپنین نسخه 2.4.1 توسط ISO (ISO/EEC 19505) استاندارد شده است.
انواع نمودارها در UML
UML 2.5 در مجموع شامل 14 نمودار است که به سه گروه یا نوع نمودار تقسیم می شوند:
- نمودارهای ساختاری یا structure diagrams
- نمودارهای رفتاری یا behavioural diagrams
- نمودارهای تعاملی یا interaction diagrams
نمودارهای ساختاری نمودارهایی هستند که یک جزء ثابت از یک سیستم را مدل می کنند، که در آن داده ها تغییر می کنند اما ساختار عناصر و روابط آنها با یکدیگر تغییر نمی کند. یک نمودار رفتاری جنبه های فردی یک سیستم، توالی فرآیندها و تغییرات آنها را در زمان اجرا به تصویر می کشد و نمودارهای تعاملی رفتار تعاملی یک سیستم و در نتیجه جریان اطلاعات در آن را تجسم می کنند.
تنوع نمودارها امکان استفاده عملی را در تمام مراحل توسعه فراهم می کند. نمودارهای UML را می توان به عنوان مثال برای مستند سازی نیازمندی ها، طراحی نرم افزار، مستندات فنی و پیاده سازی سیستم ها استفاده کرد.
انواع نمودارهای ساختاری:
- نمودار کلاس،
- نمودار شیء،
- نمودار ترکیب ساختار،
- نمودار اجزا،
- نمودار توزیع و استقرار
- نمودار پکیج
در نمودارهای کلاس، کلاس ها و روابط بین کلاس ها به صورت ارتباط، تجمیع، ترکیب یا تعمیم مدل سازی می شوند. نمودار شی یک نمونه مشخص از نمودار کلاس را در یک نقطه زمانی تعریف شده توصیف می کند. نمودار ترکیب ساختار، ساختار داخلی یک کلاس را نشان می دهد و پیکربندی عناصری را که رفتار کلاس را تعیین می کنند، به تصویر می کشد. نمودار جزء ساختار و رابطه بین اجزای مختلف یک سیستم را نشان می دهد. نمودار توزیع، منابع فیزیکی یک سیستم را توصیف می کند، مثل نودها، کامپوننت ها) و اتصلات و نمودار پکیج برای نشان دادن گروهی از عناصر مدل – بسته ها – و وابستگی های بین پکیج هاای یک مدل استفاده می شود.
انواع نمودارهای رفتاری:
- نمودار مورد استفاده،
- نمودار فعالیت و
- نمودار حالت
نمودار مورد استفاده رفتار یک سیستم را از دیدگاه کاربر به تصویر می کشد و موارد استفاده را با روابط آنها با سایر موارد استفاده و سیستم های دیگر نشان می دهد. نمودارهای فعالیت دنباله ای از فعالیت ها، فرآیندها در سیستم ها یا فرآیندهای تجاری را نشان می دهند، و نمودارهای حالت – که گاهی اوقات به عنوان نمودار وضعیت هم شناخته می شوند – دنباله ای از حالت های مجاز را به تصویر می کشد که یک شی می تواند در چرخه زندگی خود فرض کند.
انواع نمودارهای تعاملی:
- نمودار توالی،
- نمودار ارتباطی،
- نمودار زمان بندی و
- نمودار نمای کلی تعاملات
نمودار توالی چگونگی تبادل اطلاعات توسط اشیا و نمونه های آنها را را با ترتیب خاصی توصیف می کند. نمودار ارتباطی – که در نسخه های قبلی UML نمودار همکاری نامیده می شود – پیام های انتخابی را که برای توالی ارتباط بین اشیاء استفاده می شود، هایلایت می کند. نمودار زمان بندی اشیایی را نشان می دهد که در یک دوره زمانی مشخص با یکدیگر تعامل دارند و نمودار نمای کلی تعاملات، این نمودار، ترکیبی از نمودارهای فعالیت و توالی است. این نمودار یک توالی از عملیات ها را مدل می کند و می تواند تعاملات پیچیده تر را به صورت رخدادهایی قابل کنترل دربیاورد.علاوه بر این، Unified Modeling Language یک نمودار فرامدلینگ هم دارد:
- نمودار پروفایل
این نمودار برای تجسم کلیشه های تعریف شده توسط کاربر، مقادیر دارایی و محدودیت ها در سطح متامدل استفاده می شود.
مزایای Unified Modeling Language
استفاده از Unified Modeling Language مزایایی دارد، اما ممکن است در عمل دارای معایبی نیز باشد. مزایای آن عبارتند از:
- چند منظوره و انعطاف پذیر است. برای مثال، برای تجسم یا مستندسازی سیستم ها یا نرم افزارها مناسب است و می توان آن را مستقل از بخش ها یا صنایع و در تمام مراحل توسعه مورد استفاده قرار داد.
- هر نمودار عناصر مناسبی را ارائه می دهد که با آن می توان اطلاعات و زمینه های خاصی را ارائه کرد.
- استفاده از Unified Modeling Language در حالت ایدهآل منجر به درک بهتر سیستم مورد توسعه یا مستند سازی می شود و می تواند به کاهش هزینه های احتمالی، به عنوان مثال در مرحله اجرا یا نگهداری کمک کند.
- همچنین در حالت ایدهآل، همکاری همه کاربران مانند معماران نرم افزار و توسعه دهندگان نرمافزار، تحلیلگران کسب وکار، مدیران پروژه یا مدیران محصول را نیز ارتقا می دهد.
- Unified Modeling Language علاوه بر اینکه یک نمای گرافیکی از یک سیستم را ارائه می دهد، شامل قالبی برای تبادل مدل ها یا نمودارها بین ابزارهای مختلف نیز هست و این انعطاف پذیری در برنامه را افزایش می دهد.
- و در آخر، ابزارهای مختلف از تبدیل مدلهای UML دامنه گرا به مدل های فنی با تولید کد بعدی پشتیبانی می کنند.
معایب Unified Modeling Language
- مستندات UML 2.5 با 794 صفحه بسیار گسترده است. اگرچه نسخه های قبلی گسترده تر بودند، این نسخه صفحات زیاد با اطلاعات زیادی را شامل می شود. نظرات در مورد سهولت خواندن و درک مستندات متفاوت هستند.
- هیچ فرمولی برای تعیین تعداد معقولی از نمودارها برای توصیف و تجسم روابط متقابل یک سیستم یا توسعه نرم افزار وجود ندارد. همچنین تعداد ایده آلی از عناصر نمودار در هر نمودار وجود ندارد. با افزایش اندازه نمودار، وضوح و خوانایی اغلب تنزل پیدا می کند. درک روابط متقابل برای شخصی که نمودار را ایجاد می کند، احتمالاً آسان است. اما اگر برای اولین بار یک نمودار گسترده را ببنید، ممکن است نتوانید تمام اطلاعات آن را درک کنید.
- اگرچه درک روابط متقابل را می توان در زمینه های متعددی استفاده کرد، اما عمدتاً برای مستندسازی و به ندرت برای توسعه نرم افزار یا سیستم استفاده می شود.
تعداد زیادی ارائه دهنده نرم افزار UML وجود دارد و این می تواند یک مزیت یا یک نقطه ضعف باشد. از یک طرف، این تنوع انتخاب نرم افزار متناسب با شرایط و شرکت را برای شما دشوار می کند. از سوی دیگر استفاده از نرم افزار را برای انواع کاربران کم تجربه، حرفه ای یا سطح متوسط تسهیل می کند.
در آخر باید گفت این واقعیت که Unified Modelling Language شامل راهنمای توسعه سیستم ها یا نرم افزار نمی شود و یا حتی یک زبان برنامه نویسی است، نه مزیت است و نه نقص.
حتما در کنار این مطلب دانلود کنید: آموزش صفر تا صد مهندسی نرم افزار با 30 درس رایگان
این اینفوگرافیک را ذخیره داشته باشید
ویدیوی آموزشی
ابزارهای UML
طیف وسیعی از ابزارهای UML وجود دارد که به طور قابل توجهی با یکدیگر تفاوت دارند. برنامه های رایگانی برای رسم نمودارها و راه حل های حرفه ای وجود دارند که بر اساس نمودارها کد تولید می کنند. برخی از ابزارها از انواع نمودارهای انتخاب شده پشتیبانی می کنند، در حالیکه برخی دیگر از همه نمودارها پشتیبانی کامل به عمل می آورند.
برخی هم از چند نماد از مجموعه نمودارهای فردی استفاده می کنند و بعضی دیگر قادر به استفاده مجدد از عناصر تعریف شده در نمودارهای مختلف هستند. برخی از مهندسی معکوس یا رفت و برگشت پشتیبانی می کنند، برخی دیگر از XMI پشتیبانی می کنند. برخی از ابزارها برنامه های کاربردی سرویس گیرنده-سرورهستند، برخی دیگر به صورت آنلاین در مرورگر اجرا می شوند و داده ها را در یک ابر ذخیره می کنند. برخی از تبادل اطلاعات بین ابزارهای UML پشتیبانی میکنند و بعضی هم گزارش های قابل تنظیم ارائه می دهند. بنابراین اگر می خواهید از ابزار UML استفاده کنید، باید بر حسب نیاز خود تصمیم گیری کنید.
در ادامه می توانید لیستی از ابزارهای UML را مشاهده کنید:
- Astah
- BOUML
- Cacoo
- CaseComplete
- Chart Mage
- Concept Draw
- creately
- DotUML
- Diagramo
- Eclipse Papyrus
- EdrawMax
- Enterprise Architect
- GenMyModel
- GitMind
- gliffy
- IBM Engineering Systems Design Rhapsody
- IBM Rational Software Architect Designer
- JetUML
- Lucidchart
- MagicDraw
- modelio
- MS Visio
- Open ModelSphere
- PlantUML
- Pópulo
- QM
- SinelaboreRT
- Software Ideas Modeler
- smartdraw
- StarUML
- System Architect
- TextUML
- Together
- Umbrello
- UML Designer
- UML Graph
- UMLet
- UModel
- Umple
- USE
- Violet UML Editor
- Visual Paradigm
- WhiteStarUML
- xtUML
- yEd Graph Editor
- yuml
- ZenUML
دانلود کنید: آموزش پایگاه داده از صفر تا صد با 23 درس رایگان