خرید اینترنتی کتاب

جستجو در تک بوک با گوگل!

تابعيت پايگاه تك بوك از قوانين جمهوري اسلامي ايران

فرادرس!



چطور!




تبلیغات!


تولید نرم افزارها

تولید نرم افزارها
5 (100%) 1 vote

207 views

بازدید

مقدمه
پس از دو دهه ناکامی در وعده های داده شده درباره بهره وری و سود حاصل از کاربرد فرآروش های نرم افزاری و فنآوریهای جدید، سازمانها به این واقعیت پی بردند که مسئله اساسی آنها، عدم توانایی در مدیریت صحیح تولید نرم افزارها است. در اکثر سازمانها، پروژه ها از زمان برنامه ریزی شده عقب می افتند، هزینه های انجام کار نیز بیشتر از حد تخمین اولیه می شود و از سوی دیگر منافع حاصل از اتخاذ روشهای بهتر و ابزارهای جدیدتر نمی تواند در طوفان حاصل از بی نظمی و هرج و مرج پروژه بطور واقعی نمایان شود.
در نوامبر ۱۹۸۶، انستیتو مهندسی نرم افزار (SEI) با همیاری کمپانی میترِ (Mitre)  شروع به توسعه یک چارچوب برای بلوغ نرم افزارها نمود تا سازمانها بتوانند با استفاده از آن چارچوب به توسعه نرم افزارهای خود بپردازند. در سپتامبر ۱۹۸۷، SEI توصیف مختصری از چارچوب بلوغ فرآیند را منتشر نمود که بعدها در کتاب همفری (Humpherey) توسعه یافت و تحت عنوان مدیریت فرآیند نرم افزار عرضه شد. دو روش “تشخیص فرآیند نرم افزار”   و ” ارزیابی قابلیت نرم افزار”  و یک پرسشنامه بلوغ، برای تخمین بلوغ فرآیند نرم افزار نیز تهیه شد.
CMM، برای راهنمایی سازمانهای نرم افزاری در انتخاب استراتژی های توسعه فرآیند، بوسیله تعیین بلوغ فرآیند جاری و تعریف برخی نیازهای حیاتی در کیفیت نرم افزار و توسعه فرآیندهای آن، طراحی شده است. بوسیله تمرکز بر مجموعه محدودی از فعالیت ها و انجام تلاش بزرگ و فوق العاده برای بدست آوردن آنها، یک سازمان می تواند فرآیند حصول درآمد مستمر از نرم افزار را در خود نهادینه سازد.
نسخه اولیه CMM، طی سالهای ۱۹۹۱ و ۱۹۹۲ توسط یک کمیته نرم افزاری مورد بازنگری قرار گرفت. درآوریل ۱۹۹۲ یک کارگاه CMM با مشارکت حدود ۲۰۰ متخصص نرم افزار راه اندازی شد. نسخه مذکور (CMM V 1.1.)  نتیجه بازخوردهای این کارگاه و بازخوردهای مداوم از کمیته نرم افزار است.

۱-۱-۱سازمانهای نرم افزاری بالغ و نابالغ
تعیین اهداف ملموس برای توسعه فرآیندها و درک تفاوتهای فی مابین سازمانهای نرم افزاری بالغ و نابالغ، یکی از نیازهای اساسی جامعه ما است. ویژگیهای سازمانهای بالغ و نابالغ نرم افزاری ذیلاً ارائه می گردد:
۱-سازمان نرم افزاری بالغ
فرآیندهای یک سازمان نرم افزاری بالغ به گونه ایست که در سرتاسر سازمان برای مدیریت و  پشتیبانی از ایجاد و توسعه نرم افزار، توانایی دارد. فرآیند نرم افزار دقیقاً فی مابین نیروهای موجود و کارکنان جدید، قابل به اشتراک گذاشتن است. فرآیندهای حکم شده به دلیل سازگار بودن با راه کارهای واقعی انجام کار، قابل استفاده هستند. این فرآیندهای تعریف شده، زمانیکه موردنیاز باشد به هنگام درخواهند آمد و توسعه تدریجی آنها از طریق کنترلهای لازم بر آزمون پروژه های نمونه و یا تجزیه و تحلیل هزینه و سود، امکانپذیر خواهد بود.
قوانین و مسئولیتها در فرآیندهای تعریف شده در سرتاسر سازمان و حین انجام پروژه واضح و روشن است. در سازمان بالغ، مدیریت سازمان، کیفیت محصولات نرم افزاری و فرآیند تهیه آنها را زیر نظر دارد.
برای قضاوت در امر کیفیت و تجزیه و تحلیل محصول و فرآیند، اهدافی وجود دارند که اساساً کمّی شده اند. برنامه زمانبندی و بودجه بندی بر مبنای کارآیی های تاریخی و واقعیت های منبعث از آنها، بنا شده اند. نتایج مورد انتظار برای هزینه، برنامه زمانبندی، قابلیت کارکردی و کیفیت، معمولاً قابل حصول هستند. بطور کلی، فرآیند به نظم درآمدن بطور سازگارانه ای دنبال می شود. زیرا، درک مشترک از ارزش آنچیزی که فرآیند ایجاد می کند و زیرساختهای لازم برای پشتیبانی آن، در سرتاسر سازمان بوجود خواهد آمد.
۲-سازمان نرم افزاری نابالغ
دریک سازمان نرم افزاری نابالغ، فرآیندهای نرم افزاری عموماً در جریان انجام یک پروژه توسط انجام دهندگان و مدیران ایجاد می شوند. حتی اگر یک فرآیند نرم افزار با این روش ایجاد شود، به اندازه کافی جدی گرفته نخواهد شد و دنبال نمی گردد. سازمان نرم افزاری نابالغ، ارتجاعی است. مدیریتش معمولاً تمرکز برحلّ مشکلات بحرانی دارد. زمانبندی و بودجه بندی بصورت دائمی در حال افزایش است زیرا بر مبنای تخمین های واقعی بنا نشده اند.
اکثر مواقع مشاهده شده است که یک برنامه زمانبندی فشرده برای تهیه یک نرم افزار تحمیل شده است. قابلیت کارکردی و کیفیت محصول حاصل از این برنامه ریزی، اغلب دستخوش مصالحه با برنامه زمانبندی خواهد شد. در یک سازمان نابالغ، اهداف اساسی پایه ای برای توانایی قضاوت کیفیت محصول یا برای حلّ مشکلات محصول یا مسائل فرآیند، تدوین نگردیده اند . بنابراین پیش بینی کیفیت محصول مشکل است. وقتی پروژه از برنامه زمانبندی خود به تعویق می افتد فعالیتهایی که به افزایش کیفیت منجر می شوند (مانند بازنگری ها و آزمون ها) اغلب خلاصه یا محو می شوند.
۱-۱-۲-مفاهیم پایه ای متضمن بلوغ فرآیند
فرآیند نرم افزار می تواند بوسیله مجموعه ای از فعالیتها، روشها، تمرینها و تغییراتی که نیروی انسانی برای توسعه و نگهداشت و به اشتراک گذاشتن آنها صرف می کنند، تعریف شود. (مانند: برنامه ریزی پروژه، طراحی مستندات، کُد، آزمون موارد و راهنمای استفاده کنندگان) بطوریکه فرآیند نرم افزار در یک سازمان رشدیافته، به خوبی تعریف شده و سازگاری پیاده سازی آن در سرتاسر سازمان بیشتر به چشم می خورد. در این صورت ویژگیهایی از قابلیت فرآیند نرم افزار در محدوده ای از نتایج قابل پیش بینی شده ،  بوسیله پیروی از فرآیند نرم افزار قابل دستیابی است.
قابلیت فرآیند نرم افزار یک سازمان به یک معنی پیش بینی احتمالی آندسته قابلیتهایی است که سازمان درنظر دارد تا در نرم افزارهای آتی خود بگنجاند. کارآیی فرآیند نرم افزار به معنی واقعی آن به وسیله پی گیری فرآیند نرم افزار نمایش داده می شود. از اینرو کارآیی فرآیند نرم افزار تمرکز بر نتایج قابل انتظار دارد. بلوغ فرآیند نرم افزار به اندازه ای است که یک فرآیند خاص، آشکارانه تعریف، مدیریت، اندازه گیری، کنترل و تأثیرگذار شده باشد. بلوغ، به پتانسیلی برای رشد در قابلیت، منجر می شود و شامل هم دستیابی به فرآیندهای نرم افزاری سازمان و نیز  سازگاری با پروژه های جدیدی است که در سازمان مطرح می شود.
سودی که یک سازمان نرم افزاری در بلوغ فرآیند نرم افزار بدست می آورد، این است که با استفاده از خط مشی ها، استانداردها و ساختارهای سازمانی مناسب، در مسیر فرآیند نرم افزار قرار خواهد گرفت. جاری ساختن فرآیند نرم افزار در سازمان مستلزم ایجاد  یک زیرساخت و فرهنگ سازمانی است که روشها، عملیات  و دستورالعمل های کاری در این زیرساخت با تحمل و بردباری خاص مورد پشتیبانی قرار گیرد بطوریکه پس از آن بصورت نهادینه درسرتاسر سازمان رسوخ پیدا کند.

