نوشته شده توسط
aliarjmandi
مورخه
۱۳۸۸/۷/۶
در ساعت
04:14
|
دیباچه تولید نرم افزار بر خلاف آن چیزی که در اکثر نقاط کشورمان (البته غیر از برخی شرکتهای پر قدرت) جریان دارد نه یک کار آموتور بلکه یک کار کاملاً حرفه ای می باشد . عدم توجه به اصول تولید نرم افزار تولیدات نرم افزاری را به سمت محصولاتی با طراحی و تحلیل ضعیف سوق داده است . عدم توجه به متدولوژیها ، تولید مستندات تولید ، وابسته به نفر بودن ، عدم استفاده از استاندارهای تولید و ... از مشکلات موجود محصولات نرم افزاری میباشد . نبود این مستندات امکان ممیزی و رتبه بندی محصولات نرم افزاری و در نیتجه درجه بندی آنها توسط مراجع مربوطه غیر ممکن می کند . در نتیجه نبود این درجه بندیها مشتریان نیز دچار سردرگمی بوده و در نتیجه هیچ مبنایی برای انتخاب یک نرم افزار ندارند . اما تولید این مستندات نیز برای شرکتها بار هزینه ای فراوانی به همراه می آورد . این هزینه ها شامل هزینه های زمانی و ریالی میباشد . اما به نظر می رسد مسئله کمبود و عدم وجود نیروهای متخصص تحلیلگر و آشنا با ابزارهای تحلیل و طراحی بیش از همه مشکلات راه شرکتها را برای استفاده از اصول سد می کند . به نظر می رسد بر خلاف تصور اکثریت یادگیری ابزارها و زبانهای تحلیل و طراحی بسیار مهمتر از آشنایی با زبانهای برنامه سازی میباشد . زبان UML یکی از ابزارهای طراحی و تحلیل سیستمها میباشد . من سعی کردم در این پست نکاتی رو به علاقمندان آموزش بدهم . امیدوارم این مطالب برای خوانندگان مفید واقع بشود .
بعد از جستجوهای فراوان در میان منابع این مقاله رو از این سایت پیدا کردم که بنظرم کاملترین مثالی بود که تا حالا دیدم . حسن این مثال اینکه فقط صرفاً به تعریف محض نمودارها نپرداخته و سعی کرده یک مساله رو از اول تا به انتها با نمودارهای مورد نیاز مدل بکنه .
0 . مقدمه
هدف این مقاله نمایش چگونگی استفاده از واقعی از UML در فرآیند توسعه نرم افزار میباشد
1 . مشکل آسانسور
محصول مورد نظر یک سیستم برای کنترل دستگاه آسانسوری است که در یک ساختمان با n طبقه نصب شده است . مشکل نگرانی های منطقی مورد نیاز برای حرکت بین دستگاه آسانسور طبقه با توجه به محدودیت های زیر می باشد :
- هر آسانسور دارای یک مجموعه دکمه میباشد ، هر طبقه یک دکمه . این دکمه ها وقتی فشار داده شوند روشن می شوند و موجب میشوند که آسانسور به طبقه مورد نظر هدایت شود . روشنهایی دکمه وقتی آسانسور به طبقه مورد نظر میرسد خاموش میشود .
- بجز طبقات اولی و آخری ، سایر طبقات دارای دو دکمه میباشند . یکی برای آسانسور بالا رونده و دیگری برای آسانسور پایین رونده . این دکمه ها نیز وقتی فشار داده شوند روشن میشوند . پس از اینکه آسانسور به طبقه می رسد و سپس به سمت جهت مورد نظر حرکت می کند چراغ خاموش میشود .
- زمانیکه تقاضایی برای استفاده از آسانسور وجود ندارد ، آسانسور در طبقه جاری با درب بسته می ماند .
2 . زبان متحد مدلسازی
UML یک زبان مدل سازی میباشد که با نماد ها مشخص میشود اما هیچ پردازشی را انجام نمیدهد . ما تصمیم داریم این مساله را با نمودارهای زیر به ترتیب مدل کنیم .
- Use Case Diagram - نمودار مورد کاربری
- Class Diagram - نمودار کلاس
- Sequence Diagram - نمودار توالی
- Collabration Diagram - نمودار همکاری
- State 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 . نمودار توالی
اگرچه نمودار توالی و نمودار همکاری هر دو یک بار معانی را دارند اما در دو شیوه مختلف مفهوم را بیان میکنند . نمودار توالی بصورت صریح ترتیب پیامها را بیان می کند و برای مدل سازی سیستم های بلادرنگ مناسب می باشد ، با این وجود نمودار همکاری ارتباط بین اشیاء را نمایش میدهد .
نمودار توالی :
نمودار توالی برای مدل سازی دکمه آسانسور
نمودار توالی برای مدل سازی دکمه طبقه
4.2 . نمودار همکاری
توصیف ویژگیهای نمودار
- مجموعه از فعل و انفعالات بین کلاسها و نوع ها را توصیف میکند
- روابط بین اشیاء را نمایش می دهد
نمودار همکاری
نمودار همکاری برای مدل سازی دکمه آسانسور
نمودار همکاری برای مدل سازی دکمه طبقه
5 . طراحی جزئیات 5.1 . جزئیات نمودار کلاس

5.2 . جزئیات روالها
| Module Name |
Elevator_Control::Elevator_control_loop |
| Module Type |
Method |
| Input Argument |
None |
| Output Argument |
None |
| Error Message |
None |
| File Access |
None |
| File Change |
None |
| Method Invoke |
button::illuminate, button::cancel_illumination,door::open, door::close, elevator::move, elevator::stop |
5.3 . Pseudo-Code
| |
void elevator_control (void) { while a button has been pressed if button not on { button::illuminate; update request list; } else if elevator is moving up { if there is no request to stop at floor f Elevator::move one floor up; else
}
|
امیدوارم این مطلب براتون کاربرد داشته باشه . در پست بعدی سعی میکنم یه سری کتاب و مثال مربوط به بحث طراحی رو توی سایت قرار بدم . همچنین طریقه نصب نمودار توالی رو در VS2010 خواهیم دید . |