با شناسايي مشكلات موجود كشور در زمينه مستندسازي توليد محصولات نرمافزاري، طرح ملي استاندارد مستندسازي توسط شوراي پژوهشهاي علمي كشور تصويب شد. اين گزارش كه نتيجه مطالعه اقدامات انجام شده در ساير كشورها ميباشد معرف اين مطلب است كه كشورهاي پيشرفته سعي كردهاند استانداردهايي را براي توليد و مستندسازي محصولات نرمافزاري مورد نياز دستگاههاي دولتي يا نظامي خود تدوين كنند و بر اعمال آنها توسط پيمانكاران توليد كننده محصولات نرمافزاري نظارت نمايند.
با توجه به تجارت بينالملل و نياز به استفاده از استانداردهايي كه مورد قبول كشورها باشد، مؤسسه بينالمللي 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 ميتوانند تاثيرات خوبي بر استانداردسازي مستندات محصولات نرمافزاري بگذارند. نهايتاً در بخش دهم، ابزارها و محيطهاي پشتيباني توليد نرمافزار و چند نمونه از آنها بصورت اجمالي معرفي ميگردد.
دكتر سعيد جليلي. عضو هيئت علمي گروه مهندسي كامپيوتر - دانشگاه تربيت مدرس
با توجه به تجارت بينالملل و نياز به استفاده از استانداردهايي كه مورد قبول كشورها باشد، مؤسسه بينالمللي 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 ميتوانند تاثيرات خوبي بر استانداردسازي مستندات محصولات نرمافزاري بگذارند. نهايتاً در بخش دهم، ابزارها و محيطهاي پشتيباني توليد نرمافزار و چند نمونه از آنها بصورت اجمالي معرفي ميگردد.
دكتر سعيد جليلي. عضو هيئت علمي گروه مهندسي كامپيوتر - دانشگاه تربيت مدرس