مقاله بررسی UML و كاربرد آن
دسته بندي :
فنی و مهندسی »
کامپیوتر و IT
مقاله بررسي UML و كاربرد آن در 40 صفحه ورد قابل ويرايش
فهرست
چکيده
مقدمه
دياگرام uml
دياگرامهاي کلاس
تعريف
عناصرهاي دياگرام کلاس
دياگرامهاي توالي
عناصر دياگرامهاي توالي
گراف کلاس
نمايش دياگرام کلاس به گراف کلاس و قبود چندتايي
قبود چندتايي
قيد کلي
قيد عدم وجود
نمايش دياگرامهاي توالي توسط گرامرهاي گرافگونه
پيامهاي بين دو شيء موجود:
پيامهايي که يک شيء جديد را ايجاد ميکنند:
پيامهاي که باعث از بين رفتن يک شيء ميگردند
آناليز سازگاري بين ندياگرامهاي کلاس و توالي
چک وجود
چک آشکاري
چک چندتايي
الگوريتمهاي چک سازگاري
چک وجود و چک آشکاري
الگروريتم چک چندتايي
چک قانون با قيود کلي
چک قوانين با قيود عدم وجود
چکيده
مقدمه
بررسي معيار کامل بود و سازگاري
دياگرامهاي حالت UML
آناليز ايستا
حالتها و انتقالها
گاردها
انتقالهاي ترکيبي
آناليز دسترسي
تبديل گراف
قوانين
قانون در روش Double Pushowt
قوانين در روش Single Pushout
قانون معکوس
کاربرد قانون
کاربرد شرايط
گرامر گراف گونه
مقدمه اي بر مفاهيم گرافهاي نوع ويژگي
گرافها
مورفيزم
چكيده:
در مدلسازي شيئگراي نرم افزار با استفاده ازUML چهرههايي مختلف يك سيستم با استفاده از دياگرامهاي مختلف نمايش داده ميشوند. ساختار پايدار سيستم از طريق دياگرامهاي كلاس واكنش بين قطعات مختلف مدل از طريق دياگرامهاي كنش مثل دياگرامهاي توالي و دياگرانمهاي همكاري نمايش داده ميشود. بنابراين يك مدل كامل شامل چندين دياگرام از انواع مختلف ميباشد. بنابراين سازگاري بين دياگرامهاي مختلف از اهميت بسياري برخوردار است.
در اين مقاله آناليز سازگاري بين دياگرامهاي گلاس و توالي با استفاده از گرافهاي نوع ويژگي و تبديلات آنها شرح داده شده است. اگر بخواهيم به طور صريح بگوييم دياگرامهاي كلاس به گرافهاي نوع ويژگي كه به آنها گرافهاي كلاس ميگوييم تبديل ميگردند.همچنين چندتاييها به قيودي تبديل ميگردند كه به آنها قيود چندتايي ميگوييم. دياگرامهاي توالي توسط يك گرامر گرافگونه نمايش داده ميشوند كه به آنها گرامرهاي گرافگونه كنش ميگويم.
آناليز سازگاري شامل موارد “ وجودي” ، “ آشكاري” و “ چند تايي” ميگردد براي آناليز سازگاري از تكنيكهاي جبري موجود، براي گرامرهاي گرافگونه استفاده شده است.
1ـ ممقدمه
براي ايجاد يك سيستم جديد واعمال تغييرات در يك سيستم موجود در ابتدا بايد كاركرد آن سيستم تعيين گردد. درحقيقت ساختار ايستا و پوياي سيستم بايد كاملاً مشخص و مدلسازي گردد. بنابراين واجب است، عناصري براي نمايش ساختار داخلي، رفتار سيستم و كنش بين قطعات مختلف آن در نظر گرفته شوند. در صورتي كه از يك متد شيئگرا استفاده كنيم، در آنصورت UML براي نمايش و مدلسازي سيستم و قطعات آن انتخاب مناسبي است. UML چند نوع مختلف دياگرام را كه هر كدام سيستم را از زاويهاي خاص نمايش ميدهند،. تعريف ميكند. هر دياگرام يا ساختار ايستاي سيستم، يا رفتار داخلي آن و يا كنش بين قطعات مختلف را نمايش ميدهد. بنابراين مدل كامل سيستم شامل چندين دياگرام از انواع مختلف ميباشد. علاوه براينكه دياگرامها از نظر املايي بايد درست باشد و همچنين هر يك به تنهاي سازگار باشند، دياگرامهايي كه از يك نوع نيستند، نيز بايد با هم سازگار باشند. براي آناليز سازگاري دياگرامهاي كلاس و توالي از گرافهاي نوع ويژگي و تبديلات آنها استفاده شده است.
براي درك بهتر راه حل ارائه شده در بخش بعد، ابتدا دياگرامهاي كلاس و توالي و ويژگيهايي كه بايد بررسي گردند، مورد مطالعه قرار مي گيرند.
دياگرامهاي UML
UML يك زبان مدلسازي يكپارچه مي باشد ،كه براي مدلسازي انواع سيستم هاي نرم افزاري مبتني بر متدولوژي شيئي گرا در نظر گرفته شده است . اين زبان براي تشريح ، نمايش ،ساخت و X مستند سازي سيستم هاي نرم افزاري مورد استفاده قرار مي گيرد. نسخه1-1 UML در نوامبر 1997 توسطOMG مورد قبول واقع شده است و نسخه 3-1 آن از مارس 1999در دسترس ميباشد. به خاطر استفاده فراوان اين زبان در صنعت و تحقيقات اين زبان بصورت استاندارد در آمده است.
1-2- دياگرامهاي كلاس
1-1-2- تعريف
دياگرامهاي كلاس ساختار ايستاي سيستم را نمايش ميدهند، يعني عناصر موجود در سيستم، ساختار داخلي آنها و ارتباط آنها با ساير عناصر سيستم را مشخص مي كنند. عناصر سيستم بصورت كلاس در دياگرام كلاس نمايش داده ميشوند.
چند نوع مارتباط ايستا بين كلاسها وجود دارد يعني تناظر، مجتمع، تركيب، وابستگي و تعميم .
مفهوم بستهها در UML يك مكانيزم درختي براي گروهبندي كلاسها، به دست ميدهد. ساختار داخلي كلاسها با ليستهايي از متدها و ويژگيها نمايش داده ميشود. جزئيات بيشتر عناصر مدل در بخش بعد تشريح شده اند. وابسته به سطح مجرد سازي و پيچيدگي سيستم ، عناصر كمتر و يا بيشتري مورد بررسي قرار مي گيرند.
2-1-2 عناصر دياگرامهاي كلاس
يك كلاس يك شرح براي مجموعة اشيائي است ،كه داراي يك ساختار ، رفتار ، ارتباطها و معني مي باشند. هر كلاس داراي يك نام مي باشد و مي تواند متعلق به يك بسته باشد.
اشيائي كه از يك كلاس هستند داراي يك ليست ويژگيها و يك ليست متدهاي يكسان ميباشند،اماL1 مقادير ويژگيها ممكن است متفاوت باشند. يك دياگرام كلاس ميتواند داراي اشيايي باشد، كه نمونههايي از كلاسها ميباشند. شكل معمول تعريف يك ويژگي بصورت زير ميباشد.
Visibility name : type ?? expression
نوع ويژگي (type- expression) توسط UML تعريف نميشود و اين مقدار وابسته به زبان ميباشد در حقيقت نوع متغير، براي زباني است، كه در نهايت كلاس مورد نظر در آن ايجاد و پيادهسازي خواهد شد. ممكن است كلاسهاي موجود در دياگرام كلاس به عنوان نوع متغير براي ويژگيها مورد استفاده قرار گيرند. اين زماني است كه يك ويژگي يك مرجع براي يك شيء از آن كلاس نگهداري ميكند. آشكاري ويژگيها شامل يكي از موارد protecded(#) , public(+) و prirate(-) ميباشد. ويژگيهاي عموني (public) براي ساير كلاسها قابل دسترس هستند،ويژگيهاي محافظت شده تنها براي اشياء همان كلاس و يا زيركلاسهاي آن قابل دسترس ميباشند و ويژگيهاي خصوصي(( prirate تنها براي خود شيء قابل دسترس ميباشند. ساير جزئيات مثل مقادير اوليه، چند تايي و رشتههاي مربوط به ويژگي ها ، همگي اختياري هستند.
يك متد در UMLتوسط يك رشته كه به شكل زير ميباشد تعريف ميگردد.
Visitility name (parameter
Visibility name (parameter – list): return-type-expression
ليست پارامترهاي هر متد شامل يكسري پارامتر ميباشد كه همگي داراي فرمتي به شكل زير هستند.
Name: type-expression
آشكاري متدها همانند ويژگيها مورد بررسي قرار ميگيرد. متدي كه يك عمليات را محقق ميسازد داراي همان خصوصيات عمليات ميباشد و البته داراي يك بدنه پيادهسازي ميباشد كه عمليات را پيادهسازي ميكند.
كلاسها بصورت درختي توسط بستهها ؟؟سازماندهي ميگردند.
هر كلاس حداكثر به يك بسته تعلق دارد و بسته به نوع آشكاري آن قابل دستيابي از طرف ساير بستهها ميباشد.
ساختاري بين كلاسها از طريق روابط تناظر و تعميم نشان داده ميشود. يك كمان بيانگر ارتباط ساختاري يك شيء از كلاس مبدأ با يك شيء از كلاس مقصد ميباشد. يك رابطه تناظر دو طرفه كه بصورت يك خط نشان ميدهد. اين ارتباط ساختاري به ايت معني است كه شيء مبدأ به راحتي به شيء مقصد دسترسي پيدا ميكند دليل اين امر آن است كه شيء مبدأ يك مرجع به شيء مقصد را در خود نگهداري ميكند. رابط تناظر معمولاً بايزي ميباشند اما ميتوان روابط تناظر چندگانه را نيز داست. روابط چندگانه در اين مقاله بررسي نميگردند.
از طرفي بصورت تئوري امكان وجود چند رابطه تناظر بين دو كلاس وجود دارد. اما در برخي موارد اين مسأله تمكن است نيك دياگرام ناسازگار ختم گردد.
روابط تجمع و تركيت انواع خاصي از ناظر هستند كه رابطه "بخشي از" را نمايش ميدهند. باري نمايش اين روابط انتقال خط واصل بين د ركلاس يك لوزي قرار داده نميشود كه در رابطه تركيب اين لوزي توپر و در رابطه تجمع اين لوزي تو خالي ميباشد. رابطه تجمع به طور كلي رابطه كل و جزء را نمايش ميدهد.
يك رابطه تركيب يك رابطه قويتر نسبت به تجمع ميباشد و به اين معني است، كه جزء در نظر گرفته براي تركيب تنها براي تركيب ميباشد و نميتواند جزء شيء ديگري باشد. اين بدان معني است، كه تمام اجزاي يك تركيب هنگام از بين رفتن تركيب از بين ميروند.
يك رابطه تعميم بين دوكلاس براي نمايش ارث بري كلاس فرزند از كلاس پدر ميباشد. تمام ويژگيها و عمليات كلاس پدر به كلاس فرزند به ارث ميرسد. از طرفي كلاس فرزند ، خود مي تواند عمليات و ويژگيهاي خود را داشته باشد. رابطه تعميم امكان جايگزيني را محقق ميسازد. يعني در جايي كه يك نمونه از كلاس پدر مورد نياز است، ميتواند يك نمونه از كلاس فرزند مورد استفاده قرار بگيرد. اما عكس اين عمل ممكن نيست، يعني يك نمونه از كلاس پدر نميتواند جايگزين يك نمونه از كلاس فرزند گردد. در روابط تعميم حلقه ممكن نيست اين در حالي است، كه حلقه براي روابط تناظر مجاز ميباشد.
uml امكان ارثبري يگانه و چند گانه را ممكن ساخته است. در طول اين مقاله تنها ارثبري يگانه مورد بررسي قرار ميگيرد، اما ارثبري چندگانه مشكلي براي چك سازگاري نيست.
uml رابطه تناظر را همراه با دو انتهاي آن در نظر ميگيرد. بنابراين امكان اضافه كردن ويژگيهاي مربوط به دو انتهاي يك رابطه تناظر در نظر گرفته شده است.
با افزودن يك Rolename به يك سمت رابطه، اشياء كلاس آن سمت يك نام بدست ميآورند، كه توسط اشياء كلاس سمت ديگر مورد استفاده قرار ميگيرد.
چندتايي درنظر گرفته شده براي هر ارتباط تعداد اشيائي را كه توسط آن رابطه با شيء مورد نظر در ارتباط هستند، تعيين ميكند.
چندتايي يك بازه از اعداد غير منفي است كه بصورت (حد بالا…حد پايين) ميباشد. حد پايين صفر به اين معني است كه شيء نيازي به يك مرجع ندارد. از طرف ديگر حد پايين 1 وجود شيء متناظر را قطعي ميكند، يعني حداقل يك مرجع براي شيء متناظر بايد وجود داشته باشد. جدول(x) مقادير ممكن باري بازة چندتايي را نمايش ميدهد.
ممكن است دياگرام كلاس با توجه به چند تايي ها منجر به يك دياگرام شيء تهي گردد و يا ناسازگاري بوجود آيد. آشكاري يك رابطه تناظر ميتواند محدود گردد. اين كار با استفاده از كلمات كليدي protected (#) , Public (+) و يا private (-) صورت ميگيرد. اين كلمات كليدي دسترسي و استفاده از rolename ها را محدود ميسازند. مفهوم اين كلمات كليدي همانند آن چيزي است، كه براي ويژگيها گفته شده است . شكل(X) يك دياگرام كلاس همراه با رابطههاي تناظر يكطرفته و دو طرفه، تجمع و تعميم ميباشد.
4-4 الگوريتمهاي چك سازگاري
ايده اصلي در اين الگوريتمها به اين شكل است، كه تمام گرافهاي ايجاد شده توسط گرامر گرافگونه بايد در قيود چندتايي صدق كنند و با گراف كلاس سازگار باشند. الگوريتم اصلي قوانين مطرح شده در شرط كنترلي را يكي يكي در نظر گرفته و الگوريتمهاي مربوط به چك وجود، چك آشكاري و چك چندتايي را اجرا ميكند.
دراينجا دو الگوريتم ارائه شده است الگوريتم اول مربوط به چك وجود و آشكاري ميباشد وم الگوريتم دوم براي چك چندتايي در نظر گرفته شده است
پس از اينكه هر دو الگوريتم براي يك قانون اجرا شدند، آن قانون روي گراف فعلي اجرا ميگردد. گراف فعلي براي اولين قانون همان گراف شروع ميباشد.
در صورتي كه الگوريتم چك وجود و آشكاري با خطا و مواجه شود، در آنصورت آن قانون برروي گراف فعلي قابل اجرا نميباشد.
الگوريتم با گراف شروع، آغاز ميگردد. دراين مرحله وجود نقشها و كلاسها به همراه ارتباط آنها و چندتايي ها مورد بررسي قرار ميگيرند. به دليل اينكه ما از دياگرامهاي كامل استفاده ميكنيم، بنابراين گراف شرومع خالي و يا داراي ندهاي مستقل ميباشد.
ندهاي مستقل ندهاي هستند كه هيچ ومابستگي چندتايي به يكديگر نداترند.الگوريتم 5-4-1 چك وجود و چك آشكاري
اين الگوريتم يك قانون از گرامرگراف گونه و گراف كلاس را مورد استفاده قرارميدهد. قوانين درگرامرگرافگونه بصورت L ® R نمايش داده مي شوند، كه L وR هر دو گراف هستند. اين الگوريتم بر اساس وجود مورفيزمهايي بين گرافهاي LوR و گراف كلاس (CG) مي باشد.در حقيقت بايد مومرفيزمهايCG , R®CG ® L وجود داشته باشند و البته اين مورفيزمها بايد كامل باشند.
قسمت اصلي اين الگوريتم بر اساس جزئيات ويژگيهاي موجود درمورفيزم ميباشد. نوع ويژگيها ، نام كلاسها، نقشها و مجموعههاي ويژگيها وعمليات بصورت صريح تعريف شده اند و در مورفيزم مورد استفاده قرار ميگيرند. تنها مشكلي كه در اين بخش موجود دارد، چك آشكاري است. چك وجود از طريق مورفيزم به راحتي قابل دستيابي است، ولي چك آشكاري با توجه به وجود بستهها ، نقشها، ويژگيها و عمليات بصورت فرمال امكان پذير نيست و در اين مقاله ارائه نشده است . شكل (1-5) يك چك وجود ناموفق را نشان ميدهد. در اين شكل قسمت سمت راست قانون( R ) با گراف كلاس داراي مورفيزم نيست .
5-4-2 الگروريتم چك چندتايي
اين الگوريتم از يك قانون، مجموعه قيود چندتايي و گراف فعلي استفاده ميكند. اين الگوريتم از دو الگوريتم كه وابسته به نوع قيد چندتايي ميباشند، استفاده ميكند. هر قانون بايد با تمامي قيود چندتايي چك شود.
- چك قانون با قيود كلي
اين الگوريتم يك قانون بصورت L®R و يك قيد كلي بصورت P®C را گرفته و حد پايين يك چندتايي را بررسي ميكند. براي چك حد پايين، بايد تمام تداخل هاي مناسب بين R و P بدست آيند.يك تداخل مناسب گفته ميشود، اگر ندهاي ايجاد شدة جديد در R با بخشي ازP تداخل داشته باشند و يا اگر قانون بخشي را حذف ميكند، آن بخش مورد نياز C باشد. به اين ترتيب يك مجموعه از تداخلها ايجاد ميگردد. هرتداخل O بايد با قانون p®C گسترش يابد. به اين ترتيب يك مجموعه ازگسترشهايي به نام H بدست ميآيد. اگر بتنوان قانون را بصورت معكوس بر يكي از اين گسترشها اعمال كرد. بدون اينكه شرايط را زير پا گذاشت، درآنصورت سازگاري اثبات ميگردد.
شكل (2-5) يك چك ناموفق براي حد پايين چندتايي را نشان ميدهد. در اين مثال حد پايين مورد بررسي اين است، كه كلاس B حداقل با يك كلاس C در ارتباط ميباشد.O تنها تداخل ممكن ميباشد و عكس قانون براي گسترش H قابل اعمال نيست، به اين ترتيب ناسازگاري با قيود كلي چندتايي مورد بررسي قرار ميگيرد.
- چك قوانين با قيود عدم وجود
اين الگوريتم يك قانون به شكل R L ® و قيد عدم وجود N را گرفته و حد بالاي يك چندتايي را چك ميكند. در اين الگوريتم هم، تمام تداخلهاي مناسب قسمت سمت راست قانون (R) و قيد عدم وجود (N) بدست مي آيند. يك تداخل مناسب است اگر قسمتهاي جديد ايجاد شده در R با قيد عدم وجود تداخل داشته و از طرفي امكان اعمال قانون بصورت معگوس بر روي آن ومجود داشته باشد.
نتيجه اعمال اين الگوريتم بدست آمدن چندين قيد كاربردي منفي ميباشد. يك ناسازگاري زماني حاصل مي گردد، كه نتوان قانون را با توجه به قيود بدست آمده بر روي گراف فعلي اعمال كرد. اين زماني رخ ميدهد، كه يك مورفيزم از قيد كاربردي منفي به گراف فعلي وجود داشته باشد. شكل (3-5) يك چك ناموفق براي حد بالاي يك چندتايي را نشان ميدهد. استفاده از قانون با قيد كاربردي منفي به همراه گراف فعلي S” امكان پذير نيست. زيرا مومرفيزم بين َL و S” وجود دارد.