صفحه شخصی حامد عباسی   
 
نام و نام خانوادگی: حامد عباسی
استان: همدان - شهرستان: ملایر
رشته: کارشناسی عمومی
تاریخ عضویت:  1391/03/07
 روزنوشت ها    
 

 UML چیست ؟ بخش عمومی

6

UML چیست ؟
مراحل پنج گانه برنامه نویسی ، نقطه شروع مناسبی برای طراحی یک برنامه است ( اولین فاز). در ادامه با استفاده از پالایش ( بهسازی ) یکطرفه مراحل پنج گانه برنامه نویسی ، فاز دوم طراحی یک برنامه انجام خواهد شد . استفاده از شبه کد بمنظور ارائه جزئیات پالایش ، کمک قابل توجه و مفیدی در ارتباط با طراحی برنامه را بدنبال خواهد داشت . رویکرد فوق ( مراحل پنج گانه برنامه نویسی ) ، روشی مفید بمنظور طراحی یک برنامه است . در این راستا برخی از طراحان برنامه های کامپیوتری ترجیح می دهند که از یک روش دقیق تر و موشکافانه تر استفاده نمایند . UML(Unified Modeling Language) مبتنی بر چنین رویکردی است .
UML ،زبانی استاندارد بمنظور مشخص نمودن ، پیش بینی ، ایجاد و مستند سازی تولیدات نرم افزاری است . UML ، مجموعه ای از بهترین امکانات مهندسی را بمنظور استفاده در مدل سازی سیستم های بزرگ و پیچیده ارائه که کارآئی آنان به اثبات رسیده است . UML یک متدولوژی رسمی برای پیاده سازی نرم افزار است .
روند شکل گیری UML
برنامه نویسی شی گراء ( OOP ) ، از اوایل سال 1960 مطرح گردید . برنامه نویسی شی گراء با اینکه بعنوان یک ایده جدید مطرح شده بود ولی بسرعت زبان های مدل سازی شی گراء برای پوشش ایده فوق ، مطرح و پیاده سازی گردیدند. در فاصله سال های 1970 تا اواخر 1980 چندین زبان مدل سازی شی گراء پیاده سازی گردید . تعداد زبان ها ی مدل سازی شی گراء در سال 1995 به بیش از پنجاه نمونه رسیده بود .
از افراد فعال و پیشرو در این زمینه می توان به Jim Rumbaugh ( شرکت جنرال الکتریک )، Grady Booch ( شرکت Rational software ) و Ivar Jacobson ( شرکت Objectory ) اشاره نمود. هر یک از افراد فوق ، تلاش گسترده ای را در جهت مدل سازی زبان برنامه نویسی انجام داده بودند . در سال 1994 ، Rumbaugh شرکت جنرال الکتریک را ترک و به Booch در شرکت Rational Software ملحق گردید. یک سال بعد ، شرکت Rational Software ، شرکت Objectory را خریداری و افراد یاد شده همکاری خود را با یکدیگر و در یک شرکت مشترک آغاز نمودند. ماحصل همکاری فوق ، ارائه اولین نسخه UML 0.9 توسط شرکت Rational software در سال 1996 بود .
در سالیان بعد ، OMG)Object Management Group) ، تلاش های گسترده ای را بمنظور ارتقاء و بهسازی UML آغاز نمود. در اواسط سال 2001 ، اعضاء OMG ، کار خود را بمنظور ارتقاء به UML 2.0 آغاز نمودند. در حا ل حاضر ، UML شامل مدل سازی ویژوال ، شبیه سازی و امکانات پیاده سازی است . تعداد زیادی از ابزارهای UML طراحی و در اختیار علاقه مندان قرار گرفتند . Rational Rose 2002 از شرکت Rational Software ، نرم افزار Describe Enterprise از شرکت Embarcadero Technologies و Visio 2002 از شرکت مایکروسافت . نمونه هائی از ابزارهای UML می باشند .
دیاگرام های UML
UML یک ابزار ویژوال بوده و از انواع متفاوتی دیاگرام استفاده می نماید . هر یک از دیاگرام های UML ، امکان مشاهده یک سیستم نرم افزاری را از دیدگاههای متفاوت و با توجه به درجات متفاوت Abstraction در اختیار پیاده کنندگان قرار می دهد. برخی از دیاگرام های UML عبارتند از :
• Class Diagram
• State Diagram
• Sequence Diagram
• Collaboration Diagram
• Activity Diagram
• Component Diagram
• Deployment Diagram

