Gilbert
دوشنبه 17 آذر 1382, 01:27 صبح
1- مقدمه
در زیر تعریف موجز و کوتاهی از نحوه تولید نرمافزار مطلوب و با کیفیت قابل قبول بیان شده است. مطالب زیر مختصر و مفید و قابل درک بوده و بر اصولی عملی و دقیق استوار میباشند. همچنین ضمن اینکه جنبههای اصلی و ضروری هر پروژهای را در بر میگیرند، در قالب مجموعهایاز چارچوبها و ضرورتها، حداکثر انتخاب ممکن را نیز برای مدیر پروژه فراهم میآورند. استانداردهای مهندسی نرمافزار ESA تحت نظارت هیئت کنترل و استانداردسازی نرمافزار (BSSC) وابسته به آژانس فضایی اروپا تنظیم و بازبینی شده است.
2- حوزه کاربرد
این استاندارد کلیه نرمافزارهای شرکتی یا صنعتی را تحت پوشش قرار میدهد. در این استاندارد، نرمافزار بهعنوان برنامهها، روالها، قوانین و کلیه اسناد و مدارک مربوط به عملکرد و بهرهبرداری از یک سیستم کامپیوتری، تعریف شده است. این استانداردها کلیه وجوه نرمافزاری یک سیستم، به انضمام واسطهای آن با سختافزار کامپیوتر و دیگر مؤلفههای سیستم را در بر میگیرند. نرمافزار ممکن است زیر سیستمی از یک سیستم پیچیدهتر و یا سیستم مستقل باشد.
3- ساختار استاندارد
استانداردهای مهندسی نرمافزار ESA به سه بخش اصلی تقسیم میشوند.
بخش اول، استانداردهای محصولProducts :
استانداردها، توصیهها، و رهنمودهای مربوط به محصول را شامل میشود.
بخش دوم، استانداردهای رویه Procedure :
رویههای مورد استفاده در مدیریت یک پروژه نرمافزاری را تشریح میکند.
بخش سوم، پیوستها Appendices :
شامل خلاصهها، جداول، فرمها، و فهرستی از روشهای ضروری میباشد.
سه گروه روش استاندارد در این مجموعه استفاده شدهاند که عبارتند از :
• روشهای ضروری : در این روشها از عبارت "الزامی است" استفاده شده است. از این روشها باید بدون هیچگونه استثنایی در کلیه پروژههای نرمافزاری پیروی شود.
• روشهای توصیه شده : در این روشها از عبارت "میبایست" استفاده شده است و به روشهای قویاً توصیه شده اشاره میکند. عدم پیروی از این روشها نیاز به توجیه مناسب دارد.
• رهنمودها : در این روشها از عبارت "ممکن است" یا "میتوانند" استفاده شده است و به رهنمودها اشاره میکنند. عدم پیروی از رهنمودها، نیازی به توجیه ندارد.
استانداردهای مهندسی نرمافزار ESA ، کاربران را به استفاده از هیچیک از روشهای ویژه مهندسی نرمافزار و یا ابزار نرمافزاری وادار نمیکنند، بلکه تنها روشهای ضروری توصیه شده و رهنمودها را برای پروژههای مهندسی نرمافزار تشریح کرده و به هر پروژه امکان میدهد که بهترین روش را جهت پیادهسازی انتخاب نماید.
در ادامه، توصیف خلاصهای از استانداردهای مهندسی نرمافزار ESA ارائه میگردد. همانطور که ذکر گردید این استانداردها در دو بخش ارائه شده است : استانداردهای محصول و استانداردهای رویه که هر کدام به صورت اجمالی معرفی میگردد.
3-1- استانداردهای محصول
این بخش، کلیات چرخه حیات نرمافزار را تشریح میکند. در این استانداردها غالباً از عبارت "پروژه نرمافزاری" استفاده میشود. واضح است که تولید نرمافزار جنبههای سختافزاری کامپیوتر را نیز در بر میگیرد.
محصولات نرمافزاری لازم است با روش معینی طراحی و اجرا گردند. یک "مدل چرخه حیات"، فعالیتهای پروژه را در قالب مراحل مشخص سازماندهی میکند و تعیین مینماید کدام یک از فعالیتها باید در کدام مرحله انجام گیرد.
بر اساس این استاندارد شش مرحله بایستی در چرخه حیات یک نرمافزار طی شود که عبارتند از :
- مرحله UR : تعیین نیازهای کاربر (User Requirements)
- مرحله SR : تعیین نیازهای نرمافزار (Software Requirements)
- مرحله AD : طراحی معماری (Architectural Design)
- مرحله DD : طراحی تفصیلی و تولید برنامه (Detailed Design)
- مرحله TR : انتقال و واگذاری نرمافزار برای بهرهبرداری (Transfer of the Software)
- مرحله OM : بهرهبرداری و نگهداری (Operation & Maintenance)
این مراحل به عنوان مدل چرخه حیات در شکل شماره 1 نشان داده شده است. چهار مرحله اول با یک بازبینی خاتمه مییابند. پنج مقطع کاری مهم، پیشرفت چرخه حیات نرمافزار را مشخص مینمایند که این مقاطع در شکل شماره 1 به صورت مستطیلهای کوچک مشخص شدهاند و عبارتنداز :
• تصویب سند نیازهای کاربر (URD)
• تصویب سند نیازهای نرمافزار (SRD)
• تصویب سند طراحی معماری (ADD)
• تصویب سند طراحی تفصیلی (DDD)، راهنمای کاربر نرمافزار (SUM) ، اعلام آمادگی جهت پذیرش آزمونهای پذیرش موقت
• اعلام پذیرش موقت و تحویل سند انتقال نرمافزار (STD)
آخرین مقطع کاری، نه در پایان این مرحله، بلکه در پایان دوره تضمین، خاتمه مییابد. این مقاطع بهعنوان حداقل مراحل لازم جهت یک ارتباط کاری که باید در کلیه پروژهها ارائه گردند انتخاب شدهاند. در ادامه، هر یک از مراحل ششگانه بطور مختصر شرح داده میشود.
3-1-1- مرحله UR : تعیین نیازهای کاربر
مرحله UR را میتوان "مرحله تعریف مسئله" چرخه حیات نامید. هدف این مرحله تدقیق یک فکر در مورد کاری که باید انجام گیرد در قالب تعریفی است از آنچه که از یک سیستم کامپیوتری انتظار میرود. نتیجه مرحله UR، سند نیازهای کاربر (URD) است. این سند برای کل پروژه نرمافزار سند مهمی به شمار میآید. زیرا مفاهیم اساسی که بر پایه آنها نرمافزار مورد پذیرش قرار میگیرد را تعریف مینماید.
ورودیها : هیچگونه ورودی رسمی مورد نیاز نیست. اگرچه نتایج مصاحبهها، بررسیها، و مطالعات میتوانند جهت تنظیم خواستههای کاربر مفید باشند.
فعالیتها
• دریافت نیازهای کاربر
• تعیین محیط عملیاتی
• تشخیص نیازهای کاربر
• بازبینیها
خروجیها
• سند نیازهای کاربر
• طرحهای آزمون پذیرش
• طرح مدیریت پروژه برای مرحله SR (محدوده پروژه، برآورد هزینه و طرح مدیریت)
• طرح مدیریت پیکربندی برای مرحله SR (روالهای مدیریت، ابزارهای CASE)
• طرح وارسی و اعتبار سنجی برای مرحله SR
• طرح تضمین کیفیت برای مرحله SR
3-1-2- مرحله SR : تعیین نیازهای نرمافزار
مرحله SR را میتوان "مرحله تحلیل مسئله" چرخه حیات نامید. یک بخش ضروری در این مرحله، ساخت الگویی است که بیانگر آن باشد که نرمافزار چه کاری را باید انجام دهد، نه اینکه چگونه باید آنرا انجام دهد. در این حالت ممکن است ساخت نمونههای اولیه به منظور روشن نمودن نیازهای نرمافزار ضروری باشد.
ورودیها
• تمامی خروجیهای مرحله قبل به عنوان ورودی در این مرحله استفاده میشوند.
فعالیتها
• ساخت مدل منطقی
• تشخیص نیازهای نرمافزار
• بازبینیها
خروجیها
• سند نیازهای نرمافزار
• طرحهای آزمون سیستم
• طرح مدیریت پروژه برای مرحله AD
• طرح مدیریت پیکربندی برای مرحله AD
• طرح وارسی و اعتبارسنجی برای مرحله AD
• طرح تضمین کیفیت برای مرحله AD
3-1-3- مرحله AD : طراحی معماری
هدف مرحله طراحی معماری، تعیین ساختار نرمافزار است. الگوی ساخته شده در مرحله SR نقطه شروع این مرحله است. این الگو با تخصیص وظیفهمندیها به مؤلفههای نرمافزار و تعیین گردش اطلاعات و عملیات بین آنها به طرح معماری نرمافزار تغییر مییابد.
در این مرحله ممکن است طرح چندین بار تکرار شود. در واقع امکان استفاده از مدلهای مختلف آبشاری، افزایشی و ... در این مرحله وجود دارد. در این مرحله ممکن است نمونهسازی بخشهای حساس نرمافزار جهت تأیید فرضیات طرح اصلی ضروری باشد.
ورودیها
• کلیه خروجیهای مرحله SR
فعالیتها
• ساختار مدل فیزیکی شامل :
تجزیه نرمافزار به مؤلفهها
پیادهسازی الزامات غیر وظیفهمندی
معیارهای کیفیت طرح
بررسی مزیتهای نسبی مابین طرحهای جایگزین
• ساختار مدل معماری شامل :
تعیین وظیفه مؤلفهها
تعیین ساختمان دادهها
تعیین میزان استفاده از منابع کامپیوتری
انتخاب زبان برنامهنویسی
• بازبینی طرح
خروجیها
• سند طراحی معماری
• طرحهای آزمون یکپارچگی
• طرح مدیریت پروژه برای مرحله DD
• طرح مدیریت پیکربندی برای مرحله DD
• طرح وارسی و اعتبارسنجی برای مرحله DD
• طرح تضمین کیفیت برای مرحله DD
3-1-4- مرحله DD : طراحی تفصیلی و تولید برنامه
هدف این مرحله، طراحی تفصیلی نرمافزار، برنامهنویسی، مستندسازی و آزمون آن است. سند طراحی تفصیلی و راهنمای کاربر نرمافزار همزمان با برنامهنویسی و آزمون آن تولید میشود. در آغاز، سند طراحی تفصیلی و راهنمای کاربر، بخشهای متناظر با سطوح فوقانی سیستم را در بر میگیرند. همچنانکه طرح به سطوح پایینتر جریان مییابد، زیربخشهای مربوطه افزوده میشوند. در پایان این مرحله، مستندات تکمیل میشوند و به همراه برنامهها، خروجیهای این مرحله را تشکیل میدهند.
ورودیها
• تمامی خروجیهای مرحله AD به عنوان ورودی استفاده میشود.
فعالیتها
• طراحی تفصیلی
• تولید شامل :
برنامهنویسی
مجتمعسازی
آزمون
• بازبینی
خروجیها
• برنامهها
• سند طراحی تفصیلی
• راهنمای کاربر نرمافزار
• طرح مدیریت پروژه برای مرحله TR
• طرح مدیریت پیکربندی برای مرحله TR
• ویژگیهای آزمون پذیرش
• طرح تضمین کیفیت برای مرحله TR
3-1-5- مرحله TR : انتقال و واگذاری نرمافزار برای بهرهبرداری
هدف مرحله TR نصب نرمافزار در محیط عملیاتی است و نشان دادن اینکه کلیه قابلیتهای تشریح شده در سند نیازهای کاربر (URD) در نرمافزار مربوطه موجود است.
ورودیها
• همه خروجیهای مرحله DD
فعالیتها
• نصب
• آزمونهای موقت
خروجیها
• اعلامیه پذیرش موقت
• سیستم نرمافزاری پذیرفته شده موقت
• سند انتقال نرمافزار
3-1-6- مرحله OM : بهرهبرداری و نگهداری
در مرحله بهرهبرداری، ابتدا استفاده از نرمافزار آغاز میشود. بهرهبرداری از نرمافزار فراتر از حدود این استاندارد است. لذا این فصل فقط به بحث در خصوص نگهداری میپردازد. هدف از نگهداری نرمافزار اطمینان از آن است که محصول در طول دوره حیات خود کماکان نیازهای کاربر را برآورده خواهد نمود.
خروجی عمده این مرحله سند تاریخچه پروژه (PHD) میباشد که مراحل تولید، بهرهبرداری و نگهداری محصول را به طور خلاصه بیان میکند.
ورودیها
• خروجیهای مرحله TR
فعالیتها
• پذیرش نهایی
• نگهداری
خروجیها
• اعلامیهپذیرش نهایی
• سند تاریخچه پروژه
• سیستم نرمافزاری پذیرفته شده نهایی
3-2- استانداردهای رویه
بخش دوم این استاندارد، فعالیتهایی را که برای مدیریت چرخه حیات نرمافزار بسیار ضروری است، تشریح میکند. هدف از مدیریت فعالیتها، تولید محصول در قالب بودجه تعیین شده، بر طبق زمانبندی و با کیفیت لازم است. به منظور دستیابی به این هدف باید طرحهایی برای موارد زیر تهیه شوند :
• مدیریت پروژه نرمافزار
• مدیریت پیکربندی نرمافزار
• وارسی و اعتبارسنجی نرمافزار
• تضمین کیفیت نرمافزار
شکل شماره 2 مستندسازی طرحهای فوقالذکر را به طور خلاصه بیان میدارد. عناوین مستندات از نام بخشهایشان به وسیله علامت "/" جدا میشوند. (به عنوان مثال SPMP/SR قسمت بیان نیازهای نرمافزار در طرح مدیریت پروژه نرمافزار میباشد)
3-2-1- مدیریت پروژه نرمافزار
مدیریت پروژه نرمافزار (SPN: Software Project Management) "فرآیند طراحی، سازماندهی، تعیین کارکنان، نظارت، کنترل، رهبری و هدایت یک پروژه نرمافزاری" میباشد که در استاندارد ANSI/IEEE Std 1058.1-1987 تعریف شده است.
فعالیتها
• سازماندهی پروژه
• رهبری پروژه
• مدیریت ریسک
• مدیریت فنی
• برنامهریزی، زمانبندی و بودجهبندی کار
• گزارش پیشرفت پروژه
طرح مدیریت پروژه نرمافزار سندی است که مدیریت یک پروژه نرمافزاری را کنترل میکند و به چهار قسمت شامل طرحهای مدیریت مراحل SR ، AD ، DD و TR تقسیم میگردد که جزئیات مندرجات آن در استاندارد درج گردیده است.
3-2-2- مدیریت پیکربندی نرمافزار
مدیریت پیکربندی نرمافزار عبارت است از نظام بهکارگیری مسیر فنی و اجرایی و نظارت بر :
• تعیین و مستندسازی مشخصات فیزیکی و وظیفهمندی یک عنصر پیکربندی
• کنترل تغییرات حاصله در مشخصات مزبور
• ثبت گزارش فرآیند تغییرات و وضعیت پیادهسازی
• بررسی پذیرش محصول با توجه به نیازهای تعیین شده
فعالیتها
• تشخیص پیکربندی
• ذخیرهسازی عنصر پیکربندی
• کنترل و نظارت بر تغییر پیکربندی
• گزارش وضعیت پیکربندی
طرح مدیریت پیکربندی نرمافزار به چهار قسمت برای مراحل SR ، AD ، DD ، و TR تقسیم میشود
3-2-3- وارسی و اعتبار سنجی نرمافزار
اصطلاح "وارسی" بسته به مفهومی که از آن انتظار میرود، دارای معانی متعددی است که سه معنای متداول آن عبارتند از :
• عمل بازبینی، بازرسی، آزمون، بررسی، ممیزی و به عبارت دیگر تصدیق و مستندکردن آنکه آیا عناصر فرآیندها، خدمات یا مستندات منطبق با نیازهای تعیین شده هستند یا خیر.
• فرآیند ارزیابی یک سیستم یا یک مؤلفه به منظور تعیین آنکه آیا محصولات یک مرحله تولید مشخص ، شرایط وضع شده آغازین آن مرحله را ارضا مینمایند یا خیر
• اثبات رسمی صحت برنامه
اعتبارسنجی نیز بنا بر تعریف ANSI/IEEE عبارت است از "ارزیابی نرمافزار در پایان تولید به منظور حصول اطمینان از رعایت نیازهای کاربر" . بنابراین اعتبارسنجی، وارسی نهایی است.
فعالیتها
• بازبینیها و بررسیهای فنی و بازرسیهای نرمافزار
• بررسی اینکه نیازهای نرمافزار متناسب با خواستههای کاربر قابل ردیابی هستند
• بررسی اینکه مؤلفههای طراحی متناسب با نیازهای نرمافزار قابل ردیابی هستند
• بررسی تأییدیههای رسمی و الگوریتمها
• آزمون واحدها
• آزمون یکپارچگی
• آزمون سیستم
• آزمون پذیرش
• ممیزی
طرح وارسی و اعتبار سنجی نرمافزار در هفت بخش که شامل برنامههای وارسی برای مراحل SR ، AD ، DD و شرح مشخصات آزمونهای واحد، یکپارچگی، سیستم و پذیرش میباشند تقسیم میگردد.
3-2-4- تضمین کیفیت نرمافزار
تضمین کیفیت نرمافزار (SQA: Software Quality Assurance) عبارت است از "طرح برنامهریزی شده منظم از کلیه عملیات لازم برای حصول اطمینان کافی و مناسب در خصوص انطباق عنصر یا محصول تولید شده با مشخصات فنی مورد نظر". فعالیت تضمین کیفیت، فرآیند اثبات صحت بهکارگیری این استانداردهاست. در پروژههای کوچک این فعالیت میتواند توسط گروه تولید نرمافزار انجام پذیرد ولی در پروژههای بزرگ، افراد مشخص و متخصص میبایست برای انجام این وظیفه منسوب گردند.
فعالیتها
• مدیریت مستندسازی
• نظارت بر استانداردها، رویهها، پیمانها و معیارها
• بازبینیها و ممیزیها
• فعالیتهای آزمون
• گزارش مشکلات و انجام اصلاحات
• بررسی مناسب بودن ابزارها، شیوهها و روشها
• کنترل برنامهها و رسانهها
• کنترل پیمانکارها
• گردآوری، ذخیرهسازی و نگهداری گزارشات
• آموزش
• مدیریت ریسک
طرح تضمین کیفیت نرمافزار در چهار مرحله UR ، SR ، AD و DD انجام میگیرد.
پ.ن. ادامه دارد (البته اگه وقت بشه)
در زیر تعریف موجز و کوتاهی از نحوه تولید نرمافزار مطلوب و با کیفیت قابل قبول بیان شده است. مطالب زیر مختصر و مفید و قابل درک بوده و بر اصولی عملی و دقیق استوار میباشند. همچنین ضمن اینکه جنبههای اصلی و ضروری هر پروژهای را در بر میگیرند، در قالب مجموعهایاز چارچوبها و ضرورتها، حداکثر انتخاب ممکن را نیز برای مدیر پروژه فراهم میآورند. استانداردهای مهندسی نرمافزار ESA تحت نظارت هیئت کنترل و استانداردسازی نرمافزار (BSSC) وابسته به آژانس فضایی اروپا تنظیم و بازبینی شده است.
2- حوزه کاربرد
این استاندارد کلیه نرمافزارهای شرکتی یا صنعتی را تحت پوشش قرار میدهد. در این استاندارد، نرمافزار بهعنوان برنامهها، روالها، قوانین و کلیه اسناد و مدارک مربوط به عملکرد و بهرهبرداری از یک سیستم کامپیوتری، تعریف شده است. این استانداردها کلیه وجوه نرمافزاری یک سیستم، به انضمام واسطهای آن با سختافزار کامپیوتر و دیگر مؤلفههای سیستم را در بر میگیرند. نرمافزار ممکن است زیر سیستمی از یک سیستم پیچیدهتر و یا سیستم مستقل باشد.
3- ساختار استاندارد
استانداردهای مهندسی نرمافزار ESA به سه بخش اصلی تقسیم میشوند.
بخش اول، استانداردهای محصولProducts :
استانداردها، توصیهها، و رهنمودهای مربوط به محصول را شامل میشود.
بخش دوم، استانداردهای رویه Procedure :
رویههای مورد استفاده در مدیریت یک پروژه نرمافزاری را تشریح میکند.
بخش سوم، پیوستها Appendices :
شامل خلاصهها، جداول، فرمها، و فهرستی از روشهای ضروری میباشد.
سه گروه روش استاندارد در این مجموعه استفاده شدهاند که عبارتند از :
• روشهای ضروری : در این روشها از عبارت "الزامی است" استفاده شده است. از این روشها باید بدون هیچگونه استثنایی در کلیه پروژههای نرمافزاری پیروی شود.
• روشهای توصیه شده : در این روشها از عبارت "میبایست" استفاده شده است و به روشهای قویاً توصیه شده اشاره میکند. عدم پیروی از این روشها نیاز به توجیه مناسب دارد.
• رهنمودها : در این روشها از عبارت "ممکن است" یا "میتوانند" استفاده شده است و به رهنمودها اشاره میکنند. عدم پیروی از رهنمودها، نیازی به توجیه ندارد.
استانداردهای مهندسی نرمافزار ESA ، کاربران را به استفاده از هیچیک از روشهای ویژه مهندسی نرمافزار و یا ابزار نرمافزاری وادار نمیکنند، بلکه تنها روشهای ضروری توصیه شده و رهنمودها را برای پروژههای مهندسی نرمافزار تشریح کرده و به هر پروژه امکان میدهد که بهترین روش را جهت پیادهسازی انتخاب نماید.
در ادامه، توصیف خلاصهای از استانداردهای مهندسی نرمافزار ESA ارائه میگردد. همانطور که ذکر گردید این استانداردها در دو بخش ارائه شده است : استانداردهای محصول و استانداردهای رویه که هر کدام به صورت اجمالی معرفی میگردد.
3-1- استانداردهای محصول
این بخش، کلیات چرخه حیات نرمافزار را تشریح میکند. در این استانداردها غالباً از عبارت "پروژه نرمافزاری" استفاده میشود. واضح است که تولید نرمافزار جنبههای سختافزاری کامپیوتر را نیز در بر میگیرد.
محصولات نرمافزاری لازم است با روش معینی طراحی و اجرا گردند. یک "مدل چرخه حیات"، فعالیتهای پروژه را در قالب مراحل مشخص سازماندهی میکند و تعیین مینماید کدام یک از فعالیتها باید در کدام مرحله انجام گیرد.
بر اساس این استاندارد شش مرحله بایستی در چرخه حیات یک نرمافزار طی شود که عبارتند از :
- مرحله UR : تعیین نیازهای کاربر (User Requirements)
- مرحله SR : تعیین نیازهای نرمافزار (Software Requirements)
- مرحله AD : طراحی معماری (Architectural Design)
- مرحله DD : طراحی تفصیلی و تولید برنامه (Detailed Design)
- مرحله TR : انتقال و واگذاری نرمافزار برای بهرهبرداری (Transfer of the Software)
- مرحله OM : بهرهبرداری و نگهداری (Operation & Maintenance)
این مراحل به عنوان مدل چرخه حیات در شکل شماره 1 نشان داده شده است. چهار مرحله اول با یک بازبینی خاتمه مییابند. پنج مقطع کاری مهم، پیشرفت چرخه حیات نرمافزار را مشخص مینمایند که این مقاطع در شکل شماره 1 به صورت مستطیلهای کوچک مشخص شدهاند و عبارتنداز :
• تصویب سند نیازهای کاربر (URD)
• تصویب سند نیازهای نرمافزار (SRD)
• تصویب سند طراحی معماری (ADD)
• تصویب سند طراحی تفصیلی (DDD)، راهنمای کاربر نرمافزار (SUM) ، اعلام آمادگی جهت پذیرش آزمونهای پذیرش موقت
• اعلام پذیرش موقت و تحویل سند انتقال نرمافزار (STD)
آخرین مقطع کاری، نه در پایان این مرحله، بلکه در پایان دوره تضمین، خاتمه مییابد. این مقاطع بهعنوان حداقل مراحل لازم جهت یک ارتباط کاری که باید در کلیه پروژهها ارائه گردند انتخاب شدهاند. در ادامه، هر یک از مراحل ششگانه بطور مختصر شرح داده میشود.
3-1-1- مرحله UR : تعیین نیازهای کاربر
مرحله UR را میتوان "مرحله تعریف مسئله" چرخه حیات نامید. هدف این مرحله تدقیق یک فکر در مورد کاری که باید انجام گیرد در قالب تعریفی است از آنچه که از یک سیستم کامپیوتری انتظار میرود. نتیجه مرحله UR، سند نیازهای کاربر (URD) است. این سند برای کل پروژه نرمافزار سند مهمی به شمار میآید. زیرا مفاهیم اساسی که بر پایه آنها نرمافزار مورد پذیرش قرار میگیرد را تعریف مینماید.
ورودیها : هیچگونه ورودی رسمی مورد نیاز نیست. اگرچه نتایج مصاحبهها، بررسیها، و مطالعات میتوانند جهت تنظیم خواستههای کاربر مفید باشند.
فعالیتها
• دریافت نیازهای کاربر
• تعیین محیط عملیاتی
• تشخیص نیازهای کاربر
• بازبینیها
خروجیها
• سند نیازهای کاربر
• طرحهای آزمون پذیرش
• طرح مدیریت پروژه برای مرحله SR (محدوده پروژه، برآورد هزینه و طرح مدیریت)
• طرح مدیریت پیکربندی برای مرحله SR (روالهای مدیریت، ابزارهای CASE)
• طرح وارسی و اعتبار سنجی برای مرحله SR
• طرح تضمین کیفیت برای مرحله SR
3-1-2- مرحله SR : تعیین نیازهای نرمافزار
مرحله SR را میتوان "مرحله تحلیل مسئله" چرخه حیات نامید. یک بخش ضروری در این مرحله، ساخت الگویی است که بیانگر آن باشد که نرمافزار چه کاری را باید انجام دهد، نه اینکه چگونه باید آنرا انجام دهد. در این حالت ممکن است ساخت نمونههای اولیه به منظور روشن نمودن نیازهای نرمافزار ضروری باشد.
ورودیها
• تمامی خروجیهای مرحله قبل به عنوان ورودی در این مرحله استفاده میشوند.
فعالیتها
• ساخت مدل منطقی
• تشخیص نیازهای نرمافزار
• بازبینیها
خروجیها
• سند نیازهای نرمافزار
• طرحهای آزمون سیستم
• طرح مدیریت پروژه برای مرحله AD
• طرح مدیریت پیکربندی برای مرحله AD
• طرح وارسی و اعتبارسنجی برای مرحله AD
• طرح تضمین کیفیت برای مرحله AD
3-1-3- مرحله AD : طراحی معماری
هدف مرحله طراحی معماری، تعیین ساختار نرمافزار است. الگوی ساخته شده در مرحله SR نقطه شروع این مرحله است. این الگو با تخصیص وظیفهمندیها به مؤلفههای نرمافزار و تعیین گردش اطلاعات و عملیات بین آنها به طرح معماری نرمافزار تغییر مییابد.
در این مرحله ممکن است طرح چندین بار تکرار شود. در واقع امکان استفاده از مدلهای مختلف آبشاری، افزایشی و ... در این مرحله وجود دارد. در این مرحله ممکن است نمونهسازی بخشهای حساس نرمافزار جهت تأیید فرضیات طرح اصلی ضروری باشد.
ورودیها
• کلیه خروجیهای مرحله SR
فعالیتها
• ساختار مدل فیزیکی شامل :
تجزیه نرمافزار به مؤلفهها
پیادهسازی الزامات غیر وظیفهمندی
معیارهای کیفیت طرح
بررسی مزیتهای نسبی مابین طرحهای جایگزین
• ساختار مدل معماری شامل :
تعیین وظیفه مؤلفهها
تعیین ساختمان دادهها
تعیین میزان استفاده از منابع کامپیوتری
انتخاب زبان برنامهنویسی
• بازبینی طرح
خروجیها
• سند طراحی معماری
• طرحهای آزمون یکپارچگی
• طرح مدیریت پروژه برای مرحله DD
• طرح مدیریت پیکربندی برای مرحله DD
• طرح وارسی و اعتبارسنجی برای مرحله DD
• طرح تضمین کیفیت برای مرحله DD
3-1-4- مرحله DD : طراحی تفصیلی و تولید برنامه
هدف این مرحله، طراحی تفصیلی نرمافزار، برنامهنویسی، مستندسازی و آزمون آن است. سند طراحی تفصیلی و راهنمای کاربر نرمافزار همزمان با برنامهنویسی و آزمون آن تولید میشود. در آغاز، سند طراحی تفصیلی و راهنمای کاربر، بخشهای متناظر با سطوح فوقانی سیستم را در بر میگیرند. همچنانکه طرح به سطوح پایینتر جریان مییابد، زیربخشهای مربوطه افزوده میشوند. در پایان این مرحله، مستندات تکمیل میشوند و به همراه برنامهها، خروجیهای این مرحله را تشکیل میدهند.
ورودیها
• تمامی خروجیهای مرحله AD به عنوان ورودی استفاده میشود.
فعالیتها
• طراحی تفصیلی
• تولید شامل :
برنامهنویسی
مجتمعسازی
آزمون
• بازبینی
خروجیها
• برنامهها
• سند طراحی تفصیلی
• راهنمای کاربر نرمافزار
• طرح مدیریت پروژه برای مرحله TR
• طرح مدیریت پیکربندی برای مرحله TR
• ویژگیهای آزمون پذیرش
• طرح تضمین کیفیت برای مرحله TR
3-1-5- مرحله TR : انتقال و واگذاری نرمافزار برای بهرهبرداری
هدف مرحله TR نصب نرمافزار در محیط عملیاتی است و نشان دادن اینکه کلیه قابلیتهای تشریح شده در سند نیازهای کاربر (URD) در نرمافزار مربوطه موجود است.
ورودیها
• همه خروجیهای مرحله DD
فعالیتها
• نصب
• آزمونهای موقت
خروجیها
• اعلامیه پذیرش موقت
• سیستم نرمافزاری پذیرفته شده موقت
• سند انتقال نرمافزار
3-1-6- مرحله OM : بهرهبرداری و نگهداری
در مرحله بهرهبرداری، ابتدا استفاده از نرمافزار آغاز میشود. بهرهبرداری از نرمافزار فراتر از حدود این استاندارد است. لذا این فصل فقط به بحث در خصوص نگهداری میپردازد. هدف از نگهداری نرمافزار اطمینان از آن است که محصول در طول دوره حیات خود کماکان نیازهای کاربر را برآورده خواهد نمود.
خروجی عمده این مرحله سند تاریخچه پروژه (PHD) میباشد که مراحل تولید، بهرهبرداری و نگهداری محصول را به طور خلاصه بیان میکند.
ورودیها
• خروجیهای مرحله TR
فعالیتها
• پذیرش نهایی
• نگهداری
خروجیها
• اعلامیهپذیرش نهایی
• سند تاریخچه پروژه
• سیستم نرمافزاری پذیرفته شده نهایی
3-2- استانداردهای رویه
بخش دوم این استاندارد، فعالیتهایی را که برای مدیریت چرخه حیات نرمافزار بسیار ضروری است، تشریح میکند. هدف از مدیریت فعالیتها، تولید محصول در قالب بودجه تعیین شده، بر طبق زمانبندی و با کیفیت لازم است. به منظور دستیابی به این هدف باید طرحهایی برای موارد زیر تهیه شوند :
• مدیریت پروژه نرمافزار
• مدیریت پیکربندی نرمافزار
• وارسی و اعتبارسنجی نرمافزار
• تضمین کیفیت نرمافزار
شکل شماره 2 مستندسازی طرحهای فوقالذکر را به طور خلاصه بیان میدارد. عناوین مستندات از نام بخشهایشان به وسیله علامت "/" جدا میشوند. (به عنوان مثال SPMP/SR قسمت بیان نیازهای نرمافزار در طرح مدیریت پروژه نرمافزار میباشد)
3-2-1- مدیریت پروژه نرمافزار
مدیریت پروژه نرمافزار (SPN: Software Project Management) "فرآیند طراحی، سازماندهی، تعیین کارکنان، نظارت، کنترل، رهبری و هدایت یک پروژه نرمافزاری" میباشد که در استاندارد ANSI/IEEE Std 1058.1-1987 تعریف شده است.
فعالیتها
• سازماندهی پروژه
• رهبری پروژه
• مدیریت ریسک
• مدیریت فنی
• برنامهریزی، زمانبندی و بودجهبندی کار
• گزارش پیشرفت پروژه
طرح مدیریت پروژه نرمافزار سندی است که مدیریت یک پروژه نرمافزاری را کنترل میکند و به چهار قسمت شامل طرحهای مدیریت مراحل SR ، AD ، DD و TR تقسیم میگردد که جزئیات مندرجات آن در استاندارد درج گردیده است.
3-2-2- مدیریت پیکربندی نرمافزار
مدیریت پیکربندی نرمافزار عبارت است از نظام بهکارگیری مسیر فنی و اجرایی و نظارت بر :
• تعیین و مستندسازی مشخصات فیزیکی و وظیفهمندی یک عنصر پیکربندی
• کنترل تغییرات حاصله در مشخصات مزبور
• ثبت گزارش فرآیند تغییرات و وضعیت پیادهسازی
• بررسی پذیرش محصول با توجه به نیازهای تعیین شده
فعالیتها
• تشخیص پیکربندی
• ذخیرهسازی عنصر پیکربندی
• کنترل و نظارت بر تغییر پیکربندی
• گزارش وضعیت پیکربندی
طرح مدیریت پیکربندی نرمافزار به چهار قسمت برای مراحل SR ، AD ، DD ، و TR تقسیم میشود
3-2-3- وارسی و اعتبار سنجی نرمافزار
اصطلاح "وارسی" بسته به مفهومی که از آن انتظار میرود، دارای معانی متعددی است که سه معنای متداول آن عبارتند از :
• عمل بازبینی، بازرسی، آزمون، بررسی، ممیزی و به عبارت دیگر تصدیق و مستندکردن آنکه آیا عناصر فرآیندها، خدمات یا مستندات منطبق با نیازهای تعیین شده هستند یا خیر.
• فرآیند ارزیابی یک سیستم یا یک مؤلفه به منظور تعیین آنکه آیا محصولات یک مرحله تولید مشخص ، شرایط وضع شده آغازین آن مرحله را ارضا مینمایند یا خیر
• اثبات رسمی صحت برنامه
اعتبارسنجی نیز بنا بر تعریف ANSI/IEEE عبارت است از "ارزیابی نرمافزار در پایان تولید به منظور حصول اطمینان از رعایت نیازهای کاربر" . بنابراین اعتبارسنجی، وارسی نهایی است.
فعالیتها
• بازبینیها و بررسیهای فنی و بازرسیهای نرمافزار
• بررسی اینکه نیازهای نرمافزار متناسب با خواستههای کاربر قابل ردیابی هستند
• بررسی اینکه مؤلفههای طراحی متناسب با نیازهای نرمافزار قابل ردیابی هستند
• بررسی تأییدیههای رسمی و الگوریتمها
• آزمون واحدها
• آزمون یکپارچگی
• آزمون سیستم
• آزمون پذیرش
• ممیزی
طرح وارسی و اعتبار سنجی نرمافزار در هفت بخش که شامل برنامههای وارسی برای مراحل SR ، AD ، DD و شرح مشخصات آزمونهای واحد، یکپارچگی، سیستم و پذیرش میباشند تقسیم میگردد.
3-2-4- تضمین کیفیت نرمافزار
تضمین کیفیت نرمافزار (SQA: Software Quality Assurance) عبارت است از "طرح برنامهریزی شده منظم از کلیه عملیات لازم برای حصول اطمینان کافی و مناسب در خصوص انطباق عنصر یا محصول تولید شده با مشخصات فنی مورد نظر". فعالیت تضمین کیفیت، فرآیند اثبات صحت بهکارگیری این استانداردهاست. در پروژههای کوچک این فعالیت میتواند توسط گروه تولید نرمافزار انجام پذیرد ولی در پروژههای بزرگ، افراد مشخص و متخصص میبایست برای انجام این وظیفه منسوب گردند.
فعالیتها
• مدیریت مستندسازی
• نظارت بر استانداردها، رویهها، پیمانها و معیارها
• بازبینیها و ممیزیها
• فعالیتهای آزمون
• گزارش مشکلات و انجام اصلاحات
• بررسی مناسب بودن ابزارها، شیوهها و روشها
• کنترل برنامهها و رسانهها
• کنترل پیمانکارها
• گردآوری، ذخیرهسازی و نگهداری گزارشات
• آموزش
• مدیریت ریسک
طرح تضمین کیفیت نرمافزار در چهار مرحله UR ، SR ، AD و DD انجام میگیرد.
پ.ن. ادامه دارد (البته اگه وقت بشه)