۱-۲-۱پنج سطح بلوغ فرآیند نرم افزار
توسعه مستمر فرآیند بر مبنای تعدادی مراحل تحولی و تکاملی به جای تغییرات انقلابی، بنا شده است. ساختار مراحل CMM بر مبنای اصول کیفیت محصول مورد اعتقاد والتر شوارت، ادوارد دمینگ، ژوزف یوران و فیلیپ کرازبی، بنا شده است. ( مرجع CMM V1.1 )
CMM  چارچوبی برای ساماندهی به این مراحل توسعه تدریجی در ۵ مرحله بلوغ که منجر به زیرسازی موفقیت آمیزی برای توسعه مستمر فرآیند خواهد شد، ارائه نموده است. این ۵ مرحله بلوغ، درجه بندی کمّی برای اندازه گیری بلوغ فرآیند نرم افزار سازمان و ارزیابی قابلیت فرآیند نرم افزاررا  تعریف می کند. این سطوح همچنین نسبت به تشخیص اولویت های نیازمند تلاش برای تجزیه و تحلیل و نیز فاصله دستیابی به توسعه سازمان، کمک خواهد نمود.
سطوح بلوغ، بخوبی و به گونه ای هموار، بصورت تدریجی در سطح سازمان برای دسترسی به فرآیند نرم افزار بالغ، تعریف شده است. هر سطح بلوغ، شامل مجموعه ای از اهداف فرآیندی است. توانایی خرسندسازی، زمانی حاصل می شود که مؤلفه های مهم فرآیند نرم افزار در سازمان، تثبیت شده باشد. دسترسی به هر سطح از چارچوب بلوغ، مؤلفه های مختلفی از فرآیند نرم افزار را برقرار می سازد و منجر به افزایش قابلیت فرآیند در سازمان خواهد شد.
سازماندهی CMM در ۵ سطحی که در شکل ۱-۲ نشان داده شده است، تعیین کننده اولویت بندی  فعالیت های توسعه ای برای افزایش بلوغ فرآیند نرم افزار است. برچسب  هایی که برروی پیکانها در شکل ۱-۲ نوشته شده است، شامل نوع قابلیت فرآیندی است که بوسیله ساماندهی هر مرحله از چارچوب بلوغ دائر می گردند.

    شکل ۱-۲-  پنج سطح بلوغ فرآیند نرم افزار