آنالیز شی گراء (OOA)
آنالیز شی گراء و یا OOA ، یک متدولوژی قدرتمند برای تجزیه و تحلیل فرآیند پیاده سازی نرم افزار است . در زمان استفاده از OOA ، هر چیز در فرآیند پیاده سازی نرم افزار بمنزله کلاس در نظر گرفته خواهد شد ( این طرز تفکر می بایست محور آنالیز سیستم قرار گیرد ) . مثلا" در یک بیمارستان هر یک از عناصر موجود نظیر : دکتر ، پرستار ، بیمار و ملاقات کننده ، بمنزله یک کلاس در نظر گرفته می شوند . هر نسخه جدیدی که از یک کلاس ایجاد می گردد ، بمنزله یک نمونه ( Instance ) از کلاس در نظر گرفته خواهد شد . محوریت فرآیند آنالیز شی گراء ، تاکید بر ایجاد کلاس های مورد نیاز سیستم است .
مهمترین و اصلی ترین رویکرد OOA ،یافتن پاسخ مناسب برای سوالاتی است که با What شروع و در فرآیند پیاده سازی نرم افزار حضوری موثر دارند . نمونه سوالات OOA در این زمینه عبارتند از : " چه کلاس هائی در برنامه وجود دارد؟" . " چه چیزی را برنامه انجام خواهد داد ؟" " هر یک از کلاس ها در برنامه چه عملیاتی را بمنظور حل مسئله انجام خواهند داد ؟" " مسئولیت هر کلاس در برنامه چیست ؟" در OOA ، تاکید بر آنالیز اشیاء ، فعالیت ها و مسئولیت های سیستم نرم افزاری است .
طراحی شی گراء ( OOD )
نکته اساسی در طراحی شی گراء ، تاکید و سرو کار داشتن با سوالاتی است که با How شروع و در فرآیند پیاده سازی نرم افزار حضوری فعال و موثر خواهند داشت . " چگونه این کلاس داده را جمع آوری می کند ؟" . " چگونه این کلاس گزارش را چاپ می نماید ؟" ، نمونه سوالاتی در این زمینه می باشند .در نمونه مثال بیمارستان، وضعیت فوق به خصلت ها ، صفات و متدهای یک کلاس مرتبط می گردد .
بنابراین OOA ، کلاس های مورد نظر و ضروری بمنظور نیل به اهداف نرم افزار را مشخص می نماید و محور عملیات بر جستجو و تبین جایگاه یک کلاس در برنامه متمرکز است . در OOD ، تاکید بر پیاده سازی کلاس ها ، صفات و خصایصی است که بمنزله هسته یک کلاس مطرح می گردند . ترکیب هر یک از فعالیت های فوق ( آنالیز شی گراء و طراحی شی گراء ) بهمراه پیاده سازی لینک هائی که با کلاس ها سروکار دارند جملگی بعنوان بخشی از فرآیند OOP ( برنامه نویسی شی گراء ) محسوب می گردند.
علایم + و -
همانگونه که مشاهده می گردد ، هر entry دربخش دوم دیاگرام کلاس Vehicle ، دارای یک علامت - در جلوی نام خود است .در بخش سوم ، برخی از Entry ها ، دارای علامت + و برخی دیگر دارای علامت - می باشند . وجود علامت + در ابتدای یک آیتم ( خصلت ، متد ) ، نشاندهنده در دسترس بودن آن از طریق خارج از کلاس است . بعبارت دیگر ، علامت +، امکان استفاده از آیتم مورد نظر و تاثیرگذاری بر وضعیت یک کلاس را نشان می دهد . علامت + ، عمومی بودن ( Public ) عناصر کلاس مربوطه را نشان می دهد .
اگر یک Entry با یک علامت - شروع گردد ، بدین معنی خواهد بود که آیتم مورد نظر صرفا" برای استفاده خود کلاس در دسترس بوده و امکان استفاده از آن برای خارج از کلاس میسر نخواهد بود. بنابراین علامت - ، نشاندهنده خصوصی ( Private ) بودن عناصر مربوط به یک کلاس است .
استفاده از علائم + و - ، نشاندهنده نوع دستیابی به هر یک از عناصر مربوط به یک کلاس است . در حقیقت علامت + ، روشی بمنظور ارتباط با کلاس را مشخص نموده و علامت - نشاندهنده عناصری است که صرفا" برای خود کلاس قابل استفاده خواهند بود .
ایجاد یک آیتم بصورت خصوصی همواره مورد توجه طراحان شی گراء بوده و تامین کننده اهداف کپسوله سازی در برنامه نویسی شی گراء است . با کپسوله سازی داده ، امکان بروز تغییرغیرعمد داده در برخی بخش ها ی برنامه و از طریق خارج از کلاس به حداقل مقدار خود خواهد رسید . بدین ترتیب، تشخیص و برطرف نمودن خطاهای احتمالی ، بسرعت و بسادگی میسر خواهد شد .
خلاصه
• الگوریتم ،اعلامیه ای سازماندهی شده بمنظور حل یک مسئله خاص و یا سوالاتی است که می بایست پاسخ آنان مشخص گردد . یک الگوریتم مناسب ، تمامی مراحل لازم بمنظور انجام فرآیندهای مورد نیاز و حل یک مسئله را ارائه می نماید .
• مقداردهی اولیه ، ورودی ، پردازش ، خروجی و پاکسازی ، پنج مرحله متفاوت برنامه نویسی می باشند .
• مراحل پنج گانه برنامه نویسی ، نگرشی ماکرو از یک برنامه را ارائه می نمایند . مثلا" مرحله ورودی ممکن است نیازمند اخذ داده از صفحه کلید ، خواندن یک جدول تنظیمات از یک بانک اطلاعاتی و نهایتا" خواندن اطلاعات بیشتر از بانک اطلاعاتی دیگر باشد . بهسازی ( پالایش ) یکطرفه ، فرآیندی است که بر اساس آن یکی از مراحل برنامه نویسی (نظیر مرحله ورودی ) بررسی و به آن جزئیات بیشتری اضافه اضافه خواهد شد . عملیات فوق تا استخراج و مشخص شدن تمامی جزئیات لازم در رابطه با یک مرحله خاص ادامه خواهد یافت . عملیات بهسازی ( پالایش ) یکطرفه ، زمانی متوقف می گردد که کد واقعی یک تابع نوشته گردد .محوریت فرآیند فوق ، تبدیل الگوریتم های ماکرو به میکرو است :
Input Step->ReadKeyboard( )
ReadSetupTable( ) ->ReadTable1( ) ->(Code)
ReadTable2( )
ReadTable3( )
• UML ، از کلمات Unified Modeling Language اقتباس شده است . مزیت استفاده از UML ، تفکر مبتنی بر برنامه نویسی شی گراء است .بلاک های اولیه ایجاد UML کلاس ، خصلت و متد نامیده می شوند. دیاگرام های کلاس UML تمام سه عنصر OOP را در یک دیاگرام مناسب نمایش می دهند .
• در OOP ، واژه های Private و Public به نحوه دستیابی به خصلت ها بر می گردد . اگرخصلتی از نوع Private باشد ،امکان تغییر آن صرفا" برای کسانی که به کلاس فوق تعلق دارند، وجود خواهد داشت .اگر خصلتی از نوع Public باشد ، سایر اشیاء امکان دستیابی کامل به خصلت را ( اعمال تغییرات مورد نظر ) خواهند داشت.
مثال.
1- مشکل آسانسور
محصول مورد نظر یک سیستم برای کنترل دستگاه آسانسوری است که در یک ساختمان با n طبقه نصب شده است . مشکل نگرانی های منطقی مورد نیاز برای حرکت بین دستگاه آسانسور طبقه با توجه به محدودیت های زیر می باشد :
• هر آسانسور دارای یک مجموعه دکمه میباشد ، هر طبقه یک دکمه . این دکمه ها وقتی فشار داده شوند روشن می شوند و موجب میشوند که آسانسور به طبقه مورد نظر هدایت شود . روشنهایی دکمه وقتی آسانسور به طبقه مورد نظر میرسد خاموش میشود .
• بجز طبقات اولی و آخری ، سایر طبقات دارای دو دکمه میباشند . یکی برای آسانسور بالا رونده و دیگری برای آسانسور پایین رونده . این دکمه ها نیز وقتی فشار داده شوند روشن میشوند . پس از اینکه آسانسور به طبقه می رسد و سپس به سمت جهت مورد نظر حرکت می کند چراغ خاموش میشود .
• زمانیکه تقاضایی برای استفاده از آسانسور وجود ندارد ، آسانسور در طبقه جاری با درب بسته می ماند .
2-زبان متحد مدلسازی
UML یک زبان مدل سازی میباشد که با نماد ها مشخص میشود اما هیچ پردازشی را انجام نمیدهد . ما تصمیم داریم این مساله را با نمودارهای زیر به ترتیب مدل کنیم .
• Use Case Diagram - نمودار مورد کاربری
• Class Diagram - نمودار کلاس
• Sequence Diagram - نمودار توالی
3- تحلیل
3-1- نمودار مورد کاربری
توصیف ویژگیهای نمودار
• توضیحات کلی در مورد اینکه چگونه از سیستم استفاده خواهد شد
• مروری بر عملکرد خواسته شده از سیستم فراهم می آورد
• قابل فهم شدن موضوع توسط یک شخص آماتور همانند یک شخص حرفه ای
نمودار مورد کاربری :

