استانداردهای تضمین کیفیت نرم افزار

استانداردهای تضمین کیفیت نرم افزار

About the project

تولید نرم افزار های کاربردی روز به روز گسترش می یابد و لزوم بکارگیری روش ها و اصول مهندسی نرم افزار در مراحل توسعه ، مدیریت و پشتیبانی آنها بیشتر نمود پیدا می کند . کیفیت نرم افزار (Software Quality)  شاخص حیاتی برای تولید نرم افزار های با کیفیت بالاست که ضمن بالا بردن بهره وری در تولید نرم افزار ها ، به ایجاد نرم افزار های قدرتمند و شکست ناپذیر منجر می گردد . این مقاله با ارائه تعاریف ‌و اهمیت نقش کیفیت نرم افزار در تولید سیستم های نرم افزاری مهندسی ساز و ارائه یک نمونه از استاندارد های کاربردی در این خصوص ، سعی دارد نشان دهد که توجه به ساخت نرم افزار با کیفیت بالا در جهت بهره گیری مطلوب  می تواند کارآیی سیستم ها را افزایش داده و دستیابی به ظرفیت های جدیدی را فراهم آورد .





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

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

·        مهندسی نرم افزار و تولید نرم افزاری با کیفیت بالا 

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

در مهندسی نرم افزار برای ساخت یک سیستم نرم افزاری سه فرآیند مهم تاثیر گذار می باشند:
1- فرآیند توسعه (Development Process): سازماندهی فعالیت ها است برای ساخت یک سیستم.

2- فرآیند مدیریت (Management Process): انتخاب افراد، تجهیزات و فرآیند هاست برای توسعه یک سیستم و کنترل و نظارت بر روند اجرای پروژه .

3- فرآیند پشتیبانی (Maintenance Process): کنترل و پشتیبانی نرم افزار پس از تولید آن.

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

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

·        کیفیت

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


·        کنترل کیفیت

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

·        تضمین کیفیت

هدف تضمین کیفیت فراهم نمودن روشی به منظور اطلاع از کیفیت محصول است . توجه به این نکته حائز اهمیت است که رضایت مندی مشتری در بکارگیری سیستم های نرم افزاری بر اساس بررسی های صورت گرفته به ترتیب زیر تعریف گردیده است :

رضایت مندی مشتری= محصول خواسته شده+ تحویل بر مبنای بودجه وزمان بندی + کیفیت خوب

·        هزینه کیفیت

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

·        کیفیت نرم افزار

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

1-  استانداردها ، مجموعه ای از معیارهای توسعه را تعریف می کنند و چنانچه این معیارها بدرستی دنبال نشوند ، نتیجه آن فقدان کیفیت خواهد بود .

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

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

·        قابلیت اطمینان و امنیت نرم افزار ;   مشخصه های اصلی کیفیت نرم افزار

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

·        استاندارد ISO 9001 و تضمین کیفیت نرم افزار

ISO 9001 یک استاندارد تضمین کیفیت است که در مهندسی نرم افزار کاربرد دارد . این استاندارد حاوی نیازمندی هایی لازم برای تضمین کیفیت یک سیستم نرم افزاری است . کنترل طراحی ، کنترل مستندات ، شناسایی محصول نرم افزاری ، کیفیت ، امکان سنجی و نیازمندی های وظیفه ای و غیر وطیفه ای ، بازبینی و آزمایش نرم افزار و بررسی کیفیت های داخلی از عناوینی است که در این استاندارد مورد توجه قرار می گیرد .
·        ارائه یک مثال : طرح آژانس فضایی اروپا(ESA) و ارائه استاندارد نرم افزار

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

حوزه کاربرد

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

ساختار استاندارد
استانداردهای مهندسی نرم‌‌افزار ESA به سه بخش اصلی تقسیم می‌‌شوند.

1-بخش اول، استانداردهای محصولProducts :

استانداردها، توصیه‌‌ها، و رهنمودهای مربوط به محصول را شامل می‌‌شود.
2- بخش دوم، استانداردهای رویه Procedure :

رویه‌‌های مورد استفاده در مدیریت یک پروژه نرم‌‌افزاری را تشریح می‌‌کند.
3-بخش سوم، پیوست‌‌ها Appendices :

