سفارش تبلیغ
صبا ویژن
مدیر وبلاگ
 
وبلاگ آموزشی علوم کامپیوتر
هدف از راه اندازی این وبلاگ ، آموزش دروس علوم کامپیوتر ، بالاخص در زمینه های نظریه زبان ها و ماشین ها ،‏نظریه محاسبات ، مستند سازی نرم افزار با UML، ‏متدولوژی RUP ، مدیریت پروژه ها و تحلیل و طراحی سیستم هاست . با آرزوی موفقیت برای شما .
آمار واطلاعات
بازدید امروز : 11
بازدید دیروز : 1
کل بازدید : 156216
کل یادداشتها ها : 36
خبر مایه

حسابداری سرمایه  فروشگاهی1 حسابداری سرمایه  فروشگاهی2 حسابداری فروشگاهی تجارت حسابداری فروشگاهی تجارت2 حسابداری سرمایه  نسخه شرکتی سرآشپز بزرگ نرم افزار هوشمند دارا و سارا شعرهای شاد کودکانه قصه های کودکانه
< 1 2

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

Unified Modeling Language ,The User Guide

Grady Booch
James Rumbaugh
Ivar Jacobson
Publisher: Addison Wesley
First Edition October 20, 1998
ISBN: 0-201-57168-4, 512 pages

فرمت : HTML
زبان : انگلیسی
دانلود با حجم 5.18 مگا بایت

  

شی و شی گرایی

 

 

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

می تواندباشد.

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

استفاده از مفاهیم شی گرا به شما در درک نیازهای کاربران کمک می کند و چنانچه بتوانید این نیازها را به تصویر بکشید، درک آن ها سریع تر و آسان تر (هم برای شما و هم برای مشتریان) خواهد بود.

 

چرا از شی گرا استفاده می کنیم؟

 

شی گرایی می تواند دارای منافع زیادی باشد ، اما باید به خاطر داشت که اصولا متدولوژی شی گراهمانند همه متدولوژی های دیگر

توانایی حل تمام مسائل را ندارد ولی به هرحال برخی از منافع این متدولوژی را می توان به شکل زیر عنوان کرد :

- کم بودن اشکالات

روش شی گرا بنا به طبیعت و امکانات ذاتی خود امکان

کاهش اشکالات را فراهم می آورد.

- افزایش موفقیت

متدولوژی شی گرا می تواند موفقیت تیم پروژه را از طریق کاهش زمان تحلیل ، طراحی و برنامه نویسی  بالا ببرد و

 می تواند برنامه زمان بندی پروژه را به صورت چشمگیری کاهش دهد.

- توسعه سریع و کاهش هزینه

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

- امکان ارائه مدل نمونه

به دلیل ذاتی بودن مراحل تحلیل و طراحی و تهیه برنامه ها نیاز به استفاده از مدلهای نمونه می باشد ، در نتیجه امکان برقراری وتعامل همیشگی با مشتری وکاربران فراهم

می آید .

- کاهش پیچیدگی ها

به خاطر اینکه هر شی مجموعه اطلاعات مورد نیاز خود را در داخل خود نگهداری می کند مفاهیمی همانند دوباره استفاده کردن ، مخفی سازی و مفهومی به نام خود کفایی باعث خواهد شد که پیچیدگی سیستم های دیگر و اثراتی که سیستم های دیگر روی یک سیستم می گذارند را نداشته باشد .

- نگهداری و اصلاح ساده تر

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

- تطابق با ابزارهای جدید

اکثر ابزارهای جدید همانند سیستم های کلاینت – سرور بر مبنای مفاهیم شی گرابنا شده اند ، در نتیجه استفاده از تحلیل طراحی و برنامه نویسی شی گرا را با معنی تر نموده است .

 

اکنون به بررسی سایر جنبه های اشیا می پردازیم .

 

تجریدAbstraction))

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

 

میراثInheritance))

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

 

چند شکلیPolymorphism))

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

 

پنهان سازیEncapsulation))

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

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

 

ارسال پیامMessage Sending))

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

 

تناظر یا ارتباطَAssociations))

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

 

تجمعAggregation))

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

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

 

 

آزمون

 

1-   شی چیست ؟

یک شی نمونه ای از یک کلاس است.

2-    چگونه اشیا با هم کار می کنند ؟

اشیا از طریق فرستادن پیام با یکدیگر کار می کنند.   

3-    چند تایی به چه چیزی اشاره می کند ؟

چند تایی اشاره به تعداد اشیا از یک کلاس می کند که مرتبط با یک شی از کلاس متناظر می باشد .

