امروزه با توجه به پیشرفت های موجود در حوزهی فناوری، امکان پیگیری پروژهها به صورت ذهنی و به موفقیت رساندن آنها از این طریق، بسیار دشوار و ناممکن به نظر میرسد؛ حتی پیگیری پروژه از طریق یک متن نامنظم هم نمیتواند به موفقیت منجر شود. برای موفقیت پروژه باید یک روند مدون ایجاد کرده و در طول پروژه آن را مد نظر داشته باشید؛ به این منظور بهترین ابزار موجود، استفاده از زبان مدلسازی یکپارچه (UML) میباشد.
مدل سازی (Modeling) چيست؟
مدلسازی به طوركلی به معنی شبيه سازی يك محيط با اندازه های متفاوت از محيط واقعی و احتمالا مواد و مصالحی متمايز از جنس مواد و مصالح محيط واقعی، میباشد.
مدل سازی فرآیند نرم افزار، یک نمایش ساده از فرآیند نرم افزار است که از یک دیدگاه به خصوص ارائه می شود. مثلا از دیدگاه نقش- فعالیت (اینکه چه کسی چه کاری را انجام دهد).
در نرم افزار، روش های توليد نرم افزار مانند RUP در واقع روش های مدلسازی می باشند. هر روش مدل سازی طبيعتاً نيازمند مصالحی برای ساخت مدل می باشد كه در روش های مدل سازی نرم افزاری، مصالح لازم برای توليد مدل، زبان های مدل سازی می باشند.
فوائد مدل
- سیستمى را كه در حال ساختن آن مى باشیم بهتر درك كنیم.
- ساختار و رفتار سیستم را مشخص كنیم.
- معمارى سیستم خود را كنترل كنیم.
- مدلها تصمیماتى را كه در جهت كاربردى سیستم باید گرفته شوند مستند مى كنند .
- كاربران تصویرى از محصول نهایى را مشاهده كنند.
- ریسكهاى پروژه را مدیریت كنیم.
- امكان Reuse را در سیستم داشته باشیم.
UML چيست؟
- زبانی شی گرا برای مشخص سازی، ساخت و مستند سازی یک سیستم نرم افزاری است.
- یک زبان مدل سازی استاندارد است نه یک فرایند استاندارد.
- برای ایجاد نمودارها هیچ توصیه ای ارائه نمی دهد، بلکه تجربیات و یادگیری افراد است که تشخیص استفاده از هر یک از نمودارها را به استفاده کنندگان می دهد.
- دارای ساختار کامل و دقیقی است اما به گونه ای طراحی گردیده تا کاربران بتوانند براساس نیازهای خود بخش هایی به آن اضافه کنند.
تاریخچه UML
Unified Modeling Language يك زبان مدل سازی است كه درسال 1995 به وسيله شركت Rational معرفی شد.
پس از ارائه مفاهيم شی گرائی در ابتدای دهه 80 ميلادی به تدريج روش های شی گرائی توليد نرم افزار ارائه گرديد. از مهمترين اين روش ها می توان به OMT، BOOCH، OOSE و... اشاره كرد.
با هدف ارائه يك زبان استاندارد فراگير، شركت Rational با گردآوری سه نفر از ارائه كنندگان معتبرترين روش های شی گرا يعنی Irar jacobson مبدع روش OOSE، BOOCH مبدع روشی با همين نام، Rambaugh مبدع روش OMT، و با اخذ نقاط قدرت سه روش فوق الذكر، يك زبان استاندارد به نام UML ارائه كرد.
پس از ارائه، اين زبان از سوی Object Mamgement Group، به عنوان يك استاندارد جهانی پذيرفته شد و در حال حاضر به عنوان قدرتمندترين زبان مدل سازی در دنيای نرم افزار مطرح است.
فازهای UML
گرچه UML مستقل از فرآیند است ولی ایجاد کنندگان آن فرایندی را طراحی کرده اند که به طور کامل از UML پشتیبانی میکند. عموماً هر فرآیندی شامل فازهای زیر است:
- آنالیز نیازها (Requirement Analysis)
- آنالیز (Analysis)
- طراحی (Design)
- پیاده سازی (Implementation)
- آزمایش (Test)
آنالیز نیازها (Requirement Analysis)
در uml ، use case ها هستند که نیازمندی های مشتری را توصیف می کنند. Actor ها و use case ها با ارتباطات مدل می شوند و هر use case به صورت متنی نیازمندی های مشتری را توضیح می دهد، به این معنا که مشتری چه چیزهایی از سیستم توقع دارد، بدون اینکه کوچکترین اطلاعی در مورد پیاده سازی برنامه داشته باشد.
آنالیز (Analysis)
در این فاز کلاسها و اشیاء اولیه که در دامنه مسئله حضور دارند تهیه می شوند و در مورد همکاری کلاسها برای اجرای use caseها توضیح داده می شود. در فاز آنالیز، فقط کلاس هایی که در دامنه مسئله (مفاهیم دنیای واقعی) قرار دارند به کلاسهایی تکنیکی که در سیستمهای نرم افزاری مثل پایگاه داده و... تعریف می شوند مدل می شوند.
طراحی (Design)
در فاز طراحی، نتیجه آنالیز به راه حل تکنیکی ختم می شود و کلاسهای جدید به مدل اضافه می شوند. کارکرد طراحی در فاز ساختاری این است که وارد جزئیات می شود و مدلها را آماده برای پیاده سازی می کند.
پیاده سازی(Implementation)
در این فاز کلاس هایی که در مرحلهی طراحی تهیه شده بودند، به کدهای واقعی به زبان های برنامه نویسی تبدیل می شوند.
در فاز آنالیز و طراحی بهتر است از لحاظ ذهنی به کد توجه نشود.
آزمایش (Test)
پس از اتمام فازهای مذکور، برنامه مورد آزمایش قرار میگیرد. عیوب آن را مشخص شده و به عقب بر می گردیم. این فاز دو یا چند بار تکرار می شود تا برنامه به کمال مطلوب برسد.
دياگرام های UML
UML يک ابزار ويژوال بوده و از انواع متفاوتی از دياگرام استفاده می نمايد. هر يک از دياگرام هایUML ، امکان مشاهده ی يک سيستم نرم افزاری را از ديدگاههای متفاوت و با توجه به درجات متفاوت Abstraction در اختيار پياده کنندگان قرار میدهد. دياگرام های UML عبارتند از:
• نمودارهای ساختاری: این نوع نمودارها به منظور مدل سازی جنبه های ثابت و ساختاری سیستم به کار می روند.
• نمودارهای رفتاری: این نوع نمودارها به منظور مدل سازی جنبه های پویا و رفتاری سیستم به کار می روند.