بنیانهای مدلسازی و UML
1. مدلها چیستند؟
مدل یک توصیف کامل یک سیستم از دیدگاه خاصیو به عنوان یک نمایش سادهشدهای از واقعیت. شما مدلها را میسازید زیرا سیستمهای پیچیده نمیتوانند به طور کامل در کلیت خود درک شوند.
چهار هدف اصلی مدلسازی:
-
تصویرسازییک سیستم را به صورت مورد نظر بینیم.
-
تعیین کردنساختار یا رفتار یک سیستم را.
-
ارائه یک الگوبرای راهنمایی در ساخت سیستم.
-
مستندسازیتصمیمات طراحی.
چهار اصل مدلسازی
-
مدلی که انتخاب میکنید به طور مستقیم بر نحوه رویکرد به یک مسئله تأثیر میگذارد.
-
هر مدل میتواند در سطوح مختلف دقت بیان شود.
-
موثرترین مدلها به طور نزدیک به واقعیت باقی میمانند.
-
هیچ مدل تکی کافی نیست; سیستمهای پیچیده نیاز به چندین دیدگاه دارند.
UML چیست؟
این زبان مدلسازی یکپارچه (UML)زبان گرافیکی استانداردی است که توسط گروه مدیریت شیء (OMG). به طور صریح روششناسی یا روشی نیست, بلکه یک مشخصات فنی و گرافیکی است که برای استفاده میشود:
«تصویرسازی، تعریف، ساخت و مستندسازی اجناس یک سیستم مبتنی بر نرمافزار.»
UML یک قالب جهانی برای عناصر مفهومی (فرآیندهای کسبوکار، عملکردهای سیستم) و پیادهسازیهای واقعی (دستورات کد، طرحهای پایگاه داده، اجزای قابل استفاده مجدد) فراهم میکند.

