UML چیست؟

uml

UML چیست؟

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

استارت اولیه طراحی UML در سال 1997 زده شد و نسخه ی نهایی آن در سال 2007 ارائه شد. با نمودارهای گرافیکی ای که UML در اختیار توسعه دهندگان نرم افزار قرار می دهد، می توان به هر زبانی کد نوشت.

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

UML در یک نگاه

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

factory pattern

در ادامه به بررسی تک تک اجزاء یک UML می پردازیم.

آشنایی با اجزاء UML

Class

در UML، کلاس را به صورت زیر نشان می دهند و علامت های + و – معرف نوع سطوح دسترسی هستند. برای مطالعه ی بیشتر در مورد سطوح دسترسی اینجا را کلیک کنید.

class uml

Interface

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

interface uml

Implementation

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

implementation

Inheritance یا Generalization

این رابطه به نام رابطه ی والد-فرزند نیز خوانده می شود و بین یک چیز کلی و یک چیز خاص تر برقرار می شود. از این نوع رابطه برای نمایش مفهوم وراثت استفاده می شود. در UML وراثت را با پاره خط و یک مثلث توخالی نشان می دهند. در بعضی جاها با نیم خط و فلش هم دیده می شود.

inheritance uml

Association

به آن وابستگی یا رابطه ی انجمنی می گویند. وابستگی بین کلاس ها را نشان می دهد که خود شامل دو نوع است:
• Aggregation
• Composition

برای نمایش Association در UML از یک پاره خط استفاده می کنیم، به شکل و کد زیر دقت کنید:

association

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

Aggregation

تجمیع، زیر مجموعه ای از Association است، طبق تعریف Aggretgation ، کلاس A  به کلاس B ارجاع دارد اما کلاس B ارجاعی به کلاس A ندارد. با حذف کلاس B، کلاس A ناقص می ماند اما با حذف کلاس A، کلاس B دست نخورده باقی می ماند.

aggregation uml

مثالی از Aggregation در زیر آورده شده است.

Composition

ترکیب، زیر مجموعه ای از Association است. طبق تعریف Composition، کلاس A ارجاعی به کلاس B دارد و همچنین کلاس B نیز ارجاعی به کلاس A دارد. با حذف هر کلاس، کلاس دیگر ناقص می ماند.

composition uml

Multiplicity

تعدد، نشان می دهد که در یک رابطه، چه تعداد شئ به هم مرتبط هستند. به شکل زیر دقت کنید.

multiplicity

تعدد چند نوع دارد:

  • 1..1 یعنی یک شئ (پیش فرض UML)
  • *..0 یعنی هیچ شئ یا حداقل یک شئ
  • *..1 حداقل یک شئ
  • m..m حداقل m شئ
  • m..n حداقل m شئ و حداکثر n شئ

Dependency

در این رابطه، کلاسی به کلاس دیگر وابستگی دارد.

dependency

در مثالی که در زیر آورده شده است، کلاس Company به کلاس Car وابستگی دارد.

Comment

کامنت ها را در UML به شکل زیر هستند.

comment uml

Variable

متغیر ها در UML به شکل زیر هستند.

variable uml

علامت های Access Modifiers

سطوح دسترسی در UML به شکل زیر نشان داده می شود.

access modifiers signs

چند مثال

مثال اول

factory pattern

به UML بالا دقت کنید، کلاس Creator به اینترفیس Product وابستگی (Dependency) دارد. همچنین کلاس های Concrete ProductA و Concrete ProductB ، اینترفیس Product را پیاده سازی(Implement)  کردند. کلاس های ConcreteCreatorA و ConcreteCreatorB از کلاس Creator ارث بری(Inherit)  کرده اند.

مثال دوم

adapter pattern

به نمودار UML بالا دقت کنید. کلاس Adapter، اینترفیس Client Interface را پیاده سازی کرده است. کلاس Adapter از کلاس Service ارث بری کرده است و صاحب متد ها و فیلد های آن است. کلاس Client ارجاعی از اینترفیس درون خود دارد. (Navigation)

نوشته شده توسط mrbitmap علیرضا علی رمضانی

مقالات مرتبط

جدیدترین مقالات

فهرست