پژوهش
آزمایشگاه مهندسی نرمافزار هوشمند (ISERL) میزبان پروژههای تحقیقاتی و توسعهای در زمینههای مهندسی نرمافزار، بهینهسازی مصنوعات نرمافزاری، معماری سیستمهای مقایس وسیع و هوشمند، تحلیل داده و هوش مصنوعی است. نتایج حاصل از این پروژهها، عمدتاً در معتبرترین نشریات و کنفرانسهای مهندسی و علم کامپیوتر منتشر میشوند.
گروههای پژوهشی و آموزشی
پژوهشهای ISERL در سه گروه تخصصی سازماندهی شده است: گروه آزمون و اشکالزدایی نرمافزار که قابلیت اطمینان نرمافزار را از طریق آزمون خودکار، مکانیابی خطا و تحلیل امنیتی افزایش میدهد؛ گروه طراحی و معماری نرمافزار که بر بازآرایی، مهندسی مجدد و ارزیابی کیفیت تمرکز دارد تا قابلیت نگهداری نرمافزار را بهبود بخشد؛ و گروه روششناسی نرمافزار و مهندسی نیازمندیها که به توسعه روشهای چابک، ردیابی نیازمندیها و مدلسازی مفهومی پرداخته و فرآیندهای توسعه را بهبود میبخشد. این گروهها با همکاری یکدیگر نوآوری در مهندسی نرمافزار را پیش میبرند و سیستمهای باکیفیت، کارآمد و مقیاسپذیر را تضمین میکنند.
گروه آزمون و اشکالزدایی نرمافزار
محورها و موضوعات اصلی مورد پژوهش در این گروه عبارتند از:
-
تولید خودکار دادههای آزمون و اوراکل، فازینگ ورودی، تحلیل دامنه ورودی، آزمون GUI، اجرای نمادین و کونکولیک، آزمون امنیتی، آزمون متامورفیک، آزمون در محیط واقعی، کاهش مجموعه آزمون، اولویتبندی و انتخاب موارد آزمون، و تقویت مجموعه آزمون.
-
مکانیابی خودکار خطا، پیشبینی خطا (اشکال)، پیشبینی آسیبپذیری، شناسایی ناهنجاریهای نرمافزاری، ابزارگذاری برنامه، تحلیل برنامه پویا، تحلیل آلودگی داده، و تولید وصله.
گروه طراحی و معماری نرمافزار
محورها و موضوعات اصلی مورد پژوهش در این گروه عبارتند از:
-
بازآرایی خودکار، خوشهبندی نرمافزار، بازمدولسازی، مهندسی مجدد، مهندسی معکوس، تحلیل ایستا برنامه، تبدیل برنامه، بهینهسازی برنامه، خودکارسازی طراحی، و طراحی معکوس.
-
پیشبینی بوی کد، شناسایی بوی طراحی، شناسایی الگوهای طراحی، ارزیابی کد تمیز و معماری تمیز، شناسایی بوی معماری، شناسایی کلون کد، نمایش و اندازهگیری شباهت کد منبع، ارزیابی نرمافزار، و اندازهگیری و بهبود ویژگیهای کیفی.
گروه متدولوژی نرمافزار و مهندسی نیازمندیها
محورها و موضوعات اصلی مورد پژوهش در این گروه عبارتند از:
-
شناسایی بوی نیازمندیها، پیشبینی لینکهای ردیابی نیازمندیها، تولید مدل مفهومی، تولید کد، تولید توضیحات و تولید معیارهای پذیرش آزمون.
-
روشها و تکنیکهای چابک (TDD, BDD, DDD)، DevOps، MLOps، CI/CD، زبانهای خاص دامنه و اندازهگیری بدهی فنی.
فنون مبنایی پژوهشها
- کامپایلرها، ترنسپایلرها، تبدیلشکل برنامهها، زبانهای خاص دامنه، ماشینهای مجازی اجرای زبانها
- مهندسی نرمافزار، معماری نرمافزار، طراحی شیگرا و جنبهگرای سیستمها، مهندسی نیازمندیها
- الگوریتمهای تکاملی، یادگیری ماشین، یادگیری ژرف، پردازش زبان طبیعی (متنکاوی)، بهینهسازی چند هدفه و بسیار هدفه
- شبکههای پیچیده پویا (گرافکاوی)، تحلیل آماری، مصورسازی دادهها (تحلیل نمودارهای پیچیده)
پروژههای پژوهشی فعال
در این بخش تعدادی از پروژههای فعال آزمایشگاه معرفی می شوند:
🚀 ۱. کدارت: موتور بازآرایی خودکار کدهای منبع
✅ شرح مختصر: توسعه و بهینهسازی ابزار CodART برای انجام بازآرایی خودکار در برنامههای جاوا، با تمرکز بر بهبود کیفیت کد و افزایش خوانایی.
🛠 فناوریهای مورد استفاده: Java، AST، الگوریتمهای بهینهسازی
📊 ۲. بهینهسازی چندهدفه در سیستمهای نرمافزاری
✅ شرح مختصر: استفاده از الگوریتمهای بهینهسازی چندهدفه مانند RNSGA-III برای تعادل بین معیارهای کیفی نرمافزار (مانند قابلیت نگهداری و عملکرد).
🛠 فناوریهای مورد استفاده: Python، NSGA-III، تحلیل معیارهای نرمافزاری
🤖 ۳. تحلیل و بهبود معماری نرمافزار با کاهش وابستگیهای تکاملی
✅ شرح مختصر: بررسی روشهای کاهش وابستگیهای تکاملی در نرمافزارهای بزرگمقیاس با رویکردهای مبتنی بر تجزیه معماری.
🛠 فناوریهای مورد استفاده: تحلیل معماری، مدلسازی نرمافزاری، روشهای تفکیک ماژولها
🏗 ۴. طراحی سیستم پیشبینی خطا در کامپایلرها
✅ شرح مختصر: مطالعه و بهینهسازی استراتژیهای بازیابی خطا در پارسرهای کامپایلر با تمرکز بر بهبود دقت و کارایی.
🛠 فناوریهای مورد استفاده: Flex، Python، ANTLR الگوریتمهای پردازش زبان
📈 ۵. کامپایلر و یادگیری ماشین برای تحلیل ویژگیهای مصنوعات نرمافزاری
✅ شرح مختصر: استفاده از کامپایلر و فنون تحلیل ایستا برای استخراج ویژگیهای مصنوعات نرم افزاری و ایجاد مدلهای یادگیری ماشین پیشبینی صفات کیفی
🛠 فناوریهای مورد استفاده: ANTLR, pandas، scikit-learn، تحلیل داده
🧬 ۶. بهبود تشخیص اتصال تکاملی در سامانههای نرمافزاری
✅ شرح مختصر: بهبود روشهای شناسایی اتصال تکاملی با استفاده از دادههای تاریخی کنترل نسخه و تحلیلهای همتغییری. هدف، افزایش صحت و بیادآوری در شناسایی این وابستگیهای تغییرات جهت بهبود کیفیت معماری نرم افزار و پیشنهاد تغییرات به توسعه دهنده است.
🛠 فناوریهای مورد استفاده: Git، تحلیل تاریخچه تغییرات، Association rules mining
ابزارهای متنباز
خروجی اغلب پروژههای پژوهشی آزمایشگاه در قالب ابزارهای متنباز برای استفاده در پژوهشهای آتی و یا صنعتیسازی آنها منتشر شده است. در فهرست زیر قابلیت دسترسی به ابزارهای متنباز توسعه داده شده در آزمایشگاه فراهم شده است.
- CodART: موتور بازآرایی خودکار کد منبع
- OpenUnderstand: موتور جستجو و درک کد
- QualityMeter: اندازهگیری صفات کیفی کد منبع
- ADAFEST: پیشبینی قابلیت آزمون نرمافزار
-
ARTA: موتور تحلیل نیازمندیها
-
TsDD: ابزار توسعه مبتنی بر قابلیت آزمون
-
DeepFuzz: فازینگ ورودی PDF
ارتباط ابزارها در سیستم پژوهشی
ابزارهای تجاری
پژوهشهایی که نتایج حاصل از آنها در قابل ابزارهای تجاری، صنعتیسازی شدهاند:
- NEXMA: تحلیل بدافزارهای غیر اجرایی
- CodART-ind: موتور بازآرایی خودکار کد منبع
- QualCode: پیادهسازی استاندارد کیفیت نرمافزار ISO/IEC 25010
چک لیستها
چک لیستها ابتکار آزمایشگاه مهندسی نرمافزار هوشمند است که به دانشجویان و پژوهشگران کمک میکند پژوهش خود را به شکل صحیح و با کیفیت بالا پیش ببرند.
چکلیست تکمیلشده را همراه با پیشنهاد یا پایاننامه خود ارسال کنید، زیرا بخشی از الزامات ضروری در فرآیند بررسی و نظارت است. اطمینان حاصل کنید که تمامی موارد موجود در چکلیست بهطور کامل رعایت شدهاند تا داوری و بررسی کارآمد و جامع صورت گیرد.
📩 اگر علاقهمند به همکاری یا دریافت اطلاعات بیشتر در مورد پروژهها هستید، با ما در ارتباط باشید!