شامل خلاصه‌‌ها، جداول، فرمها، و فهرستی از روشهای ضروری می‌‌باشد.
سه گروه روش استاندارد در این مجموعه استفاده شده‌‌اند که عبارتند از :
الف-  روشهای ضروری : در این روشها از عبارت "الزامی است" استفاده شده است. از این روشها باید بدون هیچ‌‌گونه استثنایی در کلیه پروژه‌‌های نرم‌‌افزاری پیروی شود.
ب- روشهای توصیه شده : در این روشها از عبارت "می‌‌بایست" استفاده شده است و به روشهای قویاً توصیه شده اشاره می‌‌کند. عدم پیروی از این روشها نیاز به توجیه مناسب دارد.
ج- رهنمودها : در این روشها از عبارت "ممکن است" یا "می‌‌توانند" استفاده شده است و به رهنمودها اشاره می‌‌کنند. عدم پیروی از رهنمودها، نیازی به توجیه ندارد.
استانداردهای مهندسی نرم‌‌افزار ESA ، کاربران را به استفاده از هیچیک از روش‌‌های ویژه مهندسی نرم‌‌افزار و یا ابزار نرم‌‌افزاری وادار نمی‌‌کنند، بلکه تنها روشهای ضروری توصیه شده و رهنمودها را برای پروژه‌‌های مهندسی نرم‌‌افزار تشریح کرده و به هر پروژه امکان می‌‌دهد که بهترین روش را جهت پیاده‌‌سازی انتخاب نماید.

در ادامه، توصیف خلاصه‌‌ای از استانداردهای مهندسی نرم‌‌افزار ESA ارائه می‌‌گردد. همانطور که ذکر گردید این استانداردها در دو بخش ارائه شده است : استانداردهای محصول و استانداردهای رویه که هر کدام به صورت اجمالی معرفی می‌‌گردد.

استانداردهای محصول

این بخش، کلیات چرخه حیات نرم‌‌افزار را تشریح می‌‌کند. در این استانداردها غالباً از عبارت "پروژه نرم‌‌افزاری" استفاده می‌‌شود. واضح است که تولید نرم‌‌افزار جنبه‌‌های سخت‌‌افزاری کامپیوتر را نیز در بر می‌‌گیرد.
محصولات نرم‌‌افزاری لازم است با روش معینی طراحی و اجرا گردند. یک "مدل چرخه حیات"، فعالیتهای پروژه را در قالب مراحل مشخص سازماندهی می‌‌کند و تعیین می‌‌نماید کدام یک از فعالیتها باید در کدام مرحله انجام گیرد.
بر اساس این استاندارد شش مرحله بایستی در چرخه حیات یک نرم‌‌افزار طی شود که عبارتند از:

- مرحله UR : تعیین نیازهای کاربر (User Requirements)

-         مرحله SR : تعیین نیازهای نرم‌‌افزار (Software Requirements)

-          مرحله AD : طراحی معماری (Architectural Design)

-         مرحله DD : طراحی تفصیلی و تولید برنامه (Detailed Design)

-         مرحله TR : انتقال و واگذاری نرم‌‌افزار برای بهره‌‌برداری      (Transfer of the Software)

-          مرحله OM : بهره‌‌برداری و نگهداری (Operation & Maintenance)

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

• تصویب سند نیازهای کاربر (URD)

• تصویب سند نیازهای نرم‌‌افزار (SRD)

• تصویب سند طراحی معماری (ADD)

• تصویب سند طراحی تفصیلی (DDD)، راهنمای کاربر نرم‌‌افزار (SUM) ، اعلام آمادگی جهت پذیرش آزمونهای پذیرش موقت

• اعلام پذیرش موقت و تحویل سند انتقال نرم‌‌افزار (STD)

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

مرحله UR : تعیین نیازهای کاربر

مرحله UR را می‌‌توان "مرحله تعریف مسئله" چرخه حیات نامید. هدف این مرحله تدقیق یک فکر در مورد کاری که باید انجام گیرد در قالب تعریفی است از آنچه که از یک سیستم کامپیوتری انتظار می‌‌رود. نتیجه مرحله UR، سند نیازهای کاربر (URD) است. این سند برای کل پروژه نرم‌‌افزار سند مهمی به شمار می‌‌آید. زیرا مفاهیم اساسی که بر پایه آنها نرم‌‌افزار مورد پذیرش قرار می‌‌گیرد را تعریف می‌‌نماید.

