اگر بخواهیم به زبانی بسیار ساده بگوییم، UML روشی برای به تصویر کشیدن یک برنامه‌ی نرم‌افزاری با استفاده از مجموعه‌ای از اشکال است. در این مقاله آموزش UML سعی می‌کنیم شما را با بیشتر جنبه‌های UML آشنا کنیم.

 

UML چیست؟

UML روشی برای به تصویر کشیدن یک برنامه‌ی نرم‌افزاری با استفاده از مجموعه‌ای از نمودارهاست.
UML اولین بار در سال ۱۹۹۴ توسط Grady Booch، James Rumbaugh، Ivar Jacobson و شرکت نرم‌افزاری Rational برای استفاده در طراحی شی‌گرا معرفی شد.
اما از زمان معرفی تا کنون، از آن در پروژه‌های نرم‌افزاری متنوعی استفاده شده است. در حال حاضر، Object Management Group، UML را استانداردِ مدل‌سازی تولید نرم‌افزار می‌داند.

UML مزایای بسیاری، مثل انعطاف‌پذیری دارد و می‌توانیم با آن یک سیستم را از دو جنبه‌ی ساختاری و رفتاری مدل کنیم. ابزارهای بسیاری برای رسم یک نمودار UML موجودند.

دوره های مرتبط در فرانش

 

کلمه‌ی UML به چه معناست؟

UML به معنای زبان مدل‌سازی یکنواخت (Unified Modeling Language) است. UML 2.0 نسخه‌ی اصلی UML را گسترش داد تا موارد تولید نرم‌افزار بیشتری را دربر بگیرد، مثل رویکردهای Agile. موارد بهبود در UML 2.0:

  • یکپارچگی بیشتر بین مدل‌های ساختاری ( ثل نمودار کلاس (Class Diagram)) و مدل‌های رفتاری (مثل نمودار فعالیت (Activity Diagram)).
  • افزودن قابلیت تعریف سلسله‌مراتب و تقسیم سیستم نرم‌افزاری به کامپوننت‌ها و ساب‌کامپوننت‌ها.
  • UML اصلی ۹ نمودار تعریف می‌کند. در UML 2.x این عدد به ۱۳ رسید. نمودار Communication، نمودار Composite Structure، نمودار Interaction Overview و نمودار Timing، ۴ نمودار جدید هستند. در این نسخه نمودار Statechart به State Machine تغییرنام داد. این نمودار را با نام State نیز می‌شناسند.
پیشنهاد فرانش به شما
آموزش ری اکت نیتیو برای برنامه نویسی اپلیکیشن iOS با جاوا اسکریپت

 

از UML چه استفاده‌هایی می‌شود؟

تولید نرم‌افزار

یک اپلیکیشن پیچیده‌ی سازمانی دارای تیم‌های بسیاری است که با هم در تولید آن همکاری می‌کنند. این اپلیکیشن نیازمند یک برنامه‌ریزی درست است و با پیشرفت فرایند تولید، ارتباط بین اعضای تیم‌های مختلف باید مشخص و دقیق باشد.

مصورسازی تعاملات کاربر، فرایندها و ساختار سیستم در نهایت منجر به صرفه‌جویی در زمان می‌شود و به این ترتیب می‌توانید از هماهنگی همه‌ی اعضا با هم مطمئن باشیم.

هر شکل در نمودار UML نمایانگر یک شی یا کلاس است. نکته‌ی کلیدی در استفاده از UML در تولید نرم‌افزار به هم وصل کردن این اشکال است تا از این طریق بتوانیم ارتباط اشیاء با هم و جریان داده و اطلاعات را نشان دهیم.

مدل کردن فرایند کسب‌وکار

به طور کلی می‌توان گفت که از UML در مدل‌سازی فرایند تجاری نیز استفاده می‌شود. اما مدل‌سازی فرایند کسب‌وکار چیست؟