۱-۲-۲-مشخصه های سطوح بلوغ
سطوح بلوغ ۲ الی ۵ می تواند بوسیله فعالیت های تهیه شده توسط سازمان توصیف گردند. این توصیف برای ایجاد یا توسعه فرآیند نرم افزار بوسیله تهیه فعالیتها در هر پروژه و نتایج حاصله از قابلیت فرآیند طی انجام پروژه، صورت می پذیرد. صفات رفتاری سطح ۱، به عنوان ابتدایی ترین پایه سنجش برای توسعه فرآیند در نظر گرفته شده است.
-سطح یک- سطح ابتدایی
در سطح ابتدایی، سازمان نمونه، محیط پایداری برای توسعه و نگهداشت نرم افزار تهیه نکرده است. ایجاد تعهد در کارکنان چنین سازمانهایی برای انجام عملیات فرآیند مهندسی نرم افزار در محیط بحران، مکرراً با سختی مواجه است. در زمان بحران، پروژه ها از روشهای اجرایی برنامه ریزی شده تخطی می کنند و به برنامه نویسی و آزمایش کردن می پردازند. موفقیت در اینچنین پروژه هایی کاملاً وابسته به مدیریت استثنایی، زمان وقوع و اثربخشی تیم نرم افزاری است. بعضی اوقات ، قابلیت و تأکید مدیران نرم افزار می تواند در مقابل فشارهای ناشی از کم کردن زمان برای دستیابی به فرآیند نرم افزار، مقاومت کند ولی به محض اینکه آنها پروژه را ترک کنند، نفوذ ایجاد شده توسط آنها نیز پروژه را ترک خواهد کرد. حتی یک فرآیند قوی مهندسی، نمی تواند در مقابل بی ثباتی ناشی از غیبت یک مدیر قوی دوام بیاورد. مشکلات ناشی از تکروی این فرآیند در سازمان سطح یک می تواند بارها و بارها تکرار شود. ضمن اینکه پروژه ها نیز از لحاظ زمان و هزینه در تنگنا قرار می گیرند. موفقیت در سطح سازمان به شایستگی و شجاعت کارکنانی که در آن کار میکنند وابسته است و حتی در شرایط مشابه قابل تکرار نیست. از اینرو در سطح یک، قابلیت، یک مشخصه فردی است و نه سازمانی.
سطح دو- سطح تکرارپذیر
در سطح تکرارپذیر، خط مشی مدیریت پروژه نرم افزاری و دستورالعملهای پیاده سازی آن خط مشی ها، دایر گردیده اند. برنامه ریزی و مدیریت پروژه جدید بر مبنای تجارب حاصل از پروژه های مشابه قبلی صورت می پذیرد. قابلیت فرآیندها برمبنای نظم و ترتیب حاکم بر هر پروژه، به سرعت پیشرفت می نماید. یک فرآیند مؤثر می تواند توسط موارد زیر توصیف گردد:
•    تمرین شده باشد.
•    مستند شده باشد.
•    تأکیدشده باشد. (جدی گرفته شده باشد.)
•    آموزش داده شده باشد.
•    اندازه گیری شده باشد.
•    قابل توسعه باشد.
مبانی کنترل مدیریت نرم افزار در سطح دو، سازمان دهی شده و ایجاد می شود. تعهدات واقعی پروژه بر مبنای نتایج مشاهده شده از پروژه های قبلی و نیازمندیهای پروژه جاری، بنا شده اند.
مدیران نرم افزار برای پی گیری هزینه های نرم افزار، برنامه های زمانبندی و تعیین قابلیت های کارکردی، در زمانیکه مشکلاتی رخ می دهد، توسط برقراری جلسات مشورتی نسبت به تعیین تکلیف و حل آنها اقدام می کنند.
نیازمندیهای نرم افزاری و کارهای مربوط به توسعه محصولات بر مبنای فعالیت آنها و همچنین پیوستگی آنها تحت کنترل هستند.
استانداردهای پروژه های نرم افزاری تعریف شده اند و سازمان مطمئن است که از آنها با وفاداری کامل، متابعت می شود.
کارهای پروژه های نرم افزاری که بوسیله پیمانکاران انجام می شود- اگر وجود داشته باشد- در چارچوب تعامل بین مشتری و عرضه کننده، انجام می شود.
فرآیندها در سازمان سطح دو ممکن است متفاوت باشد. نیازمندی سازمانی برای دستیابی به سطح دو، آن است که تعدادی خط مشی برای راهنمایی پروژه ها، اختصاصاً جهت فرآیندهای مدیریتی، برپاگردد.
قابلیت فرآیند نرم افزاری سازمانهای سطح دو می تواند در نظم و ترتیب خلاصه گردد، زیرا عمل برنامه ریزی و پی گیری پروژه نرم افزاری، صورت می پذیرد و حصول موفقیت می تواند تکرار شود. فرآیندهای پروژه، تحت کنترل مؤثر یک سیستم مدیریت پروژه قرار دارد و پیروی از یک برنامه واقعی، بر مبنای اثربخشی حاصل از پروژه های قبلی بنا شده است.
سطح سه- سطح تعریف شده
درسطح تعریف شده، فعالیت های به نظم کشیده شده در سطح دو منجر به تهیه استاندارد برای فرآیند نرم افزار می گردد و این استاندارد برای توسعه و نگهداشت مناسب نرم افزارها در کل سازمان مستند شده است. این فرآیند هم شامل مهندسی نرم افزار و هم شامل فرآیندهای مدیریت پروژه است و به نحویکه بصورت مجموعه ای یکپارچه بین مؤلفه هایش ارتباط منطقی ایجاد شده است.
در فرآیند استانداردسازی سازمان به فرآیند مذکور در سرتاسر CMM، مراجعه شده است. فرآیندهای ایجادشده در سطح سه که برای کمک به مدیران نرم افزار و کارکنان فنی بصورت مؤثرتری تهیه شده است، مورد استفاده (تغییر داده شده، اختصاص داده شده) قرار می گیرد. عملیات مهندسی نرم افزار زمانی بر رفتارهای سازمانی تأثیرپذیر است که فرآیندهای نرم افزاری آن استاندارد شده باشند. در این فرآیند، گروهی وجود دارد که نسبت به فعالیت های فرآیند نرم افزاری، مسئولیت دارد [به عنوان مثال: گروه فرآیند مهندسی نرم افزار یا SEPG   در فاولر۹۰]. یکی از مسئولیتهای اصلی این گروه آنستکه اطمینان حاصل کند برنامه های آموزشی پیاده شده در سرتاسر سازمان موجب شده باشد که کلیه کارکنان و مدیران ذیربط نسبت به انجام وظائفی که به آنها احاله شده است مهارت و دانش کافی را کسب کرده باشند.
در پروژه هایی که بنابه درخواست مشتری تعریف می شود، فرآیند نرم افزار استاندارد سازمان برای توسعه فرآیند نرم افزار مشتری که دارای تعهدات مالی منحصر به فردی است، بخوبی توصیف خواهد شد. این فرآیند توصیف شده و تغییر داده شده به CMM ای منتسب می گردد که در فرآیند نرم افزار تعریف شده برای پروژه، بیان گردیده است.
فرآیند نرم افزار تعریف شده (بومی شده استاندارد برای پروژه خاص) شامل مجموعه ای به هم پیوسته و مربوط با مهندسی نرم افزار و فرآیندهای مدیریتی آن می باشد. فرآیند به خوبی تعریف شده مذکور می تواند توسط معیارهایی برای قبولی، ورودیها، استانداردها و روشهای اجرایی کار برای تهیه مکانیزمهایی برای صحت سنجی (مانند بازنگری)، خروجیها و تکمیل معیارها مشخص گردد. زیرا فرآیند بخوبی تعریف شده نرم افزار، بینش خوبی در مدیریت، برای پیشرفت فنی در سرتاسر پروژه،  ایجاد می کند. (این موارد میتواند در مستندی تحت عنوان “برنامه ریزی کیفیت” (Qualitty Plan) ارائه گردد.)
قابلیت فرآیند نرم افزار در سازمانهای سطح سه، در سازگاری و استانداردسازی خلاصه می شود. زیرا هم مهندسی نرم افزار و هم فعالیتهای مدیریتی، پابرجا و قابل تکرار هستند. با تأسیس خط تولید، هزینه، برنامه زمانبندی و قابلیت کارکردی، تحت کنترل قرار خواهند گرفت و کیفیت نرم افزار، پی گیری خواهد شد. این قابلیت فرآیند، مشترکاً بر مبنای درک فعالیتهای سازمانی و قوانین و مسئولیتهای تعریف شده در فرآیند نرم افزار، بنا شده است.
سطح- چهار- سطح مدیریت شده
در سطح مدیریت شده، سازمان به مجموعه ای از اهداف کمّی، هم برای محصولات نرم افزاری و هم برای فرآیندهای آن، دست خواهد یافت.
بهره وری و کیفیت فعالیتهای مهم فرآیند نرم افزار در کل پروژه ها، یک قسمت از برنامه اندازه گیری سازمانی می باشد و قابل اندازه گیری است. در سرتاسر سازمان، پایگاه داده فرآیند نرم افزار که از جمع آوری و تجزیه و تحلیل داده های قابل دسترس از فرآیندهای نرم افزاری پروژه های تعریف شده ایجاد شده است، مورد استفاده قرار می گیرد.
فرآیندهای نرم افزاری با معیارهای سازگار و خوب، بصورت ابزار درخواهند آمد. این معیارهای ایجاد شده، پایه ای خواهد بود برای کمّی کردن ارزیابی فرآیندها و محصولات پروژه های نرم افزاری.
حصول قابلیت کنترل بر محصولات و فرآیندهای پروژه ها، بوسیله محدود کردن انجام تغییرات در کارآیی فرآیندها با پذیرش یک محدوده از کمیتهای قابل پذیرش، امکان پذیر خواهدشد. تغییرات معنی دار در کارآیی فرآیند، از تغییرات تصادفی، بخصوص با راه اندازی خط تولید، می تواند تمیز داده شود.
ریسک حاصل از درگیری برای افزایش سطح منحنی دانش در محدوده برنامه های کاربردی بایستی شناخته شود و به دقت مدیریت شود.
قابلیت فرآیند نرم افزار در سازمان سطح چهار، می تواند بوسیله قابلیت کمّی بودن و پیش بینی کردن، خلاصه گردد. زیرا فرآیندها در محدوده های قابل اندازه گیری اجرا و اندازه گرفته می شوند. این سطح از قابلیت فرآیند، یک سازمان را به پیش بینی روند قابلیت فرآیند و کیفیت محصول، در محدوده مذکور، قادر می سازد. زیرا، وقتی که برخی شرایط استثنایی رخ می دهد، فرآیند هم پابرجا می ماند و هم قابل اندازه گیری خواهد بود و دلایل خاص تغییرات می تواند تعریف و عنوان شود. زمانیکه محدودیتهای شناخته شده از فرآیند پیشی گیرد، می توان عکس العمل های مناسبی در موقعیت صحیح اتخاذ نمود. محصولات نرم افزاری با کیفیت بالایی، قابل پیش بینی خواهند شد.
سطح پنج، سطح بهینه شونده
درسطح بهینه شونده ، در تمام سازمان، بر توسعه تدریجی و مستمر فرآیندها تمرکز شده است. سازمان اهدافی برای مشخص نمودن نقاط قوت و ضعف فرآیندهای فعال خود دارد. این اهداف با مشخص نمودن نحوه پیشگیری از وقوع نقایص قابل حصول خواهد بود.
داده های حاصل از فرآیند نرم افزار غیرمؤثر و تجزیه و تحلیل هزینه و سود آنها برای دستیابی به فنآوریهای جدید و تغییر در فرآیند نرم افزار سازمان، مورد استفاده قرار می گیرند. با انجام این عمل، نوآوریهای زیادی حاصل سازمان می گردد.
تیم پروژه نرم افزاری، در سازمان سطح پنج، نسبت به تجزیه و تحلیل نقایص برای تعیین دلایل آن اقدام می کند. فرآیندهای نرم افزار برای پیشگیری از تکرار انواع نقایص شناخته شده، مورد ارزیابی قرار می گیرد و درسهایی برای جلوگیری از نشر آنها به دیگر پروژه ها می آموزد.
اتلاف شدیدی که از دوباره کاری در کارها در جریان تغییرات تصادفی در هر سیستم ساده بوجود می آید، اتلاف غیرقابل قبولی است. تلاشهای زیادی برای حذف اتلاف ناشی از تغییر در سیستم ها، سازمان یافته است که به عنوان مثال: توسعه فرآیند به منظور پیشگیری از عدم کارآیی بوسیله تغییر در دلایل مشترک، از آن جمله است.
گرچه این مسئله درکلیه سطوح بلوغ واقعیت دارد ولی در سطح پنج برروی آن متمرکز می شود.
قابلیت فرآیند نرم افزار در سازمان سطح پنج، می تواند بوسیله تمرکز بر توسعه مستمر مشخص گردد. زیرا سازمان سطح پنج، کوشش مستمری برای توسعه در محدوده ای از قابلیت فرآیند که در پروژه های جاری اش کارآیی دارد، بکار می بندد. توسعه، هم بوسیله پیشرفتهای صعودی در فرآیندهای موجود و هم بوسیله نوآوریهائی که با استفاده از فنآوریها و روشهای جدید ایجاد می شود، رخ می دهد. توسعه فرآیند و فنآوری در فعالیتهای کاری متداول، برنامه ریزی و مدیریت می شود.
۱-۲-۳-قابلیت فرآیند
بلوغ فرآیند نرم افزار سازمان به پیش بینی قابلیت دستیابی به اهداف، کمک می کند. پروژه ها در سازمانهای سطح یک، ابعاد وسیعی از دسترسی به هزینه ها، برنامه زمانبندی، قابلیت کارکردی و اهداف کیفی را تجربه می کنند. همانطور که در شکل ۴-۲ توضیح داده شده است، سه بهسازی در دستیابی به اهداف تعیین شده، در بلوغ فرآیند نرم افزاری سازمان انتظار می رود.این انتظارات بر مبنای نتایج کمّی از توسعه فرآیندهای دستیافته در دیگر صنایع بنا شده است و آنها با نتایج حاصل از موردکاوی اولیه گزارش شده از سازمانهای نرم افزاری، سازگار هستند.(Dion 92, Hamphrey 91b, Lipke 92, Wohlwen 93)
اولاً دلایل رشد بلوغ این است که تفاوت بین نتایج مورد انتظار و نتایج واقعی در طول پروژه کاهش یابد. برای مثال سازمان سطح یک اغلب برنامه زمانبندی اولیه خود را نمی تواند بپوشاند و در یک  محدوده  وسیعی نسبت به پیش بینی اولیه، کار را تحویل می دهد. در صورتیکه سازمانهای سطح بالاتر قادرند با دقت بیشتری نسبت به این کار اقدام نمایند و فاصله زمانی، برنامه ریزی شده و واقعی بسیار کمتر خواهد بود. (این مسئله به وسیله مساحت زیر منحنی حاصل از سمت راست خط هدف در شکل ۴-۲ نشان داده شده است.) به عبارتی دیگر، توسعه بلوغ، متغیری است از کاهش فاصله نتایج واقعی و نتایج هدف. به عنوان مثال: در سازمان سطح یک، تاریخهای تحویل برای پروژه های در اندازه مشابه غیرقابل پیش بینی تر نسبت به پروژه های مشابه در سازمانهای با سطوح بلوغ بالاتر هستند و با اختلاف بیشتری نسبت به آنها به انجام می رسند (این مسئله در شکل ۴-۲ بوسیله سطحی از منحنی که نزدیک به خط هدف هستند، نشان داده شده است)
ثانیاً، توسعه نتایج هدف گذاری شده در سازمانهای بالغ بصورت صعودی است و آن به این معنی است که در سازمانهای بالغ نرم افزاری، هزینه ها کاهش یافته، زمان پیاده سازی کوتاهتر می گردد و بهره وری و کیفیت افزایش می یابد. ازآنجائیکه برای حذف اشتباهات و انجام دوباره کاریها، زمان زیادی لازم است. سازمانهای با بلوغ بالاتر، با افزایش اثربخشی فرایندهایشان نسبت به کاهش هزینه های دوباره کاری اقدام می نمایند. دراین حالت زمان پیاده سازی نیز کاهش می یابد.
(این مسئله در شکل ۴-۲ بوسیله تغییر مکان دادن افقی خط هدف نسبت به مبداء نشان داده شده است.)
توسعه در پیش بینی نتایج پروژه در شکل ۴-۲ نمایش داده شده است. فرض کنید که نتایج حاصل از پروژه های نرم افزاری قابل پیش بینی تر از قبل باشند، دراین صورت مواردی از دوباره کاری ها در فرآیند نرم افزار، حذف می شود. اگرچه فنآوریهای جدید و برنامه های کاربردی تحت قابلیت فرآیندها، تصویر پیچیده ای از سیستم های جدید ایجاد می کنند و این امر بوسیله ایجاد قابلیت افزایش تغییر پذیری صورت می گیرد ، با همه این تفاصیل مدیریت و مهندسین در سازمانهای با بلوغ بیشتر خیلی سریعتر و راحت تر مشکلات را نسبت به سازمانهای با بلوغ کمتر، حل می کنند. در بعضی از موارد فرآیند بالغ بدین معنی است که احتمال شکست پروژه را در طول زیستچرخ نرم افزار، زودتر از موعد تشخیص بدهد و هدر رفتن سرمایه را به حداقل برساند.
موردکاوی توسعه فرآیندنرم افزار مستندشده شامل نتایج معنی داری از توسعه کیفیت و بهره وری در سازمانهایی است که با تلاش نسبت به بهبود خود اقدام نموده اند. (Dion 92, Hamphrey 91b, Lipke 92, Wohlwen 93)
 