الف- ورودی‌‌ها : هیچ‌‌گونه ورودی رسمی مورد نیاز نیست. اگرچه نتایج مصاحبه‌‌ها، بررسی‌‌ها، و مطالعات می‌‌توانند جهت تنظیم خواسته‌‌های کاربر مفید باشند.

ب- فعالیت‌‌ها

دریافت نیازهای کاربر

تعیین محیط عملیاتی

تشخیص نیازهای کاربر

بازبینی‌‌ها

ج-خروجی‌‌ها

سند نیازهای کاربر

طرح‌‌های آزمون پذیرش

طرح مدیریت پروژه برای مرحله SR (محدوده پروژه، برآورد هزینه و طرح مدیریت)
طرح مدیریت پیکربندی برای مرحله SR (روالهای مدیریت، ابزارهای CASE)
طرح وارسی و اعتبار سنجی برای مرحله SR

طرح تضمین کیفیت برای مرحله SR

مرحله SR : تعیین نیازهای نرم‌‌افزار

مرحله SR را می‌‌توان "مرحله تحلیل مسئله" چرخه حیات نامید. یک بخش ضروری در این مرحله، ساخت الگویی است که بیانگر آن باشد که نرم‌‌افزار چه کاری را باید انجام دهد، نه اینکه چگونه باید آنرا انجام دهد. در این حالت ممکن است ساخت نمونه‌‌های اولیه به منظور روشن نمودن نیازهای نرم‌‌افزار ضروری باشد.

الف- ورودی‌‌ها

تمامی خروجیهای مرحله قبل به عنوان ورودی در این مرحله استفاده می‌‌شوند.

ب- فعالیت‌‌ها

ساخت مدل منطقی

تشخیص نیازهای نرم‌‌افزار

بازبینی‌‌ها

ج-خروجی‌‌ها

سند نیازهای نرم‌‌افزار

طرح‌‌های آزمون سیستم

طرح مدیریت پروژه برای مرحله AD

طرح مدیریت پیکربندی برای مرحله AD

طرح وارسی و اعتبارسنجی برای مرحله AD

طرح تضمین کیفیت برای مرحله AD

مرحله AD : طراحی معماری

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

الف- ورودی‌‌ها

کلیه خروجیهای مرحله SR

ب- فعالیت‌‌ها

ساختار مدل فیزیکی شامل ( تجزیه نرم‌‌افزار به مولفه ها ،  پیاده‌‌سازی الزامات غیر وظیفه‌‌مندی، معیارهای کیفیت طرح ، بررسی مزیت‌‌های نسبی مابین طرحهای جایگزین)

ساختار مدل معماری شامل (تعیین وظیفه مؤلفه‌‌ها، تعیین ساختمان داده‌‌ها، تعیین میزان استفاده از منابع کامپیوتری ، انتخاب زبان برنامه‌‌نویسی، بازبینی طرح)

ج-خروجی‌‌ها

سند طراحی معماری

طرحهای آزمون یکپارچگی

طرح مدیریت پروژه برای مرحله DD

طرح مدیریت پیکربندی برای مرحله DD

طرح وارسی و اعتبارسنجی برای مرحله DD

طرح تضمین کیفیت برای مرحله DD

مرحله DD : طراحی تفصیلی و تولید برنامه


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

الف- ورودی‌‌ها

تمامی خروجیهای مرحله AD به عنوان ورودی استفاده می‌‌شود.

ب-فعالیت‌‌ها

طراحی تفصیلی تولید شامل ( برنامه‌‌نویسی، مجتمع‌‌سازی، آزمون ، بازبینی)

ج-خروجی‌‌ها

برنامه‌‌ها

سند طراحی تفصیلی

راهنمای کاربر نرم‌‌افزار

طرح مدیریت پروژه برای مرحله TR

طرح مدیریت پیکربندی برای مرحله TR

ویژگیهای آزمون پذیرش

طرح تضمین کیفیت برای مرحله TR

مرحله TR : انتقال و واگذاری نرم‌‌افزار برای بهره‌‌برداری

هدف مرحله TR نصب نرم‌‌افزار در محیط عملیاتی است و نشان دادن اینکه کلیه قابلیتهای تشریح شده در سند نیازهای کاربر (URD) در نرم‌‌افزار مربوطه موجود است.

