مرضیه قربانی

مرضیه قربانی

کارشناسی ارشد

شروع دوره: مهرماه 1395
پایان دوره: تیرماه 1398
عنوان پايان‌نامه: ارائه‌ی راهکاری جدید جهت انجام تبدیل‌های ETL به صورت افزایشی
استاد راهنما: دکتر بهمن زمانی
بیشتر

چکیده‌ی پایان‌نامه:
مهندسی مدل‌رانده به‌عنوان نگرشی جدید در توسعه‌ی نرم‌افزار است که از مدل‌ها به‌عنوان مصنوع اصلی در فرآیند توسعه استفاده می‌کند. چنان‌چه تغییراتی روی مدل‌ها انجام شود، سایر مصنوعات مرتبط نیز باید تغییر یابند. به‌عبارت دیگر، تغییرات باید از مدل‌ها به مصنوعات تولید شده، انتشار پیدا کنند. در مهندسی مدل‌رانده تغییرات از طریق تبدیل، انتشار می‌یابند. تبدیل برنامه‌ای است که معمولاً شامل تعدادی قانون می‌شود. ساده‌ترین حالت، برای انتشار تغییرات، اجرای کلیه‌ی قوانین تبدیل برای تمام عناصر مدل است که به آن تبدیل دسته‌ای گفته می‌شود. زمانی‌که مدل‌ها شامل تعداد عناصر زیادی باشند، تبدیل زمان اجرای بالایی برای اعمال تغییرات و ایجاد مصنوع جدید به‌خود اختصاص می‌دهد. برای کاهش این زمان باید از اجرای مجدد همه‌ی قوانین تبدیل جلوگیری کرد و تبدیل را، تنها برای عناصر تغییرکرده‌ در مدل‌ ‌اجرا نمود. به این روش، تبدیل افزایشی گویند. لازمه‌ی اجرای تبدیل به‌صورت افزایشی، تشخیص عناصر تغییر یافته و شناسایی قوانینی از تبدیل است که مربوط به عناصر تغییر کرده می‌باشد. زبان‌های تبدیل بسیاری وجود دارند، اغلب این زبان‌ها، تبدیل را به‌صورت دسته‌ای اجرا می‌کنند و از تکنیک‌های افزایشی پشتیبانی نمی‌کنند. یکی از این زبان‌ها زبان تبدیل اپسیلون (ETL) است. این زبان یکی از زبان‌های خانواده‌ی اپسیلون است که برای تبدیل مدل به مدل، مورد استفاده قرار می‌گیرد. این زبان، تبدیل را به‌صورت دسته‌ای انجام می‌دهد و از تکنیک‌های افزایشی پشتیبانی نمی‌کند. در پژوهش حاضر، راه‌کاری جهت انجام تبدیل‌های ETL به‌صورت افزایشی ارائه می‌شود. راه‌کار ارائه‌شده، با استفاده از زبان مقایسه‌ی اپسیلون (ECL)، عناصر تغییر یافته را تشخیص می‌دهد و با شناسایی و اجرای تنها قوانینی که مربوط به عناصر تغییر یافته می‌باشند، باعث تولید عناصر جدید در مدل مقصد شده مدل مقصد را به‌روز می‌کند. این راهکار با استفاده از زبان جاوا، در قالب ابزاری تحت اکلیپس پیاده‌سازی شده است. ارزیابی نتایج به‌دست آمده از اجرای مطالعه‌ی موردی با راه‌کار ارائه شده حاکی از اجرای درست تبدیل و کاهش زمان اجرا می‌باشد.