de_DEen_USes_ESfa_IRfr_FRhi_INid_IDjapl_PLpt_PTru_RU

🎓 آموزشگاه دیاگرام کلاس UML برای مبتدیان

یادگیری زبان مدلسازی یکپارچه با Visual Paradigm

«یک تصویر ارزش هزار خط کد دارد» — دیاگرام‌های کلاس UML به شما کمک می‌کنند تا سیستم‌های شی‌گرا را قبل از نوشتن هر خط کدی ببینید، طراحی کنید و ارتباط برقرار کنید.

🔹 UML چیست؟

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

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

  • ✅ کلاس‌ها – طرح‌های اولیه اشیاء

  • ✅ ویژگی‌ها – داده‌ها/ویژگی‌های کلاس‌ها

  • ✅ عملیات (روش‌ها) – رفتارها/عملکردها

  • ✅ رابطه‌ها – نحوه تعامل اشیاء

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


🔹 درک کلاس‌ها و اشیاء

کلاس چیست؟

یک کلاسیک طرح کلی برای ایجاد اشیاء است. این امر تعیین می‌کند:

  • وضعیت (ویژگی‌ها/خصوصیات)

  • رفتار (عملیات/روش‌ها)

اشیاء چیست؟

یکاشیاء یکنمونه از یک کلاس — یک موجودیت واقعی که از طرح کلاس ساخته شده است.

What is a class?

🐕 مثال واقعی دنیا: کلاس سگ

کلاس: سگ
├─ ویژگی‌ها: رنگ، نام، نژاد
└─ رفتارها: لرزیدن دم، گریه کردن، خوردن

هرسگ اشیاء (مثلاًحیوان خانگی منسگ همسایه) ساختار یکسانی دارد اما داده‌های منحصر به فردی را نگه می‌دارد.


🔹 توضیح نمادگذاری کلاس UML

یک کلاس UML به صورت یکمستطیل سه بخشی:

UML Class Notation

1️⃣ نام کلاس (بخش بالایی)

  • ضروری – تنها عنصر ضروری

  • نوشته شده درمتن ساده، مرکزی، بولد

  • کلاس‌های مجرد به صورت ایتالیک

2️⃣ ویژگی‌ها (بخش میانی)

  • فرمت: دسترسی نام : نوع = مقدارپیش‌فرض

  • معادل با متغیرهای عضو در کد

  • مثال: - سن : عدد صحیح = 0

3️⃣ عملیات/روش‌ها (بخش پایینی)

  • فرمت: دسترسی نام_روش(پارامتر : نوع) : نوع_بازگشتی

  • معادل با روش‌های کلاس در کد

  • مثال: + محاسبه_مجموع() : دابل

Class Operations


🔹 دسترسی کلاس و پارامترها

🔐 محدودکننده‌های دسترسی

نمادهای پیشوندی سطح دسترسی را نشان می‌دهند:

نماد دسترسی قابل دسترسی از
+ عمومی هرجا
- خصوصی فقط در داخل کلاس
# محافظت شده در داخل کلاس و زیرکلاس‌ها

Class Visibility

➡️ جهت‌گیری پارامترها

جهت جریان داده در پارامترهای روش را مشخص کنید:

جهت معنی
ورودی فقط ورودی (پیش‌فرض)
خروجی فقط خروجی
ورودی و خروجی خروجی

Parameter Directionality

💡 نکته: بیشتر زبان‌های برنامه‌نویسی پیش‌فرض را به صورت ورودی پارامترها دارند. در مدل‌سازی APIها یا جریان‌های داده پیچیده از جهت‌گیری استفاده کنید.


🔹 سه دیدگاه نمودار کلاس‌ها

سطح جزئیات نمودار خود را بر اساس مرحله توسعه‌ی خود انتخاب کنید:

Perspectives of Class Diagram

دیدگاه زمان استفاده تمرکز
مفهومی تحلیل اولیه، مدل‌سازی حوزه مفاهیم کسب‌وکار، موجودیت‌های دنیای واقعی
مشخصات مرحله طراحی، تعریف رابطه انواع داده‌ی مجرد (ADTs)، امضاها
پیاده‌سازی مرحله کدنویسی، طراحی فنی کلاس‌های ملموس، جزئیات وابسته به زبان

🎯 بهترین روش: ابتدا مفهومی شروع کنید → به سمت پیاده‌سازی پیش بروید. از بارگذاری زودهنگام نمودارها با جزئیات فنی خودداری کنید.


🔹 روابط بین کلاس‌ها

UML به طور دقیق نحوه تعامل کلاس‌ها را تعریف می‌کند. این 6 رابطه اصلی را یاد بگیرید:

Relationships between classes

1️⃣ ارث‌گیری (کلی‌سازی) → «IS-A»

  • نمایش تخصصی‌سازی:زیرکلاس یک کلاس والد

  • نمادگذاری: خط پیوسته باگوشه سه‌گوش خالیکه به سمت والد اشاره می‌کند

  • کلاس‌های مجرد به صورتایتالیک