مدل‌سازی فرایندهای کسب‌وکار، مستندسازی مجموعه‌ای از گام‌ها و اعمالی است که در یک فرایند کسب‌وکار صورت می‌گیرند.

توجه داشته باشید که UML اساساً برای مدل‌سازی فرایندهای کسب‌وکار نیست. UML به عنوان ابزاری برای تولید نرم‌افزار عرضه شد، اما بعداً مشخص شد که با استفاده از مجموعه‌ای کوچک از نمودارها می‌توان به خوبی یک فرایند کسب‌وکار را مدل کرد.
استفاده از UML برای یکسو کردن فعالیت‌های توسعه‌دهندگان نرم‌افزار و تحلیل‌گران کسب‌وکار به توسعه‌ی محصولات بسیار کمک می‌کند.

اگر می‌خواهید بیشتر درباره‌ی مدل‌سازی فرایند کسب‌وکار بدانید:

پیشنهاد می‌کنیم آموزش ۱۰ مرحله‌ای برای مدل‌‌سازی فرایند با استفاده از نمودار فعالیت UML را مشاهده نمایید.

 

 

انواع نمودار در UML

آموزش انواع نمودار UML

استانداردهای کنونی UML، ۱۳ نمودار مختلف را تعریف می‌کنند: Class (کلاس)، Activity (فعالیت)، Object (شئ)، Use Case (مورد کاربرد)، Sequence (توالی)، Package (پکیج)، State (حالت)، Component (اجزاء)، Communication (ارتباط)، Composite Structure (ترکیب ساختار)، Interaction Overview (نمای کلیِ تعاملات)، Timing (زمان‌بندی)، Deployment (استقرار و توزیع).

پیشنهاد فرانش به شما
مزایا و معایب 8 Angular

این نمودارها را به دو گروه مجزا تقسیم می‌کنند: نمودارهای ساختاری و رفتاری (یا تعاملی).

نمودارهای ساختاری

نمودارهای ساختاری جنبه‌ی استاتیک سیستم نرم‌افزاری را نشان می‌دهند. همانطور که از نامشان پیداست، این نمودارها بر ساختار اصلی سیستم متمرکز می‌شوند.
تا کنون نمودار کلاس پرکاربردترین بوده است. از دیدگاه تولید نرم‌افزار، نمودار کلاس یکی از مفیدترین نمودارهاست، چون با مدل کردن کلاس‌ها، شناسه‌ها، عملیات‌ها و روابط بین اشیاء، ساختار یک سیستم را به خوبی مشخص می‌کند.

به زبانی ساده‌تر، این نمودار می‌تواند هم جزئیات و هم نمایی کلی از ساختار سیستم را نمایش دهد.

در زیر لیست نمودارهای ساختاری را می‌بینید که در ادامه توضیحاتی را درباره‌ی هرکدام ارائه می‌دهیم.

  • نمودار کلاس
  • نمودار پکیج
  • نمودار شئ
  • نمودار اجزاء
  • نمودار ترکیب ساختار
  • نمودار استقرار و توزیع

نمودار کلاس (Class Diagram)

نمودار کلاس ستون اصلی بیشتر متدهای شی گرا مثل UML است. همان‌طور که قبلاً هم گفتیم، این نموداره ساختار استاتیک سیستم را نشان می‌دهد.

آموزش گام به گام برنامه نویسی شی گرا (OOP)

نمودار پکیج (Package Diagram)

نمودار پکیج، زیرمجموعه‌ای از نمودار کلاس است، اما گاهی برنامه‌نویسان آن را یک تکنیک مجزا درنظر می‌گیرند. این نمودار، المنت‌های یک سیستم را در گروه‌هایی مرتبط درنظر می‌گیرد تا از وابستگی‌های بین‌شان بکاهد.

انواع نمودار uml - نمودار پکیج

نمودار شئ (Object Diagram)

