UML  چیست؟

Umbrello UML Modeller  یک ابزار رایگان و متن باز برای کمک به شماست تا در پروسه توسعه نرم افزار شما را یاری کند .خصوصاَ در بحث تجزیه و تحلیل و طراحی فرآیند ها ،کمک برای ارائه  محصول با کیفیت تر و همچنین در بحث مستند سازی و کار گروهی با سایر توسعه دهندگان ابزار بسیار مفیدی است.

داشتن یک مدل مناسب از نرم افزار بهترین راه برای همکاری با سایر توسعه دهندگان و همچنین درک بهتر نیاز مندی های مشتری است .یک مدلسازی عالی چه برای پروژه های بزرگ و چه پروژه های کوچک بسیار کارگشاست و حتی برای پروژه های کوچک هم بسیار توصیه می شود  و توصیه می شود حتی اگر بر روی یک پروژه تک نفره بسیار ساده کار می کنید برای درک بهتر و شروع مناسب تر از مدل سازی استفاده کنید .

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

  • نمودار کلاس ( Class Diagram)
  • نمودار توالی (Sequence Diagram)
  • نمودار همکاری(Collaboration Diagram)
  • نمودار Use Case Diagram
  • نمودار حالات (State Diagram )
  • نمودار فعالیت (Activity Diagram )
  • نمودار کامپوننت ها (Component Diagram)
  • نمودار استقرار (Deployment Diagram)
  • نمودار ارتباط موجودیت ها (Entity Relationship Diagram)

برای کسب اطلاعات بیشتر در مورد ساختار UML  می توانید به این سایت مراجعه کنید .

 

ساختار UML

در این بخش پیش نمایشی خواهیم داشت از UML اما با توجه به اینکه این مطلب یک آموزش کامل از این زبان نیست بهتر است برای آشنایی و آموزش های کامل به اینترنت یا کتاب هایی که در این زمینه منتشر شده اند مراجعه کنید و قطعا در اینترنت آموزش های زیادی برای شروع برای شما وجود دارد که می تواند نقطه خوبی برای شروع باشد .

UML زبانی برای تجسم یک نرم افزار که به وسیله اصول شی گرایی طراحی شده است به وسیله نمودار هاست .اما به خاطر داشته باشید که UML یک شیوه توسعه نرم افزار نیست یعنی بنا نیست تا UML شما را با به صورت قدم به قدم برای ارائه یک نرم افزار راهنمایی کند و فقط ابزاری است برای تجسم نرم افزاری که قرار است ساخته شود و از همین طریق بتوان درک درستی از نرم افزار را در اختیار دیگران گذاشت .