برای دیاگرام مورد کاربری بهتر است یک سناریو تهیه شود . در ایجاد سناریو باید به هر مرحله یک شماره اختصاص داده شود . با توجه به نمودار فوق می توان سناریو زیر را ایجاد کرد :
• Passenger pressed floor button
• Elevator system detects floor button pressed
• Elevator moves to the floor
• Elevator doors open
• Passenger gets in and presses elevator button
• Elevator doors closes
• Elevator moves to required floor
• Elevator doors open
• Passenger gets out
• Elevator doors closes

• رهگذر دکمه طبقه را فشار میدهد .
• سیستم آسانسور تشخیص میدهد که دکمه آسانسور فشار داده شده است .
• آسانسور به سمت طبقه ای که از آن درخواست رسیده حرکت می کند .
• پس از رسیدن به طبقه درب آسانسور باز می شود .
• رهگذر وارد آسانسور می شود و دکمه طبقه مورد نظرش را فشار می دهد .
• درب آسانسور بسته می شود .
• آسانسور به سمت طبقه خواسته شده به حرکت در می آید .
• آسانسور به طبقه مورد نظر میرسد و درب آسانسور باز میشود .
• رهگذر از آسانسور خارج میشود .
• درب آسانسور بسته میشود .
3-2-نمودار کلاس
نمودار کلاس نمایش دهنده ساختار ایستای اشیاء بهمراه ساختار داخلی کلاس و روابط بین کلاسها میباشد .
نمودار کلاس :


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

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

