این زبان مدلسازی یکپارچه (UML) یک زبان مدلسازی عمومی و توسعهای در زمینه مهندسی نرمافزار است که برای ارائه یک رویکرد استاندارد برای تجسم طراحی سیستم طراحی شده است. انگیزه اصلی برای ایجاد UML، تمایل به استانداردسازی سیستمهای نوتاسیون مختلف و روشهای طراحی نرمافزار بود. در UML، نمودار کلاس یکی از شش نوع نمودار ساختاری است. نمودارهای کلاس پایهای برای فرآیند مدلسازی شیء هستند و ساختار ایستا سیستم را مدل میکنند.
نمودارهای ساختاری ساختار ایستای سیستم و اجزای آن را در سطوح مختلف انتزاع و پیادهسازی نشان میدهند و اینکه چگونه به یکدیگر مرتبط هستند. عناصر در یک نمودار ساختاری نمایانگر مفاهیم معنادار یک سیستم هستند و ممکن است شامل مفاهیم انتزاعی، دنیای واقعی و مفاهیم پیادهسازی باشند. هفت نوع نمودار ساختاری به شرح زیر است:
نمودار کلاس چیست؟
نمودار کلاس در زبان مدلسازی یکپارچه (UML) یک نمودار ساختاری ایستا است که ساختار یک سیستم را با نشان دادن کلاسهای آن، ویژگیها، عملیات (یا متدها) و روابط بین اشیاء توصیف میکند.نمودار کلاس یک طرح برای یک سیستم یا زیرسیستم است. شما میتوانید از نمودارهای کلاس برای مدلسازی اشیایی که سیستم را تشکیل میدهند، نشان دادن روابط بین اشیاء و توصیف نقشهای این اشیاء و خدماتی که ارائه میدهند استفاده کنید.
منشأ UML
هدف UML ارائه یک نوتاسیون استاندارد است که میتواند توسط تمام روشهای شیءگرا استفاده شود و بهترین عناصر نوتاسیونهای پیشین را انتخاب و ادغام کند. UML برای دامنه وسیعی از کاربردها طراحی شده است. بنابراین، ساختارهایی برای دامنه وسیعی از سیستمها و فعالیتها (مانند سیستمهای توزیعشده، تحلیل، طراحی سیستم و استقرار) ارائه میدهد.
UML یک نوتاسیون است که از ادغام OMT به وجود آمده است
- تکنیک مدلسازی شیء OMT [جیمز رامبا 1991] – بهترین گزینه برای تحلیل و سیستمهای اطلاعاتی دادهمحور بود.
- بوچ [گریدی بوچ 1994] – برای طراحی و پیادهسازی عالی بود. گریدی بوچ به طور گستردهای با آدا زبان کار کرده و یکی از بازیگران اصلی در توسعه تکنیکهای شیءگرا برای این زبان بوده است. اگرچه روش بوچ قوی بود، اما نوتاسیون کمتر مورد استقبال قرار گرفت (شکلهای ابری زیادی در مدلهای او غالب بود – خیلی منظم نبود)
- OOSE (مهندسی نرمافزار شیءگرا [ایوار جیکوبسون 1992]) – مدلی به نام موارد استفاده را معرفی کرد. موارد استفاده یک تکنیک قدرتمند برای درک رفتار یک سیستم کامل است (زمینهای که OO به طور سنتی در آن ضعیف بوده است).
در سال 1994، جیم رامبا، خالق OMT، دنیای نرمافزار را شگفتزده کرد وقتی که از جنرال الکتریک خارج شد و به گریدی بوچ در شرکت رشنال پیوست. هدف این همکاری ادغام ایدههای آنها به یک روش واحد و یکپارچه بود (عنوان کاری این روش واقعاً «روش یکپارچه» بود).
هدف نمودار کلاس
نمودارهای کلاس در بسیاری از مراحل طراحی سیستم مفید هستند. در مرحله تحلیل، نمودارهای کلاس میتوانند به شما کمک کنند تا نیازهای دامنه مشکل را درک کنید و اجزای آن را شناسایی کنید. در پروژههای نرمافزاری شیءگرا، نمودار کلاسی که در مراحل اولیه پروژه ایجاد میشود شامل کلاسهایی است که معمولاً هنگام نوشتن کد به کلاسها و اشیاء واقعی نرمافزاری تبدیل میشوند.
بعداً، میتوانید تحلیلهای اولیه و مدلهای مفهومی را به نمودارهای کلاس تصفیه کنید تا بخشهای خاصی از سیستم، رابطهای کاربری، پیادهسازیهای منطقی و غیره را نشان دهید.
نمودارهای کلاس به طور گستردهای در مدلسازی سیستمهای شیءگرا استفاده میشوند زیرا تنها نمودارهای UML هستند که میتوانند به طور مستقیم به زبانهای شیءگرا نگاشته شوند. در مرحله پیادهسازی چرخه توسعه نرمافزار، میتوانید از نمودارهای کلاس برای تبدیل مدلها به کد و کد به مدلها استفاده کنید.
مثال کلاس
یک سگ دارای حالتهایی است – رنگ، نام، نژاد و همچنین رفتارها – تکان دادن، پارس کردن، خوردن. یک شیء یک نمونه از یک کلاس است.
نوتاسیون کلاس UML
یک کلاس نمایانگر مفهومی است که حالت را در بر میگیرد (ویژگیها) و رفتار (عملیات). هر ویژگی یک نوع دارد. هر عملیات has a امضا. نام کلاس تنها اطلاعات الزامی است.
نام کلاس:
- نام کلاس در بخش اول ظاهر میشود.
ویژگیهای کلاس:
- ویژگیها در بخش دوم نشان داده میشوند.
- نوع ویژگی بعد از دو نقطه نشان داده میشود.
- ویژگیها به متغیرهای عضو (متغیرهای داده) در کد نگاشته میشوند.
عملیات کلاس (متدها):
- عملیات در بخش سوم نشان داده میشوند. آنها خدماتی هستند که کلاس ارائه میدهد.
- نوع بازگشتی یک متد بعد از دو نقطه در انتهای امضای متد نشان داده میشود.
- نوع بازگشتی پارامترهای متد بعد از دو نقطه و پس از نام پارامتر نشان داده میشود. عملیات به متدهای کلاس در کد نگاشته میشوند.
روابط کلاس
یک کلاس ممکن است در یک یا چند رابطه با کلاسهای دیگر درگیر باشد. یک رابطه میتواند یکی از انواع زیر باشد: (به شکل سمت راست برای نمایش گرافیکی روابط مراجعه کنید).
نوع رابطه | نمایش گرافیکی |
---|---|
وراثت (یا تعمیم):
|
![]() |
همپیوند ساده
|
![]() |
تجمع
یک نوع خاص از ارتباط. این نمایانگر یک رابطه «جزء از» است.
|
![]() |
ترکیب:
یک نوع خاص از تجمع که در آن اجزاء زمانی که کل نابود میشود، نابود میشوند.
|
![]() |
وابستگی
|
![]() |
نامهای روابط
- نامهای روابط در وسط خط ارتباط نوشته میشوند.
- Good names for relationships when read aloud make sense:
- “Each spreadsheet includes a number of cells,”
- “An expression to a value”
- They often have a small arrowhead to indicate directionin which direction the relationship should be read; for example, expressions are evaluated to values, but values are not evaluated to expressions.
Relationship – Roles
- A role is a directional purpose of a relationship.
- Roles are written at the end of the communication line and describe the purpose that the class serves in the relationship.
- For example, a cell is related to an expression. The nature of the relationship is that the expression formula is a cell.
Visibility of class attributes and operations
In object-oriented design, there is an indication of visibility for attributes and operations. UML identifies four types of visibility: public، protectedprivate, and package.
The symbols +, -, #, and ~ before the name of an attribute and operation in a class indicate the visibility of the attribute and operation.
- + indicates public attributes or operations
- – indicates private attributes or operations
- # indicates protected attributes or operations
- ~ indicates package attributes or operations
Example of class visibility
In the above example:
- Attribute1 and Operation1 of MyClassName are public
- Attribute3 and Operation3 are protected.
- Attribute2 and Operation2 are private.
Access for each of these types of visibility is shown below for members of different classes.
Access rights | Public (+) | Private (-) | Protected (#) | Package (~) |
---|---|---|---|---|
Members of the same class | بله | بله | بله | بله |
اعضای کلاسهای مشتقشده | بله | خیر | بله | بله |
اعضای هر کلاس دیگری | بله | خیر | خیر | در همان بسته |
چندگانگی
چند شی از هر کلاس در روابط شرکت میکنند و چندگانگی میتواند به صورت زیر بیان شود:
- دقیقاً یک – 1
- صفر یا یک – 0..1
- بسیاری – 0..* یا *
- یک یا بیشتر – 1..*
- عدد دقیق – به عنوان مثال 3..4 یا 6
- یا یک رابطه پیچیده – به عنوان مثال 0..1، 3..4، 6.* به معنای هر تعداد شی به جز 2 یا 5 خواهد بود
مثال چندگانگی
- نیازمندی: یک دانشآموز میتواند در بسیاری از دورهها شرکت کند و بسیاری از دانشآموزان میتوانند در یک دوره ثبتنام کنند.
- در مثال زیر، نمودار کلاس (در سمت چپ)، بیان نیازمندی بالا را برای مدل ایستا توصیف میکند در حالی که نمودار شی (در سمت راست) تصویر فوری (یک نمونه از نمودار کلاس) ثبتنام دورهها برای دورههای مهندسی نرمافزار و مدیریت پایگاه داده به ترتیب نشان میدهد)
مثال تجمیع – کامپیوتر و قطعات
- تجمیع یک مورد خاص از ارتباط است که یک سلسلهمراتب «شامل» را نشان میدهد
- تجمیع کلاس والد است، اجزا کلاسهای فرزند هستند

