انجمن انیاک
آموزش تصویری UML قسمت 2 - نسخه‌ی قابل چاپ

+- انجمن انیاک (http://forum.learninweb.com)
+-- انجمن: آموزش های تصویری (/forumdisplay.php?fid=7)
+--- انجمن: آموزش تصویری UML (/forumdisplay.php?fid=27)
+--- موضوع: آموزش تصویری UML قسمت 2 (/showthread.php?tid=75)



آموزش تصویری UML قسمت 2 - learninweb - 08-10-2011 08:59 PM

با سلام خدمت تمامي کاربران گرامي در زير آموزش تصويري UML را بررسي ميکنيم توجه کنيد که شما ميتوانید آموزش UML را به همراه چند بخش آموزشي ديگر که بصورت شبيه سازي شده و تعاملي درس داده شده است از لينک آموزش UML دانلود کنيد. در انتهاي اين آموزش تصويري نيز کل آموزش (هم متن و هم تصويري) در يک فايل PDF پيوست است.

فصل دوم – استفاده از UseCaseها و Actorها
در نمودار UseCase يک مجموعه UseCaseها و کاربران و رابطه بين آنها نمايش داده ميشود. براي آنکه اين موضوع بهتر درک شود به بررسي يک مثال مي‌پردازيم.
اکنون پنجره نمودار Class نمايش داده شده است. روي دکمه Close کليک کنيد.

[تصویر:  001.gif]


براي رسم نمودار UseCase روي علامت + کنار گزينه Use Case View کليک کنيد.

[تصویر:  002.gif]


به تصوير کوچک کنار گزينه Main توجه کنيد. اين تصوير علامت نمودار UseCase در اين نرم افزار ميباشد. روي گزينه Main دابل کليک کنيد.

[تصویر:  003.gif]


در اين بخش ميخواهيم به بررسي يک سيستم ATM يا دستگاه خودپرداز بانک بپردازيم. در اين مثال سه نوع کاربر وجود دارد که شش نوع عمليات مختلف را انجام ميدهند. پس سه Actor و شش UseCase در اين تمرين وجود دارند. اين سه کاربر مشتري، کارمند بانک و سيستم حسابداري است. شش عمليات مهمي که انجام داده ميشود نيز به شرح زير ميباشند:
1-واريز پول به حساب
2-انتقال پول
3-برداشت از حساب
4-تغيير رمز عبور
5-مشاهده موجودي و صورت حساب
6-پرداخت پول
در ابتدا ميخواهيم يک Actor را بر روي نمودار قرار دهيم. براي اين کار روي دکمه Actor کليک کنيد.

[تصویر:  004.gif]


در محل مشخص شده توسط فلش کليک کنيد.

[تصویر:  005.gif]


با اين کار يک Actor در نمودار قرار داده‌ايم. اين Actor را ميخواهيم Customer نامگذاري کنيم. براي اين کار ميتو‌انيد در همين محل عبارت Customer را تايپ کنيد. يک راه ديگر نيز استفاده از پنجره مشاهده خصوصيات است. براي اين کار روي Actor دابل کليک کنيد.

[تصویر:  006.gif]


توجه کنيد که هر Actor بايد داراي يک نام منحصر به فرد باشد يعني دو Actor به يک نام نمي‌توانيم داشته باشيم. عبارت Customer را تايپ کنيد.
روي دکمه OK کليک کنيد.

[تصویر:  007.gif]


با اين کار يک Actor به نام Customer تعريف شده است. در قسمت مشخص شده با فلش نيز ميتوانيد نام Actor ايجاد شده را در قسمت Use Case View مشاهده کنيد. پس Actor هر کس يا چيزي است که با سيستم موجود در ارتباط ميباشد و بصورت يک نماد آدمک نمايش داده ميشود. بطور کلي سه نوع Actor وجود دارد که عبارت است از کاربران سيستم، سيستمهاي ديگر و زمان که در ادامه اين سه مورد را تعريف ميکنيم.

[تصویر:  008.gif]


در مثال ATM که در حال رسم نمودارهاي آن هستيم. کاربري که با ATM کار ميکند يعني Customer يک Actor از نوع کاربران سيستم است. براي نامگذاري اين Actor از نقش آن استفاده کرده‌ايم. همانطور که بيان شد يک Actor ديگر نيز به نام کارمند بانک (Bank Officer) نيز در اين سيستم وجود دارد. فرض کنيد که آقاي احمدي کارمند بانک باشد پس در اين سيستم داراي نقش Bank Officer است. در ساعت 3 آقاي احمدي ميخواهد از حساب خود با استفاده از دستگاه ATM وجه دريافت کند در اين زمان آقاي احمدي داراي نقش Customer ميباشد. پس براي نامگذاري Actor ها از نام نقش آنها استفاده ميشود.
نوع دوم Actorها، يک سيستم ديگر است. براي مثال يک بانک ميتواند داراي يک سيستم وام نيز باشد که حساب اشخاص را به آن سيستم وام نيز متصل ميکند. در اينجا يک Actor ديگر به نام سيستم وام در نمودار UseCase نمايش داده ميشود. توجه کنيد که با اين نوع تعريف سيستم وام يک سيستم کاملا" مجزا از پروژه ATM ميباشد. در صورتي که بخواهيم در سيستم وام تغييراتي را ايجاد کنيم بايد سيستم وام درون محدوده اين پروژه قرار بگيرد.
نوع سوم Actorها که زياد استفاده ميشود زمان است. هنگامي زمان در يک سيستم به يک Actor تبديل ميشود که با گذشت زمان يک رويداد رخ دهد. براي مثال در سيستم ATM هر نيمه شب يک پشتيبان تهيه ميشود. در اينجا براي شناسايي آن رويداد از يک Actor استفاده ميشود.
براي حذف يک Actor از نمودار UseCase روي آن کليک کنيد تا انتخاب شده و سپس کليد delete صفحه کليد را فشار دهيد. با اين کار Actor از نمودار حذف ميشود ولي تعريف آن در سيستم وجود دارد و نام آن را ميتوانيد در قسمت Use Case View که با کادر قرمز مشخص شده است مشاهده کنيد. با استفاده از ماوس نيز ميتوانيد يک Actor را از اين قسمت Drag کنيد و بر روي نمودار UseCase قرار دهيد.

[تصویر:  009.gif]


براي آنکه يک Actor کلا" از سيستم حذف شود بايد روي نام آن در قسمت Use Case View راست کليک کنيد و گزينه Delete را انتخاب نمائيد.
همانطور که در تعريف مساله ATM بيان شد سه Actor در اين سيستم وجود دارد. در ادامه اين سه Actor را مطابق روش بيان شده به نمودار اضافه ميکنيم.
مشاهده ميکنيد که دو Actor جهت کارمند بانک و سيستم حسابداري تعريف شده است. در ادامه ميخواهيم UseCaseهاي موجود در اين سيستم را رسم کنيم. روي دکمه UseCase کليک کنيد.

[تصویر:  010.gif]


در محل مشخص شده توسط فلش کليک کنيد.

[تصویر:  011.gif]


در ادامه عبارت Withdraw Money را تايپ ميکنيم.
توسط UseCase ايجاد شده عمل دريافت پول انجام ميشود. مشاهده ميکنيد که اين UseCase نيز در قسمت Use Case View تعريف شده است.

[تصویر:  012.gif]


يک UseCase بخش سطح بالايي از عملياتي ميباشد که سيستم اجرا ميکند. براي مثال در سيستم ATM عمل برداشت از حساب توسط يک UseCase انجام ميشود. UseCaseها مستقل از پياده سازي هستند و يک ديد سطح بالا از سيستم را ارائه ميدهند. تمرکز UseCase روي عملياتهايي است که سيستم در انجام ميشود و نيازي به تعريف چگونه انجام اين عمليات نداريم. براي مثال در UseCase برداشت از حساب نيازي نيست که روش ارتباط به پايگاه داده يا نام جدول مورد نظر مطرح گردد.
توجه کنيد که تعداد UseCaseها نبايد خيلي زياد باشد که نتوانيم سيستم را به راحتي بررسي کنيم. بايد تعداد آنها در اين حد باشد که بفهميم سيستم چه کاري انجام ميدهد. براي مثال يک سيستم معقول بين 20 تا 50 عدد UseCase دارد.
روش حذف UseCase همانند روش حذف Actor ميباشد. پس براي حذف UseCase آن را انتخاب کرده و کليد Delete را فشار دهيم. براي حذف کلي آن نيز UseCase را از قسمت Use Case View انتخاب کرده و راست کليک ميکنيم. با انتخاب گزينه Delete نيز UseCase حذف ميشود.
در صورتي که بر روي UseCase دابل کليک کنيد نيز ميتوانيد نام و مشخصات آن را در پنجره مشخصات UseCase تغيير دهيد. بر روي اين UseCase دابل کليک کنيد.

[تصویر:  013.gif]


در قسمت Name ميتوانيد نام UseCase را تغيير دهيد. توجه کنيد که در نامگذاري UseCase مانند Actor بايد يک نام منحصربه فرد تعيين شود. UseCase را بايد از ديد مشتري نامگذاري کنيم تا محدوده پروژه به خوبي مشخص گردد.

[تصویر:  014.gif]


در UML از Stereotype براي طبقه بندي عناصر يک مدل استفاده ميشود. براي مثال فرض کنيد که دو نوع اصلي از UseCase وجود دارد که نوع A و نوع B نام دارد. در اين صورت ميتوانيد دو نوع UseCaseStereotype به نامهاي A و B داشته باشيد. البته بيشتر براي عناصر مدل مثل کلاسها و ارتباطها از Stereotype استفاده ميشود ولي در اين قسمت ميتوانيد Stereotype مورد نظر خودتان را انتخاب کنيد.

[تصویر:  015.gif]


در صورتي که بخواهيد براي UseCaseها اولويت تعيين کنيد تا در زمان پيشرفت پروژه بر اساس اولويت با UseCaseها کار کنيد ميتوانيد اولويت مورد نظر خود را در فيلد Rank وارد نمائيد.

[تصویر:  016.gif]


يک Abstract Use Case يک UseCase است که توسط يک Actor شروع به کار نميکند. يعني در نمودار به يک Actor متصل نميباشد و بعضي عملياتهاي مورد نياز توسط بقيه UseCase ها را محيا ميکند. براي مثال يک UseCase جهت شناسايي کاربر و دريافت رمز عبور از کاربر ميتواند بصورت يک UseCase Abstract تعريف شود و توسط UseCase دريافت وجه مورد استفاده قرار بگيرد. در صورتي که جعبه چک Abstract را فعال کنيد اين UseCase يک Abstract UseCase ميگردد.

[تصویر:  017.gif]


در برگه Diagram ميتوانيد نمودارهاي مختلفي مانند Sequnce، Collaboration، Class و ... را تعريف کنيد و سپس رسم نمائيد. در بخشهاي بعدي به بررسي اين نمودارها ميپردازيم. در برگه Relation نيز تمامي رابطه‌هايي که UseCase در آنها مشارکت دارد نمايش داده ميشود. در مورد رابطه‌ها در انتهاي اين بخش و بخشهاي بعدي صحبت ميکنيم. در برگه Files نيز ميتوانيد فايلهاي مرتبط به اين UseCase مانند سناريوهاي يک UseCase و فايلهاي مرتبط به اين UseCase را به UseCase پيوست نمائيد. روي دکمه OK کليک کنيد.

[تصویر:  018.gif]


به همين ترتيب پنج UseCase ديگر اين سيستم را نيز رسم ميکنيم.
اکنون تا حدودي نمودار UseCase تکميل شده است. روي Actor مشخص شده (Customer) دابل کليک کنيد.

[تصویر:  019.gif]


مانند UseCase ميتوانيم يک Stereotype را به يک Actor نيز تخصيص دهيم. براي مشاهده ليست Actorها روي ليست باز شونده Stereotype کليک کنيد.

[تصویر:  020.gif]


در اين ليست انواع Stereotypeهاي موجود را ميتوانيد انتخاب کنيد که با توجه به مفهوم هر کدام از اين دسته‌ها ميتوانيد يک Actor در سيستم باشد. در صورتي که يکي از اين گزينه‌ها را انتخاب کنيد آيکون Actor تغيير ميابد. ميتوانيد يک Stereotype جديد نيز خودتان تعريف کنيد که در اين صورت آيکون Actor به صورت يک چهارگوش که براي نمايش کلاس استفاده ميشود نمايش داده ميشود.
روي برگه Detail کليک کنيد.

[تصویر:  021.gif]


در قسمت Multiplicity تعيين ميکنيد که به چند نمونه از اين عامل احتياج داريد. براي مثال ميخواهيد بدانيد که افراد زيادي هستند که نقش اين Actor را بازي ميکنند ولي فقط يک نفر است که نفش Actor مدير را بازي ميکند براي يادداشت کردن اين موارد از گزينه Multiplicity استفاده ميکنيم. براي مشاهده گزينه‌هاي اين ليست روي ليست کليک کنيد تا باز شود.

[تصویر:  022.gif]


شرح گزينه‌هاي اين منو را در زير ميتوانيد مشاهده کنيد.
گزينه 0..0 به معناي تعداد صفر کاربر ميباشد.
گزينه 0..1 به معناي تعداد صفر يا يک کاربر ميباشد.
گزينه 0..n به معناي تعداد صفر يا بيشتر کاربر ميباشد.
گزينه 1..1 به معناي تعداد فقط يک کاربر ميباشد.
گزينه 1..n به معناي تعداد يک يا بيشتر کاربر ميباشد.
روي گزينه n کليک کنيد.

[تصویر:  023.gif]


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

[تصویر:  024.gif]


رابطه‌هاي مربوط به يک Actor را ميتوانيد در برگه Relations مشاهده کنيد. در برگه Files نيز ميتوانيد فايلهاي مورد نظر جهت يک Actor را پيوست نمائيد. روي دکمه OK کليک کنيد.

[تصویر:  025.gif]


اکنون نوبت به تعيين رابطه بين UseCase و Actor است. روي آيکون Unidirectional Association کليک کنيد.

[تصویر:  026.gif]


به رابطه بين UseCase و Actor رابطه Communication ميگويند که بصورت يک فلش نمايش داده ميشود. ابتداي فلش نشان دهنده کسي است که ارتباط از آنجا شروع ميشود. براي مثال Actor مشتري آغازگر ارتباط با UseCase برداشت پول است. براي رسم اين فلش ابتدا بر روي Actor مشتري کليک ميکنيم و دکمه ماوس را فشرده نگه ميداريم. سپس ماوس را بر روي UseCase برداشت پول برده و کليد چپ ماوس را رها ميکنيم.
به همين ترتيب بقيه رابطه‌ها را نيز رسم ميکنيم.
مشاهده ميکنيد که يک UseCase ميتواند آغازگر يک رابطه نيز باشد. در اينجا نمودار UseCase کامل رسم شده است.

[تصویر:  027.gif]


رابطه uses اجازه ميدهد تايک UseCase از يک UseCase ديگر استفاده کند. براي مثال در ماشين ATM از UseCaseي به نام Withdraw Money براي دريافت پول استفاده ميشود اين UseCase نياز دارد که رمزعبور کاربر را بررسي کند پس ميتوانيم يک UseCase ديگر به نام Verify Password ايجاد کنيم که UseCase اول از اين UseCase استفاده (Uses) ميکند. همانطور که در قبل بيان شد در اين مثال Verify Password يک UseCase Abstract ميباشد. در ادامه يک نمودار جديد رسم ميکنيم که مطالب بيان شده را بررسي کنيم.
روي دکمه New کليک کنيد.

[تصویر:  028.gif]


روي دکمه No کليک کنيد.

[تصویر:  029.gif]


روي دکمه Cancel کليک کنيد.
[/color][تصویر:  030.gif]


روي علامت + کنار گزينه Use Case View کليک کنيد.

[تصویر:  031.gif]


روي گزينه Main دابل کليک کنيد.

[تصویر:  032.gif]


مشاهده ميکنيد که سه UseCase و يک Actor رسم شده است. سه رابطه نيز با استفاده از ابزار Unidirectional Association ايجاد شده. در اين مثال همانطور که بيان شد Verify Password مستقيما" توسط يک Actor شروع به کار نميکند و يک عمليات اضافي که توسط Withdraw Money استفاده ميشود را ارائه ميکند. بنابراين Verify Password يک UseCase Abstract است.
ميخواهيم رابطه Uses را بين Verify Password و Withdraw Money ايجاد کنيم. براي اين کار روي رابطه بين اين دو UseCase دابل کليک کنيد.

[تصویر:  033.gif]


ليست باز شونده Stereotype را باز کنيد.

[تصویر:  034.gif]


مشاهده ميکنيد که گزينه Uses در اين ليست وجود ندارد. در ادامه عبارت uses را تايپ ميکنيم.
دکمه enter صفحه کليد را فشار دهيد.

[تصویر:  035.gif]


از اين به بعد هر زمان که ليست باز شونده Stereotype را باز کنيد گزينه uses نيز در بين گزينه‌هاي اين ليست وجود دارد. روي دکمه OK کليک کنيد.

[تصویر:  036.gif]


مشاهده ميکنيد که عبارت Uses در بالاي فلش رابطه نمايش داده شده است. به همين ترتيب UseCaseهاي ديگري که ميخواهند رمز عبور کاربر را چک کنند ميتوانند از اين UseCase استفاده (uses) کنند.

[تصویر:  037.gif]


يک رابطه extend به يک UseCase اجازه ميدهد که عمليات موجود در يک UseCase ديگر را بسط يا گسترش (extend) دهد. براي مثال در اين مثال ATM در صورتي که کاربر کمتر از 40.000 تومان بخواهد دريافت کند يک روال ديگر جهت پرداخت طي ميشود که Make Express Withdrawal نام دارد. در اين روال کاربر به سرعت پول را دريافت ميکند بدون آنکه مثلا" نياز به متصل بودن ATM به شبکه باشد.
پس اين رابطه از نوع extend ميباشد. براي تعيين نوع رابطه بر روي فلش رابطه دابل کليک کنيد.

[تصویر:  038.gif]


ليست باز شونده Stereotype را باز کنيد.

[تصویر:  039.gif]


مشاهده ميکنيد که رابطه uses نيز در ليست اين گزينه‌ها وجود دارد. روي گزينه extend کليک کنيد.

[تصویر:  040.gif]


روي دکمه OK کليک کنيد.

[تصویر:  041.gif]


با اين کار در بالاي فلش رابطه عبارت extend نمايش داده شده است.

[تصویر:  042.gif]


ميتوانيد بر هر عنصر در نمودار UseCase يا براي نمودار UseCase يک نکته يا يادداشت نيز قرار دهيد. براي اين کار روي دکمه Note کليک کنيد.

[تصویر:  043.gif]


در محل مشخص شده توسط فلش کليک کنيد.

[تصویر:  044.gif]


در داخل عنصر Note کليک کنيد.[color=#FF0000]

[تصویر:  045.gif]


در ادامه يک عبارت بعنوان يادداشت براي نمودار وارد ميکنيم.
اين يادداشت براي کل نمودار است. با استفاده از ماوس نيز ميتوانيد ابعاد آن را تغيير دهيد.

[تصویر:  046.gif]


در صورتي که بخواهيد نشان دهيد اين يادداشت براي يک UseCase يا Actor ميباشد بايد ابزار Anchor Note to Item که با کادر قرمز مشخص شده است را انتخاب کرده و يادداشت و عنصر مورد نظر را به هم متصل کنيد. اين اتصال توسط يک خط چين نمايش داده ميشود.

[تصویر:  047.gif]

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