نام پژوهشگر: لیلا طالبی

پیش بینی قابلیت اطمینان سیستم های نرم افزاری مبتنی بر مولفه با استفاده از خودکارهای واسط
پایان نامه وزارت علوم، تحقیقات و فناوری - دانشگاه تبریز - دانشکده علوم ریاضی 1393
  لیلا طالبی   جابر کریم پور

3) شرح موضوع پیشنهادی: (تعریف مساله، فرضیات و هدف....) مقدمه: پیش بینی صفات کیفی سیستم های نرم افزاری از جمله قابلیت اطمینان ، کارآیی در طول فرآیند توسعه نرم افزار و قبل از ساخت آن توجه های زیادی را به خود جذب کرده است [1، 2، 3]. اغلب تکنیک های مورد استفاده برای ارزیابی صفات کیفی، بعد از پیاده سازی نرم افزار و در فاز تست انجام می پذیرد [4، 5]. پیش بینی قابلیت اطمینان نرم افزار در اوایل فرآیند توسعه نرم افزار برای مدیریت ریسک دارای اهمیت ویژه ای می باشد [6]. معماری نرم-افزار امروزه به عنوان یکی از مهمترین شاخه های مهندسی نرم افزار مطرح است که شامل تکنیک ها و روش هایی جهت مدیریت پیچیدگی ساخت نرم افزار می باشد. معماری نرم افزار ، نمایی از سیستم نرم افزاری ارائه می دهد که متشکل از مولفه ها و اتصالات است. هر مولفه، مجموعه به هم پیوسته ای از ارکان وظیفه مندی سیستم را در خود محصور نموده است. اتصالات نیز به تعامل زمان اجرای میان مولفه ها عینیت می بخشد. ابعاد کیفی که طراحی کلان سیستم به دنبال خواهد داشت متاثر از نحوه ترکیب مولفه ها و اتصالات است. یکی از واقعیت های معماری که انگیزه ارزیابی آن را ایجاد می کند این است که معماری می تواند عامل و یا مانع دستیابی به صفات کیفی نرم افزار باشد. به عنوان مثال اگر فاکتور کارآیی برای یک سیستم مهم باشد ارتباط بین مولفه ها و ارتباطات داخلی هر مولفه از اهمیت زیادی برخوردار خواهد شد. معماری حاصل تصمیمات طراحی مقدماتی مولفه ها و ساختار ارتباطی میان آ ن ها است و انجام این سطح از کار قبل از ساخت یک سیستم بزرگ و پیچیده ضروری می باشد. علت پرداختن به ارزیابی معماری واضح است هر چه مشکلات موجود در پروژه نرم افزاری زودتر کشف شوند هزینه کمتری به دنبال خواهد داشت و معماری یک گزینه کم هزینه در این راستا خواهد بود. بیان مساله: ما یک روش مبتنی بر خودکارهای واسط و زنجیره های مارکوف برای پیش بینی کارآیی نرم افزار مبتنی بر مولفه ارائه می دهیم. برای انجام این کار سیستم نرم افزاری توصیف شده توسط خودکار واسط را تبدیل به زنجیره مارکوف نموده و از روی زنجیره مارکوف مبادرت به پیش-بینی قابلیت اطمینان سیستم نرم افزاری مبتنی بر مولفه می کنیم. در واقع زنجیره مارکوف به دست آمده نشان دهنده معماری سیستم خواهد بود. دلیل استفاده از زنجیره مارکوف این است که در این زنجیره ها میانگین و واریانس اجرای هر مولفه مشخص است که در پیش بینی قابلیت اطمینان مورد نیاز می باشد. بنابراین مسأله، پیش بینی قابلیت اطمینان سیستم نرم افزاری است. لذا در این پایان نامه به سوالات زیر پاسخ داده می شود: 1. آیا می توان واسط مولفه ها را با خودکارهای واسط توصیف و آن ها را به زنجیره ی مارکوف برای ارزیابی قابلیت اطمینان تبدیل کرد؟ 2. آیا با تجزیه و تحلیل زنجیره های مارکوف حاصل می توان به کارآیی مولفه ها پی برد؟ پیشینه: از چارچوب های مختلفی جهت توصیف معماری استفاده می شود که برخی از آن ها مبتنی بر مدل های رسمی و بعضی دیگر مانند adl ها از گرامرهای خاصی برای توصیف مولفه ها و ارتباطات بین آن ها استفاده می کنند و گروهی مانند uml توصیفات بصری و نمودارها را پیشنهاد می کنند. هر کدام از این روش ها نقاط ضعف و قوت خاص خود را دارند و استفاده از آن ها بستگی به هدف معمار از توصیف معماری دارد. مهندسین نرم افزار برای توصیف جنبه های ایستا و پویای معماری یک سیستم نرم افزاری از مدل های مختلفی استفاده می کنند. بخش ایستای سیستم، توصیف کننده مولفه های نرم افزاری و ارتباط میان آن ها است و بخش پویای آن، نشان دهنده رفتار زمان اجرای سیستم است. برای توصیف ساختار و رفتار سیستم از شیوه های مدل سازی و علامت گذاری های مختلفی می توان استفاده نمود که برخی از آن ها uml، جبر فرایندی، mcs و petri net زبان های توصیف معماری است [1، 2، 3]. مدل خودکارهای واسط توسط لوکال دی آلفارو و توماس آ هنزینگر معرفی گردید [7، 8]. این مدل برای مستندسازی و ارزیابی سیستم های متشکل از مولفه ها که از طریق واسط ها با یکدیگر در ارتباطند طراحی شده است. خودکار واسط فعال ورودی نیست و فقط اجازه ترکیب دو خودکار داده می شود. به علاوه ترکیب بر اساس همزمانی یک کنش خروجی و یک کنش ورودی (با همان نام) انجام می شود که پس از ترکیب پنهان می گردد. خودکار واسط یک زبان رسمی سبک وزن برای توصیف سیستم های مبتنی بر مولفه است. همچنین بر خلاف خودکارهای موجود، خودکار واسط بر اساس ترکیب خوش بینانه مولفه ها می باشد. بر اساس ترکیب خوش بینانه، دو مولفه با یکدیگر سازگار هستند اگر حداقل یک محیطی وجود داشته باشد که بتوانند با یکدیگر کار کنند. زنجیره مارکوف که به افتخار آندری مارکوف ریاضی دان اهل روسیه این گونه نام گذاری شده یک سیستم ریاضی است که در آن انتقال از یک حالت به حالت دیگر صورت می گیرد که البته تعداد این حالات قابل شمارش است. زنجیره مارکوف یک فرآیند تصادفی بدون حافظه است بدین معنی که توزیع احتمال شرطی حالت بعد تنها به حالت فعلی بستگی دارد و به وقایع قبل از آن وابسته نیست. این نوع بدون حافظه بودن خاصیت مارکوف نامیده می شود. زنجیره مارکوف در مدل سازی دنیای واقعی کاربردهای زیادی دارد. زنجیره مارکوف یک فرایند تصادفی گسسته در زمان با خاصیت مارکوف است. اگرچه برخی از نویسندگان در مورد فرآیندهای پیوسته در زمان هم از اصطلاح زنجیره مارکوف استفاده می کنند. یک فرایند تصافی گسسته در زمان شامل سیستمی است که در هر مرحله در حالت خاص و مشخصی قرار دارد و به صورت تصادفی در هر مرحله تغییر حالت می دهد. مراحل اغلب به عنوان لحظه های زمانی در نظر گرفته می شوند ولی می توان آن ها را فاصله فیزیکی یا هر متغیر گسسته دیگری در نظر گرفت. خاصیت مارکوف بیان می کند که توزیع احتمال شرطی برای سیستم در مرحله بعد فقط به حالت فعلی سیستم بستگی دارد و به حالت های قبل بستگی ندارد. چون سیستم به صورت تصادفی تغییر می کند به طور کلی پیش بینی حالت زنجیره مارکوف در نقطه ای خاص در آینده غیر ممکن است. با این حال ویژگی های آماری سیستم در آینده قابل پیش بینی است. در بسیاری از کاربردها چیزی که دارای اهمیت است همین ویژگی های آماری است. تغییرات حالات سیستم انتقال نام دارند و احتمال هایی که به این تغییر حالت ها نسبت داده می شوند احتمال انتقال نامیده می شوند. مجموعه ای از حالت ها و احتمال انتقال ها به طور کامل یک زنجیره مارکوف را مشخص می کنند. طبق قرار داد ما فرض می کنیم همیشه حالت بعدی وجود دارد و در نتیجه فرآیند تا ابد ادامه پیدا می کند. کریم پور به همراه همکاران خود [9] در سال 2013، مبادرت به ارزیابی کارآیی سیستم نرم افزاری از روی معماری و با استفاده از خودکارهای واسط و تئوری صف نمودند. آن ها در تحقیقات شان انواع روش های توصیف نرم افزار را بررسی نمودند و تحقیقات آن ها نشان داد که خودکارهای واسط مناسب ترین روش توصیف سیستم نرم افزاری مبتنی بر مولفه است. عمادی در رساله دکتری خود [11]، مبادرت به ارائه مدلی قابل اجرا از روی معماری جهت ارزیابی صفات کیفی سیستم نرم افزاری نمودند. ایشان با تبدیل معماری نرم افزار به شبکه های پتری مبادرت به ارزیابی صفات کیفی کارآیی و قابلیت اطمینان از روی شبکه های پتری نمودند. شریفی در رساله دکتری خود [13]، چارچوبی جهت توصیف و ارزیابی رسمی معماری نرم افزار ارائه داد. ایشان در رساله خود توانستند معماری نرم افزار را با استفاده از یک روش رسمی به نام خودکارهای تیمی توصیف کنند و سپس از روی خودکارهای به دست آمده مبادرت به ارزیابی کارآیی و قابلیت اطمینان سیستم نرم افزاری نمودند. عیسی زاده در تحقیقات خود [1]، روشی برای پیش بینی قابلیت اطمینان سیستم نرم افزاری از روی توصیفات نرم افزار ارائه دادند. ایشان در ابتدا یک سیستم نرم افزاری را با استفاده از view chart توصیف نمودند و سپس از روی توصیفات به دست آمده و زنجیره مارکوف مبادرت به پیش بینی قابلیت اطمینان نمودند. فوکوزاوا [14]، مبادرت به ارائه مدلی جهت ارزیابی صفات کیفی سیستم نرم افزاری نمودند. ایشان با توصیف معماری نرم افزار با استفاده از شبکه های پتری رنگی مبادرت به ارزیابی صفات کیفی کارآیی و قابلیت اطمینان از روی شبکه های پتری رنگی نمودند. نقطه ضعف اساسی همه روش های غیررسمی، عمومی نبودن و محدودیت توانایی آن ها در توصیف وجوه متنوع تعامل میان مولفه ها است، به علاوه به کارگیری مکانیزم های درست یابی نیز برای مدل های غیر رسمی با محدودیت های زیادی روبرو است [9، 10]. روش های رسمی زیربنای سیستماتیک و ریاضی دارند که از عمومیت بالایی برخوردار است، لذا امکان درست یابی خواص مختلف را فراهم می نمایند و توسط ابزارهای درست یابی حمایت می شوند [11]. خودکارهای واسط یک زبان رسمی سبک وزن برای توصیف سیستم های مبتنی بر مولفه است [12]. با توجه به مزایایی که خودکارهای واسط دارد و همچنین دارای ابزارهایی برای پشتیبانی از آن است؛ هیچ تحقیقی در مورد بررسی قابلیت اطمینان یک سیستم نرم افزاری با خودکارهای واسط انجام نشده است. اختلاف اصلی میان روش پیشنهادی ما و روش های پیشنهادی دیگران در پیش بینی قابلیت اطمینان این است که ما از یک زبان رسمی سبک به نام خودکار واسط برای توصیف رفتار مولفه های سیستم نرم-افزاری استفاده خواهیم نمود؛ سپس، خودکار واسط را به زنجیره مارکوف تبدیل خواهیم کرد و با استفاده از آن قادر به پیش بینی قابلیت اطمینان سیستم های نرم افزاری مبتنی بر مولفه خواهیم بود. هدف: هدف این پایان نامه، ارائه روشی برای پیش بینی قابلیت اطمینان سیستم های نرم افزاری از روی توصیف آن ها می باشد. مراجع: [1] h. alipour and a. isazadeh, “software reliability prediction based on a formal requirements specification”, advances in computer science and engineering communications in computer and information science, vol 6, pp. 816-820, 2, 2009. [2] s. becker, l. grunske, r. mirandola, s. overhage, “performance prediction of component-based systems: a survey from an engineering perspective”, in: ralf reussner, judith stafford, clemens szyperski (eds.), architecting systems with trustworthy components, in: lncs, vol. 3938,jspringer, pp. 169_192, 2006. [3] h. koziolek , “performance evaluation of component-based software systems: a survey”, performance evaluation 67, pp. 634-658, 2, 2010. [4] l. bass, p. clements, and r. kazman, “software architecture in practice”, addison wesely, 2002. [5] a. m. johnson, j. m. malek, "survey of software tools for evaluating reliability, availability, and serviceability", acm computing surveys, vol. 20, no. 4, 1988. [6] f. aquilani, s. balsamo, p. inverardi, “an approach to reliability evaluation of software architectures”, first international workshop on software and performance, santa fe, new mexico, usa, acm, pp.178-190, 1998. [7] luca de alfaro and thomas a. henzinger. “interface automata”, in volker gruhn, editor, proceedings of the joint 8th european software engeneering conference and 9th acm sigsoft symposium on the foundation of software engeneering (esec/fse-01), acm press, vol 26, 5 of software engineering notes, pp. 109–120, 2001. [8] l. de alfaro and t. a. henzinger, “interface-based design”, in proceedings of the 2004 marktoberdorf, summer school, kluwer, 2004. [9] j. karimpour, a. isazadeh, h. izadkhah, “early performance assessment in component-based software systems”, iet software, vol 7, issue 2, pp. 118 – 128, 2013. [10] s. balsamo, m. bernardo and v. grassi, “quantitative analysis of software architectures”, research report, cs-2002-13, department of information, university ca foscari di venezia, 2002. [11] س. عمادی، "معرفی یک مدل قابل اجرا از معماری نرم افزار"، رساله ی دکتری، دانشگاه آزاد اسلامی واحد علوم تحقیقات تهران، سال 1385. [12] y. jin, “compositional verification of component-based heterogeneous systems”, phd thesis, department of computer science, university of adelaida, 2004. [13] م. شریفی، "یک چارچوب برای توصیف و ارزیابی صفات کیفی از روی معماری نرم افزار"، رساله ی دکتری، دانشگاه آزاد اسلامی واحد علوم تحقیقات تهران، سال 1387. [14] k. fukuzawa, m. saeki, 2002, “evaluating software architectures by colored petri nets”, proceedings of seke 02, acm press, 2002. امضای دانشجو امضای استاد راهنمای اول امضای استاد راهنمای دوم امضای استاد مشاور اول امضای استاد مشاور دوم تاریخ