مثال وراثت – طبقهبندی سلول
- وراثت یک مورد خاص دیگر از یک ارتباط است که یک سلسلهمراتب «نوعی» را نشان میدهد
- وراثت مدل تحلیل را با معرفی یک طبقهبندی ساده میکند
- کلاسهای فرزند ویژگیها و عملیات کلاس والد را به ارث میبرند.

نمودار کلاس – مثال ابزار نمودار
یک نمودار کلاس ممکن است یادداشتهایی به کلاسها یا روابط متصل داشته باشد. یادداشتها به رنگ خاکستری نشان داده میشوند.

در مثال بالا:
ما میتوانیم معنی نمودار کلاس بالا را با خواندن نکات به صورت زیر تفسیر کنیم.
- شکل یک کلاس انتزاعی است. به صورت ایتالیک نشان داده میشود.
- شکل یک سوپرکلاس است. دایره، مستطیل و چندضلعی از شکل مشتق شدهاند. به عبارت دیگر، یک دایره یک شکل است. این یک رابطه تعمیم / وراثت است.
- بین DialogBox و DataController یک ارتباط وجود دارد.
- شکل بخشی از پنجره است. این یک رابطه تجمیع است. شکل میتواند بدون پنجره وجود داشته باشد.
- نقطه بخشی از دایره است. این یک رابطه ترکیبی است. نقطه نمیتواند بدون یک دایره وجود داشته باشد.
- پنجره به رویداد وابسته است. با این حال، رویداد به پنجره وابسته نیست.
- ویژگیهای دایره شامل شعاع و مرکز است. این یک کلاس موجودیتی است.
- نامهای متد دایره شامل area()، circum()، setCenter() و setRadius() است.
- پارامتر شعاع در دایره یک پارامتر ورودی از نوع float است.
- متد area() از کلاس دایره یک مقدار از نوع double را برمیگرداند.
- ویژگیها و نامهای متد مستطیل پنهان هستند. برخی دیگر از کلاسها در نمودار نیز ویژگیها و نامهای متد خود را پنهان کردهاند.
مثال نمودار کلاس: سیستم سفارش
مثال نمودار کلاس: رابط کاربری
یک نمودار کلاس ممکن است یادداشتهایی به کلاسها یا روابط متصل داشته باشد.
مقابله با سیستمهای پیچیده – نمودار کلاس چندگانه یا تککلاسه؟
به طور حتم، اگر شما در حال مدلسازی یک سیستم بزرگ یا یک حوزه کسب و کار بزرگ هستید، موجودیتهای زیادی وجود خواهد داشت که باید در نظر بگیرید. آیا باید از نمودار کلاسهای چندگانه یا یک نمودار کلاس برای مدلسازی مشکل استفاده کنیم؟ پاسخ این است:
- به جای مدلسازی هر موجودیت و روابط آن در یک نمودار کلاس، بهتر است از نمودارهای کلاس چندگانه استفاده کنیم.
- تقسیم یک سیستم به نمودارهای کلاس چندگانه، فهم سیستم را آسانتر میکند، بهویژه اگر هر نمودار نمایشی گرافیکی از یک بخش خاص از سیستم باشد.
دیدگاههای نمودار کلاس در چرخه حیات توسعه نرمافزار
ما میتوانیم از نمودارهای کلاس در مراحل مختلف توسعه یکچرخه حیات توسعه نرمافزارو معمولاً با مدلسازی نمودارهای کلاس در سه دیدگاه مختلف (سطوح جزئیات) به تدریج که پیش میرویم:
دیدگاه مفهومی: نمودارها به عنوان توصیف چیزها در دنیای واقعی تفسیر میشوند. بنابراین، اگر دیدگاه مفهومی را بپذیرید، نموداری ترسیم میکنید که مفاهیم موجود در حوزه مورد مطالعه را نمایندگی میکند. این مفاهیم به طور طبیعی به کلاسهایی که آنها را پیادهسازی میکنند، مرتبط خواهند بود. دیدگاه مفهومیبه عنوان مستقل از زبان در نظر گرفته میشود.
دیدگاه مشخصات: نمودارها به عنوان توصیف انتزاعات یا اجزای نرمافزار با مشخصات و رابطها تفسیر میشوند، اما هیچ تعهدی به یک پیادهسازی خاص ندارند. بنابراین، اگر دیدگاه مشخصات را بپذیرید، مابه رابطهای نرمافزار نگاه میکنیم،نه به پیادهسازی.
دیدگاه پیادهسازی: نمودارها به عنوان توصیف پیادهسازیهای نرمافزار در یک فناوری خاص وزبان. بنابراین، اگر دیدگاه پیادهسازی را بپذیرید، مابه پیادهسازی نرمافزار نگاه میکنیم..
به دنبال یک ابزار رایگان برای رسم نمودار کلاس هستید؟
نسخه رایگان Visual Paradigm Online (VP Online) یک نرمافزار رسم آنلاین رایگان است که از نمودارهای کلاس، سایر نمودارهای UML، ابزارهای ERD و ابزارهای نمودار سازمانی پشتیبانی میکند. این نرمافزار دارای ویرایشگری ساده اما قدرتمند است که به شما امکان میدهد نمودارهای کلاس را به سرعت و به راحتی ایجاد کنید. این ویرایشگر رایگان UML هیچ تبلیغی ندارد، هیچ مهلت دسترسی ندارد و هیچ محدودیتی، به عنوان مثال، در تعداد نمودارها، تعداد اشکال و غیره ندارد. شما مالک نمودارهایی هستید که برای اهداف شخصی و غیر تجاری ایجاد میکنید.
به دنبال مدلسازی UML رسمیتر بر روی دسکتاپ خود هستید؟
نسخه جامعه Visual Paradigm از سال 2004 راهاندازی شده است تا یکنرمافزار رایگان UMLبرای اهداف غیر تجاری، از کاربران که در حال برداشتن اولین قدمها در مدلسازی UML بودند، حمایت میکند و به نرمافزار مدلسازی UML رایگان و چندسکویی برای استفاده شخصی نیاز دارند، مانند استفاده از UML در پروژههای دانشجویی.
ابزار مدلسازی UML رایگان برای انواع اهداف غیر تجاری. پشتیبانی از 13 نمودار UML 2.x
ما توسط بیش از 1 میلیون نصب در سرتاسر جهان پذیرفته شدهایم و همچنان در حال رشد هستیم. بسیاری از مردم از نسخههای پولی Visual Paradigm برای رسم نمودارهای حرفهای UML و ERD برای طراحی و تحلیل سیستم و پایگاه داده استفاده میکنند.
دلیل 2
اعتماد متخصصان IT و سازمانهای بزرگ
بسیاری از سازمانهای معتبر، شرکتهای IT، مشاوران، دانشگاهها، NGO و واحدهای دولتی در سرتاسر جهان از Visual Paradigm (نسخههای پولی) استفاده کردهاند. شکل زیر برخی از مشتریان پولی ما را نشان میدهد.
دلیل 3
کیفیت بالا – برنده جوایز
ما فقط مورد اعتماد بهترین شرکتهای شناخته شده در سطح جهانی نیستیم، بلکه توسط صنعت نیز مورد اعتماد هستیم. Visual Paradigm برنده چندین جایزه بینالمللی است.
دلیل 4
پرکاربردترین پلتفرم مدلسازی برای دانشگاهها
پرکاربردترین ابزار UML برای دانشگاهها، که توسط هزاران دانشگاه و کالج پذیرفته شده است.
دلیل 5
مجموعهای بزرگ از منابع یادگیری رایگان (پشتیبانی توسط دایره جامعه VP)
صدها مثال UML و ERDآماده برای وارد کردن به Visual Paradigm برای آزمایش فوری یا شروع با مدل UML خودتان. همه به صورت رایگان.
دلیل 6
مسیر ارتقا به نسخههای تجاری برای طیف وسیعی از کاربردها و امکانات
ارتقاء آسان برای مجموعهای بزرگ از ویژگیهای اضافی (مانند، پشتیبانی از BPMN و همکاری تیمی) و برای استفاده تجاری، از$6 / ماه
دلیل 7
انجمن کاربری فعال برای دریافت کمک و تبادل ایدهها و تجربیات
از دیگران حمایت کنید، ایدههای خود را به اشتراک بگذارید و با دیگران در Visual Paradigm تبادل کنید.انجمن کاربری فعال Visual Paradigm.
دلیل 8
نرمافزار چندسکویی، کاربرپسند، سریع و پاسخگو
Visual Paradigm میتواند بر روی پلتفرمهای مختلفی مانند ویندوز، لینوکس و مک اجرا شود. رابط کاربری شهودی و ویژگیهای قدرتمند مدلسازی آن، مدلسازی را سریع و آسان میکند!
منابع
- UML چیست؟
- چرا مدلسازی UML؟
- مروری بر 14 نوع نمودار UML
- نمودار کلاس چیست؟
- نمودار مؤلفه چیست؟
- نمودار استقرار چیست؟
- نمودار شیء چیست؟
- نمودار بسته چیست؟
- نمودار ساختار ترکیبی چیست؟
- نمودار پروفایل چیست؟
- نمودار مورد استفاده چیست؟
- نمودار فعالیت چیست؟
- نمودار ماشین حالت چیست؟
- نمودار توالی چیست؟
- نمودار ارتباط چیست؟
- نمودار نمای کلی تعامل چیست؟
- نمودار زمانبندی چیست؟
This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.