چکیده:

در بسیاری از علوم به ویژه علوم طبیعی فرآیند مشخص و تعریـف شـده ای جهــت انجــام تحقیقــات وجــود دارد و حتــی دســتورالعمل هــا و راهنماهای متعددی به منظور ارزیابی این تحقیقات عرضه شده است. بـا این وجود در مهندسی نرم افزار چارچوب و الگوی مـشخص و صـریحی جهت انجام تحقیقات به صورت انسجام یافتـه و نظـام منـد شناسـایی و تشریح نشده است. تحقیقات در حوزه های مختلف علوم و مهندسی بـه وسـیله سـوالات پاسـخ داده شـده، روش تحقیـق انتخـاب شـده و نیـز معیارهای ارزیابی نتایج آن، مشخص و متمـایز مـیگـردد. در ایـن کـار تحقیقاتی به ارائه مشخصه های تحقیقات در حوزه مهندسی نرم افزار در قالب الگویی نظام یافته مشتمل بر ماهیت تحقیقـات ایـن حـوزه، نتـایج ممکن و روشهای اعتبار سنجی مناسـب، پرداختـه مـیشـود. همچنـین فرآیندی تجویزی جهت انجام فعالیتهای پژوهـشی در ایـن حـوزه ارائـه شده است. فهم و بکارگیری این چارچوب به مهندسین نرم افـزار جهـت طراحی کارهای تحقیقاتی و نیز ارائه نتـایج شـفاف و گزارشـات ارزیـابی مناسب، کمک مینماید و باعث متمایز نمودن تحقیقات این رده از علوم رایانه میگردد. چارچوب ارائه شـده بـا بررسـی و مطالعـه مـوردی ١٠٠ مقاله در حوزه مهندسی نرم افزار که در مجله های معتبر انتـشار یافتـه است، شـکل گرفتـه و اعتبـار و صـحت آن نیـز در ٧ پـروﮊه تحقیقـاتی سنجیده شده است.

واﮊه های کلیدی: الگوی پـژوهش، طراحـی پـژوهش، اعتبـار سـنجی،

مهندسی نرم افزار، راهبرد پژوهش.

١- مقدمه

در بسیاری از شاخه های علوم و مهندسی الگـوی پـژوهش بـه صـورت صریح مشخص شده است. این الگوها نه تنها به عنوان راهنمـایی جهـت بهره برداری محققان است، بلکه سایرین نیز از نتایج آنها بهره مند مـی-

شوند. پذیرش نتایج این تحقیقات بستگی به فرایند احـراز نتـایج و نیـز تحلیل آنها دارد و استفاده از الگوهای از پیش تعیین شده کمک شایانی به این موضوع مینماید. در حالیکه مهندسی نرم افزار دارای این گونـه از دستورالعمل های نظام یافته و شناخته شده نمیباشد.

محققین مهندسی نرم افزار به ندرت الگو و روش تحقیقاتی خـود و نیـز استانداردهای ارزیابی کیفیت نتایج را مستند مینمایند. در سـال ١٩٨٠ در یک کار تحقیقاتی [۱] ارتباط بین مهندسی با زیر ساختهای فناوری

آن بررسی، همچنین الزامات مهندسـی نـرم افـزار و مراحـل تکامـل آن طــرح ریــزی شــده اســت. در ســالهای ١٩٨٤ و ١٩٨٥ مــدل تکامــل فناوریهای مهندسی نرم افزار از شکل گیری ایده تـا عملیـاتی شـدن آن ایده ارائه شده است .[۲,۳] اخیرا محققین مهندسی نرم افزار، فعالیتهای این حوزه منجمله نقص در جمع آوری داده ها، تحلیل، و ارائـه گـزارش نتایج کارهای تحقیقاتی تجربی را مورد نقد قرار داده اند.[۴-۷] در سال ٢٠٠١ طرح مقدماتی یک الگوی موفق جهت ارائه تحقیقـات در یکـی از شاخه های مهندسی نرم افزار (معماری نرم افزار) ارائه شده اسـت . [۸]

در سال ٢٠٠٢ این الگو به صورت عمـومی تـر و سـاختار یافتـه تـر بـه منظور انجام این گونه تحقیقات توسط همان نویسنده ارائـه شـده اسـت

.[۹] در همین سال در یک کار پـژوهش [۱۰] بـا مطالعـه مقالـه هـای چندین مجله معتبر در ٥ سال پیاپی در این حوزه موضوعات این زمینه، رویکردهای تحقیقاتی، روشهای تحقیق، زمینـه هـای مرجـع، و تحلیـل نتایج مورد بررسی قرار گرفته است و نتایج مربوطه به صورت تحلیلهـای آماری به دست آمده است. در سال ٢٠٠٣ در یک کار مـرتبط [۱۱] بـا آوردن مثالهای تحلیلـی از کنفـرانس معتبـر ICSE 2002 و رهنمـون هایی جهت ارزیابی مقالات، تحلیلهایی مشابه کار قبلی ولی با چـارچوبی متفاوت عرضه شده است. در سال ٢٠٠٥ در یـک کـار پژوهـشی [۱۲]،

تحقیقات در حوزه مهندسی نرم افزار از دو بعد مهندسی و علمی بررسی شده است. در این کار، الگوی تحقیقاتی و نیز روشهای تحقیقاتی هر یک از دو بعد معرفی و تفاوتهای هر یک تشریح شده است. در همان سال در یک کار تحقیقاتی [۱۳] در این حوزه، رویکرد تحقیقاتی کار خـود را بـا بررسی فلسفه های تحقیقاتی مختلف و همچنین راهبردهای تحقیقـاتی این حوزه و نیز ابزارهای مورد استفاده عرضه کرده است. در سال ٢٠٠٦ در یک کار پژوهشی [۱۴] یک روش ترکیبی انجام تحقیقات مهندسـی نرم افزار ارائه شده اسـت. در ایـن کـار شـرایط بکـارگیری همزمـان دو رویکرد کمی و کیفی در یک تحقیق مهندسی نرم افـزار تـشریح و ارائـه شده است.

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

یک مقاله تحقیقاتی مناسب میبایست به سوالات ذیـل پاسـخی روشـن داده باشد :[۱۱]

• سهم علمی مقاله

o به چه سوالاتی جواب داده شده است؟ o به چه دلیلی خواننده باید آنرا بخواند؟

• ارائه نتایج

o نتایج این کار تحقیقاتی باعث گسترده کردن چـه حوزه هایی از دانش میگردد؟

o نتایج این کار تحقیقاتی چه ارتبـاطی بـا کارهـای مرتبط پیشین دارد؟

o نتایچ ایـن کـار تحقیقـاتی چـه ارزش افـزوده ای نسبت به کارهای پیشین ایجاد مینماید؟

• ارزیابی نتایج

o از چه استانداردی جهت ارزیـابی کـردن ادعاهـای

مطرح شده استفاده شده است؟

o از چه مدارک مستدلی جهت نـشان دادن صـحت ادعاها استفاده شده است؟

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

هدف نهایی و غایی این کـار پژوهـشی کـه گـسترش یافتـه کـار [۱۱]

میباشد، ارتقاﺀ کیفی پروﮊه های تحقیقاتی حوزه مهندسـی نـرم افـزار از طریق ارائه چارچوب و الگویی جهت پاسخ دادن به سـوالات پیـشین در حوزه مهندسی نرم افزار میباشد. چارچوب ارائه شده با بررسی و مطالعه موردی ١٠٠ مقاله در حوزه مهندسی نرم افزار که در مجله هـای معتبـر

ACM و IEEE در سالهای ٢٠٠٥ و ٢٠٠٦ انتـشار یافتـه اسـت، شـکل گرفته و اعتبار و صحت آن نیز در ٧ پروﮊه تحقیقاتی مـستقل سـنجیده شده است.

٢- الگوی پژوهش پیشنهادی

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

Archvie of SID

میگردد، تشریح شده است. سهم علمی این کار پژوهشی در این قسمت متمرکز شده است.

٢-١ نوع و ماهیت پژوهش

محققین این حوزه به دنبال یافتن روشهای توسعه و ارزیابی نـرم افـزار، جزئیات طراحی و توسعه یک راه حل خاص، مدلهایی که مشخصه هـای انواع خاصی از سیستمها را در بر داشته باشد، امکان سنجی راه حـل یـا سیستمی خاص، میباشند. این تقسیم بندی به همراه مثالهای مربوطـه در جدول (۱) ارائه شده است.

جدول (۱): انواع پژوهش های مهندسی نرم افزار

نوع و ماهیت پژوهش مثال
شیوه توسعه چگونه میتوانیم انجام بدهیم/تولید کنیم/تغییر دهیم، تکامل
ببخشیم؟
شیوه ارزیابی چگونه میتوانیم کیفیت و صحت را ارزیابی نماییم؟
چگونه میتوانیم بین محصولات مختلف تمایز قایل شویم؟
توسعه یا ارزیابی یک چه راه بهتری جهت طراحی، پیاده سازی، نگهداری و بهره
نمونه برداری نمونه خاص وجود دارد؟
خواص نمونه مورد نظر چه میباشد؟
تعمیم یا توصیف چه مدلی جهت توصیف یک پدیده وجود دارد؟
مشخصه های پدیده مورد نظر چه میباشند؟
امکان سنجی آیا راهی جهت انجام وجود دارد؟
آیا پدیده مورد نظر وجود دارد؟ پدیده مورد نظر دارای چه
خواصی میباشد؟

٢-٢ نتایج پژوهش

نتایج پژوهش های مهندسی نرم افزار که در جدول (۲) نشان داده شده اند، عموما روال توسعه و یا تکنیکهای تحلیل، مدلهای توصیفی، ابـزار، و یا راه حلی خاص منظوره میباشد.

جدول (۲): انواع نتایج پژوهش های مهندسی نرم افزار

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

٢-٣ روشهای اعتبار سنجی پژوهش

جدول (٣) لیستی از انواع روش های اعتبار سنجی که در پژوهش هـای مهندسی نرم افزار بکارگرفته میشود بـه همـراه ذکـر مثالهـای مربوطـه، آورده شده است.