[ez-toc]
مقدمه: اهمیت استانداردهای مهندسی نرمافزار
استانداردهای مهندسی نرمافزار مجموعهای از فرآیندهای تعریفشده هستند که وظایف کلیدی در طول چرخه حیات یک محصول نرمافزاری را مشخص میکنند. این استانداردها چارچوبی مستقل از متدولوژیهای اجرایی ارائه میدهند تا تیمها و سازمانها بتوانند با حفظ کیفیت، امنیت، و قابلیت نگهداری، نرمافزارهای خود را توسعه داده و مستند کنند.
استانداردهای مهندسی نرمافزار مجموعهای از فرآیندها میباشند که تمامی وظایفی که بایستی در چرخه تولید و بهکارگیری یک محصول نرمافزاری انجام شود را بیان میکنند. این فرآیندها چگونگی انجام یک وظیفه را بیان نمیکنند بلکه صرفاً مجموعهای از وظایف و فعالیتها را بیان میکنند که بایستی در دورههای زمانی معینی انجام شوند. این رویه در تمامی استانداردهای مهندسی نرمافزار رعایت میشود تا اولاً آنها فراتر از یک متدولوژی عمل کنند و ثانیاً اجازه دهند مهندسین نرمافزار بر حسب نوع محصول نرمافزاری و نیاز خود از متدولوژیای که چگونگی انجام وظایف را بیان میکند، استفاده کنند.
معرفی مهمترین استانداردهای بینالمللی مهندسی نرمافزار
1. استاندارد ISO/IEC 12207
| ویژگی | توضیح |
|---|---|
| سازمان تدوینکننده | ISO و IEC |
| تاریخ انتشار اولیه | 1995 |
| آخرین نسخه | نسخه سوم – سال 2017 |
| کاربرد | چرخه عمر توسعه، مدیریت، نگهداری و کیفیت نرمافزار |
| ویژگیها | انعطافپذیر، جامع، قابل ترکیب با سایر استانداردها (CMMI، SPICE) |
نکات کلیدی:
-
پوشش کامل از تحلیل نیازمندی تا نگهداری
-
تأکید بر کیفیت نرمافزار
-
قابلیت ترکیب با استانداردهای مدیریت خدمات و بلوغ فرآیند
2. استاندارد IEEE/EIA 12207
| ویژگی | توضیح |
|---|---|
| سازمان تدوینکننده | IEEE و EIA |
| نسخه اول | 1987 توسط EIA |
| نسخه دوم | 1995 (مشترک IEEE/EIA) |
| نسخه سوم | 2008 (توسط IEEE) |
| چارچوب | فرآیندهای توسعه، تحویل و نگهداری نرمافزار |
| ویژگیها | مدیریت پروژه، کیفیت، تغییرات، ریسک، توسعه و نگهداری |
کاربردها:
-
توسعه و تحویل نرمافزار
-
مدیریت تغییر و نسخهبندی
-
مدیریت کیفیت و ریسک پروژه
-
پشتیبانی از تیمهای بزرگ نرمافزاری
3. استاندارد ECSS-Q-ST-80C (ESA)
| ویژگی | توضیح |
|---|---|
| سازمان تدوینکننده | آژانس فضایی اروپا (ESA) |
| نسخه اولیه | 1984 |
| آخرین نسخه | 2022 |
| محدوده کاربرد | پروژههای نرمافزاری فضایی |
| ویژگیها | ساختار شفاف، دقیق، قابل درک، با پشتیبانی از مدیریت پروژه و کنترل کیفیت |
مزایا:
-
تدوینشده برای پروژههای حساس و با ریسک بالا
-
بازخوردپذیر، بهروز، و مختصر
-
مدیریت جامع کیفیت نرمافزار در صنعت فضایی
تفاوت استانداردها در یک نگاه
| معیار | ISO/IEC 12207 | IEEE/EIA 12207 | ECSS-Q-ST-80C |
|---|---|---|---|
| سازمان توسعهدهنده | ISO / IEC | IEEE / EIA | ESA |
| تمرکز اصلی | مدیریت چرخه عمر نرمافزار | توسعه و مدیریت پروژه نرمافزار | نرمافزار در پروژههای فضایی |
| انعطافپذیری | بالا | متوسط | محدود به پروژههای خاص |
| قابلیت ترکیب با دیگر مدلها | بله (CMMI، SPICE) | بله | مح |
ا
در زمینه مهندسی نرمافزار، مجموعههای متعددی از استانداردهای بینالمللی تهیه و منتشر شدهاست که هر یک مفروضات و دامنه کاربرد خاص خود را دارند. از جمله معروفترین این استانداردها در جهان میتوان به نمونههای زیر اشاره کرد:
- مجموعه استانداردهای ISO/IEC
- مجموعه استانداردهای مهندسی نرمافزار IEEE,IEEE/EIA12207
- استانداردهای مهندسی نرمافزار آژانس فضایی اروپا
استاندارد مهندسی نرمافزار ISO/IEC 12207 یک استاندارد بینالمللی است که توسط سازمان بینالمللی استانداردها (ISO) و کمیسیون بینالمللی الکتروتکنیک (IEC) توسعه دادهشدهاست. این استاندارد برای تعریف فرآیندها و فعالیتهای مربوط به توسعه نرمافزار و مدیریت آنها استفاده میشود.
خلاصه تاریخچه استاندارد ISO/IEC 12207 به شرح زیر است:
- در سال ۱۹۹۵، نسخه اول این استاندارد منتشر شد. نسخه اول شامل مجموعهای از فرآیندها و فعالیتهای مربوط به توسعه نرمافزار بود و بهعنوان یک استاندارد مرجع برای مدیریت فرآیندهای توسعه نرمافزار استفاده میشد.
- در سال ۲۰۰۸، نسخه دوم این استاندارد منتشر شد. نسخه دوم شامل بهبودهایی در مفاهیم و مدلهای استاندارد اولیه بود و با توجه به تغییرات و نیازهای صنعت نرمافزار بهروزرسانی شد.
- در سال ۲۰۱۷، نسخه سوم استاندارد ISO/IEC 12207 منتشر شد. نسخه سوم شامل بهبودهایی در مفاهیم و مدلهای استاندارد دوم بود و با هدف تطابق با استانداردهای جدید مهندسی نرمافزار و تغییرات صنعت نرمافزار بهروزرسانی شد.
استاندارد ISO/IEC 12207 در حال حاضر بهعنوان یک استاندارد معتبر و شناخته شده در حوزه مهندسی نرمافزار استفاده میشود و توسط سازمانها و توسعه دهندگان نرمافزار در سراسر جهان بهعنوان یک راهنمای مهم برای مدیریت و توسعه نرمافزار استفاده میشود. ویژگیهای اساسی استاندارد ISO/IEC 12207 عبارتنداز:
- پوشش گسترده: استاندارد ISO/IEC 12207 شامل مجموعهای از فرآیندها، فعالیتها و تسهیلکنندهها است که در طول چرخه عمر نرمافزار از تحلیل نیازمندیها تا تحویل و نگهداری نرمافزار مورد استفاده قرار میگیرد.
- انعطافپذیری: استاندارد ISO/IEC 12207 اجازه میدهد تا سازمانها و تیمهای توسعه نرمافزار فرآیندها و فعالیتها را بر اساس نیازهای خود تنظیم و سفارشیسازی کنند.
- تعامل با سایر استانداردها: استاندارد ISO/IEC 12207 با سایر استانداردها و مدلهای مهندسی نرمافزار مانند CMMI (Capability Maturity Model Integration)، ISO/IEC 15504 (SPICE) و ISO/IEC 20000 (IT Service Management) سازگاری دارد و میتواند با آنها ترکیب شود.
- تمرکز بر کیفیت: استاندارد ISO/IEC 12207 تأکید زیادی بر کیفیت نرمافزار دارد و فرآیندها و فعالیتهایی را برای ارزیابی و بهبود کیفیت نرمافزار در نظر میگیرد.
- مدیریت پروژه: استاندارد ISO/IEC 12207 شامل راهنماها و توصیههایی برای مدیریت پروژههای توسعه نرمافزار است که شامل برنامهریزی، کنترل پروژه، مدیریت ریسک و مدیریت تغییرات است.
- جزييات بيشتر در پيوست اين سند در بخش 8-1 بيان شده است.
استاندارد مهندسی نرمافزار IEEE 12207 (نسخه بومی شده ISO/IEC 12207) یک استاندارد بینالمللی است که مراحل و فعالیتهای مختلف مرتبط با توسعه و مدیریت نرمافزار را تعریف میکند. این استاندارد توسط IEEE (مؤسسه مهندسان برق و الکترونیک) و EIA (انجمن صنایع الکترونیک آمریکا) توسعه دادهشدهاست.
تاریخچه استاندارد IEEE 12207 به سال 1987 بر میگردد، زمانی که نسخه اول این استاندارد توسط EIA توسعه و منتشر شد. در سال 1995، IEEE ا ین استاندارد را بهصورت مشترک با EIA بهروزرسانی کرد و نسخه دوم آن را منتشر کرد. این نسخه بهعنوان IEEE/EIA 12207 شناخته میشد. در سال 2008، استاندارد IEEE 12207 بهصورت جداگانه توسط IEEE بهروزرسانی شد و نسخه سوم آن منتشر شد.
در این نسخه، تغییرات و بهبودهایی در مفاهیم و فرآیندهای استاندارد اعمال شد. استاندارد IEEE/EIA 12207، که بهعنوان استاندارد مهندسی نرمافزار شناخته میشود، یک چارچوب کلی برای فرآیندهای توسعه، تحویل و نگهداری نرمافزار است. این استاندارد شامل ویژگیهای اساسی زیر است:
- فرآیندهای مهندسی نرمافزار: استاندارد IEEE/EIA 12207 شامل فرآیندهای مهندسی نرمافزار مختلفی است که شامل تحلیل نیازها، طراحی، پیادهسازی، تست، نصب، نگهداری و تحویل نرمافزار است.
- مدیریت پروژه: این استاندارد شامل روشها و فرآیندهای مدیریت پروژه است که برای برنامهریزی، کنترل و نظارت بر پروژههای نرمافزاری استفاده میشود.
- مدیریت تغییرات: این استاندارد شامل روشها و فرآیندهای مدیریت تغییرات است که برای مدیریت تغییرات در نرمافزار و مدیریت نسخههای مختلف آن استفاده میشود.
- مدیریت کیفیت: این استاندارد شامل روشها و فرآیندهای مدیریت کیفیت است که برای اطمینان از کیفیت نرمافزار و ارزیابی و تضمین کیفیت استفاده میشود.
- مدیریت ریسک: این استاندارد شامل روشها و فرآیندهای مدیریت ریسک است که برای شناسایی، تحلیل و کنترل ریسکهای مرتبط با پروژههای نرمافزاری استفاده میشود.
- مدیریت توسعه و نگهداری: این استاندارد شامل روشها و فرآیندهای مدیریت توسعه و نگهداری است که برای توسعه و بهروز رسانی نرمافزار و نگهداری آن در طول عمر استفاده میشود.
از استاندارد IEEE/EIA 12207 در مهندسی نرمافزار برای کاربردهای مختلفی استفاده میشود. برخی از کاربردهای اساسی این استاندارد عبارتند از:
- توسعه نرمافزار: استاندارد IEEE/EIA 12207 برای توسعه نرمافزار استفاده میشود و شامل فرآیندهای تحلیل نیازها، طراحی، پیادهسازی و تست نرمافزار است.
- تحویل نرمافزار: استاندارد برای فرآیندهای تحویل نرمافزار به مشتری استفاده میشود و شامل فرآیندهای نصب، راه اندازی و تحویل نرمافزار به مشتری است.
- نگهداری نرمافزار: استاندارد برای فرآیندهای نگهداری و بهروز رسانی نرمافزار استفاده میشود و شامل فرآیندهای تعمیر، بهبود و تغییر نرمافزار است.
- مدیریت پروژه: استاندارد برای مدیریت پروژههای نرمافزاری استفاده میشود و شامل برنامهریزی، کنترل و نظارت بر پروژهها است.
- مدیریت کیفیت: استاندارد برای مدیریت کیفیت نرمافزار استفاده میشود و شامل فرآیندهای ارزیابی کیفیت، تضمین کیفیت و بهبود کیفیت است.
- مدیریت ریسک: استاندارد برای مدیریت ریسکهای مرتبط با پروژههای نرمافزاری استفاده میشود و شامل شناسایی، تحلیل و کنترل ریسکها است.
جزييات بيشتر در پيوست اين سند در بخش 8-2 بيان شده است.
مجموعه استانداردهای مهندسی نرمافزار آژانس فضایی اروپا
اولین نسخه استانداردهای آژانس فضایی اروپا (ESA: European Space Agency) در سال 1984 منتشر شد که رعایت آنها برای کلیه نرمافزارهای آژانس فضایی اروپا ضروری و اجباری است. دریافت بازخوردها و راهنماییهای کاربران از سراسر اروپا، به اصلاح و بهبود استانداردها کمک نمود. جدیدترین نسخه این استاندارد در سال 2022 منتشر شدهاست. این استانداردها تعریف موجز و کوتاهی از نحوه تولید نرمافزار مطلوب و با کیفیت قابل قبول ارائه میدهند که مختصر و مفید و قابل درک بوده و بر اصولی عملی و دقیق استوار میباشند. همچنین ضمن اینکه جنبههای اصلی و ضروری هر پروژهای را در بر میگیرند،
در قالب مجموعهایاز چارچوبها و ضرورتها، حداکثر انتخاب ممکن را نیز برای مدیر پروژه فراهم میآورند. استانداردهای مهندسی نرمافزار ESA تحت نظارت هیئت کنترل و استانداردسازی نرمافزار (BSSC) وابسته به آژانس فضایی اروپا تنظیم و بازبینی شدهاست.
استاندارد مهندسی نرمافزار سازمان فضایی اروپا (ESA) که بهعنوان ECSS-Q-ST-80C شناخته میشود، یک استاندارد بین المللی برای مهندسی نرمافزار در صنعت فضایی است. این استاندارد توسط سازمان فضایی اروپا توسعه دادهشدهاست و برای استفاده در پروژههای فضایی ESA و همچنین توسط سازمانهای فضایی دیگر در سراسر جهان مورد استفاده قرار میگیرد.
همانطور که اشاره شد، تاریخچه استاندارد ECSS-Q-ST-80C به سال 1984 برمیگردد، زمانی که ESA تصمیم گرفت استانداردهای مهندسی نرمافزار خود را توسعه دهد. این استانداردها در ابتدا با نام “ECSS-Q-80” منتشر شدند و در سال 1996 به ECSS-Q-ST-80 تغییر نام دادند. از آن زمان بهبعد، استاندارد ECSS-Q-ST-80 بهطور مداوم بهروز رسانی شده و نسخههای مختلفی از آن منتشر شدهاست.
استاندارد ECSS-Q-ST-80C شامل مجموعهای از الزامات و راهنماها برای مهندسی نرمافزار در صنعت فضایی است. این استاندارد شامل مراحل مختلف فرآیند توسعه نرمافزار، اصول مدیریت پروژه، مدیریت تغییرات، مدیریت کیفیت و سایر موضوعات مرتبط با مهندسی نرمافزار در صنعت فضایی است.
استاندارد ECSS-Q-ST-80C بهعنوان یک استاندارد بین المللی در صنعت فضایی شناخته شدهاست و توسط سازمانهای فضایی مختلف در سراسر جهان برای تضمین کیفیت و اطمینان از عملکرد صحیح نرمافزار در پروژههای فضایی استفاده میشود. جزييات بيشتر در پيوست اين سند در بخش 8-3 ارائه شده است.
نتیجهگیری
استانداردهای مهندسی نرمافزار ابزارهای مهمی برای تضمین کیفیت، اثربخشی، و پایداری نرمافزارها هستند. انتخاب استاندارد مناسب به عوامل مختلفی چون نوع پروژه، صنعت هدف، حساسیت عملکرد و نیازهای سازمان بستگی دارد. استانداردهایی مانند ISO/IEC 12207، IEEE 12207 و ECSS-Q-ST-80C به تیمهای توسعه نرمافزار کمک میکنند تا پروژههای خود را با ساختار، دقت و کیفیت بالاتری پیش ببرند.
برای دریافت اطلاعات بیشتر در خصوص پلتفرم های هوشمند شبکه گاز به این مطلب مراجعه کنید
سوالات متداول
استاندارد ISO/IEC 12207 چه کاربردی دارد؟
این استاندارد چارچوبی برای فرآیندهای چرخه عمر نرمافزار ارائه میدهد، از تحلیل نیازها تا نگهداری نهایی.
تفاوت IEEE 12207 و ISO/IEC 12207 چیست؟
IEEE 12207 نسخه بومیشده استاندارد ISO است که در برخی مفاهیم توسعه یافتهتر و سازگارتر با پروژههای صنعتی آمریکاست.
استاندارد ESA در چه پروژههایی استفاده میشود؟
در پروژههای فضایی اروپا یا پروژههایی که به دقت و قابلیت اطمینان بسیار بالا نیاز دارند.
آیا میتوان از این استانداردها به صورت ترکیبی استفاده کرد؟
بله، بسیاری از سازمانها از ترکیب ISO/IEC 12207 با CMMI، SPICE و سایر چارچوبها استفاده میکنند.