چهار ستون اصلی UML
| هدف | توضیحات |
|---|---|
| تصویرسازی | مطمئن میشود که تمام ذینفعان از زبان یکسانی استفاده کنند. مدلهاي صریح اشتباهات ارتباطی را حذف کرده و جنبههای سیستم را که بدون مدلسازی نامشخص هستند، آشکار میکنند. |
| تعریف کردن | تعریفهای دقیق، بدون ابهام و کاملی از سیستم ایجاد میکند. |
| ساخت | مستقیماً به زبانهای برنامهنویسی (جاوا، سی++، وی بی)، جداول RDBMS یا ذخیرهسازیهای OODBMS مربوط میشود. پشتیبانی میکند ازمهندسی پیشرو (مدل → کد) و مهندسی معکوس (کد → مدل). |
| مستندسازی | معماری سیستم، الزامات، برنامههای آزمون، برنامههای پروژه و مدیریت انتشار را ثبت میکند. |
2. اکوسیستم نمودارهای UML
UML 2.2 تعریف میکند 14 نوع نمودار، که به دو گروه اصلی تقسیم میشوند:
-
مدلهاي ساختاری (معماری ثابت)
-
مدلهاي رفتار و تعامل (فرآیندهای پویا)
نمودارهای مختلف دیدگاههای متفاوت ذینفعان را پوشش میدهند:
-
نمای مورد استفاده: عملکرد کاربر نهایی
-
نمای منطقی: تحلیلگران و طراحان (ساختار سیستم)
-
نمای فرآیند: مدیریت نرمافزار (عملکرد، مقیاسپذیری، توانایی پردازش)
-
نمای پیادهسازی: برنامهنویسان (اجزای قابل اجرا)
-
نمای نصب: یکپارچهسازان سیستم (توپولوژی، نصب، ارتباطات)
3. توضیح دیاگرامهای اصلی UML
🔹 دیاگرام موارد مصرف
-
هدف: سیستم را با عملکردهای مورد نظر و محیط اطرافش مدل میکند. به عنوان قراردادی بین مشتریان و توسعهدهندگان عمل میکند.
-
اجزاء: افراد، موارد مصرف و روابط بین آنها.
-
دیاگرامهای پشتیبان: فعالیت (جریان درون یک مورد مصرف)، توالی (همکاری اشیا برای پیادهسازی یک مورد مصرف).
🔹 دیاگرام فعالیت
-
هدف: جریان گام به گام رویدادها درون یک فرآیند یا مورد مصرف را نمایش میدهد.
-
عناصر کلیدی:
-
اقدام: یک مرحله مجزا در فرآیند کار. -
جریان: توالی فعالیتها. -
تصمیمگیری: جریان را بر اساس شرط محافظ (guard condition) تقسیم میکند[شرط]. -
شاخهبندی: شروع به اجرای رشتههای موازی میکند. -
اتصال: پایان دادن به رشتههای موازی (همگامسازی).
-
-
مثال: جریان ثبت نام درس با بررسیها، حل تعارض و بهروزرسانیهای همزمان برنامهریزی.
🔹 نمودار توالی
-
هدف: نشان میدهد که اشیاء چگونه برای انجام یک مورد استفاده بر روی زمان تعامل دارند.زمان برای انجام یک مورد استفاده.
-
عناصر کلیدی:
-
خط زندگی: خط عمودی که وجود یک شیء را در طول زمان نشان میدهد. -
شیء/کلاس: شرکتکننده در تعامل. -
پیام: داده یا فراخوانیهای روش بین اشیاء مبادله شده. -
رویداد اجرایی: مستطیل نازک که زمانی که یک شیء به طور فعال در حال پردازش است را نشان میدهد. -
ترکیب بخشها:opt(اجرا اختیاری)،loop(اجرا تکرارشده)،ref(اشاره به تعامل دیگری).
-
🔹 نمودار ارتباطی
-
هدف: جایگزین نمودارهای توالی است. بر روابط ساختاری بین اشیاء تأکید میکند نه ترتیب زمانی.روابط ساختاری بین اشیاء به جای ترتیب زمانی.
-
عناصر کلیدی:اشیاء به هم متصل شدهاند، با پیامهای شمارهگذاری شده که توالی تعاملات در طول اتصالات را نشان میدهند.
🔹 نمودار مؤلفه
-
هدف:ساختار اجرایی در سطح مؤلفههای نرمافزاری را نشان میدهد.
-
عناصر کلیدی:بخشهای سیستم مدولار که پشت رابطهای خارجی پنهان شدهاند. اغلب شامل کلاسها برای نشان دادن روابط پیادهسازی است.
🔹 نمودار اجرایی
-
هدف:واحدهای نرمافزاری را به سختافزار فیزیکی نگاشت میکند.
-
عناصر کلیدی:
-
گره: نماینده ماشین فیزیکی یا محیط اجرا است. -
آرتشیف: نماینده یک فایل فیزیکی یا واحد قابل اجرای است. -
عنصر مالکیت شده: روابط تو در تو یا شامل شده را نشان میدهد.
-
4. تسلط بر نمودارهای کلاس و روابط
نمودارهای کلاس ساختار ساختار ثابتیک سیستم را نشان میدهند. اساسی برای مشخصات دادهها (مثلاً INSPIRE) هستند و اطلاعات زمانی را نشان نمیدهند.نهاطلاعات زمانی را نشان نمیدهند.
ساختار کلاس
| بخش | توضیحات |
|---|---|
| نام | شناسه کلاس (مثلاً CadastralParcel). اغلب شامل استریوتایپهایی مانند «FeatureType». |
| ویژگیها | ویژگیهای نامدار با انواع دادهها (مثلاً - آدرس : کاراکتر, - سن درخت : عدد صحیح). انواع پشتیبانی شده: عدد صحیح، عدد طولانی، دوبل، کاراکتر، تاریخ، بولی، رشته، هندسه، و غیره |
| عملیات | رفتارها/روشهای کلاس. فرمت: + نامعملیات(نوعورودی) : نوعخروجی. |
انواع رابطه
| رابطه | نماد | معنی |
|---|---|---|
| ارتباط | ─────── |
ارتباط کلی بین کلاسها. شامل نامهای نقش، فلشهای جهتگیری و کاردینالیتی (1..*, 0..*, 1..2, و غیره). |
| کلیسازی | ─────▷ |
ارثگیری. زیرکلاس (منبع) تمام ویژگیهای کلاس اصلی (مقصد) را به ارث میبرد. |
| مجموعهسازی | ◇───── |
رابطه «بخشی از» است. بخش میتواند به صورت مستقل وجود داشته باشداز کل. ( diamant خالی) |
| ترکیب | ◆───── |
رابطه قوی «بخشی از»، وجود بخشکاملاً وابسته استبه کل. (diamant پر شده) |
مثال از مواد آموزشی:
-
فرد→کارگر جنگل(تعمیم: کارگر جنگل ارث میبردنام,جنسیت) -
جنگل◇─درخت(ترکیب: درختها میتوانند بدون یک جنگل خاص وجود داشته باشند) -
کارگر جنگل◆─کارمندان(ترکیب: کارمندان در این زمینه نمیتوانند به صورت مستقل از موجودیت کارگر جنگل وجود داشته باشند)
5. کاربرد عملی: مدلسازی کاداستر INSPIRE
مواد آموزشی از مشخصات داده INSPIRE در مورد کاداستر برای نشان دادن کاربرد واقعی UML.
تمرین 1: مدلسازی یک کلاس اصلی
وظیفه:ایجاد کلاسکلاس قطعه کاداستریکلاس.
ساختار راهحل:
«featureType» کلاس قطعه کاداستری
- آدرس : کاراکتر
- شماره قطعه (APN) : کاراکتر
- مرز : GM_Surface
- مرکز قطعه : GM_Point
- برچسب : کاراکتر
- شناسه ملی کاداستری : رشته
- مقدار مساحت : دوبل (اختیاری)
- نقطه مرجع : GM_Point (اختیاری)
یادداشت: چندین راهحل معتبر وجود دارد. ویژگیها باید ویژگیهای رایج دنیای واقعی را منعکس کنند.
تمرین 2: مدلسازی روابط
وظیفه:اتصال دهیدکلاس قطعه کاداستری, مرز کاداستری, ومنطقه اداری.
تصمیمات کلیدی مدلسازی:
-
کلاس قطعه کاداستری────مرز کاداستری: وابستگی/ترکیب (مرز، قطعه را تعریف میکند؛ معمولاً1..1یا1..*کاردینالیته). نقشها:+مرز/+دارای مرز. -
بند تملیکی◇──منطقه اداری: گروهبندی/ارتباط. وجود منطقه وابسته نیستبه بند. بند به چند منطقه سلسله مراتبی تعلق دارد (1..*تا0..*). -
درس:نوع روابط را بر اساس وابستگی چرخه زندگی و قوانین کسب و کار انتخاب کنید. دیاگرامها باید واقعیت را منعکس کنند، نه محدودیتهای مصنوعی ایجاد کنند.
6. بهترین روشها برای مدلسازی UML مؤثر
-
از دیاگرامها به صورت استراتژیک استفاده کنید:دیاگرامها دیدگاههای خاصی را نمایش میدهند. هیچ سیستم پیچیدهای از طریق یک دیاگرام قابل درک نیست.
-
عناصر را در دیاگرامهای مختلف بازاستفاده کنید:یک کلاس واحد میتواند در دیاگرامهای کلاس، ماشینهای حالت، دیاگرامهای توالی و دیدگاههای نصب، هر کدام جنبهای متفاوت را برجسته کند.
-
دقت را با مخاطب هماهنگ کنید:پیچیدگی دیاگرام را بر اساس اینکه مشاهدهکننده کاربر نهایی، توسعهدهنده، یکپارچهساز سیستم یا مدیر پروژه است تنظیم کنید.
-
در برابر واقعیت تأیید کنید:به طور مداوم تأیید کنید که عناصر مدل، روابط و کاردینالیتیها رفتار واقعی سیستم و قوانین حوزه را منعکس میکنند.
-
از پشتیبانی ابزارها بهره بگیرید:از ابزارهای سازگار با UML (مانند Sparx Systems) برای مهندسی معکوس/مستقیم، بررسی همسویی و تولید کد استفاده کنید.
نتیجهگیری
UML زبانی قدرتمند و استاندارد برای ارتباط، طراحی و مستندسازی سیستمهای نرمافزاری و سیستمهای پردازش داده است. با تسلط به دیاگرامهای اصلی (به ویژه کلاس، توالی، فعالیت و مورد استفاده) و درک معنای روابط (ارتباط، کلیسازی، گروهبندی و ترکیب)، متخصصان میتوانند نقشههای دقیق و هماهنگ با واقعیت ایجاد کنند که فاصله بین نیازهای مفهومی و پیادهسازی فنی را پر کنند.