الف- ورودی‌‌ها

همه خروجیهای مرحله DD

ب- فعالیت‌‌ها

نصب

آزمونهای موقت

ج- خروجی‌‌ها

اعلامیه پذیرش موقت

سیستم نرم‌‌افزاری پذیرفته شده موقت

سند انتقال نرم‌‌افزار

مرحله OM : بهره‌‌برداری و نگهداری

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

خروجی عمده این مرحله سند تاریخچه پروژه (PHD) می‌‌باشد که مراحل تولید، بهره‌‌برداری و نگهداری محصول را به طور خلاصه بیان می‌‌کند.

الف -ورودی‌‌ها


خروجیهای مرحله TR

ب- فعالیت‌‌ها


پذیرش نهایی


نگهداری

ج-خروجی‌‌ها

اعلامیه‌‌پذیرش نهایی

سند تاریخچه پروژه

سیستم نرم‌‌افزاری پذیرفته شده نهایی

استانداردهای رویه


بخش دوم این استاندارد، فعالیتهایی را که برای مدیریت چرخه حیات نرم‌‌افزار بسیار ضروری است، تشریح می‌‌کند. هدف از مدیریت فعالیتها، تولید محصول در قالب بودجه تعیین شده، بر طبق زمانبندی و با کیفیت لازم است. به منظور دستیابی به این هدف باید طرحهایی برای موارد زیر تهیه شوند :


• مدیریت پروژه نرم‌‌افزار


• مدیریت پیکربندی نرم‌‌افزار


• وارسی و اعتبارسنجی نرم‌‌افزار


• تضمین کیفیت نرم‌‌افزار


1- مدیریت پروژه نرم‌‌افزار


مدیریت پروژه نرم‌‌افزار (SPN: Software Project Management) "فرآیند طراحی، سازماندهی، تعیین کارکنان، نظارت، کنترل، رهبری و هدایت یک پروژه نرم‌‌افزاری" می‌‌باشد که در استاندارد ANSI/IEEE Std 1058.1-1987 تعریف شده است.

فعالیت‌‌ها


سازماندهی پروژه


رهبری پروژه


مدیریت ریسک


مدیریت فنی


برنامه‌‌ریزی، زمانبندی و بودجه‌‌بندی کار


گزارش پیشرفت پروژه




طرح مدیریت پروژه نرم‌‌افزار سندی است که مدیریت یک پروژه نرم‌‌افزاری را کنترل می‌‌کند و به چهار قسمت شامل طرحهای مدیریت مراحل SR ، AD ، DD و TR تقسیم می‌‌گردد که جزئیات مندرجات آن در استاندارد درج گردیده است.



2- مدیریت پیکربندی نرم‌‌افزار

مدیریت پیکربندی نرم‌‌افزار عبارت است از نظام به‌‌کارگیری مسیر فنی و اجرایی و نظارت بر :

تعیین و مستندسازی مشخصات فیزیکی و وظیفه‌‌مندی یک عنصر پیکربندی

کنترل تغییرات حاصله در مشخصات مزبور

ثبت گزارش فرآیند تغییرات و وضعیت پیاده‌‌سازی

بررسی پذیرش محصول با توجه به نیازهای تعیین شده

تشخیص پیکربندی

ذخیره‌‌سازی عنصر پیکربندی

کنترل و نظارت بر تغییر پیکربندی

گزارش وضعیت پیکربندی

طرح مدیریت پیکربندی نرم‌‌افزار به چهار قسمت برای مراحل SR ، AD ، DD ، و TR تقسیم می‌‌شود



3- وارسی و اعتبار سنجی نرم‌‌افزار



اصطلاح "وارسی" بسته به مفهومی که از آن انتظار می‌‌رود، دارای معانی متعددی است که سه معنای متداول آن عبارتند از :


عمل بازبینی، بازرسی، آزمون، بررسی، ممیزی و به عبارت دیگر تصدیق و مستندکردن آنکه آیا عناصر فرآیندها، خدمات یا مستندات منطبق با نیازهای تعیین شده هستند یا خیر.
فرآیند ارزیابی یک سیستم یا یک مؤلفه به منظور تعیین آنکه آیا محصولات یک مرحله تولید مشخص ، شرایط وضع شده آغازین آن مرحله را ارضا می‌‌نمایند یا خیر
اثبات رسمی صحت برنامه


