نمودار كلاس (Class Diagram)
اين نمودار، كلاسها و ارتباطات آنها را نمايش مي دهد و ديدي كلي از حالت ايستاي سيستم(مجموعه كلاسها) ارائه مي دهد. هر كلاس داراي نام، تعدادي ويژگي(صفت) و عملوند بوده و نشان دهنده مجموعه اي از اشياء است كه داراي حالت، معنا و رفتار مشابه هستند. در دياگرام كلاس، روابط بين كلاسها(كداميك با هم همكاري مي كنند، كداميك فرزند ديگري است و ...) مشخص مي شود، به طور جزئي تر اما بايد گفت كه اين دياگرام معمولا به يكي از سه دليل زير استفاده مي شود:
مدلسازي واژگان سيستم: جهت تصميم گيري در مورد تجريدهاي سيستم و اينكه كداميك جزو سيستم و كدام مرزي باشد
مدلسازي ارتباطات و تعاملات: جهت مدلسازي كلاسهاي همكار و واسطهائي كه در انجام يك فرآیند با هم همكاري دارند.
مدلسازي شماي منطقي پايگاه داده: جهت مشخص كردن اطلاعات پايدار سيستم(اطلاعاتي كه بايد ذخيره شود) در يك پايگاه داده رابطه اي يا شيء گرا.
ويژگيهاي مهم:
براي ارتباط بين كلاسها چندين نوع رابطه وجود دارد كه به شرح زير است:
رابطه وابستگي: براي نشان دادن ارتباط بين دو كلاس كه يكي از وجود ديگري "آگاه" است يا از آن(از متدها يا ويژگيهاي آن) "استفاده" مي كند، به كار برده مي شود. منطقي است كه اگر تغييري در كلاس مورد استفاده رخ دهد، كلاس استفاده كننده نيز تاثير پذيرد. اين رابطه كه ضعيف ترين نوع رابطه است مي تواند يك طرفه و يا دوطرفه باشد ولي به هر حال استفاده از يك كلاس براي يك لحظه است و نه بازه اي طولاني از زمان.
رابطه انجمني: رابطه اي "ساختاري" است كه نشان مي دهد اشياء يك كلاس به اشياء ديگري مربوط هستند بطوريكه دو كلاس براي بازه اي از زمان باهمديگر تعامل دارد. اين ارتباط قوي تر از نمونه قبلي است و براي زماني استفاده مي شود كه دو كلاس با هم ارتباط ساختاري دارند وهر دو در يك سطح از اهميت هستند(رابطه كل به جزء وجود ندارد).
رابطه تجمعي: نشان مي دهد يك كلاس از چند كلاس ديگر تشكيل(مونتاژ) شده است. كلاس كل "مالك" كلاسهاي جزء محسوب مي شود اما كلاس جزء مي تواند بصورت جدا نيز وجود داشته باشند و حتي با مرگ كلاس كل، اجزاء مي توانند همچنان به حيات خود ادامه دهد. اين رابطه شبيه فرآیند "مونتاژ" است كه در آن يك موجوديت از تعدادي قطعه ساخته مي شود، اگرچه خود قطعات از قبل هم وجود داشته اند و مي توانند در مونتاژهاي ديگر و جهت ساخت موجوديتهاي تجمعي ديگر نيز استفاده شوند.
رابطه تركيب: نشان مي دهد يك كلاس خود تركيبي از چند كلاس ديگر است بطوريكه با مرگ كلاس اصلي، اجزاء آن نيز مي ميرند. تركيب را رابطه كل به جزء(بخش) گويند. در اين حالت، تركيب(و نه مونتاژ) كلاسهاي جزء منجر به توليد كلاس كل مي شود و كلاسهاي جزء را نمي توان بصورت جداگانه يا به عنوان بخشي از كلاس ديگري يافت(يك جزء فقط مي تواند در يك تركيب وجود داشته باشد) و كلاس اصلي مسئول ايجاد، مديريت و مرگ اجزاء خود است، از اين جهت است كه اين رابطه را قوي ترين نوع رابطه مي دانند.
رابطه تعميم: نشان مي دهد كه يك كلاس حالت خاص تري(فرزند) از كلاس ديگر(والد) است. اين رابطه كه در حوزه شيء گرا با نام "رابطه وراثت" شناخته مي شود از اركان مفاهيم و ويژگيهاي شيءگرائي به شمار مي رود. كلاس والد، ويژگيها و عملوندهاي خود را به فرزند، به ارث مي دهد، علاوه بر اين، كلاس فرزند داري تعدادي ويژگي و يا عملوند مخصوص به خود نيز هست. يك والد مي تواند چندين فرزند داشته باشد و همچنين برعكس آن نيز صادق است.
نمودار فعالیت (Activity Diagram)
نمايش دهنده جريان گردش كار و عمليات انجام شده در طي انجام يك فعاليت است و نمائي از رفتار سيستم را ارائه مي دهد. اين نمودار، توالي، ترتيب و شروط انجام "عمليات" را مشخص مي كند. دنباله عمليات از شروع تا پايان را يك فعاليت گويند كه سيستم انجام مي دهد و هر عمليات مي تواند تراكنشي بر روي دادهها(اشياء) يا يك فرآیند خرد اجرائي باشد. اين نمودار معمولا جهت بيان رفتار كلاسهاي(اشياء) همكار در انجام يك فعاليت به كار برده مي شود كه در آن صورت از "خطوط مبنا" براي مشخص كردن عمليات مربوط به هر كلاس استفاده مي شود. اين خطوط بصورت عمودي بوده و سطح نمودار را به بخشهائي تقسيم مي كنند، كه هر يك مربوط به يك كلاس(شيء) بوده و عمليات مرتبط با آنرا مشخص مي كند.
ويژگيهاي مهم:
در UML 2.0 اين نمودار دچار تغييراتي شده كه مهمترين آنها به شرح زير است:
- هر عمل(هر نمودار فعاليت از تعدادي عمل تشكيل شده) مي تواند داراي پيش شرط يا پس شرط باشد. علاوه براين از انشعاب براي شرطي نمودن مسير حركت استفاده مي شود.
- از اتصال دهنده براي ارتباط دو نمودار استفاده مي شود و با پايان يكي ديگري آغاز مي شود. هنگاميكه يك فرآیند كلان از چندين فعاليت خرد تشكيل شده باشد، بطوريكه انجام تمامي فعاليتها(با يك ترتيب مشخص) منجر به اتمام فرآیند كلان شود، از اتصال دهنده براي نشان دادن ارتباط بين نمودارهاي فعاليت استفاده مي شود.
- رخدادهاي ناگهاني كه باعث انجام يك عمليات خارج از ترتيب نمودار مي شوند نيز كاربردهاي وسيعي دارد. به اين ترتيب براي ورود به يك گره(عمل) و انجام آن كنش دو حالت ممكن است اتفاق افتاد، ممكن است ترتيب گردش كار نوبت اجرا را به آن گره بدهد و يا يك رخداد(مثلا زماني) كه به آن گره متصل شده، شليك شده و ترتيب اجرا به آن عمل منتقل شود.
- از پارتيشن براي تقسيم نمودن سطح دياگرام به بخشهاي مجزا استفاده مي شود، اين بخشها مي تواند نماينگر مكانها، واحدهاي سازماني يا ديگر موضوعات باشد. به اين وسيله، مشخص مي كنيم كه هر عمل در كدام مكان(يا واحد سازماني و يا ..) انجام مي شود، چيزي كاملتر از واحدهاي سازماني در نمودار زنجيره ارزش فرآیند.
نمودار موارد کاربری (Usecase diagram)
توصيفي از آنچه كه سيستم انجام مي دهد را از ديد ناظر خارجي مدلسازي مي كند. بر خلاف دياگرام فعاليت كه بر "چگونگي" انجام تاكيد دارد، نمودار موارد كاربري بر "آنچه" كه انجام مي شود و عاملان(كاربران) آن تمركز دارد. يك مورد كاربري، دنباله اي از گامهاست كه انجام آن نتيجه اي رضايت بخش براي كاربر خارجي در پي دارد و شخص يا سيستمي كه با سيستم تعامل دارد(از آن استفاده مي كند يا اطلاعاتي را رد و بدل مي كند) را عامل گوئيم. نمودار موارد كاربري نمايش دهنده ارتباط بين موارد كاربري با يكديگر و با عاملان است كه نمائي از تعامل سيستم با محيط خارجي را نشان مي دهد.
ويژگيهاي مهم:
جهت نمايش ارتباط ميان كاربران با هم ميتوان از رابطه تعميم و براي ارتباط موارد كاربري با يكديگر از سه نوع رابطه "شمول"، "بسط" و يا تعميم استفاده نمود.
رابطه شمول: يك مورد كاربري شامل(تشكيل شده) چندين مورد كاربري ديگر است، اين رابطه زماني استفاده مي شود كه اجزاء تشكيل دهنده را بخواهيم توسط ديگر موارد كاربري نيز استفاده كنيم.
رابطه بسط: يك مورد كاربري در شرايط خاصي بجاي ديگري اجرا مي شود، اين رابطه براي نمايش استثناها و حالات خاص استفاده مي شود. در UML 2.0 شرط وقوع بسط را مي توان در كنار اين رابطه مشخص نمود تا رفتار سيستم و تغيير آن واضح و بي ابهام باشد.
رابطه تعميم: يك مورد كاربري نوع خاص تري(فرزند) از ديگري(والد) است. وقتي بخواهيم شباهتهاي دو مورد كاربري(باوجود كاركردهاي مختلف) را كه از يك نوع هستند، مشخص كنيم از اين رابطه استفاده مي كنيم.
نمودار توالی (Sequence diagram)
يكي از نمودارهاي رفتاري است كه نشان مي دهد چه پيغامهائي و با چه ترتيب زماني بين اشياء همكار در يك فرآیند رد و بدل مي شود. اشياء شركت كننده در بالاي نمودار قرار داده مي شوند و كنترل از طريق ارسال پيام، از يك شيء به ديگري منتقل مي شود.
ويژگيهاي مهم:
اشياء موجود در يك نمودار مي توانند ايجاد و يا نابود شوند، در زماني كنترل را به دست گيرند و سپس از طريق ارسال پيام آن را منتقل كنند(به شيء ديگري). هر پيغام مي تواند داراي شرط ارسال باشد تا كنترل بيشتري را فراهم آورد.
نمودار حالت (State Diagram)
نشان دهنده ترتيب حالتهاي يك شيء(كلاس، سيستم) در طول زمان حياتش و چگونگي تغيير آنها است. حالت، شرايط يا موقعيتي است كه براي يك شيء ممكن است رخ دهد و در آن صورت مي توان گفت بعضي خواستههاي آن شيء ارضا شده، عملي انجام داده و يا منتظر رخدادي است. هر نمودار براي نمايش تغيير حالت، فقط يك شيء ترسيم مي شود و ترتيب و چگونگي(شرايط) تغيير حالتها را مدل مي كند.
ويژگيهاي مهم:
در اين نمودار مي توان از قابليتهاي زير استفاده نمود.
- رخداد انتقال: نشان دهنده شرطي است كه اگر محقق شود، يك انتقال صورت مي گيرد.
- عمل: كنشي است كه درصورت وقوع انتقال، انجام مي شود.
- حالت مركب: يك حالت كه در خود يك چرخه تغيير حالت دارد
نمودار مولفه (Component Diagram)
نشان دهنده ارتباط بين مولفههاي سيستم است، مولفه يك واحد قابل تعويض از سيستم است كه جزئياتش پنهان شده و رفتارش از طريق تعدادي واسط نشان داده مي شود، در متد شيء گرا مجموعه اي از كلاسها كه بصورت فيزيكي بسته بندي مي شوند را توصيف مي كند. هر مولفه داراي تعدادي واسط ارائه خدمت(كه واسط مولفههاي ديگر از آن استفاده مي كنند) و تعدادي واسط جهت دريافت خدمتهاي مورد نياز(كه بايد از واسط ديگر مولفهها تامين شود) خود است، اين واسطها تنها روش ارتباط اجزاء سيستم هستند.
ويژگيهاي مهم:
مفهومي به نام بخش به مولفه اضافه شده است كه نشان دهنده درگاههاي ورود و خروج اطلاعات(پيام) به آن است. به هر بخش يك واسط(خدمت دهنده يا خدمت گيرنده) متصل مي شود تا تاكيد شود كه ارتباط يك مولفه با ديگري تنها و تنها از طريق بخش و واسط متصل به آن بوده و كليه اطلاعات و متدها، از محيط خارج مخفي شده است. مهمترين ويژگي مولفه، قابل جابجابودن آن است كه از اصول مهندسي نرم افزار مي باشد.
نمودار شیء (Object Diagram)
مجموعه اي از اشياء و ارتباطات بين آنها را در يك لحظه از زمان نشان مي دهد. شيء نمونه اي از كلاس است كه ويژگيهاي آن مقدار گرفته و توصيفي از زمان اجراي سيستم را مدلسازي مي كند. اين نمودار در موارد زير به كار برده مي شود:
- مدلسازي نيازمنديهاي وظيفه اي سيستم
- توصيف ساختار داده ايستا
- مدلسازي ساختار و ارتباطات اشياء
- مدلسازي ديد طراحي ايستاي سيستم
اين نمودار را ميتوان براي شبيه سازي عملكرد بخشي از سيستم در زمان اجرا استفاده نمود. كاربرد اين نمودار كمتر از ديگر دياگرامهاي گفته شده است و معمولا در شرايط خاصي از آن استفاده مي شود.
نمودار بسته (Package Diagram)
جهت نمايش ارتباط بين بستهها و اجزاي آنها در سيستم استفاده مي شود. جهت گروه بندي عناصر هم نوع، هم شكل و يا همكار در انجام يك كاركرد از بسته استفاده مي شود، بنابراين يك بسته مي تواند شامل هرنوع موجوديت UML مانند اشياء، كلاسها، مولفهها، گرهها، موارد كاربري، دياگرامها و حتي بستههاي ديگري باشد. در زمينههاي گوناگون مي توان از بسته استفاده نمود:
جهت طبقه بندي عناصر هم نوع و مربوط در دياگرامهاي مختلف، براي مثال قراردادن موارد كاربري مربوط به يك سيستم (واحد سازماني) در نمودار مورد كاربري داخل يك بسته.
جهت جداسازي مدلهاي مربوط به سيستمهاي مختلف از يكديگر كه در اين حالت كليه عناصر و دياگرامهاي مربوط به هر سيستم، در يك بسته قرار داده مي شود.
جهت استفاده عمومي براي طبقه بندي عناصري كه از جهت نوع، كاربرد ويا مورد خاصي به هم مربوط باشند.
ويژگيهاي مهم:
بستهها مي توانند داراي روابط وابستگي و تعميم با يكديگر باشند و همچنين هر بسته مي تواند از عناصر موجود در ديگري استفاده كند كه در اين حالت، چيزي شبيه به مولفههاي كلان خواهيم داشت.
نمودار استقرار (Deployment Diagram)
نمايش دهنده استقرار سيستمهاي نرم افزاري و سخت افزاري در گرههاي فيزيكي و در بستر تكنولوژي است. اين سيستمها در گرههاي فيزيكي(واحدهاي پردازشگر، سرورهاي پايگاه داده، سرويس دهندهها و ..) قرارداده مي شوند و اتصال گرهها از طريق تكنولوژي ارتباطي نشان داده مي شود. اين نمودار جهت مدلسازي چگونگي استقرار سيستمها(پيكربندي) در زمان اجرا استفاده مي شود.
ويژگيهاي مهم:
اين نمودار را مي توان هم براي توصيف معماري سيستمهاي توزيع شده(استقرار سيستمها در گرههاي فيزيكي) به كار برد و هم جهت نمايش توپولوژي شبكه ارتباطي از طريق تاكيد بر چگونگي ارتباط بين گرهها و صرفه نظر از جزئيات مربوط به هر گره. همچنين براي طبقه بندي گرهها مي توان از بستهها استفاده نمود، درجه دانه بندي اختياري است، براي مثال گرههاي مربوط به يك اداره را در يك بسته قرار دهيم و يا گرههاي موجود در يك ساختمان يا مثلا يك شهر(در هر مورد، بايد تعداد گرههاي موجود در يك بسته قابل مديريت و معقول باشد).
نمودار زمانبندی (Timing diagram)
نمايش دهنده رخدادهاي زماني و فواصل بين آنهاست كه باعث تغيير حالت اشياء محيط مي شود. اين نمودار كه در نسخه UML 2.0 براي اولين بار معرفي شده، جهت پوشش به زمانبندي و موارد مربوط به رخدادهاي زماني و به خصوص توصيف دقيق فواصل زماني كاربرد دارد. نمودار توالي فقط به ترتيب زماني ارسال پيامها تكيه دارد و نمودار حالت نيز بر تغيير حالت در اثر رخدادها، درحاليكه نمودار زمانبندي ضمن تركيب قابليتهاي دو نمودار فوق تاكيد بر زمان به عنوان عامل اصلي تغيير حالت دارد.
ويژگي مهم:
نمودار زمانبندي تغيير حالت يك شيء(سيستم، مورد كاربري، ..) را بر اثر يك رخداد زماني نشان مي دهد، رخداد زماني ممكن است با گذشت مدت معيني از زمان و يا بصورت دوره اي در فواصل مشخص زماني فعال شود، برخلاف نمودار حالت، كه يك رخداد غيرزماني، مسئول تغيير حالت اشياء بود.