در سازمانهای سطح پنج، کارآیی بصورت پیوسته توسعه می یابد.        5    احتمال
    …/ هزینه/ زمان   
برمبنای درک کمّی از فرآیندها و محصولات، در سازمانهای سطح چهار، فرآیند توسعه مستمر، آغاز می گردد.        4    احتمال
    …/ هزینه/ زمان   
با فرآیندهای خوب تعریف شده، کارآیی ها در سازمانهای سطح سه، توسعه می یابند.        3    احتمال
    …/ هزینه/ زمان   
در سازمانهای سطح ۲، برنامه ریزی ها بر مبنای کارآیی های گذشته، واقعی تر هستند.        2    احتمال
    …/ هزینه/ زمان   
برنامه زمانبندی و هزینه هدف بطور نمونه در سازمانهای سطح یک از تخمین اولیه بیشتر خواهند شد.        1    احتمال
    …/ هزینه/ زمان   

شکل ۴-۲- قابلیت فرآیند نشان داده شده بوسیله سطوح بلوغ

سعی در جهیدن از یک سطح بلوغ برای رسیدن به سطح بلوغ بالاتر، مؤثر نیست. زیرا هر سطح بلوغ در CMM نیازمند شالوده هایی است که در سطح قبلی آن بنا شده اند. CMM  بواسطه سطوح مختلف خود این تشخیص را می دهد که کدام سطح از فرهنگ تعالی مهندسی نرم افزار در سازمان دایر گردیده است. اگرچه سازمانها می توانند در هر زمانی که بخواهند، فرآیندهای خاص توسعه را ایجاد نمایند. حتی قبل از اینکه آمادگی انجام توصیه های لازم برای دستیابی به آنها را داشته باشند. ولی سازمانها بایستی درک کنند که دائر نمودن این توسعه ها با ریسک بزرگتری مواجه است زیرا شالوده های لازم برای موفقیت آنها، هنوز کامل نشده است.
فرآیندها بدون ایجاد پایه های مناسب شکست خواهند خورد. خصوصاً در زمانهایی که تحت فشار قرار می گیرند، به این پایه ها بیشتر احتیاج دارند و بدون آنها مبنایی برای توسعه در آینده در دست ندارند. به عنوان مثال یک فرآیند نرم افزار خوب تعریف شده که در سازمان سطح سه مشخص گردیده است، اگر درست مدیریت نشود و برنامه ریزی ضعیفی بر روی آن تعهد شود، یا مدیریت در کنترل نیازمندیهای پایه ای شکست بخورد، می تواند با ریسک بزرگی مواجه گردد. متشابهاً، سازمانهای زیادی، مشخصه تفصیلی داده های سطح چهار را بدون قابلیت توانایی در تفسیر آنها، در می یابند. زیرا عملیات آنها با فرآیندهای توسعه نرم افزار ناسازگار است. در همان زمان بایستی تشخیص داده شود که تلاشهای توسعه فرآیند تمرکز بر نیازهای سازمان در زمینه محیط کار مربوطه دارد یا خیر؟ درصورتیکه فعالیتها در سطوح بالاتر ممکن است به نیازهای جاری سازمان اشاره نماید. برای مثال زمانیکه تجویز کردیم که چه مراحلی را سازمان باید در پیش گیرد تا از سطح یک به سطح دو برود، چیزی که مکرراً توصیه می شود تأسیس گروه فرآیند مهندسی نرم افزار (SEPG) است که یکی از مشخصه های سازمان سطح سه است. تا زمانیکه وجود یک SEPG در سازمان سطح۲ الزامی نباشد، آنها می توانند به عنوان قسمت مفیدی برای دستیابی به سطح سه، به حساب آیند.
۲-۱-۱-تعریف عملیاتی مدل بلوغ قابلیت
CMM چارچوبی را برای سازمانهای نرم افزاری که می خواهند قابلیت فرآیند نرم افزار خود را توسعه دهند، نمایش می دهد. دلیل پیچیدگی عملیاتی CMM این است که برای پشتیبانی راههای قابل استفاده مختلف، طراحی شده است. حداقل چهار استفاده از CMM برای پشتیبانی مذکور وجود دارد:
•    تیم های ارزیابی با استفاده از CMM نسبت به مشخص نمودن نقاط قوت و ضعف در سازمان اقدام می نمایند.
•    تیم های ارزیابی با استفاده از CMM نسبت به مشخص نمودن ریسک های حاصل از انتخاب قراردادهای مختلف برای پیشبرد و نظارت بر آنها، اقدام می نمایند.
•    مدیران سطح بالا با استفاده از CMM، نسبت به درک مفاهیم موردنیاز برای پیشبرد فعالیتهای مربوط به برنامه توسعه فرآیند نرم افزار در سازمانشان، اقدام می نمایند.
•    کارمندان فنی و گروه توسعه فرآیند (همانند SEPG)، از CMM برای راهنمایی و کمک در تعریف و توسعه فرآیند نرم افزار در سازمانشان استفاده می کنند.
بدلیل استفاده های گوناگون می بایستی CMM  به جزئیات مکفی تجزیه شود تا توانایی استنتاج توصیه های لازم از فرآیند واقعی را داشته باشد، این استنتاج ها توسط ساختار بلوغ ایجاد می گردد. همچنین این تجزیه ها، مشخص کننده آندسته از فرآیندهای کلیدی و ساختارشان است که بلوغ فرآیند نرم افزار و قابلیت فرآیند نرم افزار را توصیف می کنند. هر سطح بلوغ به قسمتهای اصلی تجزیه شده است. به استثناء سطح یک، تجزیه هر سطح بلوغ در یک محدوده مجرد، برای تعاریف عملیات کلیدی آنها، بصورت خلاصه شده در شکل ۱-۳ نشان داده شده است. هر سطح بلوغ با چند محدوده فرآیند کلیدی ترکیب شده است. هر محدوده فرآیند کلیدی در پنج بخش، سازمان داده شده است که خصوصیات مشترک دارند.خصوصیات مشترک، عملیات کلیدی ای را مشخص می کنند که در به انجام رساندن اهداف محدوده فرآیند کلیدی، بطور تجمیعی نشان داده شده باشند.
 
