پیشگفتاربا شناسایی مشکلات موجود کشور در زمینه مستندسازی تولید محصولات نرمافزاری، طرح ملی استاندارد مستندسازی توسط شورای پژوهشهای علمی کشور تصویب شد. این گزارش که نتیجه مطالعه اقدامات انجام شده در سایر کشورها میباشد معرف این مطلب است که کشورهای پیشرفته سعی کردهاند استانداردهایی را برای تولید و مستندسازی محصولات نرمافزاری مورد نیاز دستگاههای دولتی یا نظامی خود تدوین کنند و بر اعمال آنها توسط پیمانکاران تولید کننده محصولات نرمافزاری نظارت نمایند.با توجه به تجارت بینالملل و نیاز به استفاده از استانداردهایی که مورد قبول کشورها باشد، مؤسسه بینالمللی ISO با همکاری مؤسسه IEC با تشکیل گروههای اشتراکی (JTC1) اقدام به تدوین استانداردهای بینالمللی برای تولید و مستندسازی محصولات نرمافزاری نمودند. استاندارد ISO/IEC 12207 که در سال 1995 ارائه شد توصیههایی برای کل چرخه ساخت و حیات یک محصول نرمافزاری پیشنهاد کرده است. پس از آن انجمن IEEE که مهمترین انجمن حرفهای بینالمللی در تدوین استانداردهای مهندسی نرمافزار است به کمک مؤسسه EIA اقدام به بومیسازی استاندارد 12207 در جامعه امریکا نمود و نسخه بومی شده و بهتر توصیف شده آن تحت عنوان IEEE/EIA 12207 را ارائه نمود. نهایتاً DOD امریکا که چهار دهه است استانداردهای متعددی را برای تولید و مستندسازی محصولات نرمافزاری ارائه کرده است با پذیرش استاندارد IEEE/EIA 12207 ، استانداردهای قبلی خود یعنی J-STD-016-1995 و MIL-STD-498 را از رده خارج کرد. یادآوری میگردد سایر کشورهای پیشرفته مانند ژاپن، آلمان، انگلستان، کانادا، ... نیز اقدام به بومیسازی استاندارد ISO/IEC 12207 در کشور خود نمودهاند.
این گزارش بصورت اجمالی استانداردهای مهندسی نرمافزار تدوین شده توسط DOD امریکا، سازمان NASA، آژانس فضایی اروپا، مؤسسه IEEE و مؤسسه ISO/IEC را تشریح مینماید. علاوه بر آن دو زبان PSL/PSA و UML را که به ترتیب برای مدلسازی محصولات نرمافزاری بر اساس روش ساختیافته و شیگرا هستند، و نهایتاً ابزارها و محیطهای پشتیبانی تولید نرمافزار را معرفی میکند.
در بخش بعدی این طرح ملی، استاندارد ISO/IEC 12207 بعنوان استاندارد مرجع تولید و مستندسازی محصولات نرمافزاری انتخاب میگردد امّا سعی میشود با استفاده از استانداردهای MIL-STD-498 و IEEE/EIA 12207 و الزامات خاص کشور ایران، استاندارد مستندسازی محصولات نرمافزاری ایران تهیه و تدوین و در گزارش بعدی ارائه گردد.
بخش اول مقدمهنرمافزار در مقایسه با سایر مصنوعات تولیدی یک تفاوت مهم و اساسی دارد. مصنوعات (مانند اتومبیل، تلویزیون، یخچال، ...) بر اساس یک مجموعه وظیفهمندی قطعی ساخته میشوند و پس از آن در وظیفهمندیهای مصنوع تغییری ایجاد نمیگردد. البته ممکن است وظیفهمندیهای هر مصنوع، کم یا زیاد شود امّا هرگونه تغییر در وظیفهمندیها منجر به ساخت مدل جدیدی از آن مصنوع میگردد و کسی انتظار ندارد که این وظیفهمندیهای جدید در مدلهای موجود اعمال گردند. امّا نرمافزار پس از تولید اولیه تا پایان عمر در حال تغییر و تحول است و بایستی متناسب با نیازها، سیاستها، و قوانین جدید تغییر یابد. بنابراین بهتر است نرمافزار با یک موجود زنده به جای یک مصنوع مقایسه گردد. بدیهی است نرمافزاری را میتوان به راحتی و به شکل صحیح تغییر داد که راجع به آن به اندازه کافی اطلاعات در دسترس باشد. چنانچه خواستههای اولیه، طراحی، چگونگی پیادهسازی و آزمون نرمافزارها در مراحل ساخت به خوبی مستند شوند در اینصورت اعمال تغییرات در نرمافزارها به راحتی قابل مدیریت و انجام است. بدیهی است که تأثیر تغییرات جدید بایستی در مستندات سیستم اعمال گردد تا مستندات آخرین وضعیت سیستم نرمافزاری را نمایش دهند.
چهار دهه از شروع اقدامات اولیه برای ساماندهی پروسه تولید نرمافزار میگذرد. اوایل به دلیل فقدان یک رویه منظم (متدولوژی) برای طی پروسه تولید نرمافزار، مشکلات زیادی فراروی تولید کنندگان نرمافزار بود که نتیجه آن کیفیت ضعیف نرمافزارهای تولیدی، سربار هزینهای، و عدم تحقق برنامههای زمانبندی شده بود.
کمکم نیاز به تدوین متدولوژی، مدل ساخت، و تبعیت از آنها در پروسه ساخت نرمافزار بیشتر ملموس شد و در این چهاردهه متدولوژیهای زیادی تدوین شد و با بکارگیری آنها، نرمافزارهای با کیفیت بیشتری تولید شد. این متدولوژیها عموماً روی یکی از دو روش ساختیافته یا شیگرا پایهگذاری شدهاند. متدولوژیهای بر پایه روش ساختیافته در اواسط دهه 80 میلادی کاملاً به بلوغ خود رسیدند و متدولوژیهای بر پایه شیگرایی نیز با طراحی زبان مدلسازی UML سریعتر به سمت وحدت و بلوغ خود نزدیک شدند. در همین راستا، مؤسساتی با بهرهگیری از تجربیات حاصل از دهها سال تولید نرمافزار اقدام به تدوین استانداردها و توصیههایی برای تولید نرمافزار نمودند. مؤسساتی که در تدوین استانداردهای مورد نیاز صنعت نرمافزار پیشرو هستند عبارتند از مؤسسه DOD(1.Department of Defense) (بزرگترین کارفرمای متقاضی تولید نرمافزار)، سازمان NASA، آژانس فضایی اروپا، مؤسسه IEEE (بزرگترین انجمن حرفهای در رشته IT ( 2. Information Technology))، و مؤسسه تدوین استاندارد ISO.
استانداردهای مهندسی نرمافزار مجموعهای از پروسهها میباشند که تمامی وظایفی که بایستی در چرخه تولید و بکارگیری یک محصول نرمافزاری انجام شود را بیان میکنند. نکته مهم اینست که این پروسهها چگونگی انجام یک وظیفه را بیان نمیکنند بلکه صرفاً مجموعهای از وظایف و فعالیتها را بیان میکنند که بایستی در دورههای زمانی معینی انجام شوند. این رویه در تمامی استانداردهای مهندسی نرمافزار رعایت میشود تا اولاً آنها فراتر از یک متدولوژی عمل کنند و ثانیاً اجازه دهند مهندسین نرمافزار بر حسب نوع محصول نرمافزاری از متدولوژی که چگونگی انجام وظایف را بیان میکند، استفاده کنند. نکته جالب توجه اینست که استانداردهای جهانی حتی از نظر نوع نگرش مهندسی نرمافزار (ساختیافته یا شیگرا) نیز خود را محدود نکردهاند و توصیهها و قوانینی را مطرح کردهاند که در هر دو دیدگاه قابلیت استفاده دارند.
متأسفانه به علت فقدان استاندارد یا لااقل توصیهای واحد برای مستندسازی محصولات نرمافزاری و بیتوجهی سازندگان نرمافزار و کارفرمایان، نرمافزارهای تولید شده در ایران اکثراً فاقد حداقل مستندات لازم هستند. البته فشار کارفرمایان به پیمانکاران برای کاهش هزینه تولید نرمافزار عموماً منجر به حذف و یا کم رنگ شدن بخش مستندات سیستمهای نرمافزاری شده است. یادآوری میگردد بطور متوسط 30% هزینه تولید هر نرمافزار صرف تهیه مستندات آن سیستم میگردد.
در این طرح ملی در نظر است توصیههایی ارائه گردد تا حداقل مستندات لازم برای هر محصول نرمافزاری توسط تولیدکنندگان نرمافزار تهیه گردد. در این گزارش سعی شده است شناختی از استانداردهای اصلی مهندسی نرمافزار با تکیه بر مستندسازی بصورت اجمالی ارائه گردد. در این راستا، استانداردهای مهندسی نرمافزار تدوین شده توسط DOD ، سازمان NASA ، آژانس فضایی اروپا، مؤسسه IEEE ، و مؤسسه ISO/IEC جمعآوری شده که هر یک از آنها بطور خلاصه معرفی میگردد.
با توجه به مطالب ارائه شده در بخش دوم این گزارش، استاندارد ISO/IEC 12207 بعنوان استاندارد مرجع تولید و مستندسازی سیستمهای نرمافزاری انتخاب میگردد. امّا سعی میشود با استفاده از استانداردهای MIL-STD-498 ، J-STD-016-1995 و IEEE/EIA 12207 و الزامات خاص کشور ایران، استاندارد مستندسازی محصولات نرمافزاری ایران تهیه و در گزارش بعدی ارائه گردد.
در ادامه این گزارش، ابتداء اصول و تحولات استانداردهای مهندسی نرمافزار در بخش دوم شرح داده میشود. سپس به ترتیب، استانداردهای DOD ، سازمان NASA ، آژانس فضایی اروپا، مؤسسه ISO/IEC و مؤسسه IEEE هر یک در یک بخش مستقل بطور خلاصه معرفی میگردد. در بخشهای هشتم و نهم گزارش، دو زبان PSL/PSA و UML که به ترتیب زبانهای مدلسازی بر اساس روش ساختیافته و روش شیگراء هستند معرفی میگردد. این زبانها مخصوصاً UML میتوانند تاثیرات خوبی بر استانداردسازی مستندات محصولات نرمافزاری بگذارند. نهایتاً در بخش دهم، ابزارها و محیطهای پشتیبانی تولید نرمافزار و چند نمونه از آنها بصورت اجمالی معرفی میگردد.
دکتر سعید جلیلی. عضو هیئت علمی گروه مهندسی کامپیوتر - دانشگاه تربیت مدرس
سلام باتشکر فراوان
با سلام و تشکر ...لطفا در خصوص REQUIRMENT DUCUMENT STRUCTURE بخش سوم خواسته های عملیاتی مطلب ارائه بفرمایید