مهندسی نرم افزار مدل رانده Model-driven software engineering

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

مهندسی مدل¬رانده

همان گونه که در شکل  1مشاهده می­شود مدل ­رانده در تمام مراحل توسعه نرم­ افزار فعالیت دارد به‌ جز مرحله نیازمندی‌ها که در بیشتر حالات به ‌صورت دستی انجام می­شود و خروجی آن عمدتا متنی است. تحلیل نیازمندی­ها که اغلب به صورت متنی هستند باعث به وجود آمدن مدل­ های مستقل از محاسبه می­شوند که آن­ها را به مدل­های مستقل از سکو [1] گسترش می دهیم که این مدل­ ها را می­توان برای سکوی[2] خاصی گسترش داد که باعث تولید مدل­ های وابسته به سکو خاصی می­شوند و در نهایت از روی مدل­ های وابسته به سکو[3]ی خاص کد سکوی مورد نظر تولید می ­شود.درشکل زیر روند این فعالیت نشان داده شده است.

مهندسی مدل رانده

 مهندسی مدل رانده، شامل مجموعه­ ای از فعالیت ها نظیر تولید کد، خلق زبان های مدلینگ، تست بر مبنای مدل و... است. مهندسی مدل رانده بیشتر در سیستم های بزرگ و پیچیده استفاده می شود، تکنولوژی های مدیریت مدل و مدلسازی بیشتر روی مسائل کارایی و ظرفیت این سیستم ها تمرکز دارد.  مهندسی مدل رانده امروزه به عنوان یک راهکار برای غلبه بر مشکلات در توسعه سیستم های بزرگ و پیچیده شناخته می شود. . اگر مهندسی مدل­رانده به خوبی مورد استفاده قرار گیرد، کیفیت سیستم­های توسعه یافته را از نظر بهره ­وری، قابلیت حمل و نگهداری بهبود می­بخشد.  مدل رانده در تمام مراحل توسعه نرم­افزار قابل استفاده است و اجازه استفاده از انتزاعاتی که نزدیک به سطح دامنه هستند را به توسعه­دهندگان می­دهد. افزایش سطح انتزاع نه تنها به سازمــان اجازه می­دهـــد تا کیفیت نرم­افزار را ارتقا دهد، بلکه منجر به درک روشنی از ساختار سیستم می­شود. بنابراین مدل رانده علاوه بر کاهش پیچیدگی، ارتباطات را نیز بهبود می­بخشد. استفاده از مدل رانده  در فرایند توسعه نرم­افزار نتایج زیر را در بر دارد.

1) زمان بیش­تری می­تواند به تحلیل و طراحی مدل­ها اختصاص نمود.

 2) زمان لازم برای کد کردن به دلیل در دسترس بودن  ابزار تولید خودکار کد، کاهش می­یابد.

 3)کیفیت سیستم توسعه یافته بهبود می­یابد.

امروزه مدل رانده هم در صنعت و هم در دانشگاه به عنوان راهی برای مدیریت پیچیدگی روز افزون نرم­افزارهای مدرن مطرح شده است و به عقیده بسیاری به عنوان گام بعدی در افزایش سطح انتزاع برای ساخت، نگهداری و استدلال در نرم­افزار مطرح است. البته تاکنون کار سیستماتیکی که اثر مدل رانده را به صورت گسترده بررسی کرده باشـد انجام نشده است برای نمونه هیچ ارزیابی­ای از استفاده­های صنعتی مدل رانده انجام نشده است. ­ در حالی که بیشتر کارهای موجود بر روی ارزیــابی مناسب بودن زبان UML  برای مدل سازی و استفاده در مدل رانده تمرکز کرده­اند. به صورت خلاصه، تحقیقات کمی مزایای استفاده از مدل رانده را ارزیابی کرده­اند و به طور ویژه سه گپ کلیدی در دانش کنونی ما در این زمینه وجود دارد. اول فقدان دانش بر روی چگونگی استفاده از مهندسی مدل رانده در صنعت و دوم فقدان درک از چگونگی تاثیر پذیری مدل رانده از فاکتورهای اجتماعی و سوم نقصان در ارزیابی جنبه­های مدل رانده فراسوی UML مثل مزایای تولید کـد و تبدیل مدل­ها و ....

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


دریافت فایل


تلفن


آدرس

اصفهان: خیابان مدرس نجفی

ایمیل
info@novinweb.com
خدمات
میزبانی وب
میزبانی بانک اطلاعاتی
راه اندازی سرور
راهکارها
سیستم های توزیعی
مهندسی مدل رانده
توسعه فرایند نرم افزار
محصولات
وب سایت اختصاصی
برنامه کاربردی
اپلیکیشن موبایل
Top