Inheritance (or Generalization)

📐 مثال: سلسله مراتب اشکال

Inheritance Example - Shapes

// معادل کد
کلاس مجازی شکل { ... }
class دایره از شکل ارث‌گیری می‌کند { ... }
class مستطیل از شکل ارث‌گیری می‌کند { ... }

2️⃣ ارتباط → «USES-A» (ارتباط ساختاری)

  • نمایش یک رابطه دائمی بین کلاس‌های هم‌سطح

  • نمادگذاری:خط پیوستهبین کلاس‌ها

  • اغلب با عبارات فعلی برچسب‌گذاری می‌شوند:قرار می‌دهدمدیریت می‌کندحاوی است

مثال ساده ارتباط:

Simple Association

🔢 تعداد (چندگانگی)

تعریف کنید که چند نمونه در آن شرکت می‌کنند:

نمادگذاری معنی مثال
1 دقیقاً یکی یک مشتری یک سفارش ثبت می‌کند
0..1 صفر یا یکی یک کاربر ممکن است یک پروفایل داشته باشد
*یا0..* صفر یا چند یک دپارتمان چندین کارمند دارد
1..* یکی یا چند یک سفارش حداقل یک مورد دارد

Cardinality

3️⃣ تجمیع → «دارای-اِ» (مالکیت ضعیف)

  • ارتباط ویژه: رابطه «بخشی از»

  • اجزاء می‌توانند وجود داشته باشندمستقلاز کل

  • نمادگذاری: خط پیوسته با diamant خالیدر انتهای «کل»

Aggregation

// مثال: دپارتمان تجمیع‌کننده استادان است
class Department {
    private List<Professor> professors; // استادان حتی اگر دپارتمان حل شود، وجود دارند
}

4️⃣ ترکیب → «دارای-اِ قوی» (مالکیت قوی)

  • شکل قوی‌تر تجمیع

  • قطعاتنمی‌توانند وجود داشته باشندبدون کل؛ چرخه زندگی آنها به هم مربوط است

  • نمادگذاری: خط پیوسته با diamant پر شدهدر انتهای «کل»

Composition

// مثال: خانه از اتاق‌ها تشکیل شده است
class House {
    private List<Room> rooms; // اتاق‌ها هنگام تخریب خانه نابود می‌شوند
}

⚠️ تفاوت کلیدی:

  • ترکیب: خودرودارای استچرخ→ چرخ‌ها می‌توانند دوباره استفاده شوند

  • ترکیب: خانهدارای استاتاق→ اتاق‌ها بدون خانه وجود ندارند

5️⃣ وابستگی → «استفاده موقت»

  • یک کلاسوابسته بهکلاس دیگری برای پیاده‌سازی (مثلاً پارامتر روش)

  • رابطه ساختاری نیست؛ تغییر در عرضه‌کننده ممکن است بر مشتری تأثیر بگذارد

  • نمادگذاری: خط نقطه‌چین با فلش باز

Dependency

مثال کاربردی: فرد کتاب می‌خواند

Dependency

class Person {
    boolean hasRead(Book book) { ... } // کتاب پارامتر است → وابستگی
}

6️⃣ اجرا → «پیاده‌سازی می‌شود»

  • رابطه بین یک رابطه‌ی کاربری و کلاس پیاده‌سازی‌کننده‌ی آن

  • نمادگذاری: خط نقطه‌چین با سر پیکان خالی

Realization

// مثال جاوا
interface Owner {
    void acquireProperty();
    void disposeProperty();
}
class Person implements Owner { ... }
class Corporation implements Owner { ... }

🔹 مثال‌های دنیای واقعی

🛒 مثال ۱: سیستم مدیریت سفارش

Class Diagram Example: Order System

نکات کلیدی:

  • مشتری سفارش می‌دهد سفارش (ارتباط، ۱ تا چند)

  • سفارش تشکیل‌شده از آیتم سفارش (ترکیب)

  • آیتم سفارش اشاره می‌کند به محصول (ارتباط)

  • پرداخت پیاده‌سازی می‌کند IPayment رابطه‌ی کاربری (پیاده‌سازی)

💻 مثال ۲: برنامه‌ی کاربردی گرافیکی با یادداشت‌ها

Class Diagram Example: GUI

نکات کلیدی:

  • یادداشت‌ها (جعبه‌های زرد) توضیحات را اضافه می‌کنند بدون اینکه کلاس‌ها را پر از ابهام کنند

  • JFrame شامل است JPanel (ترکیب)

  • گیرنده‌های رویداد از روابط وابستگی استفاده می‌کنند


🔹 ابزارهای پیشنهادی UML

ابزار بهترین برای قیمت پلتفرم
🥇 Visual Paradigm نسخه جامعه شروع‌کنندگان، دانش‌آموزان، پشتیبانی کامل از UML ✅ رایگان ویندوز/macOS/لینوکس
Lucidchart همکاری، مبتنی بر وب رایگان با قابلیت‌های پولی وب
draw.io (diagrams.net) نماهای سریع، سادگی ✅ رایگان وب/دسکتاپ
StarUML سبک، قابل گسترش پولی (نمونه رایگان) ویندوز/macOS/لینوکس
Enterprise Architect تیم‌های بزرگ، سیستم‌های پیچیده پرداخت شده بردن