۲-۱-۲    سطوح بلوغ
یک سطح بلوغ نسبت به دسترسی به فرآیند نرم افزار بالغ، مسیر هموار خوب تعریف شده ای را ارائه می نماید. هر سطح بلوغ شامل یک سطح از قابلیت فرآیند است که در شکل ۱-۳ نشان داده شده است. برای مثال، در سطح دو، قابلیت فرآیند در یک سازمان، از یک قابلیت اختصاصی (فاقد عمومیت) به یک قابلیت نظم داده شده تبدیل می گردد، این عمل بوسیله دائر نمودن کنترلهای لازم و کامل در مدیریت پروژه، توصیف گردیده است.

   
    شکل ۱-۳- ساختار  CMM

 
۲-۱-۳-محدوده های فرآیند کلیدی (KPA)
بغیر از سطح یک، هر سطح بلوغ دیگر به محدوده های فرآیند کلیدی تقسیم می شود که سازمان بایستی برای توسعه فرآیند نرم افزار خودش بر روی آنها تمرکز نماید. محدوده های فرآیند کلیدی، مشخص کننده همه آن مواردی هستند که برای دسترسی به سطح بلوغ موردنظر، الزامی هستند. هر محدوده فرآیند کلیدی، مشخص کننده یک گروه فعالیت به هم مرتبط است که وقتی با یکدیگر انجام شوند، به یک سری اهداف مهم از پیش تعیین شده، برای قابلیت فرآیند پیشرفته تر، دست خواهیم یافت.
محدوده فرآیند کلیدی تعریف شده و مقیم شده در یک سطح بلوغ خاص، در شکل ۲-۳ نشان داده شده است. مسیر دسترسی به اهداف از پیش تعریف شده محدوده فرآیند کلیدی در طول یک پروژه ممکن است باتوجه به محدوده ها یا دامنه های برنامه های کاربردی مختلف، متفاوت باشد. باوجود این سازمان بایستی برای رضایت خودش به تمامی اهداف موردنظر برای محدوده فرآیندهای کلیدی دست یافته باشد.
صفت “کلیدی” به این معنی است که محدوده های فرآیند/ فرآیندهایی وجود دارند که کلیدی نیستند و CMM برای همه آنها که در توسعه و نگهداشت نرم افزار درگیر می شوند، توضیحاتی ندارد. مطمئناً محدوده فرآیندی وجود دارد که توسط مشخص کننده های کلیدی قابلیت فرآیند، تعریف خواهندشد. اینها از آن مواردی هستند که توسط CMM، توصیف خواهند شد.
محدوده های فرآیند کلیدی ممکن است نیازمندیهایی برای دسترسی به سطحی از بلوغ را فرض کند. دسترسی به محدوده های فرآیند کلیدی سطح بلوغ، برای آن سطح بخصوص بایستی فراهم  شده باشد.
   

    شکل ۲-۳- محدوده های  فرآیند کلیدی