اعتبارسنجی نیز بنا بر تعریف ANSI/IEEE عبارت است از "ارزیابی نرم‌‌افزار در پایان تولید به منظور حصول اطمینان از رعایت نیازهای کاربر" . بنابراین اعتبارسنجی، وارسی نهایی است.

فعالیت‌‌ها


بازبینی‌‌ها و بررسی‌‌های فنی و بازرسی‌‌های نرم‌‌افزار


بررسی اینکه نیازهای نرم‌‌افزار متناسب با خواسته‌‌های کاربر قابل ردیابی هستند


بررسی اینکه مؤلفه‌‌های طراحی متناسب با نیازهای نرم‌‌افزار قابل ردیابی هستند


بررسی تأییدیه‌‌های رسمی و الگوریتم‌‌ها


آزمون واحدها


آزمون یکپارچگی


آزمون سیستم


آزمون پذیرش


ممیزی

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


4- تضمین کیفیت نرم‌‌افزار


تضمین کیفیت نرم‌‌افزار (SQA: Software Quality Assurance) عبارت است از "طرح برنامه‌‌ریزی شده منظم از کلیه عملیات لازم برای حصول اطمینان کافی و مناسب در خصوص انطباق عنصر یا محصول تولید شده با مشخصات فنی مورد نظر". فعالیت تضمین کیفیت، فرآیند اثبات صحت به‌‌کارگیری این استانداردهاست. در پروژه‌‌های کوچک این فعالیت می‌‌تواند توسط گروه تولید نرم‌‌افزار انجام پذیرد ولی در پروژه‌‌های بزرگ، افراد مشخص و متخصص می‌‌بایست برای انجام این وظیفه منسوب گردند.



فعالیت‌‌ها


مدیریت مستندسازی


نظارت بر استانداردها، رویه‌‌ها، پیمان‌‌ها و معیارها


بازبینی‌‌ها و ممیزی‌‌ها


فعالیتهای آزمون


گزارش مشکلات و انجام اصلاحات


بررسی مناسب بودن ابزارها، شیوه‌‌ها و روش‌‌ها


کنترل برنامه‌‌ها و رسانه‌‌ها

کنترل پیمانکارها


گردآوری، ذخیره‌‌سازی و نگهداری گزارشات


آموزش


مدیریت ریسک


·        نتیجه گیری


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


اهداف اصلی رعایت شده در تضمین کیفیت نرم افزار و اثرات آن بر چرخه تولید و صادرات آنها به شرح ذیل ذکر می گردد :


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


2-    پیاده سازی نرم افزارهای با کیفیت بالا .


3-    پیاده سازی نرم افزار های با ارزش افزوده بالا .


4-    قابلیت ساخت و طراحی نرم افزار بر اساس استاندار های جهانی .


5-    قابلیت ساخت و طراحی نرم افزار های شکست ناپذیر .


6-  آمادگی برای ورود به بازارهای جهانی  نرم افزار از طریق رعایت قوا نین و استانداردهای حاکم بر فرآیند مهندسی نرم افزار

درباره فنارا

اصول کاری فنارا برای خدمت به مشتریان:
  • خلق ارزش و ارائه خدمات ناب به مشتریان
  • ارتباط و تعامل سازنده با مشتریان
  • تلفیق توان خبرگان مجرب و اساتید دانشگاه
  • بهره‌گیری از متدولوژی‌ها و به‌روش‌های روز دنیا
  • بکارگیری برترین فناوری‌های روز دنیا
  • سازماندهي و اجرای مدل‌های مدیریتی بروز
شرکت فنارا با بیش از دو دهه تجربه كارشناسی و مدیریتی در توسعه و کاربرد فناوري اطلاعات و ارتباطات در سازمانهای بزرگ و کوچک در خدمت به صنایع مختلف کشور، قابليت عرضه خدمات در حوزه‌هاي متنوعي را دارد.

آخرین مقالات

تماس با ما

فنارا

پاسداران - بوستان سوم (پایین تر از برج سفید) پلاک 3 - واحد 5

تلفن: 22791540 - 87761969

دورنگار: 89774672

رایانامه: info [at] fanaraco [dot] com

درخواست همکاری:

jobcvs1389 [at] gmail [dot] com

شبکه های اجتماعی

اشتراک در خبرنامه: