نام پژوهشگر: محمد صنیعی
معصومه صانعی نصرالله مقدم چرکری
از زمان اختراع نخستین ماشین های محاسباتی، نیاز به توان پردازشی بیشتر، توسعه و اختراعات را برای آینده اجتناب ناپذیر کرده است. امروزه صنعت محاسبات ، یکی از سریع ترین صنایع در حال رشد می باشد که بوسیله ی توسعه ی سریع در زمینه های سخت افزار و نرم افزار کامپیوتر حاصل شده است. برنامه های کاربردی چالش برانگیزی مثل پیش بینی آب و هوا و تحلیل زلزله، کاربردهای تجاری حرفه ای و کاربردهای علمی مثل پردازش تصویر، سیگنال و کنترل هر روز پیچیدگی بیشتری پیدا می کنند. نیاز این برنامه ها به توان محاسباتی بالا و نیز به ارضا کردن محدودیت های بلادرنگ حیاتی است. در این تحقیق سعی کردیم تا با استفاده از محاسبات موازی بر این مشکل فایق آییم. هدف اصلی از انجام محاسبات موازی، حل سریع تر مسائل و یا حل مسائل پیچیده تر است. توسعه و تولید سیستم هایی با سرعت متوسط، با استفاده از معماری های موازی بسیار ارزانتر از داشتن کارایی مشابه در یک سیستم ترتیبی است. بنابراین سعی کردیم که با استفاده از سخت افزارهایی که هم اکنون در شرکت ها و ادارات در دسترس می باشد و نیز با استفاده از چند کامپیوتر یا یک خوشه از کامپیوترها، کارها را به صورت کاراتر انجام دهیم که بحث آن در رابطه با طراحی الگوریتم ها می باشد. برای اینکار از الگوریتم سیستم ایمنی مصنوعی ترکیبی ( hais) بهره گرفته ایم. سیستم ایمنی مصنوعی (ais)، سیستمی الهام گرفته از عملکرد سیستم ایمنی بدن انسان است. یکی از کاربردهای سیستم ایمنی مصنوعی، بهینه سازی است. مدلهای ایمنی مختلفی وجود دارد که برای بهینه سازی تک هدفه و یا چندهدفه بکار می روند. در این تحقیق نیز به مساله ی زمان بندی دوهدفه با اهداف کمینه کردن طول زمان بندی (یا همان makespan) و بیشینه کردن قابلیت اعتماد (یعنی پیداکردن یک زمان بندی قابل اعتماد) پرداخته ایم. برای حل مساله زمان بندی قابل اعتماد، دو روش مبتنی بر ais را پیشنهاد نموده ایم. برای این منظور در هر روش، الگوریتم مبتنی بر جمعیت ais را با یک سری اکتشافات و نیز یک روش جستجوی محلی ترکیب کرده ایم. الگوریتم انتخاب کلونی ais، یک جستجوی هدفمند را فراهم می آورد و الگوریتم حذف ایمنی نیز تنوع در جمعیت و نخبه سالاری را ایجاد می کند. برای نشان دادن کارایی و موثربودن روش های پیشنهادی، آنها را با روش های موجود در تحقیقات مقایسه نموده ایم. نتایج بدست آمده نشان دادند که دقت الگوریتم های پیشنهادی از روش هایی مانند dcp [86] ، dsc [35] ، md [76] و ga and ep [60] بهتر است. همچنین برای نشان دادن چگونگی رفتار این روش ها در مقابل ورودی های مختلف از برنامه های کاربردی، سناریوهایی ترتیب داده شده است که در ادامه ی تحقیق آمده اند.
فرزانه رحمانی سعید جلیلی
طراحی نرم افزارهای بزرگ، فعالیتی بسیار پیچیده و مشکل است. در واقع طراحی یکی از سخت ترین وظایف در فرآیند توسعه نرم افزار می باشد. مهندسی نرم افزار مبتنی بر جستجو، به معنی کاربرد روش های جستجو در حل مسائل مهندسی نرم افزار است که نمی توان برای یافت راه حل خودکار آنها از روش های متداول استفاده نمود. طراحی نرم افزار یک خلاقیت ذهنی است که توسط طراح با استفاده از فرآورده های مرحله تحلیل انجام می شود. محققین در فرآیند تولید نرم افزار به دنبال افزایش سطح خودکارسازی می باشند، دلیل این امر اینست که با توجه به نیازهای روزافزون به تولید نرم افزار، افزایش سطح خودکارسازی طراحی نرم افزار باعث می شود تا طراحان سریعتر بتوانند به نیازهای جامعه پاسخ دهند. خودکار سازی طراحی نرم افزار با روش های معمول رایج امکان پذیر نیست زیرا در طراحی با فضای جستجوی بزرگی شامل نمونه های مختلف طراحی روبرو هستیم که سبب می شود تا این مسئله در دسته مسائل np قرار گیرد. یک رویکرد مناسب برای کشف طراحی برتر استفاده از روش های تکاملی است. با توجه به نواقص کارهای انجام شده در زمینه ی خودکارسازی و بهینه سازی طراحی نرم افزار، در این پژوهش سعی شده است با استفاده از الگوریتم ژنتیک و با شروع از یک طراحی ابتدایی، با استفاده از اطلاعات بدست آمده در مرحله ی تحلیل نرم افزار شامل نمودار های کلاس و همکاری مرحله ی تحلیل و با توجه به معیار های اتصال و انسجام و معیار های روابط ارث بری به یک طراحی نزدیک به بهینه برسیم. در الگوریتم پیشنهادی با در نظر گرفتن روابط ارث بری تک کلاسی در کروموزوم ها، این روابط ارث بری مابین کلاس ها در طول جستجو ساخته می شوند. در نسخه ی بهبود یافته ی الگوریتم پیشنهادی با تغییر ساختار نمایش در کروموزوم های الگوریتم ژنتیک، انواع مختلف کلاس های مرحله ی طراحی شامل کلاس های موجودیت، کنترلی و واسط کاربری معرفی شده و انواع متد های مربوط به موجودیت ها، متد های کنترلی و واسط کاربری در طول جستجو، در کلاس های مربوط به خودشان قرار می گیرند. در مرحله ی بعد با استفاده از یک الگوریتم ژنتیک دیگر و با استفاده از نمودار کلاس تولید شده به صورت خودکار، مولفه های نرم افزار ساخته می شوند. این الگوریتم جهت خودکارسازی طراحی دو سیستم نرم افزاری فروشگاه زنجیره ای و مدیریت درآمد شرکت فرودگاه های کشور، مورد استفاده قرار گرفت. بررسی نتایج حاصل از این تحقیق نشان داد که الگوریتم ژنتیک روش مناسبی جهت تولید خودکار نرم افزار می باشد و با بهبود تابع ارزیابی و همچنین اضافه نمودن اطلاعات بیشتری از مرحله ی طراحی نرم افزار امکان دقیق تر شدن طراحی تولیدشده توسط الگوریتم ژنتیک نیز وجود دارد.
بهاره سادات حسینی سعید جلیلی
در این پایان نامه برای تولید مورد آزمون از دیاگرام توالی uml به عنوان ورودی فرایند تولید مورد آزمون استفاده شده است. درصورت زیاد بودن تعداد موارد آزمون، بررسی آنها کاری خطاخیز، زمانبر و خسته کننده خواهد بود. بنابراین در این پایان نامه هدف آن است که در مرحله ی تولید آزمون از معیاری استفاده شود که هر مسیر از حالت آغازین تا حالت پایانی، بیش از یک بار پیموده نشود. از طرف دیگر برای تسریع در فرایند تولید آزمون بجای استفاده از کد برنامه به عنوان ورودی آزمون از دیاگرام توالی بدست آمده از فاز طراحی استفاده شده است. برای افزایش مقدار معیار پوشش آزمون نیز از الگوریتم ژنتیک استفاده شده است. همچنین بکارگیری این الگوریتم تعداد موارد آزمون مورد نیاز را کمینه می کند. در مرحله ی پایانی با استفاده از تحلیل مسیرهای موارد آزمون، الگوهایی استخراج شده است تا یک سطح از پیچیدگی کار آزمونگر را کاهش دهد. معیار پوشش مورد استفاده در این پایان نامه در عین حال که نسبت به معیارهای هم سطح خود دقت بالاتری دارد کمک می کند تا تخمین صحیحی از تعداد موارد آزمون مورد نیاز داشته باشیم.
محمد صنیعی محمود فتحی
در این پایان نامه دو سیستم تصمیم گیرنده acc و ahds که از انواع سیستمهای collision avoidance هستند، پیاده سازی می شوند. دراین پیاده سازی ، از منطق فازی و یک روش جدید استفاده شده است.