راهنمای جامع برای نمودار کلاس UML

Table of Contents hide

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

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

 

Overview of the 14 UML Diagram Types

نمودار کلاس چیست؟

نمودار کلاس در زبان مدل‌سازی یکپارچه (UML) یک نمودار ساختاری ایستا است که ساختار یک سیستم را با نشان دادن کلاس‌های آن، ویژگی‌ها، عملیات (یا متدها) و روابط بین اشیاء توصیف می‌کند.نمودار کلاس یک طرح برای یک سیستم یا زیرسیستم است. شما می‌توانید از نمودارهای کلاس برای مدل‌سازی اشیایی که سیستم را تشکیل می‌دهند، نشان دادن روابط بین اشیاء و توصیف نقش‌های این اشیاء و خدماتی که ارائه می‌دهند استفاده کنید.

منشأ UML

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

UML یک نوتاسیون است که از ادغام OMT به وجود آمده است

  1. تکنیک مدل‌سازی شیء OMT [جیمز رامبا 1991] – بهترین گزینه برای تحلیل و سیستم‌های اطلاعاتی داده‌محور بود.
  2. بوچ [گریدی بوچ 1994] – برای طراحی و پیاده‌سازی عالی بود. گریدی بوچ به طور گسترده‌ای با آدا زبان کار کرده و یکی از بازیگران اصلی در توسعه تکنیک‌های شیءگرا برای این زبان بوده است. اگرچه روش بوچ قوی بود، اما نوتاسیون کمتر مورد استقبال قرار گرفت (شکل‌های ابری زیادی در مدل‌های او غالب بود – خیلی منظم نبود)
  3. OOSE (مهندسی نرم‌افزار شیءگرا [ایوار جیکوبسون 1992]) – مدلی به نام موارد استفاده را معرفی کرد. موارد استفاده یک تکنیک قدرتمند برای درک رفتار یک سیستم کامل است (زمینه‌ای که OO به طور سنتی در آن ضعیف بوده است).

در سال 1994، جیم رامبا، خالق OMT، دنیای نرم‌افزار را شگفت‌زده کرد وقتی که از جنرال الکتریک خارج شد و به گریدی بوچ در شرکت رشنال پیوست. هدف این همکاری ادغام ایده‌های آنها به یک روش واحد و یکپارچه بود (عنوان کاری این روش واقعاً «روش یکپارچه» بود).

UML History

هدف نمودار کلاس

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

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

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

مثال کلاس

یک سگ دارای حالت‌هایی است – رنگ، نام، نژاد و همچنین رفتارها – تکان دادن، پارس کردن، خوردن. یک شیء یک نمونه از یک کلاس است.

 

نوتاسیون کلاس UML

یک کلاس نمایانگر مفهومی است که حالت را در بر می‌گیرد (ویژگی‌ها) و رفتار (عملیات). هر ویژگی یک نوع دارد. هر عملیات has a امضانام کلاس تنها اطلاعات الزامی است.

نام کلاس:

  • نام کلاس در بخش اول ظاهر می‌شود.

ویژگی‌های کلاس:

  • ویژگی‌ها در بخش دوم نشان داده می‌شوند.
  • نوع ویژگی بعد از دو نقطه نشان داده می‌شود.
  • ویژگی‌ها به متغیرهای عضو (متغیرهای داده) در کد نگاشته می‌شوند.

عملیات کلاس (متدها):

  • عملیات در بخش سوم نشان داده می‌شوند. آنها خدماتی هستند که کلاس ارائه می‌دهد.
  • نوع بازگشتی یک متد بعد از دو نقطه در انتهای امضای متد نشان داده می‌شود.
  • نوع بازگشتی پارامترهای متد بعد از دو نقطه و پس از نام پارامتر نشان داده می‌شود. عملیات به متدهای کلاس در کد نگاشته می‌شوند.

روابط کلاس

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

نوع رابطه نمایش گرافیکی
وراثت (یا تعمیم):
  • نمایانگر یک رابطه «هست» است.
  • نام یک کلاس انتزاعی به صورت ایتالیک نشان داده می‌شود.
  • زیرکلاس1 و زیرکلاس2 تخصص‌های کلاس فوق هستند.
  • یک خط ممتد با سر پیکان توخالی که از کلاس فرزند به کلاس والد اشاره می‌کند
Inheritance (or Generalization)
هم‌پیوند ساده
  • یک پیوند ساختاری بین دو کلاس هم‌سطح.
  • یک ارتباط بین کلاس1 و کلاس2 وجود دارد
  • یک خط ممتد که دو کلاس را به هم متصل می‌کند
Simple association
تجمع