4-    آیا دو شی می توانند با بیشتر از یک راه با یکدیگر متناظر شوند ؟

 بله ، بطور مثال دو شخص می توانند هم دوست باشند وهم همکار .

 

 

منبع : مهندسی نرم افزار با بهره گیری از

 uml ، امیر مهدی هدایت فر ، موسسه فرهنگی هنری دیبا گران تهران

 

مختار خان

 

   


  

نمایشگر تعاملات پویایی است که در طول زمان صورت می گیرد .

 

نمودار فعالیت(Activity Diagram)

دیاگرام های فعالیت که شامل activity ها و state ها و transition ها می باشند در جهت تعریف

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

می باشند . در مرحله طراحی ، این دیاگرام کمک می کند تا عملیات ها را بهتر تعریف کنیم . دیاگرام های

فعالیت در واقع تکمیل کننده دیاگرام های  همکاری و sequence می باشند که در آن ها به وضوح جریان

کاری تعریف شده است.

 

نمودار همکاری یا مشارکت (diagram (collaboration

در سیستم های شئ گرا کاربران احتیاج به سیستمی دارند که توسط آبجکت هایی که کنار یکدیگر کار

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

آبجکت ها در کنار هم کار کنند ، این توانایی را پیدا می کنند که تابعی با قدرت بالا برای استفاده مردم ایجاد

کنند . به معنای دیگر آبجکت ها به یکدیگر احتیاج دارند . به این اصطلاح کار با یکدیگر ، همکاری گویند.

یک زبان که قصد به مدل در آوردن محیط عملیاتی را دارد ، باید راهی را برای ارائه این موضوع داشته

باشد . نمودار مشارکت UML ، برای این هدف طراحی شده است.

 

نمودار جز((component diagram

نمودار های component  یک دید فیزیکی از مدلتان را به شما نشان می دهد.دیاگرام های component  

برای مدل کردن یک دید استاتیک بر روی component های سیستم می باشد . component  ها عبارتند

از : فایل ها ، برنامه های اجرایی ، مدرک ها ، کتابخانه ها و جدول های داده ها. که این موارد در دیاگرام

component  توسط وابستگی ها و اتحاد ها لینک داده می شوند.اهداف اصلی  استفاده از دیاگرام های

component  عبارتند از :

_  مدل کردن component  های نرم افزاری فیزیکی و ارتباط بین آن ها

_  مدل کردن source code و ارتباط بین این فایل ها

_  مدل کردن ساختار نرم افزار ها

_  معین کردن فایل هایی که به صورت اجرایی در آمده اند .

دو نوع component  در نمودار وجود دارد ، component  های قابل اجرا و کتابخانه های کد.

 

نمودار استقرار(deployment diagram)

نمودار استقرار در UML ، معماری یک سیستم متکی به کامپیوتر را به شکل فیزیکی نشان می دهد .

این نمودار قادر به نمایش کامپیوتر و دستگاه های مرتبط با آن و نیز ارتباطاتی که این دستگاه ها با هم

دارند و نیز نرم افزاری که روی هر ماشین قرار دارد ، می باشد . هر کامپیوتر توسط یک مکعب نمایش

داده می شود و ارتباط آن نیز با کامپیوتر های دیگر توسط خطوط ارتباطی ارائه می گردند .

 

بسته ها(packages)

بعضی اوقات ، در می یابید که نیاز به سازمان دهی عناصر یک نمودار دارید ، به شکلی که آن ها را در

داخل یک گروه قرار دهید . به طور مثال ، گاهی اوقات می خواهید نشان دهید که تعدادی از کلاس ها یا

اجزا ، بخشی از یک زیر سیستم خاص هستند . برای انجام این عمل ، آن ها را در داخل یک بسته ،

دسته بندی کنید و توسط یک پرونده به نمایش در آورید .

 

یادداشت ها((notes

گاهی اتفاق می افتد که بخشی از نمودار ، توضیح روشنی از چگونگی کارکرد خود نمی دهد ، در این حالت

استفاده از یادداشت های UML توصیه می شود . برای نمایش نماد یادداشت از یک مستطیل که در گوشه

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

 

کلیشه ها((stereotypes

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

را طراحی می کنید ، ممکن است نیاز به تغییراتی در حال حاضر و یا در آینده داشته باشد . کلیشه ها این

امکان را فراهم می آورند تا شما عناصر موجود UML را تبدیل به نوع جدیدی نمایید ، مثل این است که

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

نوعی تغییر در نظر بگیرید . برای نمایش آن از یک جفت پرانتز باز و بسته استفاده می شود ، ضمن آنکه

باید برای کلیشه ها نامی اختیار کنید .

 

آزمون

1-   چرا لازم است که انواع نمودار ها را در یک مدل از یک سیستم داشته باشیم؟

2- کدام نمودار یک دید ایستا از  سیستم می دهد؟

3- کدام نمودار یک دید پویا از سیستم ارائه می کند(یعنی ، نشان بدهد که تغییرات در طول زمان صورت

می گیرند)؟

4- سه دلیل از دلایل استفاده از UML را بگویید.

 

جواب آزمون

1)   زیرا هر سیستم دارای استفاده کنند گان مختلفی است . هر نوع نمودار UML یک یا چند استفاده کننده

را مورد خطاب قرار می دهد.

2)   این نمودار ها دید ایستا از سیستم را ارائه می دهند : کلاس ، شئ ، جز و استقرار

3)   این نمودار ها دید پویا از سیستم را ارائه می دهند : مورد کاربر ، حالت ، توالی ، فعالیت و همکاری.

4)   _  تبدیل به یک استاندارد صنعتی شده است.

_  هماهنگ کردن و یکی کردن نویسندگان در یک یادداشت سازی

_  می تواند در محدوده های مشخص توسعه داده شود.

_  توسط فرآیند توسعه نرم افزاری حمایت می شود.

 

 

 

منابع :

 

·        مرجع کامل UML  ،  نویسنده : Michael Boggs - Wendy Boggs ، ترجمه : مهرداد توانا - عاطفه شیجونی

انتشارات موسسه فرهنگی هنری نقش سیمرغ

·        کتاب آموزشی UML  (ترجمه کامل UML سری شومز) ، ترجمه : مهرداد سلامی - حامد شایان

    موسسه انتشاراتی فرهنگی فکر خلاق (نوین) – امید انقلاب

·        مهندسی نرم افزار با بهره گیری از UML  ،  مولف و مترجم : امیر مهدی هدایت فر

     موسسه فرهنگی هنری دیبا گران تهران

مختار خان

                     


  

          

           جلسه اول :  

 

 

 

                                                     

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

فراوانی مواجه خواهد شد. UML یک سیستم نشانه گذاری است که دارای یک استاندارد در توسعه سیستم

می باشد.  UMLنتیجه کار بوچ ، رامبا و جاکبسن است . UML دارای مجموعه ای از نمودارها می باشد

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

مشتری ،  برنامه نویس و همه افراد درگیر فرآیند توسعه سیستم باشد . استفاده از تمام این نمودار ها حائز

اهمیت است ،  زیرا هر کدام از آن ها  درباره یک بخش از سیستم صحبت می کنند . یک مدل  UML  بیان

می کند که چطور یک سیستم باید انجام شود ، ولی چگونگی انجام آن را نمی گوید.

 

مدل

مفهوم مدل در کلیه زمینه های مهندسی    علمی استفاده می شود .  یک مدل مجموعه ای از نمودارهای

UML است که می توان روی آن آزمایش انجام داده و تغییراتی اعمال نماییم تا به این وسیله سیستم مورد

نظر را بهتر درک نموده و آن را توسعه دهیم.

 

نمودار کلاس

حتما اشیایی را دیده اید که بر حسب طبیعتشان در گروه خاصی قرار می گیرند(اتومبیل ها ، ابزار ، لوازم

خانه و ... ) که به این گروه های خاص کلاس گویند .  یک کلاس ،  گروهی از اشیا  می باشد  که  دارای

 صفات و رفتاری مشابه هستند . نمودار کلاس به تحلیل گر کمک می کند تا با مشتری به صحبت نشسته

و در نتیجه نیاز های مشتریان را با جزئیات کامل برآورده نماید.

 

نمودار شئ

یک شئ  نمونه ای از یک کلاس است و چیزی است که دارای مقادیر مشخص و رفتار معین می باشد .

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

کشیده شده است. نام نمونه خاص در سمت چپ : قرار گرفته است و نام کلاس در سمت راست : می آید.

 

نمودار حالت(state diagram)

هر شئ در هر لحظه یک حالت خاص دارد . یک فرد می تواند در حالت تولد ، کودکی ، جوانی ، میانسالی

و کهنسالی باشد. یک آسانسور در حال بالا رفتن است یا ایستاده و یا در حال حرکت به سمت پایین می باشد.

 

نمودار توالی(Sequence diagram)

نمودار کلاس و نمودار شئ اطلاعات ایستا را ارائه می دهند . در یک سیستم کنشی ، اشیا با یکدیگر در

حال تعامل (Interaction) هستند و این تعاملات در طول زمان رخ می دهند . نمودار توالی UML  ،

 


  




طراحی پوسته توسط تیم پارسی بلاگ