استانداردهای مهندسی نرم افزار
#1
Note 
ضرورت تهیه و تدوین استاندارد در صنعت بر همگان روشن است و نرم افزار كه بعنوان یك مقولة فراگیر و بسیار مهم در جهان صنعتی امروز شناخته می شود از این قاعده مستثنی نبوده و نیست. در طی چند دهة گذشته و در مقابله با بحران موجود در تولید محصولات نرم افزاری، متخصصین و صاحبنظران، با بوجود آوردن علوم مهندسی نرم افزار، تلاشهای ارزنده بسیاری را در راستای قوام بخشیدن، برقراری و بهبود نظام تولید نرم افزار بانجام رسانیده اند. اما ویژگیهای خاص این صنعت نوین كه در اثر رشد تكنولوژی، با جهش سریع و تغییر زود هنگام نسلها، و نیز با رُشد فزاینده و همه جانبه كاربردهای آن همراه بوده است، زمینه ساز تداوم برخی ابهامات و پیچیدگیها، و همچنین بوجود آمدن مسائل جدید در مبانی و امور مرتبط با آن می باشد. این است كه علیرغم انجام فعالیتهای گوناگون توسط مؤسسات استاندارد سازی، هنوز استانداردهای جامع و مورد پذیرش جهانی در این زمینه موجود نیست و استانداردها و رهنمودهای حاصل از این فعالیتها، علیرغم اهمیت بسیار زیاد همچنان سیر تكاملی خود را سپری می نمایند.

كیفیت نیز بعنوان یكی از مهمترین مفاهیم در مهندسی نرم افزار، نظر بسیاری از كارشناسان را بخود جلب نموده و تلاشهای بسیاری را بخود اختصاص داده است. در این مقوله، همواره دو دیدگاه "كنترل كیفیت محصول نهایی" و "تضمین كیفیت تولید" بعنوان راه كارهای مستقل، و یا مكمل یكدیگر، در نظام كیفیت مطرح بوده اند. نتایج فعالیتهای مذكور، بصورت مجموعه ای از كتب، استانداردها و رهنمودهای كلی تحت عناوین تعریف كیفیت، فرایند تضمین كیفیت[1]، ارزیابی[2] و كنترل كیفیت، مهندسی كیفیت و ... به جامعة كاربران عرضه شده است. در همین راستا و در جهت حفظ همگامی و هماهنگی با پیشرفتهای جهانی در این زمینه، استاندارد مهندسی نرم افزار_رهنمود عمومی در تعریف كیفیت محصولات نرم افزاری، بعنوان یكی از استانداردهای پایه، از خانوادة استانداردهای ضروری در زمینه كیفیت و بعنوان اولین فعالیت رسمی در این موضوع توسط شورای عالی انفورماتیک تهیه و تدوین شده است.

در بسیاری از متون فنی اینچنین عنوان شده است كه كیفیت بر مبنای خواسته های مشتری تعریف می شود. اگرچه این نظریه بطور كلی صحیح است، اما بهمین دلیل(كلی بودن)، فاقد ارزش عملیاتی و غیر قابل اتكاء است، زیرا خواسته ها، خود مبتنی و تحت الشعاع پارامترهای مختلف مانند زمان، مكان، رشد تكنولوژی، توان مالی، ادراك، سلیقه، قدرت پذیرش و دیگر محدودیتهای موجود در محیط تولید و استفاده هستند، و بنابر این با تكیه بر این نگرش، كیفیت به مقوله ای نسبی، پارامتری، ناهمگون و تقریباً غیرقابل ارزیابی مبدل می شود. روشن است كه گام اول در حل این مسأله، تخصیص مقادیر مشخص به پارامترهای فوق، و یا محدود كردن آنها، درحد ضرورت یا امكان می باشد. بعبارتی دیگر برای بوجود آوردن امكان اظهار نظر دربارة كیفیت یك محصول، لازم است كه یك تعریف كاربردی و غیرپارامتری برای آن ارائه شود كه قابلیت استفاده در فرایندهای تولید،تضمین و ارزیابی كیفیت را دارا باشد.