🏆 چرا نسخه جامعه Visual Paradigm؟

✅ 100% رایگانبرای یادگیری و استفاده غیرتجاری
✅ تمام انواع نمودارهای UML 2.xپشتیبانی می‌شود (کلاس، مورد استفاده، توالی، و غیره)
✅ رابط کاربری آسان با کشیدن و رها کردن– نیازی به کدنویسی نیست
✅ مهندسی کد: کد را از نمودارها تولید کنید و معکوس مهندسی کنید
✅ چندپلتفرمی: ویندوز، مک‌اواس، لینوکس
✅ برنده جایزه: توسط دانشگاه‌ها و متخصصان جهانی اعتماد شده

🔗 دانلود رایگان نسخه جامعه Visual Paradigm


🔹 شروع کار با Visual Paradigm: تنظیم در 5 دقیقه

  1. دانلود و نصب
    → بازدید ازvisual-paradigm.com/download/community.jsp
    → سیستم عامل خود را انتخاب کنید → نصب کنید (کمتر از 2 دقیقه طول می‌کشد)

  2. پروژه جدید ایجاد کنید
    → VP را راه‌اندازی کنید →پروژه → جدید → انتخاب “دايآگرام كلاس”

  3. اولين كلاس خود را اضافه كنيد
    → كلاس را از ابزارها بکشيد → دوبار كليك كنيد تا نام را ويرايش كنيد
    → كليك راست روي كلاس → افزودن → ویژگی / عملیات

  4. رابطه‌ها را رسم كنيد
    → از ابزارهاي رابطه (توريث، ارتباط و غیره) از نوار ابزار استفاده كنيد
    → كلاس منبع را كليك كنيد → به كلاس مقصد بکشيد

  5. صادر كردن و به اشتراك گذاري
    → دايآگرام → صادر كردن → PNG/PDF/SVG
    → يا كد جاوا/سي شارپ توليد كنيد: ابزارها → مهندسي كد

🎬 نكته حرفه اي: از استفاده كنيدمدل → گزارش مدلبرای ایجاد خودکار مستندات از نمودارهای شما!


🎯 برگه یادداشت سریع

خلاصه ساختار نمودار کلاس

+---------------------+
|     نامکلاس         |  ← بالا: نام (ضروری)
+---------------------+
| - ویژگی : نوع       |  ← وسط: ویژگی‌ها
| + نام : رشته        |
+---------------------+
| + روش() : نوع       |  ← پایین: عملیات
| - محاسبه(x: عدد صحیح):عدد صحیح  |
+---------------------+

راهنمای سریع نمادگذاری رابطه

رابطه نمادگذاری کلمه کلیدی
میراث ───▷ «است-یک»
وابستگی ─── «دارای-یک»/«از-استفاده-می‌کند»
مجموعه‌سازی ───◇ «بخشی از» (ضعیف)
ترکیب ───◆ «بخشی از» (قوی)
وابستگی – – -> «به طور موقت از آن استفاده می‌کند»
پیاده‌سازی – – ▷ «پیاده‌سازی می‌کند»

🚀 مراحل بعدی برای کاربران جدید UML

  1. ✅ تمرین: مدل‌سازی یک سیستم ساده (کتابخانه، حساب بانکی، سبد خرید)

  2. ✅ بازسازی معکوس: کد موجود جاوا/سی‌شی را به ویژوال پارادایم وارد کنید تا نمودارهای خودکار تولید شده را ببینید

  3. ✅ همکاری: نمودارها را با همکاران خود به اشتراک بگذارید تا مرور طراحی انجام شود

  4. ✅ تکرار کنید: از مفهومی شروع کنید → هنگام کدنویسی به سمت پیاده‌سازی بهبود بخشید

  5. ✅ کاوش کنید: در مرحله بعد نمودارهای مورد استفاده، توالی و فعالیت را یاد بگیرید

💬 به یاد داشته باشید: UML یک ابزار ارتباطی است، نه یک بوروکراسی. نمودارها را به اندازه‌ای که لازم است ساده نگه دارید — و نه ساده‌تر.ابزار ارتباطی، نه یک بوروکراسی. نمودارها را به اندازه‌ای که لازم است ساده نگه دارید — و نه ساده‌تر.


✨ شما آماده طراحی حرفه‌ای هستید!
امروز شروع به مدل‌سازی اولین نمودار کلاس خود کنید با ویژوال پارادایم نسخه جامعه — رایگان، قدرتمند و دوست‌داشتنی برای مبتدیان.

مدل‌سازی خوشحال! 🎨🔧🚀

This post is also available in Deutsch, English, Español, Français, English, Bahasa Indonesia, 日本語, Polski, Portuguese and Ру́сский.