این نمودار ساختار استاتیک سیستم را در زمانی مشخص توصیف می‌کند. می‌توانیم از آن برای تست دقت نمودارهای کلاس استفاده کنیم.

انواع نمودار Uml -نمودار شی

نمودار اجزاء (Component Diagram)

این نمودار شیوه‌ی سازمان‌دهی اجزای فیزیکی نرم‌افزار را توصیف می‌کند، مثل سورس کد (Source Code)، کد (باینری) زمان اجرا (Run-Time (Binary) Code) و فایل‌های اجرایی (Executables).

نمودار اجزاء uml

نمودار ترکیب ساختار (Composite Structure Diagram)

این نمودار اجزای داخلی یک کلاس را نشان می‌دهد.

نمودار استقرار و توزیع (Deployment Diagram)

این نمودار منابع فیزیکی یک سیستم را توصیف می‌کند، مثل نودها (Node)، کامپوننت‌ها (Component) و اتصلات (Connection).

پیشنهاد فرانش به شما
چگونه یادگیری جاوا اسکریپت را شروع کنیم؟

نمودارهای UML رفتاری

نمودارهای رفتاری، جنبه‌های پویای یک سیستم را مصورسازی (Visualize)، مشخص (Specify)  و مستند سازی (Document) می‌کنند و می‌سازند (Construct). در زیر لیستی از نمودارهای رفتاری را می‌بینید.

  • نمودار فعالیت
  • نمودار توالی
  • نمودار مورد کاربرد
  • نمودار حالت
  • نمودار ارتباط
  • نمودار نمای کلی تعاملات
  • نمودار زمان‌بندی

همان‌طور که در شکل زیر می‌بینید، نمودار فعالیت دومین نمودار پرکاربرد UML است.

استفاده از نمودار فرآیند مدل سازی

نمودار فعالیت (Class Diagram)

این نمودار با مدل‌سازی جریان کنترل از یک فعالیت به فعالیت دیگر، ماهیت پویای یک سیستم را مدل می‌کند. یک فعالیت (Activity)، نشانگر عملیاتی روی چند کلاسِ سیستم است که منجر به تغییر حالت (State) سیستم می‌شود.
معمولاً از این نمودار برای مدل کردن جریان کاری یا فرایندهای کسب‌وکار و عملیات‌های داخلی استفاده می‌شود. (لینک شود به مقاله‌ی آموزشی ۱۰ مرحله‌ای برای مدل‌‌سازی فرایند با استفاده از نمودار فعالیت UML)

نمودار فعالیت uml

نمودار توالی (Sequence Diagram)

این نمودار تعاملات بین کلاس‌ها را در طول زمان به صورت مبادلات پیغام نشان می‌دهد.

نمودار توالی uml

نمودار مورد کاربرد (Use Case Diagram)

این نمودار با استفاده از عامل‌ها و موردهای کاربرد، عملکرد یک سیستم را مدل می‌کند.

نمودار مورد کاربرد uml

نمودار حالت (State Diagram)

نمودار Statechart، که حالا با نام نمودار  State Machine یا State شناخته می‌شود، رفتار یک سیستم را در مواجهه با یک محرک بیرونی توصیف می‌کند. از این نمودار می‌توان برای مدل کردن اشیاء Reactive (انفعالی) استفاده کرد که با وقوع رخدادهایی خاص فعال می‌شوند.

نمودار حالت uml

نمودار ارتباط (Communication Diagram)

نمودار ارتباط، تعاملات را بین اشیاء مختلف یک توالی مدل می‌کند. این نمودار هم ساختار استاتیک و هم رفتار پویای سیستم را توصیف می‌کند.
از بسیاری جهات می‌توانیم نمودار ارتباط را نسخه‌ی ساده‌تر شده‌ی یک نمودار همکاری (Collaboration Diagram) در نظر بگیریم. نمودار ارتباط در UML 2.0. معرفی شد.

نمودار نمای کلی تعاملات (Interaction Overview Diagram)

