مهندسی مدل رانده model driven
Empirical software engineering
مهندسی نرم افزار تجربی
مهندسی نرم افزار تجربی سعی دارد از تجربه افراد برای توسعه ومدیریت فرایند تولید نرم افزار استفاده کند.
مانند فیزیک ، پزشکی ومعماری وبسیاری از رشته های دیگر مهندسی نرم افزار نیازبه روشهای سطح بالای مدلسازی ،آزمایش داده ها برای توسعه ومدیریت دارد وما نمیتوانیم فقط با مشاهدات و تکیه بر تفکر ات منطقی به چرخه تولید برسیم.
دانلود اسلاید های ارائه شده در دانشگاه اصفهان
________________________________________________________________________
model driven software engineering
مهندسی مدل رانده model driven
توسعه نرم افزار یک فرایند پیچیده و سخت بوده، هست و خواهد بود. بیشتر فرایندهای توسعه نرم افزار سنتی، کد محور هستند. روشهای مدل رانده روشهایی هستند مبتنی بر مدل که در آن مدل محصول اصلی میباشد و هدایت توسعه نرمافزار را بر عهده دارد. امروزه آخرین پیشرفت در انتزاع نرم افزار، مهندسی مدل رانده است. هدف نهایی مهندسی مدل رانده، تولید کد بهطور خودکار از روی مدل است. مهندسی مدل رانده از تمام مراحل چرخه حیات نرم افزار از جمله تحلیل، طراحی، پیاده سازی، استقرار، نگهداری پشتیبانی می کند و بر قابلیت جابجایی و استفاده مجدد تأکید دارد. در رویکرد مهندسی مدل رانده، مدل ها وظیفه هدایت و رهبری جریان درک، تحلیل، طراحی، ساخت، استقرار، بهره برداری، نگهداری و تکامل را بر عهده دارند. هدف توسعهدهندگان نرمافزار، تولید کدی با کیفیت بالاست ، که در این رویکرد می توان بسیاری از مراحل و محصولات توسعه نرمافزاری را مکانیزه و خودکار تولید نمود و منجر به بالا رفتن کیفیت کد و محصول می شود.
گروه پژوهشی مهندسی نرم افزار مدل رانده www.Heilton.com
________________________________________________________________________
الگو های طراحی Design Pattern
مفهوم الگو طراحی تنها در دنیای نرم افزار کاربرد ندارد بلکه در سایر زمینه های علمی نیز به طور مشابه استفاده می شود. الگو برای اولین بار توسط یک معمار ساختمان به نام کریستوفر الگساندر معرفی شد. او فهمید که بناهای خوب، دارای ویژگی های مشابه هستند و این ویژگی های مشابه را الگو نامید. الگو دید مشترکی نسبت به مشکل است و پیاده سازی مفهوم الگو را تغییر نمیدهد. هر الگو به توصیف مشکلی می پردازد که این مشکل در محیط، بسیار رخ میدهد. الگوی طراحی یک مکانیزم برای بیان تجربه در طراحی شیءگرا است و یک راه حل مناسبی که توسط افراد خبره برای یک نوع مشکل مدل شده، که بارها و بارها در طول طراحی می تواند استفاده شود . الگوها، توسعهدهندگان را قادر میسازند تا از راهحل خاصی که توسط افراد خبره مدون شده است مجدداً استفاده نمایند. الگوهای طراحی، مجموعه از دستورات هستند که نحوه انجام عمل معینی را در دنیای برنامه نویسی نشان می دهند(pree 1994). اتخاذ الگوی طراحی در طراحی برنامه های کاربردی و وب میتواند قابلیت استفاده مجدد و سازگاری بهتری را حمایت و ارائه کند . هرچه از عمر برنامه نویسی شیءگرا می گذرد توسعه دهندگان الگوهای بهتری را می توانند طراحی و ارائه نمایند که باعث می شود قابلیت گسترش و نگهداری را بهتر پشتیبانی کنند. الگوهای طراحی نتایج تجربیات یک برنامه نویس نیست، بلکه حاصل تجربیات صدها برنامه نویس و طراحی حرفه ای است که در طول سال های بسیار به دست آمده اند. الگوهای طراحی ابدا شده یا اختراع شده نیستند بلکه بازخورد طراحی ها و کد نویسی های مجدد است که برنامه نویسان برای کسب بیشترین انعطاف پذیری، توسعه پذیری و قابلیت استفاده ی مجدد با آن ها درگیر بودند. الگو های طراحی را می توان خلاصه تجربیات موفق برنامه نویسان دانست. استفاده از الگوهای طراحی باعث می شود که طراحی به دست آمده ساده، انعطاف پذیر و قابلیت استفاده مجدد بیشتری داشته باشد. با استفاده از الگوهای طراحی می توان در زمان و هزینه صرفه جوی کرد و همچنین مستند سازی و نگهداری سیستم آسانتر می شود
برنامه نویس به روش تولید خودکار کد Code Generation
سیستم های نرم افزاری روز به روز پیچیده تر شده و فرایند تولید آن ها نیز به همین ترتیب دچار پیچیدگی بیشتر می شود، به طوری که برنامه نویسان مجبورند تا در هنگام پیاده سازی یک نرم افزار با جزئیات گوناگونی دست و پنجه نرم کنند. همین امر موجب شده تا خطا های برنامه نویسی بیشتر شده و برنامه نویسی سیستم های نرم افزاری به یک کار زمان بر و پرهزینه تبدیل گردد.استفاده از ابزار برای تولید کد از روی مدلها باعث می شود کدها بهینه و میزان خطا پایین بیاید. درنتیجه کیفیت نرمافزار بالا رفته و زمان کمتری صرف توسعه و تولید نرم افزار می شود. استفاده از ابزارهای تولید کد باعث افزایش قابلیت جابه جایی بین سکوهای مختلف، تولید نرم افزاری مطابق با فنّاوریهای جدید، کاهش زمان و هزینه اجرای پروژه و نهایتا کاهش خطای احتمالی کد تولید شده نسبت به تولید آن به روش دستی می شود. با توجه به این که ایجاد معماری یکسان برای یک سازمان، لازم و ضروری است. تولید کد با استفاده از ابزار باعث سازگاری و یکنواختی بالایی در کدهای تولید شده می شود. با توجه به اینکه برخی سازمانها به صورت همزمان از تکنولوژیهای مختلف استفاده می کنند و همچنین این واقعیت که برخی نرمافزارها باید به تکنولوژیهای جدید ارتقا یابند، با استفاده از ابزار تولید کد، هم می توان معماری یکسان و هم نرمافزارهایی برای تکنولوژیهای مختلف را سریعتر و بهینه تر تولید کرد.