مقاله بررسی UML و كاربرد آن
مقاله بررسی UML و كاربرد آن
دسته بندی | فنی و مهندسی |
فرمت فایل | doc |
حجم فایل | 28 کیلو بایت |
تعداد صفحات | 40 |
دریافت فایل
مقاله بررسی 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” وجود دارد.