این نمودار، ترکیبی از نمودارهای فعالیت و توالی است. این نمودار یک توالی از عملیات‌ها را مدل می‌کند. با آن می‌توانید تعاملاتی پیچیده‌تر را به صورت رخدادهایی قابل کنترل دربیاورید. باید از نشانه‌گذاری‌های نمودار تعامل برای این نمودار نیز استفاده کنید. در ادامه به توضیح این نشانه‌گذاری‌ها می‌پردازیم.

پیشنهاد فرانش به شما
آموزش Node.js رایگان – راهنمای جامع مبتدیان پروژه محور

نمودار زمان‌بندی (Timing Diagram)

یک نمودار زمان‌بندی روی فرایند‌هایی متمرکز می‌شود که در دوره‌ی زمانی خاصی اتفاق می‌افتند. این نمودار، نمونه‌ای خاص از یک نمودار توالی است، با این تفاوت که نمایش گذر زمان از چپ به راست است، نه بالا به پایین.

 

نشانه‌گذاری در نمودارهای UML

همان‌طور که دیدیم، نمودارهای UML مختلفی داریم و هر کدام از این نمودارها مجموعه‌ی نشانه‌های مختص خود را دارند.

نمودار کلاس

از پرکاربردترین شروع کنیم. اغلب از نشانه‌های نمودار کلاس برای تعریف شناسه‌های یک کلاس استفاده می‌شود. مثلاً نشانه‌هایی برای کلاس‌ها و واسط‌ها داریم. هم‌چنین می‌توانیم از نشانه‌های مجزا برای نشان دادن عمیات‌ها، شناسه‌ها و مسئولیت‌های یک کلاس استفاده کنیم.

برای نوع تعریف یک کلاس می‌توانیم از نشانه‌های زیر استفاده کنیم:

نمودار کلاس UML

از خطوط نیز برای نشان دادن روابط بین اجزاء استفاده می‌کنیم. از فلش‌هایی توخالی برای نمایش Generalization (تعمیم) و Inheritance (ارث‌بری) استفاده می‌کنیم. Composition (ترکیب) را با یک لوزی توپر و Aggregation (تراکم) را با یک لوزی توخالی نشان می‌دهیم. Dependencyها را با یک فلش نقطه‌چین نشان می‌دهیم.
با استفاده از <<>> می‌توانیم Propertyهای آن Dependency را مشخص کنیم. تعدد (Multiplicity) را نیز معمولاً با نوشتن یک عدد در یک طرف فلش و * در طرف دیگر مشخص می‌کنیم.

علائم Uml

تعمیم، ارث‌بری، ترکیب، تراکم، Dependency، Property، تعدد

نمودار پکیج

نمودار پکیج دارای نشانه‌ای شبیه یک پوشه برای نمایش پکیج است.

نمودار پکیج
نام پکیج

نمودار فعالیت

نمودار فعالیت برای نشان دادن State (حالت) هر فعالیت دارای نشانه است. نشانه‌ای برای حالت اولیه و نشانه‌ای دیگر برای حالت پایانی. جریان کنترل را معمولاً با یک فلش ساده و جریان شئ را با یک فلش با دنباله‌ی نقطه‌چین نشان می‌دهیم.

نمودار فعالیت
حالت اولیه، حالت پایانی

نمودار Use Case

نمودار Use Case نیز دارای نشانه‌هایی برای نمایش عامل‌ها و موردهای کاربرد است.

 

ابزارهایی که می‌توانید از آنها برای رسم نمودارهای UML استفاده کنید

برای رسم نمودارهای UML می‌توانید از ابزارهای نرم‌افزاری بسیاری استفاده کنید. انتخاب آن بستگی به خودتان دارد. در اینجا تنها چهار نرم‌افزار معروف را معرفی می‌کنیم.

  • io
  • Lucidchart
  • Smartdraw
  • Gliffy