نمودار توالی برای مدل سازی دکمه طبقه

یکشنبه 7 خرداد 1391 ساعت 11:07  
 نظرات    
 
مائده علیشاهی 23:40 یکشنبه 7 خرداد 1391
0
 مائده علیشاهی
ممنون
ویراستار پارسی 00:24 دوشنبه 8 خرداد 1391
0
 ویراستار پارسی
سلام
اگر منطور از ( مسائله ) جمع مساله (مسئله) است نگارش آن به صورت مسائل (مسایل) درست است.

مساله
خواستن

مساله آموز
آموزنده مسائل

مساله گو
بیان کننده مسائل

مساله گویی
شغل کسی که مسائل شرع را مطرح می کند

مساله - مسئله
1- حاجت نیاز خواهش درخواست . 2 - مطلب مبحث قضیه . 3 - سوال ( ریاضی احکام شرعی و غیره ) جمع : مسایل ( مسائل )

توضیح 1 :در رسم الخط عربی مساله نویسند و بتقلید آن در فارسی هم گروهی همین صورت را بکار برند ولی غالبا مسئله متداول است .

توضیح 2 : گاه مسئله گویند و مراد طرح مسئله ای شرعی و جز آنست .

صمد عباسی 18:14 چهارشنبه 26 خرداد 1395
0
 صمد عباسی
سلام  دوست عزیزم 
من دانشجوی مهندسی فناوری اطلاعات هستم میتونم ی خواهشی ازت داشته باشم؟

در مسئله اسانسور میتونی نمودار هاشم رسم کنی؟من فردا امتحان دارم و نیاز فوری دارم به جوابش اگه امکانش هست جوابشو برام ایمیل کنی
باتشکر و تجدید احترام 
عباسی
Samad.abbasi167@gmail.com