UML توسعه گروهی به نام  (Object Management Group (OMG  مدیریت می شود و به عنوان یک استاندارد برای تجسم فرایند توسعه نرم افزار مطرح شده است .

UML شامل مدل های مختلفی است که بخش های مختلف نرم افزار را می توان توسط آن تشریح کرد.از عناصر مختلف UML  جهت ساخت نمودار های استفاده می شود که توسط آن می توان ساختار کلی یک سیستم را به نمایش گذاشت.

Use Case Diagram : که شامل actor به عنوان کاربر یا بخشی از استفاده کننده سیستم و use case به عنوان سناریو اصلی توسعه نرم افزار است

Class Diagram:شامل کلاس ها و ارتباط آنهاست

Sequence Diagram : شامل اشیاء و ترتیب فراخوانی متد های هر کدام از کلاس های ایجاد شده می شود .

Collaboration Diagram : جهت نمایش اشیاء و ارتباط بین آنها مورد استفاده قرار می گیرد

State Diagram : ابزاری برای نمایش وضعیت ها و حالات تعویض وضعیت و به طول کل رویداد های سیستم است .

Activity Diagram:شامل نمودار فعالیت هاست و به طور کل نحوه رفتن از یک فرایند به فرایند بعدی را در یک سیستم به نمایش می گذارد.

Component Diagram: نمایشی از اجزای سطح بالا در زبان های برنامه نویسی است .

Deployment Diagram: جهت نمایش ارتباط میان کامپوننت های مورد استفاده قرار می گیرد.

Entity Relationship Diagram : برای نمایش داده ها و مشخص کردن روابط بین داده ها و محدودیت داده ها در سیستم است .

 

نمودار Use Case Diagram :

نمودار Use Case شامل مجموعه ای از  use case ها و actor  ها و نحوه ارتباط و وابستگی های بین آنهاست .

اما ذکر این نکته الزامیست که این نمودار را نمی توان به عنوان سند اصلی طراحی استفاده کرد و اجزائی داخلی سیستم توسط این نمودار قابل ارائه نیست و بیشتر برای آشنایی کاربران با نحوه کارکرد سیستم و همچنین تشخیص بهتر نیاز مندی های سیستم مورد استفاده قرار می گیرد.در حالت کلی نمودار Use Case  به شما می گوید که سیستم قرار است چگونه عمل کند اما راه رسیدن به آن را مشخص نمی کند .

 

نمایی از  نمایش نمودار Use Case

Use Case:

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

در استفاده از use case  ها یک سری قوانین وجود دارد که بهتر است از آنها طبعیت شود.

  • هر use case  در نهایت حتماَ باید حداقل با یک actor در ارتباط باشد.
  • هر use case از فعال کننده دارد
  • هر use Case حتما یک نتیجه خواهد داشت .

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

  • include : نمایش رابطه مشمول است یعنی اینکه یک use case  درون use case  دیگری قرار می گیرد.
  • extends : عنوان می کند که یک use Case  توسط use Case  دیگری توسعه داده می شود و امکانات بیشتری را در راستای همان هدف ایجاد می کند .
  • Generalization : حالتی همچون ارث بری در پیاده سازی را تعریف می کند یعنی use case شامل ویژگی هایست که سایر use case های مشتق شده این ویژگی را ها می توانند به ارث ببرند .

Actor

یک Actor مشخص کننده موجودیتی خارج از سیستم است که با سیستم در ارتباط است و می تواند شامل یک کاربر(انسان ) یا کامپیوتر و یا حتی یک رویداد نیز باشد .

هدف از یک Actor نمایش یک فرد یا سیستم به صورت فیزیکی نیست بلکه تنها جهت مشخص کردن وظایف و ویژگی هایی خاص در سیستم است .به عنوان مثال یک کاربر که با بخش های مختلف یک سیتم ارتباط و در نقش های مختلف ارتباط دارد می تواند به عنوان چند Actor  متفاوت پیاده سازی شود.به عنوان مثال فردی که وظیفه پیشتیبانی تلفنی و همچنین وارد کردن اطلاعات سفارش را در سیستم دارد می تواند به صورت دو نقش مختلف پشتیبان و نماینده فروش نشان داد.

 

Class Diagram

نمودار کلاس در بر دارنده تمامی کلاس هایست که سیستم مورد نظر را تشکیل داده و نحوه ارتباط بین آنها را نیز بیان می کند.از نمودار کلاس به عنوان یک نمودار ایستا یاد می کنند زیرا که تمامی کلاس ها و متد های که مورد استفاده قرار می گیرند داره یک رابطه ایستا هستند.کلاس ها شامل متد های عمومی و خصوصی و همچنین ویژگی هایی هستند که در سیستم مورد استفاده قرار می گیرند .

نمایی از نمودار کلاس 

Sequence Diagrams

نمودار Sequence Diagram جهت نمایش تپادل پیام(فراخوانی توابع) بین اشیاء را در یک زمان معین مشخص می کند.هر کدام از اشیاء نمونه ای از کلاس های موجود هستند و توالی زمانی بر ترتیب ارسال و دریافت پیام ها تاکید می کند .

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

 

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

Collaboration Diagrams

نمودار Collaboration نمایی از اشیاء و نحوه تعامل آنها را در یک وضعیت خاص نمایش میدهد و برخالف نمودار Sequence  شامل توالی زمانی خاصی نمی شود و فقط جهت تجسم رابطه بین اشیاء و توپولوژی کلی پشت صحینه اشیاء مورد استفاده قرار می گیرد.

در این نمودار ارسال پیام ها همراه با جزئیاتی مانند توالی ارسال و نوع متغیر های ارسالی مشخص می شود و می توان گفت ابزار مناسبی جهت نمایش منطق کامل برنامه نویسی سیستم مورد نظر است.

State Diagram

در این نمودار وضعیت های مختلف اشیاء و تغیر وضعیت های آنها رصد می گردد.

به عنوان مثال در یک سیستم تحت شبکه سرویس گیرنده می تواند در هر کدام از حالت های

  • آماده به خدمت
  • در حال گوش دادن برای دریافت اطالعات
  • در حال دریافت اطلاعات
  • توقف
  • و ...

با شد.

و  رویداد های که می توانند باعث تغیر وضعیت شی شوند می توانند به صورت زیر مشخص شوند.

  • شیء ساخته شد
  • شیء پیغام بگوش باش را دریافت کرد
  • سرویس گیرنده یک درخواست اتصال را در شبکه منتشر می کند.
  • کلاینت درخواست خود را لغو می کند
  • شیء پیغام قطع عملیات را دریافت می کند

Activity Diagram

نمودار Activity  شامل توالی خاصی از فعالیت های می باشد و در حالت خاصی از  نمودار Sequence است که در آن فعالیت ها حضور دارند.

 

یک فعالیت را می توان به این شیوه بیان کرد که یک قدم از فرایند پردازشی را فعالیت گویند . فعالیت ها در نهایت به یک خروجی ختم خواهند شد هرچند که یک فعالیت می تواند با توجه به وضعیت های مختلف که برای آن تعریف شده است خروجی های متفاوتی تولید کند.

Entity Relationship Diagrams

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

 

 

رابط کاربری:

umberllo دارای یک رابط کاربری ساده و سر راست برای ایجاد نمودار های مختلف است و در کل می توان رابط کاربری را به سه بخش 

  • نمایش درختی
  • ناحیه کاربری
  • و ناحیه مستندات و تاریخچه تقسیم کرد

بخش نمایش درختی:

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

استفاده از ساختار پرونده ای می توان نمودار های مختلف را در صورت لزوم از طریق پرونده های متفاوت دسته بندی کرد.

بخش مستندات و تاریخچه:

در این بخش می توانید به صورت سریع نمایشی از فعالیت های صورت گرفته بر روی پروژه داشته باشید و همچنین در صورت نیاز توضیحاتی را نیز در آن ثبت کنید.

ناحیه کاربری :

پنجره اصلی نرم افزار را شامل می شود و از طریق آن می توانید کلیه نمودار های ایجاد شده را مشاهده و ویرایش کنید .

 

جهت ایجاد نمودار های مختلف می توانید در بخش ساختار درختی یا از طریق منوی دیاگرام اقدام به ایجاد آن ها نمایید که به قدر کافی ساده بوده و نیازی به توضیحات بیشتر ندارد :)