بهمین خاطر، متخصصین با تغییر نگرش، و با مطالعه، بررسی و جمع بندی نظریات موجود در این باب به این نتیجه رسیده اند كه از دیدگاه كاربرد، كیفیت یك محصول بصورت جامع، در بر گیرنده مجموعه ای از خصوصیات و مؤلفه های فرعی كیفیت[3] بوده، و از طریق تعریف این مجموعه و تبیین راه كارهای ایجاد و بررسی آنها، قابل تعریف و تشخیص است. روشن است كه در تعیین درجة كیفیت و مرغوبیت، میزان و اندازة این خصوصیات از دیدگاه عموم لزوماً یكسان نیست و نیز شایان توجه اینكه، میان برخی از این خصوصیات، روابط نامتقارن تضاد (معكوس) یا توافق(همراستایی) وجود دارد. بعبارتی دیگر، در شرایط معین(برای مثال از نظر بودجه و امكانات)، افزایش نسبی یك خصوصیت، به كاهش یا افزایش نسبی خصوصیات دیگر منجر می شود. استفاده كنندگان این روش، اعم از تولیدكننده نرم افزار یا دیگر كاربران، بسته به شناخت، سلیقه و توان خود، یك زیر مجموعة منطقی از این خصوصیات را بعنوان عوامل كیفی محصول مدنظر قرارداده، و پس از اولویت بندی و ارزش گذاری از نظر علمی، تجربی، شورایی و یا سلیقه ای(سبُك و سنگین كردن)، با تلاش در آزمایش و سنجش این خصوصیات و جمع بندی نتایج حاصل، به تولید یا ارزیابی كیفیت كلی محصول موردنظر از دیدگاه خود می پردازند. بنابراین تقسیم بندی و تجزیة مذكور، ضمن كاهش پیچیدگی مفهومی، پایه و اساس مناسبی را برای شناخت، ایجاد و ارزیابی كیفیت در نرم افزار فراهم می آورد.
[FONT=arial]كیفیت نرم افزار وخصوصیات آن از دیدگاه كاربر عام[/FONT]

بر اساس تعریف ارائه شده از كیفیت در ، كیفیت نرم افزار بصورت زیر تعریف می گردد:
مجموعة خصوصیات یك محصول نرم افزاری، كه در توانایی آن برای برآورده نمودن نیازهای تصریح شده[4] در مستندات نیازمندیها و نیازهای ضمنی[5] مؤثر است.
از خصوصیاتی كه در تعریف فوق به آنها اشاره شده است با عنوان خصوصیات كیفیت یاد می شود. خصوصیات كیفیت نرم افزار بصورت زیر تعریف می شود:
مجموعه ای از ویژگیهای مرتبط با محصولات نرم افزاری، كه پایه و اساس لازم برای تشریح كیفیت، ایجاد و ارزیابی آن را فراهم می آورد.

كیفیت در بر گیرنده مجموعه ای از خصوصیات كیفیت می باشد، اما در تعیین درجة كیفیت و مرغوبیت یك محصول، میزان و اندازة این خصوصیات از دیدگاه عموم، لزوماً یكسان نیست.
هر یك از این خصوصیات كیفیت، با چندین ویژگی قابل حصول از طریق مهندسی نرم افزار مرتبط است، بعبارتی دیگر با بهره گیری از روشهای مهندسی نرم افزار برای حصول یا تأثیرگذاری بر هر یك از ویژگیها، محصول نرم افزاری از نظر خصوصیات كیفیت مرتبط با آن ویژگی، تحت الشعاع قرار می گیرد.

میان برخی از خصوصیات كیفیت، روابط تضاد(معكوس[6]) و یا توافق(همراستایی[7]) وجود دارد. بعبارتی دیگر، در شرایط معین(برای مثال از نظر بودجه و امكانات)، افزایش نسبی یك خصوصیت، به كاهش یا افزایش نسبی خصوصیات دیگر منجر می شود. خصوصیات كیفیت نرم افزار از دیدگاه كاربر عام عبارتند از:

1_ میزان پوشش دهی وظایف تعیین شده در مستندات نیازمندیها و موارد ضمنیFunctionality
2_ قابلیت اطمینان یا قابل اطمینان بودن(Reliability)
3_ قابلیت استفاده یا قابل استفاده بودن(Usability)
4_ كارآیی یا بعبارتی دیگر پربازده و مؤثر بودن(Efficiency)
5_ قابلیت نگهداشت(Maintenance)
6_ قابلیت حمل یا بعبارتی دیگر قابل انتقال بودن(Portability)
استفاده كنندگان از این استاندارد، بسته به شناخت، سلیقه و توان خود، یك زیر مجموعه از این خصوصیات را بعنوان عوامل تعیین كننده كیفیت محصول مدنظر قرارداده، و پس از اولویت بندی و ارزش گذاری از نظر علمی، تجربی، شورایی و یا بر حسب سلیقه، با تلاش در آزمایش و سنجش این خصوصیات و جمع بندی نتایج حاصل، به تولید یا ارزیابی كیفیت كلی محصول موردنظر از دیدگاه خود می پردازند[8].

[FONT=arial]1_ میزان پوشش دهی وظایف(Functionality)[/FONT]

عبارت است از مجموعه ای از مشخصه ها و ویژگیهای فرعی، كه بر وجود مجموعه ای از وظایف(كاركردها) در محصول دلالت دارد. این مجموعه وظایف، مواردی هستند كه در مستندات نیازمندیها تصریح گردیده و یا بصورت ضمنی در وظایف مورد نیاز كاربر قرار دارند.

[FONT=arial]2_ قابلیت اطمینان(Reliability)[/FONT]

عبارت است از مجموعه ای از مشخصه ها و ویژگیهای فرعی، كه بر توانایی نرم افزار در حفظ سطح كارایی خود، تحت شرایط تصریح شده و در یك محدودة زمانی مشخص دلالت دارد. شرایط و محدودة زمانی موردنظر، مواردی هستند كه در مستندات نیازمندیها تصریح گردیده است.

[FONT=arial]3_ قابلیت استفاده(Usability)[/FONT]

عبارت است از مجموعه ای از مشخصه ها و ویژگیهای فرعی، كه بر تلاش موردنیاز و برآورد فردی مجموعه ای از كاربران در امر استفاده از محصول دلالت دارد. كاربران، مجموعه افراد یا گروههایی هستند كه صراحتاً در مستندات نیازمندیها عنوان گردیده اند و یا بصورت ضمنی در این مجموعه قرار دارند.


[FONT=arial]4_ كارآیی(Efficiency)[/FONT]

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

[FONT=arial]5_ قابلیت نگهداشت(Mintainability)[/FONT]

عبارت است از مجموعه ای از مشخصه ها و ویژگیهای فرعی، كه بر تلاش موردنیاز برای ایجاد تغییرات تعیین شده در نرم افزار دلالت دارد.

[FONT=arial]6_ قابلیت حمل(Portability)[/FONT]

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

[FONT=arial]
ویژگیهای قابل حصول از طریق مهندسی نرم افزار
[/FONT]


ویژگیهای قابل حصول از طریق مهندسی نرم افزاربصورت زیر تعریف می شود:
مجموعه ای از صفات و مشخصه های مرتبط با محصولات نرم افزاری، كه زمینة تشریح، ایجاد و ارزیابی خصوصیات كیفیت محصول را از طریق مهندسی نرم افزار فراهم می آورند.
كیفیت در بر گیرنده مجموعه ای از خصوصیات كیفیت بوده، و هر یك از این خصوصیات كیفیت، با چندین ویژگی قابل حصول از طریق مهندسی نرم افزار مرتبط است. بعبارتی دیگر با بهره گیری از روشهای مهندسی نرم افزار برای ایجاد هر یك از ویژگیها، محصول نرم افزاری از نظر خصوصیات كیفیت مرتبط با آن ویژگی، تحت الشعاع قرار می گیرد.
ویژگیهای قابل حصول از طریق مهندسی نرم افزار عبارتند از:
1_ مناسبت(ٍSuitability)
2- درستی و دقت در ارائة نتایج و تأثیرات(ِAccuracy)
3_ توانایی برقراری روابط موردنظر با دیگر سیستمهای تعیین شده(Interoperability)
4_ رعایت استانداردهای مرتبط با كاربرد(Compatibility)
5_ امنیت(Security)
6_ پختگی یا بلوغ(Maturity)
7_ تحمل خرابی(Fault Tolerance)
8- قابلیت بازگرداندن(Recoverability)
9_ قابل فهم بودن(Understandability)
10_ قابلیت یادگیری(Learnability)
11_ قابلیت اجرا(Operability)
12_ كارایی از نظر زمان (Time Efficiency)
13_ كارایی از نظر منابع(Resource Efficiency)
14_ قابل تحلیل بودن(Analysability)
15_ قابلیت تغییر(Changeability)
16_ ثبات یا پایداری(Stability)
17_ آزمون پذیری(Testability)
18_ تطبیق پذیری محیطی(Adaptability)
19_ قابلیت نصب(Installability)
20_ رعایت استانداردهای مرتبط با قابلیت حمل(Compliance)


[1]Quality Assurance
[2]Evaluation
[3]Quality Charactristics
[4]Stated or explicit
[5]Implied
[6]Reverse
[7]Direct
[8] قابلیت اطمینان و كارآیی از خصوصیاتی هستند كه در نرم  افزارهای حساس مانند نرم افزار پرواز از اهمیت بالایی برخوردار هستند. اگر الحاق نمودن نرم  افزار اصلاح شده به نرم افزار بلادرنگ، در حین اجرا، جزء نیازهای تعیین شده باشد، مقوله قابلیت نگهداشت مطرح می  گردد، درصورتی كه قابلیت حمل در طراحی یا پیاده  سازی این نرم  افزار نقشی نخواهد داشت. از سوی دیگر، در بكارگیری یك نرم  افزار محاسبات و تحلیل علمی و عددی، وجود سهولت در ایجاد تغییرات، و حفظ و نگهداری با در نظر گرفتن قابلیت اطمینان و كارآیی، ضروری است.(NASA Quality Assurance Guidelines)

منبع : استاندارد مهندسی نرم افزار_رهنمود عمومی در تعریف كیفیت محصولات نرم افزاری شورای عالی انفورماتیک

پاسخ
#2
Note 
[FONT=arial]ویژگیهای قابل حصول از طریق مهندسی نرم افزار

[/FONT]
[FONT=Tahoma]ویژگیهای قابل حصول از طریق مهندسی نرم افزاربصورت زیر تعریف می شود:[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]مجموعه ای از صفات و مشخصه های مرتبط با محصولات نرم افزاری، كه زمینة تشریح، ایجاد و ارزیابی خصوصیات كیفیت محصول را از طریق مهندسی نرم افزار فراهم می آورند. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]كیفیت در بر گیرنده مجموعه ای از خصوصیات كیفیت بوده، و هر یك از این خصوصیات كیفیت، با چندین ویژگی قابل حصول از طریق مهندسی نرم افزار مرتبط است. بعبارتی دیگر با بهره گیری از روشهای مهندسی نرم افزار برای ایجاد هر یك از ویژگیها، محصول نرم افزاری از نظر خصوصیات كیفیت مرتبط با آن ویژگی، تحت الشعاع قرار می گیرد.[/FONT][FONT=Tahoma]ویژگیهای قابل حصول از طریق مهندسی نرم افزار عبارتند از:[/FONT][FONT=Tahoma]

