مقاله گامی به سوی ایجاد سازمان نرمافزاری یادگیر با استفاده مجدد

مقاله گامی به سوی ایجاد سازمان نرمافزاری یادگیر با استفاده مجدد از تجارب: یک مطالعه موردی تحت فایل ورد (word) دارای 11 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله گامی به سوی ایجاد سازمان نرمافزاری یادگیر با استفاده مجدد از تجارب: یک مطالعه موردی تحت فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله گامی به سوی ایجاد سازمان نرمافزاری یادگیر با استفاده مجدد از تجارب: یک مطالعه موردی تحت فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله گامی به سوی ایجاد سازمان نرمافزاری یادگیر با استفاده مجدد از تجارب: یک مطالعه موردی تحت فایل ورد (word) :
سازمان نرمافزاری یادگیر، سازمانی است که در حوزه ساخت و نگهداری سیستمهای نرمافزاری قابلیت یادگیری دارد. ایـن یـادگیری برپایه دانش و تجارب مرتبط با فرآیندها، محصولات، ابزارها، تکنیکهـا و روشـهای متفـاوت بـه کارگرفتـه شـده در فرآینـد سـاخت نرمافزار میباشد. استفاده از تجربیات و درسهای آموخته شده در تولید نرمافزار، به خصوص نرمافزارهای پیچیـده، نقشـی کلیـدی در افزایش موفقیت در تولید بهینه نرمافزارهای مشابه دارد. یکی از مشکلات بزرگ صنعت نرمافزار کشور این است که سازمانهای فعال در صنعت نرمافزار کشور به ندرت قابلیت یادگیری دارند و دارای مکانیزمهای لازم برای بهرهگیری سیسـتماتیک از تجـارب حاصـل در پروژههای نرمافزاری نمیباشند. ایدهای که در این مقاله مطرح میشود بیان ضرورت و نیاز ایجاد سازمانهای نرمافزاری یـادگیر در صنعت نرمافزار کشور میباشد. در این مقاله، فعالیت یک گروه تخصصی در ایجاد سیستم مدیریت تجارب1 گزارش میشـود. بـدین منظور یکی از پروژههای بزرگ و پیچیده این گروه که در زمینه ساخت نرمافزارهای مخابراتی فعالیت میکند، به نام پروژه مـدیریت شبکه سوییچ ایران به عنوان مطالعه موردی انتخاب شدهاست. تمرکز اصلی این مقاله برروی بازنمایی و ثبـت تجربـه اسـت و بـه ایـن منظور قالبی به نام “طرح تجربه” پیشنهاد و چند تجربه مرتبط با فرآیند و ابزار توسط آن بازنمایی میگردد.
کلمات کلیدی: سازمان نرمافزاری یادگیر ، مدیریت تجربه نرمافزاری، کارخانه تجربه2، استفاده مجدد تجربه3، چرخه عمر تجربه
1. مقدمه
یکی از مشکلات تولید سیستمهای نرمافزاری دستیابی به درکی روشن از طبیعت نرمافزار و فرآیند ساخت آن است. نرم افزار محصولی است که در فرآیندی خلاقانه و عقلانی تولید می شود و مانند بسیاری از محصولات دیگر با بهرهگیری از فناوری ماشینی ساخته نمیگردد. مشخصات ذاتی نرمافزار، باعث میشود که فرآیند ساخت، روشهای ساخت، روشهای تخمین، مدیریت پروژه، مدیریت تغییرات و سایر فعالیتهای مرتبط با ساخت و نگهداری نرمافزار تفاوتهایی با فعالیتهای مشابه خود در سایر حوزههای مهندسی پیدا کند]1،2،3. [ در این میان، استفاده از تجربیات و درسهای آموخته شده در تولید نرمافزار به خصوص نرمافزارهای پیچیده، در
1 Experience management 2 Experience factory 3 Experience reuse
افزایش موفقیت تولید، کاهش زمان و هزینههای تولید نرمافزارهای مشابه، بهبود کیفیت نرمافزارهای تولیدشده و افزایش دقت روشهای موجود تولید نرمافزار نقشی کلیدی یافته است]2،4،5.[ این تجربه را مانند دانش واقعی نمیتوان در کتابها یافت. تجربه به محیطی وابسته است که در آن اتفاق میافتد و هنگامی میتواند بطور بهینه در جهت بهبود فرآیند تولید نرمافزار استفاده گردد که در همان محیط استفاده شود]6.[ این محیط میتواند محدود به یک کشور، یک سازمان و حتی یک تیم نرمافزاری باشد. اهمیت استفاده از تجربیات به اندازهای است که پیشنهاد شده که در سطح هر سازمان نهاد مستقلی وجود داشته باشد که به عنوان کارخانه تجربه، با پروژههای مختلف در ارتباط باشد و طرحهای آنها را دریافت نماید و در طی انجام پروژه وضعیت آنها را ثبت نماید و تجربیات حاصله را در قالبهای مشخص، برای استفاده در پروژههای دیگر ثبت نماید] 2،7،8،9،01.[ در ]11[ برای کارخانه تجربه در سازمان، یک معماری پیشنهاد شده و نیز در]21[ 22 نیازمندی برای پایگاه داده تجربه بیان گردیده است.
به عبارت دیگر، مفهوم استفاده مجدد در صنعت نرم افزار، از سطح خطوط برنامه، پیمانه، شیء، الگوهای مختلف فرآیند، تحلیل]31[، طراحی]41،51[، و معماری]61[ نرمافزار فراتر رفته و به سطح تجربه رسیدهاست. اگرچه انجام هر پروژه، جنبه یادگیری و کسب تجربه نیز برای افرادی که درگیر انجام پروژه هستند، دارد لکن در حد کلانتری مثل سازمان یا کشور، این تجربه باید به شکل ساختیافتهای ثبت شود و در پروژههای مشابه تا حد امکان مستقل از افرادی که در جریان پروژه بودهاند، مورد استفاده قرار گیرد. بدین ترتیب، سازمانها در فرآیندی سیستماتیک قابلیت یادگیری خواهند یافت.
یکی از مشکلات بزرگی که در صنعت نرمافزار کشور وجود دارد، عدم استفاده از تجارب پروژههای نرم افزاری است. بیشتر تجارب حاصل از پروژه به شکل دانش فردی در ذهن انجام دهندگان پروژه باقی میماند و ممکن است در پروژههای بعدی که همین افراد انجام میدهند به کار گرفته شود. اما، دانش نرمافزاری در مجموعه سازمان انجام دهنده پروژه به منظور بهبود پروژههای آتی جمعآوری و ثبت نمیشود و مورداستفاده مجدد قرار نمیگیرد. میتوان گفت که سازمانهای فعال در صنعت نرمافزار کشور به ندرت قابلیت یادگیری دارند و به شکل سیستماتیک از تجارب حاصل در پروژههای نرم افزاری استفاده نمیکنند.
مدیریت تجارب و پیادهسازی سازمانهای نرمافزاری یادگیر در سازمانهای بسیاری مانند ناسا4 ]8[ و دایملرکرایسلر5 ]6،01[
مورد توجه قرارگرفته است. در گروه تخصصی مدیریت شبکه مخابراتی نیز به عنوان اولین گام در این جهت، فعالیتی به منظور مدیریت تجارب در حال انجام است. گروه مدیریت شبکه مخابراتی در زمینههای مرتبط با نیازهای مدیریت شبکه فعالیت میکند.
بخشی از فعالیت این گروه، طراحی و پیادهسازی سیستمهای مدیریت شبکه میباشد که پروژه مدیریت شبکه سوییچ ایران نمونهای از این گونه فعالیتها است. هدف از فعالیت مدیریت تجارب، جمعآوری، ثبت، بازنمایی، سازماندهی، مستندسازی، ذخیرهسازی و انتشار تجارب در حوزه ساخت سیستمهای مدیریت شبکه میباشد به طوری که این تجارب در پروژههای بعدی این مجموعه و در سایر پروژههای مشابه در جامعه نرمافزاری کشور قابل استفاده باشد. به منظور تبدیل سازمانی که این گروه در آن فعالیت مینماید به سازمانی که در انجام پروژههای تحقیقاتی مخابراتی و تولید نرمافزارهای مخابراتی یادگیری انجام می دهد، میتوان این فعالیت را به سطح کل پروژههای سازمان گسترش داد. ایده اصلی این مقاله حرکت به سمت ایجاد سازمانهای نرمافزاری یادگیر و مدیریت تجارب در کشور به منظور بهبود کیفیت نرمافزارهای تولید شده است که براساس نمونهای عملی توضیح دادهمیشود.
در این مقاله، بخشی از فرآیند مدیریت تجارب یعنی ثبت و بازنمایی تجارب به دست آمده در پروژه مدیریت شبکه سوییچ ایران گزارش میشود. در بخش 2 مدیریت تجارب و سازمانهای نرمافزاری یادگیر توضیح داده میشود و چرخه حیات تجربه بیان میگردد. در بخش 3، پروژه مدیریت شبکه سوییچ ایران به عنوان مطالعه موردی برای انجام مدیریت تجارب و جمعآوری و ثبت تجربههای مرتبط با آن توضیح داده میشود و فاکتورهای پیچیدگی آن بررسی میگردد. در بخش 4، چگونگی جمعآوری و ثبت تجارب در رابطه با پروژه انتخاب شده توضیح دادهمیشود. در انتها نیز نتیجهگیری و کارهای آتی بیان میگردد.
4 NASA : National Aeronautics and Space Administration 5 Daimler Crysler
2. سازمان نرم افزاری یادگیر و مدیریت تجارب
سازمان نرمافزاری یادگیر6، سازمانی است که در حوزه ساخت و نگهداری سیستمهای نرمافزاری قابلیت یادگیری دارد]71.[ این یادگیری برپایه دانش و تجارب مرتبط با فرآیندها، محصولات، ابزارها، تکنیکها و روشهای متفاوت به کارگرفته شده در فرآیند ساخت نرمافزار میباشد. هدف نهایی سازمان نرمافزاری یادگیر، بهبود فرآیندها و محصولات نرمافزاری براساس اهداف استراتژیک سازمان است]71.[
یادگیری از تجارب به دست آمده در پروژههای قبلی یکی از راههای مناسب برای بهبود کیفیت نرمافزار در پروژههای آتی میباشد. این یادگیری محدود به موفقیتها نمیگردد بلکه باید شکستها نیز به شکل مناسبی تحلیل و مستند گردند تا از رخ دادن آنها در پروژههای آتی جلوگیری گردد. استفاده مجدد سیستماتیک از تجارب حاصل در فرآیندهای حل مسئله تیم ساخت سیستم را قادر میسازد تا از تجارب خودشان و همچنین از تجارب به دست آمده توسط جامعه مهندسی نرمافزار استفاده کند. در وضعیتهایی که حل مسئله پیچیده میباشد، تجربه نقش مهمی را مییابد. در ]5[تعاریف زیر از تجربه و مدیریت تجربه بیان میشود:
تعریف1 (تجربه). تجربه، دانش با ارزش و نگهداری شده خاصی در رابطه با حوزه ای معین میباشد که توسط عاملی در فرآیند حل مسئله قبلی به دست آمدهاست.
تعریف 2 (مدیریت تجربه). مدیریت تجربه نوع به خصوصی مدیریت دانش که به جمعآوری، مدل سازی، ذخیرهسازی، استفاده مجدد، ارزیابی و نگهداری تجربه میپردازد.
هر سازمانی که بخواهد تجربیات بدست آمده از انجام پروژههای خود را بطور بهینه در پروژه های بعدی مورد استفاده قرار دهد، باید هزینه ایجاد و نگهداری سیستمی را برای مدیریت تجارب بپردازد که درآن به طور اصولی و پیوسته چرخه زندگی تجربه شامل مراحل کشف، ثبت، بازیابی و انتشار تجربیات انجام گردد. این چرخه مشابه چرخهای است که انسانها طی میکنند و در زندگی روزمره و زندگی حرفهای خود از آن استفاده میکنند. برای اینکه مشابه این چرخه در حد سازمان نیز عملی گردد، تمهیداتی باید اندیشیده شود که هر یک از مراحل این چرخه به درستی و متناسب با نیازهای سازمان انجام شود. در دراز مدت که قابلیت حل مسائل در سازمان به سبب این سرمایهگذاری برای استفاده بهینه از تجربیات افزایش مییابد، سوددهی سازمان افزایش خواهد یافت. در ادامه، مراحل درنظر گرفته شده در چرخه تجربه با جزییات بیشتر توضیح داده می شود.
الف) جمعآوری تجربه
اصولاً تجربه انجام پروژه، در اذهان افرادی که پروژه را انجام میدهند، شکل میگیرد. در این مقاله، تجربه را با سهتایی
E =<C,P,S> نمایش میدهیم که در آن C مجموعه شرایط یا زمینهای است که تجربه در آن رخ دادهاست. P مسئلهای است که تجربه در رابطه با آن انجام و S راهحلی است که برای آن مسئله ارائه شدهاست. در مرحله جمعآوری تجربه، سعی میشود تا با بهرهگیری از تکنیکهای حقیقتیابی مانند بررسی مستندات، تهیه پرسشنامه، مصاحبه ها و بازدید و مشاهده این سهتایی برای هر تجربه مشخص گردد.
این سهتاییها را هیچکس بهتر از کسانی که درگیر انجام پروژه بودهاند نمیتواند تشخیص دهد و هر کسی ممکن است تجارب خاص مرتبط با وظیفه خود در پروژه را درک کند بطوریکه دیگران قادر به کشف آنها نباشند. شرایط، تمام عواملی را در بر میگیرد که بطور مستقیم یا غیرمستقیم در موفقیت یا شکست راه حل انتخاب شده موثر بودهاست و در شرایط مشابه که در آینده ممکن است اتفاق بیافتد باید مد نظر قرار گیرد. مشکل، بیان کننده یک نقطه تصمیمگیری است که ممکن است واقعاً مشکل نیز نباشد بلکه امکان دستیابی به وضعیت بهتری در پروژه باشد. این وضعیت بهتر، ممکن است مثلاً صرفه جویی در هزینه و/یا زمان انجام پروژه یا بالا بردن کیفیت محصول نرمافزاری تولید شده باشد. راهحل نیز بیان کننده تصمیمی است که در شرایط مذکور برای حل مشکل مشخص (یا دستیابی به وضعیت بهتر) اتخاذ شده و نتایج آن به عنوان تجربه موفق یا ناموفق در آینده استفاده میگردد.
6 Learning software organization
Exp-Schm
ب) بازنمایی و مدل سازی تجربه
ثبت تجربه در انسانها بصورت ماندگار شدن تجربه در ذهن آنها است. در سطح سازمان نیز بطور مشابه، تجربیات جمعآوری شده باید در یک حافظه ماندنی یا همان حافظه سازمان قرار بگیرند. به منظور ثبت این تجارب باید آنها را بازنمایی نمود به طوری که در حافظه سازمان قابل ذخیرهسازی باشند. برای بازنمایی و ثبت تجارب باید قالبی برای به دست آوردن دانش موردنظر در قالب تجربه تهیه شود و سپس اطلاعات به دست آمده در رابطه با هر تجربه در این قالب بازنمایی و ثبت گردد.
جزییات اطلاعات مورد نیاز برای هر تجربه را هر سازمانی میتواند تعیین نماید لکن لازم است اطلاعاتی مرتبط با هر یک از سه مولفه سهتایی تجربه شامل شرایط، مشکل، راهحل ثبت گردد. در فرآیند مدیریت تجارب انجام شده در گروه تخصصی مدیریت
شبکه مخابراتی، به منظور بازنمایی تجربه، قالبی تحت عنوان طرح تجربه7 یا تعریف گردید(شکل 1).
نوع تجربه: ابزار محصول فرآیند تولید نیروی انسانی مدیریت پروژه
میزان موفقیت : خیلی موفق موفق معمولی ناموفق خیلی ناموفق
تاریخ ثبت: بهترین استفاده برای:
محل تجربه: کدپروژه:
نام پروژه:
تیم گزارش کننده : نام گزارش کننده:
بازبینی
تایید/ رد نام بازبین پروژه/تیم سمت نقد
خلاصه:
کلمات کلیدی:
شرایط:
توضیح مشکل:
مشخصات راهحل
شاخصهای انتخاب راه حل:
راه حل انتخاب شده:
ارزیابی راه حل:
توصیه راه حل بهتر:
مراجع:
کد تجربه:
کد تجربه های مرتبط:
کد تجارب تقویت/ تضعیف شده با این تجربه:
کد تجارب تقویت/ تضعیف کننده این تجربه:
سمت گزارش کننده:
تاریخ
شکل 1- طرح تجربه (Exp-Schm) پیشنهاد شده برای بازنمایی و مستندسازی تجارب

کلمات کلیدی :