برای دریافت درجه کارشناسی ارشد
در رشته مهندسی کامپیوتر- گرایش نرم افزار
چکیده
در فرآیند تولید نرم افزار، کیفیت معماری نرم افزار تاثیر بسزایی در دستیابی به نیازهای غیروظیفه مندی سیستم
همچون کارآیی، مقاومت در برابر خطا و امنیت دارد. اگر معماری ارائه شده مناسب نیازمندی های سیستم نباشد،
سیستمی با کیفیت پایین تولید می شود که منجر به هدر رفتن مقدار زیادی از منابع پروژه همچون هزینه و
زمان خواهد شد. اما چگونه می توان قبل از پیاده سازی معماری یک سیستم، رفتار سیستم نهایی را پیش بینی
کرد و معماری آن را مورد ارزیابی قرار داد؟ یک راه حل برای این مسئله استفاده از مدل قابل اجراست. مدل
قابل اجرا، یک توصیف شفاف و رسمی از معماری سیستم است که می توان از طریق آن و با استفاده از
ابزارهای شبیه سازی، معماری را ارزیابی کرده و خصوصیات سیستم نهایی را پیش بینی کرد.
در این تحقیق با استفاده از توصیف نیمه رسمی مدل نمای ۱+۴ و تبدیل آن به شبکه های پتری رنگی یک مدل
قابل اجرا از معماری ارائه می شود. هدف از ارائه مدل مذکور، ارزیابی صفت کیفی کارآیی معماری است. به
منظور ارزیابی صفت کیفی کارآیی، شبکه پتری رنگی مذکور را در ابزار Design/CPN با استفاده از تکنیک
شبیه سازی اجرا کرده و نتایج اجرا را برای پیش بینی متریکهای کارآیی مورد استفاده قرار می دهیم.
کلمات کلیدی: مدل قابل اجرا از معماری، شبکه های پتری رنگی، مدل نمای ۱+۴، صفات کیفی، تکنیک
شبیه سازی
۱
فصل اول: مقدمه
در فرآیند تولید نرم افزار، بعد از انجام تحلیل نیازمندیها و ایجاد مستند مشخصات نیازمندی، انتخابهای ممکن
برای معماری سیستم نرم افزاری ارائه می شود. فعالیتهای طراحی معماری، نقش مهمی در ایجاد ارتباط بین
مشخصات نیازمندی و پیاده سازی سیستم دارند. کیفیت معماری تاثیر بسزایی در دستیابی به نیازهای
غیروظیفه مندی سیستم همچون کارآیی، مقاومت در برابر خطا و امنیت دارد. اگر معماری نهایی انتخاب شده،
مناسب نیازمندیها نباشد، سیستمی با کیفیت پایین تولید می شود که منجر به هدر رفتن مقدار زیادی از منابع
پروژه همچون هزینه و زمان خواهد شد. به منظور جلوگیری از هدررفتن هزینه و زمان که در نتیجه انتخاب
نادرست معماری حاصل می شود، ارائه یک توصیف رسمی از معماری و ارزیابی آن در مراحل قبل از شروع
پیاده سازی سیستم می تواند بسیار مفید واقع شود.
یک معمار ممکن است برای تولید یک سیستم نرم افزاری معماریهای مختلفی را پیشنهاد دهد. چگونه می توان
با توجه به نیازهای سیستم نرم افزاری مورد نظر، معماری مناسب را ازمیان معماریهای پیشنهادی انتخاب کرد؟
چگونه می توان قبل از پیاده سازی یک معماری، بررسی کرد که معماری مورد نظر نیازهای غیروظیفه مندی
سیستم را برآورده می کند؟ چگونه می توان رفتار یک سیستم نرم افزاری را قبل از پیاده سازی آن مورد بررسی
قرار داد؟ آیا روشهای استانداردی به عنوان راه حل برای این سئوالات ارائه شده است؟
یکی از اهداف مهمی که در بررسی کیفیت معماری دنبال می شود، بررسی میزان دستیابی معماری به صفات
کیفی همچون کارآیی، امنیت و قابلیت اطمینان است. در اغلب سیستمهای نرم افزاری از روشهای موردی برای
ارزیابی صفات کیفی استفاده می شود. این روشهای موردی معمولا بعد از پیاده سازی معماری یعنی زمانیکه
۲
یک نمونه قابل اجرا از سیستم وجود دارد قابل اعمال هستند. درصورتیکه پس از اعمال روشهای موردی
مشخص شود که معماری انتخاب شده برای سیستم پاسخگوی نیازهای غیروظیفه مندی نیست و برای تغییر
معماری سیستم نیاز به صرف هزینه وزمان زیادی خواهیم داشت. با توجه به این مسئله نیاز به روشهای
جایگزینی برای ارزیابی صفات کیفی داریم که قابل اعمال در گامهای اولیه فرآیند تولید باشند.
مدلهای قابل اجرا از معماری سیستم یکی از راهکارهایی هستند که می توانند پاسخگو به مسائل مطرح شده
باشند.
۱-۱. مدل قابل اجرا از معماری
یک مدل قابل اجرا از معماری، توصیفی رسمی از معماری محسوب می شود که از طریق آن می توان قبل از
پیاده سازی معماری، رفتار سیستم نهایی را مورد بررسی قرار داد. در این بررسی می توان تحلیل کرد که
معماری پیشنهادی تا چه اندازه نیازهای مورد انتظار از سیستم به ویژه نیازهای غیروظیفه مندی را برآورده
می کند. یکی از کاربردهای مدل قابل اجرا در ادامه نشان داده شده است.
یک معمار ممکن است برای یک سیستم نرم افزاری، چندین معماری را پیشنهاد دهد. برای آنکه بتوان از میان
این معماریها مناسب ترین معماری را برای سیستم نهایی انتخاب کرد باید به دنبال ابزار و روشی بود که نشان
داد کدام یک از این انتخابها نیازهای سیستم نهایی را بهتر برآورده می کند. یک مدل قابل اجرا از معماری
می تواند یک راه حل مناسب برای حل این مشکل باشد. با استفاده از مدل قابل اجرا می توان یک توصیف
رسمی از معماری سیستم داشت. سپس می توان با استفاده از ابزار مناسب، رفتار سیستم نرم افزاری را مورد
بررسی قرار داد. این موضوع در شکل ١-١ نشان داده شده است. (تصاویر در فایل اصلی موجود است)
در اجرای سیستم می توان هر یک از صفات کیفی نرم افزار که در انتخاب معماری مناسب، نقش ایفا می کنند
را بررسی کرده و از میان معماریهای پیشنهادی، مناسب ترین را انتخاب نمود. شکل ۱-۲، نشان دهنده کاربرد
مذکور است.
برای مشخص تر شدن کاربرد مدل قابل اجرا از معماری به یک مثال توجه کنید:
یک معمار در حال طراحی معماری یک سیستم مبتنی بر وب است. فرض کنید یکی از نیازهای
غیروظیفه مندی این سیستم آن است که سیستم در کمتر از ۱۰ ثانیه بتواند به درخواست کاربر پاسخ دهد. با
توجه به فرض مذکور معمار باید در معماری پیشنهادی خود صفت کیفی کارآیی را لحاظ کند. اما معمار
چگونه می تواند اطمینان حاصل کند که معماری ارائه شده نیاز مذکور را برآورده می کند؟ یکی از راه حلها آن
است که معمار با استفاده از یک مدل قابل اجرا و با استفاده از ابزارهای شبیه سازی، رفتار سیستم را
شبیه سازی کند. از طریق شبیه سازی رفتار سیستم، می توان اطمینان حاصل کرد که آیا معماری پیشنهادی نیاز
مذکور را برآورده می کند یا خیر.
١-٢. تحلیل کارآیی
معمولا در سیستمهای نرم افزاری تنها این موضوع کافی نیست که بدانیم سیستم از لحاظ وظیفه مندی به
درستی عمل می کند؛ بلکه سیستم باید بتواند با توان عملیاتی بالا و در زمان کوتاه سرویس دهد. چنین
مقوله هایی در محدوده کارآیی سیستم قرار دارند. مطالعات مربوط به تحلیل کارآیی معمولا مربوط به ارزیابی
سیستمهای موجود و یا در حال طراحی با هدف مقایسه پیکربندیهای مختلف و پیدا کردن پیکربندی بهینه از
سیستم است. سه تکنیک در تحلیل کارآیی یک سیستم استفاده می شود:
تکنیک اندازه گیری١
mesurement 1
۵
مدلهای تحلیلی
مدلهای شبیه سازی
١-٣. محدوده تحقیق
در این تحقیق از مدل نمای ۱+۴ [4] به عنوان یک توصیف رسمی از معماری و برای ارزیابی این توصیف از
شبکه های پتری رنگی٢ [51] به عنوان یک مدل قابل اجرا از معماری استفاده شده است. مدل نمای ۱+۴ یک
توصیف رسمی از معماریهای نرم افزاری است که توسط Krutchen ارائه شده است. شبکه های پتری رنگی
نیز ابزاری برای مدل کردن رفتار سیستمهای گسسته هستند.
تمرکز روش ارائه شده در این تحقیق بر روی صفت کیفی کارآیی است. برای ارزیابی کارآیی سیستمهای
نرم افزاری روشهای مختلفی ارائه شده اند. یکی از بارزترین نکاتی که در روش ارائه شده در این تحقیق وجود
دارد، مبتنی بودن روش بر معماری سیستم نرم افزاری و قابل اعمال بودن روش در مراحل آغازین فرآیند تولید
نرم افزار است. اغلب روشهای ارائه شده در زمینه ارزیابی کارآیی مبتنی بر معماری نیستند. همچنین به دلیل
استفاده از مدلهای تحلیلی پیچیده در سایر روشها، روشهای مذکور قابل استفاده در سیستمهای با مقیاس بزرگ
نمی باشند. در حالیکه در فرآیند ارائه شده در این تحقیق با استفاده از تکنیک شبیه سازی، روش قابل اعمال بر
روی سیستمهای با مقیاس بزرگ است.
2 Coloured Petri Net
۶
١-٤. ساختار پایان نامه
ساختار ادامه پایان نامه به شرح زیر است:
فصل دوم: در این فصل به بررسی مفاهیم مرتبط با ارزیابی معماری نرم افزار می پردازیم. از آنجائیکه
یکی از اهداف مهم ارزیابی معماریهای نرم افزار، ارزیابی صفات کیفی است در فصل دوم مروری بر
صفات کیفی نرم افزار خواهیم داشت. در ادامه این فصل روشهای متداول ارزیابی صفت کیفی کارآیی
ارائه شده است. در ادامه مروری بر مدل نمای معماری ١+٤ به عنوان یک توصیف رسمی از معماری
نرم افزار و شبکه های پتری رنگی به عنوان یک مدل قابل اجرا از معماری خواهیم داشت.
فصل سوم: در این فصل به بررسی ارزیابی صفات کیفی با استفاده از شبکه های پتری رنگی و معرفی
ابزاری که از طریق آن می توان این شبکه ها را مدل و رفتار شبکه را ارزیابی کرد پرداخته شده است.
فصل چهارم: در این فصل یک فرآیند ساخت یافته برای ارزیابی صفات کیفی ارائه شده است. در
فرآیند مذکور از مدل نمای ١+٤ به عنوان یک توصیف رسمی از معماری و از شبکه های پتری رنگی
به عنوان یک مدل قابل اجرا از معماری استفاده شده است. در این فصل به طور خاص کاربرد فرآیند
برای ارزیابی صفت کیفی کارآیی نشان داده شده است.
فصل پنجم: در این فصل متریکهای کارآیی یک سیستم موردی با استفاده از فرآیند مطرح شده در
فصل چهارم مورد ارزیابی قرار گرفته است.
فصل ششم: در این فصل به بررسی نتایج حاصل از تحقیق و مقایسه روش ارائه شده با سایر روشها
پرداخته شده است.
فصل دوم: مفاهیم مرتبط با ارزیابی معماری نرم افزار
در این فصل مروری بر مفاهیم مرتبط با ارزیابی معماری نرم افزار که در این تحقیق مورد استفاده قرار
گرفته اند خواهیم داشت.
از آنجائیکه یکی از اهداف مهم ارزیابی معماری نرم افزار، ارزیابی صفات کیفی است، قبل از هر چیز در این
فصل صفات کیفی قابل تعریف در سیستمهای نرم افزاری را مورد بررسی قرار می دهیم. پس از آنکه جایگاه
صفت کیفی کارآیی در میان سایر صفات کیفی مشخص شد؛ به بررسی روشهای متداول در ارزیابی صفت
کیفی کارآیی در سیستمهای نرم افزاری می پردازیم. از آنجائیکه در تحقیق از مدل نمای ۱+۴ به عنوان یک
توصیف رسمی و از شبکه های پتری رنگی به عنوان یک مدل قابل اجرا از معماری استفاده شده است؛ در
ادامه مروری بر مفاهیم مدل نمای ۱+۴ و شبکه های پتری رنگی خواهیم داشت.
Abstract
In a software development process, the quality of an architectural design of a software system has a great influence on achieving non-functional requirements to the system such as performance, fault tolerant, and security. If presented architecture was not appropriate for the requirements, the system of low quality would be produced and it would lead to wasting huge amount of project resources such as cost and time. But how can predict behavior of final system, before system architecture implementation and evaluate its architecture. Executable model is a clear and formal description for system that we can evaluate software architecture through it and simulation tools and predicate final system properties.
In this research, using 4+1 view model description and converting it to CPN, an executable model of software architecture is presented. The goal of presentation of above model is software architecture performance evaluation. For evaluating this, we run CPN using simulation technique in Design/CPN tool and will apply the result for predicting performance metrics.
Keywords: Executable model of software architecture, Coloured Petri Net, 4+1 view model, Simulation technique