عملیات خاصی در هر محدوده فرآیند کلیدی که برای دسترسی به سطح بالاتری از بلوغ در سازمان استنتاج می شود، به اجرا در می آید. به عنوان مثال: تعدادی از پروژه ها، قابلیت های پیش بینی توصیف شده ای در برنامه پروژه نرم افزار دارند، این موارد به منظور استنتاج محدوده های فرآیند کلیدی در سطح دو برای برآورده ساختن نیازهای داده ای قابل دسترس در پروژه در سطح سه (که به مدیریت نرم افزار یکپارچه توصیف شده است) انجام می پذیرد.
تمرکز محدوده های فرآیند کلیدی در سطح۲، بر پروژه های نرم افزاری وابسته ایست که مرتبط با دایر نمودن کنترلهای اساسی مدیریت پروژه هستند.
۲-۱-۴-محدوده های فرآیندهایی کلیدی سطح دو
محدوده ای فرآیندهای کلیدی سطح دو عبارتند از:
    مدیریت نیازمندیها
    برنامه ریزی پروژه نرم افزار
    ازقلم  افتادگی و ردیابی پروژه نرم افزار
    تضمین کیفیت نرم افزار
    مدیریت پیمانکاران نرم افزار
    مدیریت پیکربندی نرم افزار

که ذیلاً نسبت به ارائه منظور، ابعاد و اهداف هر محدوده فرآیند کلیدی اقدام خواهد گردید:
۲-۱-۵ -مدیریت نیازمندیها
یافته های حاصل از تجربیات انجام فعالیتهای نرم افزاری در سازمانهای سطح یک حاکی از این مورد است که نیازمندیها، برای اطمینان از مواردی از قبیل: تعریف کافی، تحلیل کامل، کنترل تغییرات بطور مؤثر و ورودی های قابل استفاده برای مراحل بعدی توسعه، به اندازه کافی مدیریت نمی شوند و پیامدهای ناشی از این نواقص عبارتند از:
    اعتقاد، جهت حصول اطمینان از دستیابی مشتری به نیازمندیهایش، سست است.
    نیازمندیها بدرستی توسط تیم طراحی درک نمی گردد.
    مندرجات محصول به سختی تعریف و تعیین می گردد.
    عمل طراحی و برنامه نویسی با تضمین همراه نیست.

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

    کنترل و تحت مهندسی نرم افزار قرار دادن مشخصات  سیستم موردنیاز مشتری 
    حفظ سازگاری فعالیتها، محصولات و برنامه های نرم افزاری بانیازمندیهای تخصیص یافته به آنها
۲-۱-۶برنامه ریزی پروژه های نرم افزاری
یافته هایی از قبیل:
    عدم وجود روشهای رسمی برای تخمین اندازه، هزینه و برنامه زمانبندی پروژه
    عدم جامعیت برنامه پروژه
    عدم وجود روش بازنگری برای تصویب رسمی برنامه زمانبندی و تأیید تغییرات احتمالی که حین کار رخ می دهد.
پیامدهای زیر را ناشی گردیده است:
    عدم وجود وظائف مهم پروژه در برنامه پروژه
    عدم اعتماد به برنامه زمانبندی پروژه
    رنج آور بودن آزمونهای پیاپی در تغییرات برنامه زمانبندی پروژه
    مصرف بیش از اندازه منابع پروژه
این پیامدها کارشناسان ایجادکننده CMM را برآن داشت تا برای حل مشکلات فوق راه حلهایی را ارائه دهند و این راه حل به محدوده فرآیند کلیدی برنامه ریزی پروژه های نرم فزار منتسب است.
منظور  از برنامه ریزی پروژه نرم افزاری عبارت است از:
ایجاد برنامه های قابل استدلال برای آماده سازی مهندسی نرم فزار و مدیریت پروژه، این برنامه ها، پایه های اساسی موردنیاز برای مدیریت پروژه نرم افزاری را فراهم می سازد .
ابعاد برنامه ریزی پروژه نرم افزاری عبارتند از:
    توسعه تخمینها برای کارهای اجراشده
    ایجاد تعهدات موردنیاز
    تعریف برنامه برای اجرای کار
این برنامه مبنایی است برای راه اندازی تلاشهای نرم افزاری و مدیریت کارها
اهداف برنامه ریزی پروژه نرم افزاری شامل موارد زیر است:
    مستندسازی برآوردها برای استفاده دربرنامه ریزی پروژه های آتی و ردیابی پروژه جاری
    برنامه ریزی مستند از فعالیتها و تعهدات پروژه
    کسب تعهدات از افراد و گروههای وابسته به پروژه

۱-نتیجه گیری
CMM، بیانگر حس مشترکی از مهندسی  لازم برای حمایت از رویکرد توسعه فرآیند نرم افزار است. سطوح بلوغ، محدوده فرآیند کلیدی، حالتهای مشترک و عملیات کلیدی، بطور وسیعی بحث شده است و توسط جامعه نرم افزار مورد بازنگری قرار گرفته است. تا زمانیکه CMM کامل نشده است، می تواند بیانگر وفاق عمومی در جامعه نرم افزار باشد و ابزار مفیدی نیز برای راهنمایی جهت تلاشهای توسعه فرآیند نرم افزار به حساب آید.
CMM، ساختار مفهومی برای توسعه مدیریت و توسعه محصولات نرم افزاری در یک راه منظم و مشخص، تهیه می نماید. اگرچه گزارشات جاری از برنامه های توسعه بر مبنای CMM حاکی از این مطلب است که احتمال دسترسی به هزینه ها، کیفیت و اهداف بهره وری در سازمانهای نرم افزاری وجود دارد. ولی ساخت موفقیت آمیز محصولات نرم افزاری تنها با استفاده از مهندسی نرم افزار مورد ضمانت نیست.
(Dion 92, Hamphrey 91b, Lipke 92, Wohlwen 93)
CMM  عملیاتی را برای یک فرآیند نرم افزار بالغ و تهیه مثالهایی از اجزاء مختلف عمل (و در بعضی از موارد جزء جزء صنعت) تعریف نموده است. اما این به این معنی نیست که این مسئله جامع است و یا اجباری است. CMM مشخصه هایی از فرآیند نرم افزار مؤثر را تعریف کرده است، اما یک سازمان بالغ کلیه درخواستهای مربوط به موفقیت یک پروژه شامل، نیروی انسانی و فنآوری را بخوبی می شناسد و آنها را پس از تطبیق با شرایط بومی خود بکار می گیرد.

دانلود کتاب






مطالب مشابه با این مطلب

    ساخت ساده بک گراند ماتریکس در فتوشاپ

    ساخت ساده بک گراند ماتریکس در فتوشاپ / Adobe Photoshop را میتوان بدون شک قدرتمندترین نرم افزار ساخت و ویرایش تصاویر گرافیکی دانست. توانایی هایی که این نرم افزار دارد گاهی شما را به حیرت وا میدارد. حتی ممکن است تصویر گرافیکی را مشاهده […]

    خاموش کردن ویندوز ۱۰ بدون موس

    خاموش کردن ویندوز ۱۰ بدون موس تا به حال به این فکر کرده اید که کامپیوتر خود را بدون موس خاموش، به حالت خواب و یا ری استارت کنید؟! در اینجا می خواهیم میانبرهایی را برای ویندوز ۱۰ معرفی کنیم که آن را خاموش […]

    فعال سازی رمزهای حرفه ای در ویندوز ۱۰

    فعال سازی رمزهای حرفه ای در ویندوز ۱۰ / ویندوز ۱۰، آخرین نسخه از سیستم‌عامل ویندوز است که در طول زمان به‌روزرسانی‌های متعددی برای آن منتشر می‌شود، اما نسخه اصلی آن همچنان روی ۱۰ باقی می‌ماند و احتمالا هیچ نام جدیدی به ویندوز اختصاص […]

    صفر تا ۱۰۰ فتوشاپ

    صفر تا ۱۰۰ فتوشاپ : فتوشاپ نرم افزاری است که غریب به اتفاق مردم از آن استفاده می‌کنند. این نرم افزار همراه با ویژگی‌های پیچیده و قابلیت‌های گسترده‌ای که دارد همواره یکی از مورد استفاده‌ترین برنامه‌ها نزد عکاسان حرفه‌ای دنیا است. بنابر‌این یاد گرفتن […]

    حل مشکل پر شدن درایو C

    شاید برای شما پیش اومده باشه گاهی اوقات درایو C یا حتی درایو های دیگه شما خود به خود پر میشن تا جایی این مشکل پیش میره که دیگه جایی تو درایو c شما باقی نمی مونه و باعث میشه سیستم کند بشه حتی […]

    اجرای برنامه‌ها در دسکتاپ‌های مجازی

    بالاخره مایکروسافت قابلیت ایجاد دسکتاپ‌های مجازی را به‌عنوان یکی از امکانات پیش‌فرض در ویندوز ۱۰ در اختیار کاربران قرار داده و به کمک این قابلیت، مدیریت آسان‌تر و منظم‌تر محیط کاربری ویندوز را برای کاربران فراهم کرده است. تابه‌حال از این قابلیت استفاده کرده‌اید؟ […]




هو الکاتب


پایگاه اینترنتی دانلود رايگان كتاب تك بوك در ستاد ساماندهي سايتهاي ايراني به ثبت رسيده است و  بر طبق قوانین جمهوری اسلامی ایران فعالیت میکند و به هیچ ارگان یا سازمانی وابسته نیست و هر گونه فعالیت غیر اخلاقی و سیاسی در آن ممنوع میباشد.
این پایگاه اینترنتی هیچ مسئولیتی در قبال محتویات کتاب ها و مطالب موجود در سایت نمی پذیرد و محتویات آنها مستقیما به نویسنده آنها مربوط میشود.
در صورت مشاهده کتابی خارج از قوانین در اینجا اعلام کنید تا حذف شود(حتما نام کامل کتاب و دلیل حذف قید شود) ،  درخواستهای سلیقه ای رسیدگی نخواهد شد.
در صورتیکه شما نویسنده یا ناشر یکی از کتاب هایی هستید که به اشتباه در این پایگاه اینترنتی قرار داده شده از اینجا تقاضای حذف کتاب کنید تا بسرعت حذف شود.
كتابخانه رايگان تك كتاب
دانلود كتاب هنر نيست ، خواندن كتاب هنر است.

دانلود کتاب , دانلود کتاب اندروید , کتاب , pdf , دانلود , کتاب آموزش , دانلود رایگان کتاب


تمامی حقوق و مطالب سایت برای تک بوک محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع می باشد.


فید نقشه سایت

تمامی حقوق برای سایت تک بوک محفوظ میباشد