Transcript متريک بنگ
1
متريک هاي فني نرم افزار چيست؟ ماهيتاً مهندسي يک ديسپيلين کميتي است .مهندسين از اعداد
براي کمک به طراحي استفاده کرده ومحصول ساخته شده را ارزيابي مي کنند.
چه کسي عهده دار انجام ان است؟ مهندسين نرم افزار
چرا اين مسئله از اهميت برخوردار است؟ سيستم متريک فني ,پايه اي را براي تحليل ,طراحي برنامه
نويسي وازمون بطورً ملموس تريً در نظر گرفته است .مرحله ي بعدي ,داده هاي مورد نياز براي
دستيابي به سيستم متريک فرموله شده است.
محصول کار چيست؟ سيستم متريک نرم افزاريً که از طريق محاسبه ي داده هاي جمع اوريً شده از
تحليل و مدل هاي طراحي ,برنامه منبع و موارد ازمون ,بدست مي ايند.
2
کيفيت برروي هماهنگي داشتن با نيازمندي هاي صريحاً اظهار شده ي عملکردي و اجراي ي تاکيد دارد که
شامل استانداردهاي توسعه ي مستند شده و خصويات تلويحي که از تمامي نرم افزار هاي بطورً حرفه اي
طراحي شده نيز مي گردد.
3
فاک تورهاي مؤثر در کيفيت نرم افزار را مي توان در دو گروه عمده تقسيم کرد:
(1فاک تورهاي ي که مي توان انها را مستقيماً اندازه گرفت (مثلً نواقص در هر کارکرد – امتياز).
(2فاک تورهاي ي که فقط بطورً غيرمستقيم اندازه گيريً مي شوند( .مثلً قابليت استفاده يا قابليت
نگهدار ًي).
در هر حالت ,بايد اندازه گيريً انجام شود .ما بايد نرم افزار را (اسناد ,برنامه ,داده ها) با تعدادي از داده
ها مقايسه کرده و به يک داللت کيفيتي برسيم.
4
اين فاک تورهاي کيفيت نرم افزار مک کال ,نمايش داده شده در شکل زير برروي سه جنبه ي مهم يک
محصول نرم افزاريً ,توجه خود را متمرکز مي کند :خصوصيات عملياتي ,تواناي ي تغيير يافتن و تطبيق با
محيط هاي جديد.
5
با عطف به فاک تورهاي ذکرشده در شکل مک کال شرحً ذيل را ارائه مي کند:
درستي :ان اندازه که برنامه اي مشخصه هاي خود و نيازمندي هاي مربوط به مشتريً را براورده مي کند.
قابليت اطمينان :ان اندازه که از برنامه اي بتوان اجراي کارکردهاي مربوط به خود را با دقت الزم ,انتظار
داشت.
کاراي ي :مقدار منابع محاسبه و کد مورد نياز براي انکه برنامه اي کارکرد خود را اجرا کند.
جامعيت :اندازه اي که افراد غير مجاز را مي توان از دستيابي به نرم افزار يا داده ها منع کرد.
قابليت استفاده :تلش مورد نياز براي يادگيريً ,عمليات ,اماده کردن ورودي و تفسير خ ًروجي يک برنامه.
قابليت انعطاف :تلش مورد نياز براي اصلح يک برنامه عملياتي.
6
ازمون پذيري :تلش الزم براي ازمودن برنامه جهت حصول از اجراي کارکرد تعيين شده.
قابليت حمل :تلش مورد نياز براي انتقال برنامه از يک سخت افزار و يا محيط سيستم نرم افزار به
محيطي ديگر.
قابليت استفاده مجدد :ان اندازه که برنامه اي را بتوان در ديگر کاربردهاي دوباره بکار برد.
قابليت درون عملياتي :تلش مورد نياز براي تلفيق سيستمي به سيستم ديگر.
7
محاسبه ي فاک تورهاي کيفيت:
Fq = c1 * m1 + c2 * m2 + … +cn * mn
در اين Fqرابطه کيفيت نرم افزار cn ,ضريب رگرسيون mn ,متريک هاي ي است که روي فاک تورً کيفيت
تاثير مي گذارد.
متريک هاي ذيل در شماي درجه بندي بکار مي روند(فاک تورهاي کيفيت):
قابليت وارسي ,دقت ,رايج بودن ارتباطات ,تکميل بودن ,فشرده بودن ,سازگاريً ,رايج بودن داده ها,
توالرانس اشتباه ,کاراي ي اجراي ي ,قابليت توسعه ,عموميت داشتن ,استقلل سخت افزا ًريً ,بکارگيريً ابزار,
پيمانه اي بودن ,قابليت اجرا ,امنيت ,خود-مستندسازيً ,سادگي ,استقلل سيستم نرم افزار ,قابليت
رديابي ,اموزش.
8
قابليت کارکردي :از طريق ارزيابي مجموعه ويژگي هاي و تواناي ي هاي برنامه ,عموميت کارکردهاي ي که
تجويل داده مي شوند وامنيت کل سيستم ,سنجيده مي شود.
قابليت بکارگيري :با لحاظ کردن فاک تورهاي انساني ,زيباي ي شناسي ,سازگاريً و مستندسازيً جامع,
سيجيده مي شود.
قابليت اطمينان :از طريق اندازه گيريً فرکانس و شدتت شکست ,تواناي ي بهبود شکست ,دقت نتايج
خروجي ,زمان ميانگين شکست( )MTTFو قابل پيش بيني بودن برنامه ارزيابي مي شود.
عملکرد :از طريق سرعت پردازش ,زمان پاسخ ,مصرف منابع ,توان عملياتي و کاراي ي سنجيده مي شود.
قابليت پشتيباني :تواناي ي تعميم برنامه ,قابليت تطبيق ,قابليت خدماتي را با يکديگر ترکيب مي کند.
9
اين استاندارد شش خصلت کيفيت کليدي را تعيين مي کند:
قابليت کارکردي :مناسب بودن ,دقيق بودن ,درون-عملياتي بودن ,متابعت و امنيت.
قابليت اطمينان :پختگي ,تلورانس خطا ,قابليت بهبود بازيابي.
قابليت بکارگرفته شدن :قابليت ادراک شدن ,قابليت يادگيريً ان ,قابليت اجراي عمليات روي ان.
کاراي ي :ميزان بکارگيريً بهينه ي نرم افزار از منابع سيستم در رفتار زماني ,رفتار منبعي.
قابليت نگهداري شدن :راحتي تعمير کردن نرم افزار براي قابليت تحليل شدن ,قابليت تغييرکردن ,ثبات,
قابليت ازمون پذيريً.
قابليت حمل شدن :راحتي حمل و نقل از محيطي به محيط ديگر در قابليت تطبيق ,قابليت نصب,
متابعت ,قابليت جابجاي ي.
10
ذهني و موضوعي بودن و تخصصي شدن نيز در تشخيص کيفيت نرم افزار ,دخيل است .ب ًراي ان که به
حل مشکل کمک کنيم ,يک تعريف دقيق تر از کيفيت نرم افزار همراه با طريقه اي براي بدست اوردن
اندازه هاي مقداريً کيفيت نرم افزار جهت تحليل ملموس و مشهود مورد نياز است.
11
12
نياز به مقياس و کنترل پيچيدگي نرم افزار وجود دارد .و اگر دستيابي به يک مقدار منفرد از اين متريک
کيفيت مشکل است ,ايجاد مقياس هاي ي با خصلت هاي برنامه اي دروني متفاوت بايد ممکن باشد( .مثلً
پيمانه سازيً مؤثر ,استقلل کارکردي و . )...اين مقياس ها و متريک هاي حاصل از انها را مي توان به
عنوان نشانه هاي ي از کيفيت تحليل و مدل هاي طراحي ,مورد استفاده قرار داد.
13
روچه فرايند اندازه گيريً که خصوصيات ان به پنج گروه فعاليت بالغ مي شود ,را پيشنهاد کرده است:
فرموله کردن
گرداوريً
تحليل
تفسير
بازخو ًر
14
متريک حاصله و مقياس هاي منتهي به ان بايد:
ساده وقابل محاسبه باشند.
از نظر تجربي و شهودي ترغيب کننده باشند.
سازگاريً و دست يافتني
سازگاريً در بکارگيريً واحدها و ابعاد
برنامه ريزيً زبان مستقل
يک مکانيسم مؤثر براي بازخورد با کيفيت
15
کار فني در مهندسي نرم افزار با ايجاد مدل تحليل ,شروع مي شود .در اين مرحله است که نيازمندي ها
استخراج شده و بنيادي براي طراحي برقرار مي گردد .بنابراين ,متريک هاي فني که نسبت به کيفيت مدل
تحليل شناخت ارائه مي کنند ,مطلوب هستند.
16
متريک امتياز کارکرد ( )FPمي تواند بطورً کارامدي به عنوان يک وسيله ي پيش بيني اندازه يک
سيستم که از مدل تحليلي حاصل خواهد شد ,بکار برود.
• ])[0.65 + 0.01 * ∑(Fiشمارشًکل = FP
• در اين معادله Fiمقادير تطبيق پيچيدگي هستند.
17
مانند متريک امتياز کارکردي ,متريک بنگ را مي توان براي ايجاد يک بيانگر اندازه نرم افزاريً که قرار
است به عنوان پيامد تحليلي پياده سازيً شود ,بکار برد.
متريک بنگ داللتي از پياده سازيً مستقل از اندازه سيستم اس .براي محاسبه ي متريک بنگ ,مهندس
نرم افزار بايد در درجه ي اول يک سريً نکات ابتداي ي يعني عناصريً که مربوط به مدل تحليل بوده و در
سطح تحليل دچار تقسيمات بيشتريً نخواهند شد را مورد ارزيابي قرار دهد.
18
امتيازات اوليه از طريق ارزيابي مدل تحليل و ايجاد شمارش ها به شکل هاي ذيل ,تعيين مي شوند:
امتيازات اوليه کارکردي( :)FuPتعداد تغيير شکل هاي ي که در پايين ترين سطح يک نمودار جريان
داده ها ظاهر مي شوند.
عناصر داده ها( :)DEمقدار صفات خاصه يک شيء داده اي
اشياء( :)OBتعداد اشياء داده اي
روابط( :)REتعداد ارتباط بين اشياء داده اي
وضعيت ها( :)STتعداد وضعيت هاي قابل مشاهده ي کاربر در يک نمودار انتقال وضعيت
انتقال ها( :)TRتعداد انتقال هاي وضعيت در نمودار انتقال وضعيت
19
يويس و همکارانش ليستي از خصوصيات قابل استفاده براي ارزيابي کيفيت مدل تحليل و تشخيص
نيازهاي مربوط به ان ,پيشنهاد کرده اند:
وضوح(فقدان ابهام) ,کامل بودن ,صحيح بودن ,قابل فهم بودن ,قابل تصديق بودن ,هم خواني دروني و
بيروني ,قابل دستيابي بودن ,فشردگي ,قابليت ردگيريً ,قابليت اصلح شدن ,دقت و قابل استفاده مجدد
بودن.
20
طراحي بدون اندازه گيريً يک الترناتيو(گزينه) غيرقابل قبول است .در بخش هاي بعدي چند متريک
طراحي رايج براي نرم افزار کامپيوتريً را بررسي خواهيم کرد .هر يک از انها مي توانند شناخت بهتريً را در
اختيار طراح قرار داده و کمک کنند تا طراحي به سطح باالتريً از کيفيت ارتقاء يابد.
21
متريک هاي طراحي معماريً ,توجه خود را به خصوصيات معماريً همراه با تاکيد بر ساختار معماريً و
مؤثربودن پيمانه ها ,متمرکز مي کند .اين متريک ها به اين مفهوم که نياز به هيچ دانشي از عمليات دروني
يک جزء خاص واقع در سيستم ندارند ,جعبه سياه تلقي مي شوند.
کاروً و گلس اين سه مقياس پيچيدگي طرحً نرم افزاريً را تعريف کرده اند :پيچيدگي ساختاريً ,پيچيدگي
داده اي و پيچيدگي سيستم.
22
پيچيدگي ساختار ًي يک پيمانه iبه روش ذيل تعريف مي شود:
که در ان ) f2out(iتوان خروجي پيمانه iاست.
)S(i) = f2out(i
پيچيدگي داده ها مبين پيچيدگي در تعامل دروني پيماهنه iمي باشد و بصورت زير تعريف مي شود:
]D(i) = v(i)/ [fout(i) + 1
که در ان ) v(iتعداد متغيرهاي ورودي و خروجي است که به پيمانه iوارد مي شوند و يا از ان خارج مي گردند.
پيچيدگي سيستم به عنوان مجموع پيچيدگي ساختار ًي و داده اي بوده و بصورت ذيل ارائه مي شود:
)C(i) = S(i) + D(i
23
يک متريک طراحي معمار ًي سطح باال اوليه که توسط هنريً و کانورا پيشنهاد شد ,نيز ار کاربرد توان
ورودي-توان خروجي بهره مي گيرد .اين افراد پيچيدگي متريک شکل را ب خ شکل زير تعريف کردند:
HKM = length(i) * [fin(i) + Fout(i)]2
که در ان (lenghtطول) تعداد جملت و عبارات زبان برنامه نويسي در پيمانه iو )fin(i
عبارت از توان ورودي پيمانه ,مي باشد.
24
متريک هاي طراحي در سطح اجزاء ,توجه را به خصوصيات دروني اجزاء نرم افزار معطوف کرده و
مقياس هاي 3-CSيعني چسبندگي پيمانه ,پيوستگي و پيچيدگي را شامل مي شود .اين قياس ها مي
توانند به مهندس نرم افزار کمک کنند تا کيفيت طراحي در سطح اجزاء را مورد قضاوت قرار دهد .متريک
هاي ارائه شدهدر اين بخش به اين مفهوم که نياز به دانش و شناخت از عمليات دروني پيمانه تحت بررسي
دارند ,جعبه شيشه اي ناميده مي شوند.
25
متريک هاي چسبندگي (انسجام):
برش داده ها
نشانه هاي داده ها
نشانه ها چسبي
نشانه هاي سوپر-چسبي
متريک ها پيوستگي(متصل کننده) :اتصال پيمانه تعامل از متصل بودن يک پيمانه با ديگر پيمانه
ها ,داده هاي سراسريً و مجيط خارجي,ارائه مي کند.
براي متصل سازيً جريان داده ها و کنترل:
=diتعداد پارامترهاي ورودي داده ها
=doتعداد پارامترهاي خروجي داده ها
26
=ciتعداد پارامترهاي ورودي کنترل
=coتعداد پارامترهاي خروجي کنترل
براي متصل سازيً جهاني:
=gdتعداد متغيرهاي سراسر ًي بکار رفته به عنوان داده ها
=gcتعداد متغيرهاي سراسريً بکار رفته به عنوان کنترل
براي متصل سازيً محيطي:
=wتعداد پيمانه هاي خوانده شده (توان خروجي)
=rتعداد پيمانه هاي ي که پيمانه هاي تحت بررسي را فراخوان مي کنند(.توان ورودي)
27
با بکار گير ًي اين مقياس ها ,يک نمايش گر متصل ساز ًي پيمانه mc ,به روش ذيل تعريف شده
است:
mc = K / M
که در ان K=1و يک ثابت تناسبي است.
M = di+(a*ci)+d0+(b*c0)+gd+(c*gc)+w+r
که در ان a=b=c=2مي باشد.
متريک هاي پيچيدگي :انواع متريک هاي نرم افزاريً را ميتوان براي تعيين پيجيدگي جريان کنترل
برنامه ,محاسبه کرد .بسياريً از اينها بر پايه گراف جريان استوار شده اند.
28
يک GUIمتعارف از عناصر موجوديت هاي طرحً بندي استفاده مي کند_نمادهاي گرافيکي ,متن,
منوها ,پنجره ها و موارد مشابه -تا به کاربر در تکميل و انجام وظايف کمک کند .براي انجام کار ًي با
استفاده از GUIکاربر بايد از يک عنصر طرحً بندي به عنصر بعدي در حرکت باشد.
براي هريک طرحً بندي مشخص مي توان هزينه را براي هر توالي اقدامات مطابق با رابطه ذيل در نظر
گرفت:
] هزينهًانتقالً) * (kتعدادًانتقال )=∑ [ (kهزينه
که در ان kيک انتقال مشخص از يک موجوديت طرحً بندي به بعدي به عنوان يک وظيفه مشخص انجام شده ,مي باشد.
29
مناسب بودن طرحً کلي به طريقه ذيل تعريف شده است:
]) هزينهًطرحًبنديًپيشنهادًشدهًً( ) /طرحًبنديًبهينهًشدهً -هزينهًLA = [(LA
که در ان LAبراي طرحً بندي بهينه برابر با 100خواهد بود.
براي محاسبه طرحً بندي بهينه يک رابط کاربر گرافيک وضعيت واقعي رابط(ناحيه صفحه نمايش)به صورت
يک تور ًي يا يک شبکه درخواهد امد .هر بخش از اين صفحه قسمت بندي شده ,يک موجوديت را با ًزنماي ي
خواهد نمود .بنابر اين براي يک تور ًي با Nموقعيت ممکن K ,طرحً بندي مختلف براي جاي دادن موجوديت
ها خواهيم داشت .تعداد طرحً بندي ممکنه به قرار ذيل است:
! = [N! / (K! * (N – K)!] * Kتعدادًطرحًبنديًممکن
براي يافتن طرحً بندي بهينه (کمترين هزينه) سيرزً يک الگوريتم درختي جستجو را توصيه کرده است.
30
عمل نرم افزار قوانين کميتي را براي توسعه نرمافزار کامپيوتريً در نظر گرفته و يک سريً مقياس هاي
اوليه که مي توان پس از ارائه برنامه بدان ها دست يافت و يا حدوداً زماني که طراحي کامل شده است ,را
بکار مي گيرد که در ذيل امده اند:
=n1تعداد عملگرهاي مشخص که در برنامه ظاهر مي شوند.
=n2تعداد عملوندهاي مشخص که در برنامه ظاهر مي شوند.
=N1تعداد کل موارد وقوع عملگر
=N2تعداد کل موارد وقوع عملوند
31
هالستيد نشان مي دهد که طول Nرا مي اوان تخمين زد:
N = n1 log n1 + n2 log n2
و حجم برنامه را مي توان اين گونه تعريف کرد:
)V = N log 2 (n1 + n2
بطورً تئوريک ,يک حداقل حجم بايد براي هر الگوريتم خاص ,وجود داشته باشد .هالسته يک نسبت
حجم فشرده ترين حالت يک برنامه با حجم برنامه واقعي را تعريف مي کند .از لحاظ مقياس هاي اوليه,
نسبت حجم مي تواند به طريق ذيل ارائه شود:
L = 2/ n1 * n2/N2
32
در کل ,ازمون کننده ها ,بايد برروي تحليل ,طراحي ,ومتريک هاي برنامه جهت هدايت به سوي طراحي
و انجام موارد ازمون ,اتکاء داشته باند .متريک هاي استوار برکارکرد را مي توان به عنوان پيش بيني کننده
ي کل تلش مربوط به انجام ازمون ,مورد استفاده قرار داد.
متريک بنگ مي تواند داللتي براي تعداد موارد ازمون مورد نياز از طريق ازمون مقياس هاي اوليه بحث
شده در 2-3ارائه کند.
متريک هاي طراحي معماريً ,اطلعاتي در مورد راحتي يا سختي مرتبط با ازمون تماميت و جامعيت
ارائه کرده ونياز به ازمون تخصصي نرم افزار راه مي يابد.
33
تمام متريک هاي نرم افزار معرفي شده در اين فصل ار مي توان براي توسعه ي نرم افزاريً جديد و نگهداريً نرم
افزار موجود به کار گرفت .متريک هاي طراحي شده بطورً صريح جهت نگهداريً ,پيشنهاد شده اند.
IEEEيک نمايه ي پختگي (بلوغ) نرم افزار را توصيه مي کند که داللتي بر ثبات يک محصول نرم افزار ًي ارائه
مي دد .اطلعات ذيل معين شده اند:
=MTتعداد پيمانه هاي توليد جاريً
=FCتعداد پيمانه هاي توليد جاريً که تغيير کرده اند.
=Faتعداد پيمانه هاي توليد جاريً که اضافه شده اند.
=Fdتعداد پيمانه هاي ناشي از توليد قبلي که در توليد فعلي خذف شده اند.
شاخص بلوغ نرم افزار به روش زير محاسبه مي شود:
SMI = [ MT – (Fa+Fc+Fd) / MT
34
35