UML زبانی نمادین و گرافیکی است که برای مدل کردن ساختارها و خروجی های تحلیل ، طراحی و معماری سیستم های نرم افزاری ، بوجود آمده است
مقدمه:
UML زبانی نمادین و گرافیکی است که برای مدل کردن ساختارها و خروجی های تحلیل ، طراحی و معماری سیستم های نرم افزاری ، بوجود آمده است و امروزه به عنوان تنها زبان استاندارد براي مدلسازي سيستمهاي نرمافزاري به روش شی گرا ، محبوبيت گستردهاي پيدا كرده است .وجود تيمهاي متعدد در يك پروژه نرمافزاري استفاده از نمودارها و المانهاي UMLرا به عنوان ابزاري جهت مستندسازي،نمايش و انتقال مفاهيم نرمافزاري بین افراد مختلف در گیر در پروژه ،اجتناب ناپذير كرده است.
UMLامروزه به عنوان تنها زبان استاندارد براي مدلسازي سيستمهاي نرمافزاري محبوبيت گستردهاي پيدا كرده است. وجود انواع سيستمهاي نرمافزاري مانند سيستمهاي Enterprise Web Applications، برنامه های کاربردی سازمانی، Real Time Systems و دیگرسیستم های اتوماسیون و همچنين وجود تيمهاي متعدد در يك پروژه نرمافزاري استفاده از نمودارها و المانهاي UMLرا به عنوان ابزاري جهت مستندسازي،نمايش و انتقال مفاهيم نرمافزاري بین افراد مختلف در گیر در پروژه ،اجتناب ناپذير كرده است.
UMLدر واقع زبان مشترکی است میان صاحبان، استفادهکنندگان، تولیدکنندگان و همه کسانی که به نوعی در پروسه توليد سیستمهای نرمافزاری دخیل میباشند و بعنوان یک ابزار کلیدی برقراری ارتباط میان همه آنها نقش ایفا میکند.
UMLبه دلیل داشتن مجموعهای غنی از نمادها برای اشیاء و روابط، اکنون دیگر بعنوان یک ضرورت برای برنامهنویسان، طراحان و تحلیلگران سیستمهای نرمافزاری مطرح میباشد. بگونهای که بدون تسلط به آن، این گروه از متخصصین نمیتوانند تمام نیازهای خود را برآورده نمایند. لذا لازم است که جزئیات آن با عمق و وسعت کافی در اختیار استفاده کنندگان آن قرار گیرد.
چرا مدل سازی می کنیم؟
ما مدل سازی می کنیم برای اینکه بتوانیم ، سیستمی که در حال تولید آن هستیم را بهتر درک کنیم.
معمولا ما برای سیستم های پیچیده مدل هایی را درست می کنیم به این دلیل که نمی توانیم تمام جزئیات یک سیستم پیچیده را بصورت یکجا و کامل درک کنیم. دلیل این موضوع این است که مغز انسان در درک پیچیدگی های زیاد با محدودیت هایی مواجه است.
البته مدل سازی صرفا برای سیستم های بزرگ و پیچیده استفاده نمی شود و حتی برای سیستم های کوچک و متوسط نیز مفیداست. اما هر چه سیستم بزرگتر و پیچیده تر باشد ، اهمیت مدل سازی برای آن بیشتر است.
یک مدل چیست؟
یک مدل ، ساده سازی از دنیای واقعی است. یک مدل یک Blue print(نقشه) از یک سیستم است.و سیستم ممکن است که از جنبه های مختلفی و توسط مدل های مختلفی تشریح شود.این به آن مفهوم است که برای توصیف یک سیستم (یک نرم افزار – یا ساختمان یا یک موشک ...) به چندین مدل مختلف نیاز است.
که هر کدام از آنها از یک زاویه دید منحصر بفرد به سیستم مورد نظر نگاه خواهند کرد. یک مدل ممکن است ساختاری باشد که تاکید بیشتر آن روی سازمان (organization) سیستم مورد نظر است و یا ممکن است که رفتاری باشد که بیشتر روی جنبه های رفتاری (دینامیک) سیستم تاکید دارد.
ما با مدل سازی به چهار هدف عمده می رسیم:
1)مدل ها به ما کمک می کنند که یک تجلی بصری از یک سیستم درست کنیم ان طوری که هست و یا آن طوری که می خواهیم باشد.
2)مدل ها به ما اجازه می دهند که رفتار و ساختار یک سیستم را توصیف کنیم.
3)مدل ها به ما قالبی هایی را می دهند که ما را در ساختن یک سیستم هدایت می کنند.
4)مدل ها وسیله ای هستند که تصمیم هایی را که مهندسین برای ساختن یک پروژه گرفته اند را مستند سازی نمایند.
چندین دیاگرام برای توصیف یک سیستم لازم است:
نکته مهم این است که یک مدل (دیاگرام) تنها برای توصیف یک سیستم کافی نیست.بلکه مدل های مختلفی لازم است که به کمک آنها بتوانیم همه جنبه های یک سیستم را توصیف کنیم.
هر مدل از زاویه دید منحصر بفردی به یک سیستم نگاه می کند و بر اساس آن دید آطلاعاتی راجع به پروزه مورد نظر می دهد. دلیل اینکه به چندین مدل نیاز است این است که هر مدل می بایست از زاویه دید خاصی به سیستم نگاه کند و این زاویه دید می بایست با سایر مدل ها حتما متفاوت باشد.
نتیجه این مسئله این است که چندین مدل بدون پیچیدگی خواهیم داشت که ، مجموع آنها با هم اطلاعات کاملی از پروژه را به ما می دهند.و تک تک آنها ضمن ساده بودن (که شرط اصلی هر مدل می باشد) از یک زاویه دید مشخص به ما اطلاعاتی درباره پروژه می دهند.
در ضمن افراد با تخصص و نیازمندی های مختلف ، می توانند از یک مدل اطلاعات مورد نیاز خود را بدست آورند بدون اینکه لازم باشد درگیر همه جزئیات پروژه شوند. به عنوان مثال یک مشتری می خواهد که عملکرد ها یا Functionalityیک نرم افزار را بداند و در این حالت او می تواند با دیدن Use Case Diagramاین اطلاعات را بدست آورد و نیازی به بررسی سایر مدل ها ندارد.
در UML، 13 دیاگرام وجود دارد که هر کدام جنبه مشخص و منحصر بفردی از یک سیستم را به ما نشان می دهند.بعضی از این مدل ها جنبه آنالیز یا شناخت دارند .پاره ای جنبه طراحی دارند و دسته دیگر به معماری یک سیستم نرم افزاری می پردازند.
|
ردیف |
نام مدل |
معادل فارسی |
کاربرد |
|
1 |
Use case Diagram |
دیاگرام موارد کاربرد |
تحلیل |
|
2 |
Activity Diagram |
دیاگرام فعالیت |
تحلیل |
|
3 |
Class diagram |
دیاگرام کلاس |
تحلیل – طراحی |
|
4 |
State Chart Diagram |
دیاگرام حالت |
تحلیل |
|
5 |
Sequence Diagram |
دیاگرام توالی |
طراحی |
|
6 |
Interaction OverView Diagram |
دیاگرام همکاری |
طراحی |
|
7 |
Component Diagram |
دیاگرام اجزاء |
معماری |
|
8 |
Deployment Diagram |
دیاگرام توزیع |
معماری |
|
9 |
Object Diagram |
دیاگرام اشیاء |
طراحی |
|
10 |
Composite Structure Diagram |
دیاگرام ساختار ترکیبی |
طراحی |
|
11 |
Package Diagram |
دیاگرام بسته بندی |
تحلیل – طراحی |
|
12 |
Timing Diagram |
دیاگرام زمانی |
طراحی |
|
13 |
Communication Diagram |
دیاگرام ارتباطات |
طراحی |
|
|
|
|
|
اهداف دوره:
در این دوره ، دانشجو علاوه بر دیاگرام های UMLبا مفاهیم تحلیل و طراحی شیء گرا نیز آشنا می شود.برای ایجاد دیاگرام های UML، شرط لازم تسلط بر تحلیل و طراحی شی گراء می باشد.اصولا دانشجویان این دوره به دو دسته تقسیم می شوند. UML Readerها و UML Writerها
دسته اول کسانی هستند که می توانند دیاگرام های UMLرا بخوانند واطلاعات لازم برای کارهایی مانند برنامه نویسی و غیره را از آن استخراج کنند. و دسته دوم کسانی هستند که می توانند دیاگرام های UMLرا ایجاد کنند.
محتوای دوره:
مقدمه ای بر UML:
1) اهمیت مدل سازی
2) دلائل مدل سازی
3) معرفی UML
4) منشاء UML
5) UMLچیست؟
6) چرا از UMLاستفاده می شود؟
7) UMLبه عنوان یک زبان
8) اسامی عناصر UML
9) قابلیت توسعه UML
10) کاربرد UML در فیلد های نرم افزار هایی مختلف
11) فرقUMLو RUP
12) ارتباط UMLبا تحلیل و طراحی نرم افزار
13) معرفی دیاگرام های UML
14) دیاگرام های دینامیک و استاتیک
15) دیاگرام های تحلیل ، طراحی و معماری
دیاگرام فعالیت (Activity Diagram) :
1) ساخت یک دیاگرام فعالیت
2) کاربرد دیاگرام فعالیت
3) نحوه تشخیص فعالیت ها
4) مدل سازی فعالیت های موازی
5) خطوط شنا (SwimLane)
6) نمایش انشعاب شرطی (Branch Condition) در یک دیاگرام فعالیت
7) کاربرد های مختلف دیاگرام فعالیت
8) مدل سازی فرایند های سازمان
9) مدل سازی موارد کاربرد پیچیده
10) مدل سازی متد های پیچیده
11) استفاده از Note در دیاگرام فعالیت
دیاگرام موارد کاربرد (Use Case Diagram) :
1) تعریف اکتور
2) نحوه پیدا كردن اکتور ها
3) انواع اکتور
4) نامگذاری اکتورها
5) رابطه اکتور با Use Case ها
6) نحوه پیدا كردن Use Case ها
7) چگونه یك Use Caseتوصیف می شود
8) نامگذاری یك Use Case
9) توصیف اجمالی (Brief Description)
10) پیش شرط ها (PreConditions)
11) پس شرط ها (Postconditions)
12) روند اصلی (Basic Flow of Events)
13) روند های فرعی (Alt flow of events)
14) نیازمندیهای غیر عملیاتی (Supplementary Behavior)
15) روابط بین Use Caseها
16) رابطه Include
17) رابطه Extend
18) استفاده از State Diagramجهت تشریح Use Case
19) استفاده از Activity Diagramجهت تشریح Use Case
نمودار کلاس (Class Diagram) :
1) تعریف کلاس
2) نماد کلاس در UML
3) نامگذاری کلاس ها
4) ویژگی های کلاس
5) متد های کلاس
6) روابط بین کلاسها
7) رابطه وراثت (Generalization)
7-1) کلاس پایه
7-2) کلاس های فرزند
7-3) ارث بری چند گانه
7-4) کلاسهای مجرد
7-5) متد های مجرد
7-6) چندریختی
8) رابطه انجمنی ( Association)
8-1) انجمنی یکطرفه و دو طرفه
8-2) نقش هر کلاس در رابطه انجمنی
8-3) Multiplicityهر کلاس در رابطه انجمنی
8-4) تبدیل روابط انجمنی n-nبه روابط 1-n
9) رابطه Aggregation
10) رابطه Composition
11) تفاوت رابطه Aggregationبا رابطه Composition
12) Association Class
13) رابطه وابستگی (Dependency)
14) سطوح دسترسی به ویژگی ها و متد های یک کلاس
15) متد ها و ویژگی های استاتیک
16) چگونگی تشخیص و استخراج کلاسها
17) روش های حرفه ای تر در طراحی کلاسها
18) انواع کلاس ها در یک برنامه نرم افزاری
نمودار وضعیت (State Chart Diagram) :
1) ایجاد یک نمودار تغییر وضعیت
2) نمودار وضعیت به عنوان یک دیاگرام تحلیل و طراحی
3) تشخیص وضعیت ها
4) نام گذاری وضعیت ها
5) جزئیات یک وضعیت
5-1) فعالیت (Activity)
5-2) یک عمل ورودی (Entry Action)
5-3) فعالیت خروجی (Exit Action)
5-4) فرستادن Eventبه آبجکت دیگر
5-5) تاریخچه حالت (State History)
6) گذر ها (Transition)
7) جزئیات یک گذر
7-1) رخداد (Event)
7-2) حالت شرط (Guard Condition)
7-3) فعالیت (Action)
نمودارهای توالی(Sequence Diagram) و همکاری (Collaboration) :
1) ساخت یک نمودار ارتباط
2) یافتن آبجکت ها
3) افزودن Msg به یک دیاگرام توالی
4) انواع Msgها در یک دیاگرام
5) نگاشت یک Msgبه یک عملیات
6) استفاده از دیاگرام توالی برای نشان دادن معماری نرم افزار و لایه بندی آن
7) خط عمر یک آبجکت
8) چگونگی نمایش Loopها در یک دیاگرام توالی
9) چگونگی نمایش شرط ها (if) در یک دیگرام توالی
نمودار اجزاء (Component Diagram) :
1) نمودار اجزاء به عنوان یک نمودار معماری
2) چگونگی تشخیص اجزاء
3) اجزاء (Component)
4) نام گذاری اجزاء
5) اجزاء و کلاس ها
6) تفاوت بین اجزاء و کلاس ها
7) تشابه بین اجزاء و کلاس ها
8) اینترفیس
9) ارتباط بین اجزاء و اینتر فیس ها
10) انواع اجزاء استاندارد
11) مدل سازی فایل های قابل اجراء و کتابخانه کلاس ها
12) مدل سازی جداول ، فایل ها و اسناد
13) مدل سازی کد ها
14) مدل سازی یک پایگاه داده فیزیکی
نمودار استقرار (Deployment Diagram) :
1) ایجاد دیاگرام استقرار
2) معرفی نود ها
3) چگونگی تشخیص نود ها
4) نامگذاری نود ها
5) ابعاد فیزیکی و منطقی
6) نود ها و اجزاء(Component)
7) سازمان دهی نود ها
8) ارتباطات
9) مدل سازی پروسه ها و Deviceها
10) مدل سازی توزیع شدگی اجزاء
مخاطبین:
· مهندسین کامپیوتر
· برنامه نویسان
· مهندسین صنایع
· کسانی که کار تحلیل سیستمی انجام می دهند
· کسانی که کار تحلیل نرم افزاری انجام می دهند
· کسانیکه کار طراحی نرم افزار انجام می دهند.
پيش نياز:
تجربه خوب در برنامه نویسی شيگرا
مدت دوره :
60 ساعت (شامل UML، تحلیل و طراحی شی گرا و نرم افزار Rational Rose)
مدرس :
محمود نادری (مشاهده رزومه)
| بعدی > |
|---|
آخرین بروز رسانی مطلب در سه شنبه ، 6 ارديبهشت 1390 ، 14:22