یک نوع خاص از ارتباط. این نمایانگر یک رابطه «جزء از» است.

  • کلاس2 جزئی از کلاس1 است.
  • بسیاری از نمونه‌ها (که با * نشان داده می‌شوند) از کلاس2 می‌توانند با کلاس1 مرتبط شوند.
  • اشیاء کلاس1 و کلاس2 عمرهای جداگانه‌ای دارند.
  • یک خط ممتد با یک الماس توخالی در انتهای ارتباط که به کلاس ترکیبی متصل است
Aggregation
ترکیب:

یک نوع خاص از تجمع که در آن اجزاء زمانی که کل نابود می‌شود، نابود می‌شوند.

  • اشیاء کلاس2 با کلاس1 زندگی می‌کنند و می‌میرند.
  • کلاس2 نمی‌تواند به تنهایی وجود داشته باشد.
  • یک خط ممتد با یک الماس پر شده در ارتباط که به کلاس ترکیبی متصل است
وابستگی
  • بین دو کلاس وجود دارد اگر تغییرات در تعریف یکی ممکن است تغییراتی در دیگری ایجاد کند (اما نه برعکس).
  • کلاس1 به کلاس2 وابسته است
  • یک خط نقطه‌چین با یک پیکان باز
Dependency

نام‌های روابط

  • نام‌های روابط در وسط خط ارتباط نوشته می‌شوند.
  • 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 خواهد بود

مثال چندگانگی

  • نیازمندی: یک دانش‌آموز می‌تواند در بسیاری از دوره‌ها شرکت کند و بسیاری از دانش‌آموزان می‌توانند در یک دوره ثبت‌نام کنند.
  • در مثال زیر، نمودار کلاس (در سمت چپ)، بیان نیازمندی بالا را برای مدل ایستا توصیف می‌کند در حالی که نمودار شی (در سمت راست) تصویر فوری (یک نمونه از نمودار کلاس) ثبت‌نام دوره‌ها برای دوره‌های مهندسی نرم‌افزار و مدیریت پایگاه داده به ترتیب نشان می‌دهد)

Object Diagram

مثال تجمیع – کامپیوتر و قطعات

  • تجمیع یک مورد خاص از ارتباط است که یک سلسله‌مراتب «شامل» را نشان می‌دهد
  • تجمیع کلاس والد است، اجزا کلاس‌های فرزند هستند
Aggregation Example

مثال وراثت – طبقه‌بندی سلول

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

 

نمودار کلاس – مثال ابزار نمودار

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

Class Diagram Example

 

در مثال بالا:

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

  1. شکل یک کلاس انتزاعی است. به صورت ایتالیک نشان داده می‌شود.
  2. شکل یک سوپرکلاس است. دایره، مستطیل و چندضلعی از شکل مشتق شده‌اند. به عبارت دیگر، یک دایره یک شکل است. این یک رابطه تعمیم / وراثت است.
  3. بین DialogBox و DataController یک ارتباط وجود دارد.
  4. شکل بخشی از پنجره است. این یک رابطه تجمیع است. شکل می‌تواند بدون پنجره وجود داشته باشد.
  5. نقطه بخشی از دایره است. این یک رابطه ترکیبی است. نقطه نمی‌تواند بدون یک دایره وجود داشته باشد.
  6. پنجره به رویداد وابسته است. با این حال، رویداد به پنجره وابسته نیست.
  7. ویژگی‌های دایره شامل شعاع و مرکز است. این یک کلاس موجودیتی است.
  8. نام‌های متد دایره شامل area()، circum()، setCenter() و setRadius() است.
  9. پارامتر شعاع در دایره یک پارامتر ورودی از نوع float است.
  10. متد area() از کلاس دایره یک مقدار از نوع double را برمی‌گرداند.
  11. ویژگی‌ها و نام‌های متد مستطیل پنهان هستند. برخی دیگر از کلاس‌ها در نمودار نیز ویژگی‌ها و نام‌های متد خود را پنهان کرده‌اند.

مثال نمودار کلاس: سیستم سفارش

Class Diagram Example: Order System

مثال نمودار کلاس: رابط کاربری

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

Class Diagram Example: GUI

مقابله با سیستم‌های پیچیده – نمودار کلاس چندگانه یا تک‌کلاسه؟

به طور حتم، اگر شما در حال مدل‌سازی یک سیستم بزرگ یا یک حوزه کسب و کار بزرگ هستید، موجودیت‌های زیادی وجود خواهد داشت که باید در نظر بگیرید. آیا باید از نمودار کلاس‌های چندگانه یا یک نمودار کلاس برای مدل‌سازی مشکل استفاده کنیم؟ پاسخ این است:

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

