پرش به محتویات

پژوهش

آزمایشگاه مهندسی نرم‌افزار هوشمند (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

مشاهده همه محصولات

چک لیست‌ها

چک لیست‌ها ابتکار آزمایشگاه مهندسی نرم‌افزار هوشمند است که به دانشجویان و پژوهشگران کمک می‌کند پژوهش خود را به شکل صحیح و با کیفیت بالا پیش ببرند.

مشاهده چک لیست‌ها

چک‌لیست تکمیل‌شده را همراه با پیشنهاد یا پایان‌نامه خود ارسال کنید، زیرا بخشی از الزامات ضروری در فرآیند بررسی و نظارت است. اطمینان حاصل کنید که تمامی موارد موجود در چک‌لیست به‌طور کامل رعایت شده‌اند تا داوری و بررسی کارآمد و جامع صورت گیرد.

📩 اگر علاقه‌مند به همکاری یا دریافت اطلاعات بیشتر در مورد پروژه‌ها هستید، با ما در ارتباط باشید!

ارتباط با مدیریت آزمایشگاه