[/FONT] [FONT=Tahoma] 1_ مناسبت(ٍSuitability)[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 2- درستی و دقت در ارائة نتایج و تأثیرات(ِAccuracy)[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 3_ توانایی برقراری روابط موردنظر با دیگر سیستمهای تعیین شده(Interoperability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 4_ رعایت استانداردهای مرتبط با كاربرد(Compatibility) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 5_ امنیت(Security)[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 6_ پختگی یا بلوغ(Maturity)[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 7_ تحمل خرابی(Fault Tolerance)[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 8- قابلیت بازگرداندن(Recoverability)[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 9_ قابل فهم بودن(Understandability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 10_ قابلیت یادگیری(Learnability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 11_ قابلیت اجرا(Operability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 12_ كارایی از نظر زمان (Time Efficiency) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 13_ كارایی از نظر منابع(Resource Efficiency) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 14_ قابل تحلیل بودن(Analysability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 15_ قابلیت تغییر(Changeability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 16_ ثبات یا پایداری(Stability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 17_ آزمون پذیری(Testability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 18_ تطبیق پذیری محیطی(Adaptability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 19_ قابلیت نصب(Installability) [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] 20_ رعایت استانداردهای مرتبط با قابلیت حمل(Compliance) [/FONT][FONT=Tahoma]

[/FONT] [FONT=Tahoma]یادآوری 1_ حصول میزان تصریح شده و مورد قبول ضمنی از ویژگی های فوق در انواع نرم افزارها دارای اهمیت است. اما در بودجة معین، ممكن است شرایطی رخ دهد كه حصول میزان موردنظر از یك ویژگی منجر به عدم توانایی در رسیدن به میزان موردنیاز از یك ویژگی دیگر می شود. نظر به اینكه حصول میزان تصریح شده و ضمنی از ویژگی ها، در قسمتهای حساس از نرم افزارهای حساس الزامی می باشد، بنابر این در تولید این قسمت ها، اصل بر حصول كلیة ضروریات است و در اینگونه موارد، هیچگونه محدودیتی پذیرفته نیست. اما حذف یا كاهش میزان مورد نیاز از ویژگی های غیر بحرانی، اگرچه منجر به كاهش كیفیت افزونه محصول می شود، قابل قبول است. در مورد هر ویژگی مرتبط با نرم افزارهای حساس، حصول میزان تصریح شده و ضمنی، در قسمتهای حساس از این نرم افزارها الزامی می باشد.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]
[FONT=arial]1_ مناسبت(Suitability)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر موجود بودن و تناسب مجموعة فعالیتهای نرم افزار با وظایف تصریح شده در مستندات نیازمندیها و موارد ضمنی دلالت دارند. مناسبت، یكی از ویژگیهای فرعی مرتبط با خصوصیت میزان پوشش دهی وظایف تعیین شده می باشد.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 1_ با استفاده از ویژگی مناسبت، میزان تطابق بین وظایف، فرایندهای اصلی و فرعی، و عناصر تشكیل دهندة اصلی و فرعی، موجود در محیط واقعی(یا تعیین شده در مستند نیازمندیها)، با محیط ارائه شدة نرم افزاری سنجیده می شود.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 2_ ویژگی مناسبت، مستقل از اندازه محصول است.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 3_ نرم افزار در اصل بمنظور انجام وظایف مشخص و با رویه ها و رفتارهای متناسب ساخته می شود. بنابراین حصول میزان تصریح شده و ضمنی از مناسبت در انواع نرم افزارها(از هر اندازه و هر نوع )، دارای اهمیت است. اما حصول میزان تصریح شده و ضمنی، در قسمتهای حساس از نرم افزارهای حساس الزامی می باشد.[/FONT][FONT=Tahoma]

[FONT=arial]2_ درستی و دقت در ارائة نتایج و تأثیرات(ِAccuracy)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر ارائة نتایج درست و تأثیر گذاری صحیح، به میزان صحت تصریح شده در مستندات نیازمندیها و مورد قبول ضمنی دلالت دارند. درستی و دقت در ارائة نتایج و تأثیرات، یكی از ویژگیهای مرتبط با خصوصیت میزان پوشش دهی وظایف تعیین شده می باشد.
[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 1_ با استفاده از ویژگی مذكور، میزان تطابق بین نتایج و دقت محاسبات، و تأثیرات ناشی از رفتارهای موجود در محیط واقعی(تعیین شده در مستند نیازمندیها)، با محیط ارائه شدة نرم افزاری سنجیده می شود.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 2_ درستی و دقت در ارائة نتایج و تأثیرات، مستقل از اندازه محصول است و بهتر است میزان مورد نظر در مستند نیازمندی كلیة نرم افزارها اعلام گردد.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 3_ حصول میزان تصریح شده و ضمنی از درستی و دقت در ارائة نتایج و تأثیرات، در نرم افزارهای علمی و مهندسی، تحلیل عددی، نرم افزارهای مالی و محاسباتی، و بطور كلی در موارد حساس از نظر دقت الزامی است.[/FONT][FONT=Tahoma]

[FONT=arial]3_ توانایی برقراری روابط موردنظر با دیگر سیستمهای تعیین شده(Interoperability)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر قابلیت فعل و انفعال و برقراری روابط تصریح شده، با سیستم های تصریح شده دلالت دارند. ویژگی مذكور، یكی از ویژگیهای مرتبط با خصوصیت میزان پوشش دهی وظایف تعیین شده می باشد. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 1_ با استفاده از این ویژگی، میزان تطابق بین توانایی یا نیاز به برقراری ارتباطات داده ای و انجام همكاری با دیگر سیستمها در محیط واقعی، با آنچه در محیط نرم افزار عرضه می گردد سنجیده می شود.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 2_ رعایت استانداردهای كامپیوتری(مانند انواع فایلهای استاندارد یا پروتكلهای ارتباطی خاص)، باعث افزایش این ویژگی در محصول می گردد.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 3_ ویژگی توانایی برقراری روابط موردنظر با دیگر سیستم های تعیین شده، مستقل از اندازه محصول است.[/FONT][FONT=Tahoma]

[FONT=arial]4_ رعایت استانداردهای مرتبط با كاربرد(Compatibility)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر رعایت استانداردها، مقررات یا قواعد مربوط به كاربرد موردنظر در محصول، دلالت دارند. ویژگی مذكور، یكی از ویژگیهای مرتبط با خصوصیت میزان پوشش دهی وظایف تعیین شده می باشد. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 1_ در صورت وجود و برقراری استاندارد(یا مجموعه ای از استانداردهای مرتبط) در محدودة بكارگیری محصول، استفادة دقیق از آن(ها) در تهیه و تدوین مستند نیازمندیها الزامی می باشد و مفاد موجود در مستند نیازمندیها نباید نافی ضروریات و نیازمندیهای آن استاندارد(ها) باشد.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 2_ رعایت آندسته از استانداردهای صنعتی كه بیشتر به منظور یكنواخت نمودن كاربرد، عمومیت دادن و ایجاد ارتباط آسانتر بین نرم افزارها بوجود آمده اند، ممكن است زمینه ساز كاهش ویژگیهای دیگر(مانند كارایی) شود. این استانداردها در تولید بسته های نرم افزاری كاربرد بیشتری دارند اما در تولید محصولات سفارشی یا حساس كمتر مورد استفاده قرار می گیرند.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 3_ ویژگی رعایت استانداردهای مرتبط با كاربرد، مستقل از اندازه محصول است.[/FONT][FONT=Tahoma]

[FONT=arial]5_ امنیت(Security)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر قابلیت آن در جلوگیری از دستیابی غیرمجاز، بصورت عمدی یا غیر عمدی به برنامه ها و داده ها دلالت دارند. امنیت، یكی از ویژگیهای مرتبط با خصوصیت میزان پوشش دهی وظایف تعیین شده می باشد. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 1_ با استفاده از این ویژگی، میزان رعایت سطوح امنیت تصریح شده یا ضمنی مورد نیاز در محصول سنجیده می شود.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 2_ ویژگی امنیت در بسیاری از نرم افزارهای كاربردی حائز اهمیت است، زیرا این سیستمها معمولاً اطلاعات خصوصی و محرمانه(مانند سوابق فردی، شغلی، مالی، سیاسی، كیفری، سازمانی و غیره) را در مقیاس های مختلف در خود نگهداری می نمایند.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 3_ویژگی امنیت در مورد تخصیص مجوز اجرای برنامه ها نیز حائز اهمیت است. وجود یك سیستم صحیح امنیت و تخصیص وظایف به كاربران، برای سیستمهایی كه پذیرای تغییرات و رشد هستند دارای اهمیت و در نرم افزارهای حساس الزامی می باشد.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma]یادآوری 3_ ویژگی امنیت، با بزرگتر شدن اندازه، تعدد وظایف، جامعیت و تنوع اطلاعات و تنوع كاربران اهمیت بیشتری می یابد.[/FONT][FONT=Tahoma]

[FONT=arial]6_ پختگی یا بلوغ(Maturity)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر بسامد بروز شكست یا خطای ناشی از عیوب، دلالت دارند. پختگی(بلوغ)، یكی از ویژگیهای مرتبط با خصوصیت قابلیت اطمینان می باشد. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] یادآوری 1_ ویژگی مذكور، یكی از ویژگی های اجرائی نرم افزار است كه ارزیابی و بهبود آن از طریق قراردادن، و یا بعبارتی نصب و بهره برداری نرم افزار در محیط نهایی استفاده، و یا ایجاد محیط مشابه با محیط نهایی امكان پذیر است. تجربه نشان داده است كه بسامد مذكور، در مقاطع اولیه از اجرای واقعی زیاد بوده اما بتدریج كاهش می یابد. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] یادآوری 2_ كاهش بسامد بروز خطا بمعنای افزایش پختگی و افزایش آن بمعنای كاهش پختگی می باشد. بنابراین بزرگی و پیچیدگی نرم افزار با افزایش بسامد رابطة مستقیم و با پختگی رابطة معكوس دارد. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] یادآوری 3_ رعایت قواعد مهندسی نرم افزار در پیاده سازی مانند پیمانه گرایی و ساختیافتگی و بطور كلی مواردی كه باعث افزایش قابلیت نگهداشت نرم افزار می شوند، با پختگی نرم افزار رابطة مستقیم دارند.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] یادآوری 4_ ویژگی پختگی در قسمتهای حساس از نرم افزارهای حساس و بلادرنگ حائز اهمیت بسیار است. نظر به حساسیت ویژة این نرم افزارها، تلاشهای زیادی(شامل فراهم آوردن محیط واقعی و شبیه سازی شرایط ویژه، و نیز زیر بار قرار دادن و اجرای آزمایشات گوناگون) بمنظور حصول میزان تصریح شده از پختگی در مورد آنها انجام می شود. علیرغم این تمهیدات، بدلیل وجود احتمال بروز خطرات جانی،امنیتی و مالی در شرایط خاص، برای ایجاد اطمینان خاطر از روشهای دیگر(مانند تحمل خرابی) استفاده می شود.[/FONT][FONT=Tahoma]

[FONT=arial]7_ تحمل خرابی(Fault Tolerance)[/FONT][/FONT][FONT=arial] [/FONT][FONT=Tahoma]
[/FONT][FONT=Tahoma]مشخصه هایی از نرم افزار كه بر توانایی آن در مورد حفظ سطح مشخصی از كارایی در موارد بروز خرابی یا اشتباه در اجرای رفتارهای تعیین شده دلالت دارند. تحمل خرابی، یكی از ویژگیهای مرتبط با خصوصیت قابلیت اطمینان و برطرف كنندة نقائص ویژگیهای دیگر در عرضة مناسب آن است. [/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] یادآوری 1_ ویژگی تحمل خرابی، بدلیل اهمیت فراهم آوردن قابلیت اطمینان، از ویژگیهای مهم در تولید نرم افزارهای حساس زمانی و بلا درنگ است. همچنین تا حدود زیادی مستقل از اندازه و وابسته به حساسیتهای موجود در نیازمندیها و جایگاه استفاده از نرم افزار است.[/FONT][FONT=Tahoma]
[/FONT] [FONT=Tahoma] یادآوری 2_ حصول میزان حداقل(مورد قبول ضمنی) از این ویژگی، برای كلیة نرم افزارها الزامی می باشد. حداقل مذكور، بازگشت از شكست با حفظ ایمنی می باشد كه سطح مشخصی از كارایی محسوب می شود.[/FONT]

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note مهندسی معکوس چیست؟ THE KNIGHT 0 1,006 28-08-2013 ساعت 14:26
آخرین ارسال: THE KNIGHT
Note مهندسی نرم افزار چیست؟ Daniel 0 1,437 10-11-2012 ساعت 09:24
آخرین ارسال: Daniel

کاربرانِ درحال بازدید از این موضوع:   1 مهمان