دیدگاه‌های نمودار کلاس در چرخه حیات توسعه نرم‌افزار

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

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

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

دیدگاه پیاده‌سازی: نمودارها به عنوان توصیف پیاده‌سازی‌های نرم‌افزار در یک فناوری خاص وزبان. بنابراین، اگر دیدگاه پیاده‌سازی را بپذیرید، مابه پیاده‌سازی نرم‌افزار نگاه می‌کنیم..

به دنبال یک ابزار رایگان برای رسم نمودار کلاس هستید؟

نسخه رایگان Visual Paradigm Online (VP Online) یک نرم‌افزار رسم آنلاین رایگان است که از نمودارهای کلاس، سایر نمودارهای UML، ابزارهای ERD و ابزارهای نمودار سازمانی پشتیبانی می‌کند. این نرم‌افزار دارای ویرایشگری ساده اما قدرتمند است که به شما امکان می‌دهد نمودارهای کلاس را به سرعت و به راحتی ایجاد کنید. این ویرایشگر رایگان UML هیچ تبلیغی ندارد، هیچ مهلت دسترسی ندارد و هیچ محدودیتی، به عنوان مثال، در تعداد نمودارها، تعداد اشکال و غیره ندارد. شما مالک نمودارهایی هستید که برای اهداف شخصی و غیر تجاری ایجاد می‌کنید.

Online Class Diagram Tool

به دنبال مدل‌سازی UML رسمی‌تر بر روی دسکتاپ خود هستید؟

نسخه جامعه Visual Paradigm از سال 2004 راه‌اندازی شده است تا یکنرم‌افزار رایگان UMLبرای اهداف غیر تجاری، از کاربران که در حال برداشتن اولین قدم‌ها در مدل‌سازی UML بودند، حمایت می‌کند و به نرم‌افزار مدل‌سازی UML رایگان و چندسکویی برای استفاده شخصی نیاز دارند، مانند استفاده از UML در پروژه‌های دانشجویی.

Visual Paradigm screen

ابزار مدل‌سازی UML رایگان برای انواع اهداف غیر تجاری. پشتیبانی از 13 نمودار UML 2.x

Free UML Tool with 13 UML 2.x Diagrams Supported

ما توسط بیش از 1 میلیون نصب در سرتاسر جهان پذیرفته شده‌ایم و همچنان در حال رشد هستیم. بسیاری از مردم از نسخه‌های پولی Visual Paradigm برای رسم نمودارهای حرفه‌ای UML و ERD برای طراحی و تحلیل سیستم و پایگاه داده استفاده می‌کنند.

دلیل 2

اعتماد متخصصان IT و سازمان‌های بزرگ

بسیاری از سازمان‌های معتبر، شرکت‌های IT، مشاوران، دانشگاه‌ها، NGO و واحدهای دولتی در سرتاسر جهان از Visual Paradigm (نسخه‌های پولی) استفاده کرده‌اند. شکل زیر برخی از مشتریان پولی ما را نشان می‌دهد.

Visual Paradigm Customers

دلیل 3

کیفیت بالا – برنده جوایز

ما فقط مورد اعتماد بهترین شرکت‌های شناخته شده در سطح جهانی نیستیم، بلکه توسط صنعت نیز مورد اعتماد هستیم. Visual Paradigm برنده چندین جایزه بین‌المللی است.

Visual Paradigm Awards

دلیل 4

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

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

Schools Using Visual Paradigm

دلیل 5

مجموعه‌ای بزرگ از منابع یادگیری رایگان (پشتیبانی توسط دایره جامعه VP)

Hundreds of UML and ERD diagram examples and templates

صدها مثال UML و ERDآماده برای وارد کردن به Visual Paradigm برای آزمایش فوری یا شروع با مدل UML خودتان. همه به صورت رایگان.

دلیل 6

مسیر ارتقا به نسخه‌های تجاری برای طیف وسیعی از کاربردها و امکانات

ارتقاء آسان برای مجموعه‌ای بزرگ از ویژگی‌های اضافی (مانند، پشتیبانی از BPMN و همکاری تیمی) و برای استفاده تجاری، از$6 / ماه

Packed features in Visual Paradigm

دلیل 7

انجمن کاربری فعال برای دریافت کمک و تبادل ایده‌ها و تجربیات

از دیگران حمایت کنید، ایده‌های خود را به اشتراک بگذارید و با دیگران در Visual Paradigm تبادل کنید.انجمن کاربری فعال Visual Paradigm.

Visual Paradigm forum

دلیل 8

نرم‌افزار چندسکویی، کاربرپسند، سریع و پاسخگو

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

This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.

Leave a Reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *