إدارة برمجيات

[تسعير البرمجيات] … حساب الجهد عن طريق وقائع الإستخدام “Use Cases”

By حسام الكرد

April 14, 2014

تحدثنا في المقالة السابقة تسعير البرمجيات 1 عن الطرق العامة للتسعير , وربما الطريقة التي يمكننا توضيحها وتبين بعض أنواعها المختلفة هي التسعير بالنماذج والحسابات نظرا

نتحدث اليوم عن طريقة التسعير عن طريق وقائع الإستخدام أو ال Use Cases , الموضوع طويل قليلا , لكنه لتوضيح نقاط لمعرفة كيفية إدخالها كمعلومات  للأدوات جاهزة التي تساعد على الحساب

 

ماهي واقعة الإستخدام “Use Case”

واقعة الإستخدام هي وصف لسلوك النظام من وجهة نظر المستخدم , حيث تساعد على التحليل والتطوير وفهم المتطلبات. ويمكن للمخطط الإنسيابي الخاص بواقعة الإستخدام أن يكون مفهوم من جميع الأطراف , يتكون المخطط من لاعبين “Actors” وحركات “Transactions” وكذلك عمليات

مثال واقعة إستخدام

التسعير بنقاط وقائع الإستخدام

بالتأكيد هناك العديد من الطرق المشهورة في التسعير مثل COCOMO وال FPA ولكن مشكلة هذه الطرق لديها قصور وبالذات انها تحتاج إلى خبير للتعامل معها

أما عن نظام التسعير بوقائع الإستخدام فتم تطويره في ال 1993 من خلال Gustav Karner , وتقوم المعادلة الأساسية على حساب النقاط الخاصة بوقائع الإستخدام للنظام المحلل و الساعات الإنتاجية وبالتالي حساب الجهد الكلي

 

متى نستخدم نظام التسعير بنقاط وقائع الإستخدام ؟

ببساطة عندما نكون قد صممنا وقائع إستخدام كافية لتغطية متطلبات النظام

 

طريقة الحساب

1. تصنيف اللاعبين “Actors”

يتم تصنيف اللاعبين حسب إلى ثلاثة أصناف “بسيط” وهو اللاعب الذي يمثل نظام آخر يتم التواصل بواجهة API , و “متوسط” وهو نظام اخر يتم التواصل معه بأي طريقة اخرى أو Protocol مثل ال TCP/IP , أما “المعقد” فهو اللاعب الذي يمثل شخص حقيقي سيتعامل مع واجهة البرنامج

ومن خلال تحديد أنواع اللاعبين يتم حساب وزن اللاعبين في النظام  UAW) unadjusted actor weights)

فيتم من خلاله حساب جميع اللاعبين حسب النوع وضربهم في الوزن الخاص بهم فمثلا لو كان لدينا 2 لاعبين بسيط و 3 معقد بالتالي يكون ال UAW = 2*1 + 3*3 = 11

 

2.تصنيف وقائع الإستخدام

كذلك مثلما قمنا بتصنيف اللاعبين نحن بحاجة لتصنيف وقائع الإستخدام ذاتها بنفس التصنيفات”بسيطة” , “متوسطة” و”معقده” ويمكن حساب التصنيفات بطريقتين طريقة بحساب عدد الحركات “transactions” الموجودة في كل واقعة إستخدام

أو يمكن من خلال عدد الصنفيات “Classes” التي تشتق من كل واقعة إستخدام

وبالتالي يتم حساب وزن وقائع الإستخدام أيضا Unadjusted Use Case Weights UUCW

 

3.تصنيف العوامل التقنية

هذا التصنيف لحساب العوامل التقنية الخاصة بالمشروع لوضعها كوزن اخر في المعادلة وهي 13 عامل , حيث يتم إعطاء كل عامل درجة من 0 – 5 , 0 يعني غير مهم , 3 متوسط , 5 أساسي , وبالتالي عند حساب قيمة أي عامل يتم ضرب الدرجة في الوزن الخاص بالعامل ومن ثم يتم جمع جميع العوامل ليخرج TFactor عامل التقني

بعد حساب ال TFactor من خلال ضرب كل عامل بالوزن والدرجه وجمع كل القيم الخاصة بالعوامل ومن ثم تطبيق المعادلة الخاصة بدرجة التعقيد التقني

(TCF = 0.6 + (0.01 * TFactor

4. تصنيف عوامل بيئة العمل

تصنيف عوامل البيئة خاص بفريق العمل وبيئة العمل لما لها تأثير على وقت وتكلفة المشروع الخاصة بالمشروع لوضعها كوزن اخر في المعادلة وهي 8 عامل , حيث يتم إعطاء كل عامل درجة من 0 – 5 , 0 يعني غير مهم , 3 متوسط , 5 أساسي , وبالتالي عند حساب قيمة أي عامل يتم ضرب الدرجة في الوزن الخاص بالعامل ومن ثم يتم جمع جميع العوامل ليخرج EFactor عامل البيئة

بعد حساب ال EFactor من خلال ضرب كل عامل بالوزن والدرجه وجمع كل القيم الخاصة بالعوامل ومن ثم تطبيق المعادلة الخاصة بدرجة التعقيد التقني

( EF = 1.4 + (-0.03 * EFactor

5. حساب عامل الإنتاجية

عامل الإنتاجية هو مقدار الوقت اللازم الذي يحتاجه في لتنفيذ نقطة واقعة الإستخدام , وبطبيعة الحال عند العمل لأول مرة أو أنه لم يتم حساب هذا العامل من قبل , فإنه يتم حسابه من خلال حساب الوقت اللازم لتنفيذ عدد نقاط وقائع إستخدام فمثلا لو كان عدد نقاط وقائع الإستخدام هي 100 نقطة , وتم إنهائها في 10 ساعات من الفريق هذا يعني أن عامل الإنتاجية = 100\10 = 10

وبعد أن قمنا بحساب جميع العوامل (درجة تعقيد اللاعبين , درجة تعقيد وقائع الإستخدام , العوامل التقنية , العوامل البيئية , عامل الإنتاجية)

يمكننا أولا : حساب حجم المشروع كنقاط

لحساب حجم المشروع بدون الغير معدل (غير مأخوذ العوامل في الأمر ) فيمكن حسابه من خلال المعادلة

UUCP = UAW + UUCW

حيث UAW تمثل وزن اللاعبين “Actors” , و UUCW تمثل وزن وقائع الإستخدام

ولتعديل قيمة حجم المشروع بأخذ العوامل بعين الإعتبار (العوامل التقنية والبيئية)

UCP = UUCP * TCF * EF 

 بمجرد حسابنا لل UCP نكون قد حصلنا على حجم المشروع كنقاط

ثانيا: حساب الجهد اللازم “Man-hours”  من خلال ضرب حجم المشروع بعامل الإنتاجية

Estimated Effort = UCP * PF

 

يمكنكم تحميل أداة الإكسل المساعدة Use Case Points Calculator حيث تحوي كل المدخلات السابقة “كل الخانات البيضاء يجب تعبئتها” وتقوم بحساب الجهد بشكل مباشر

بمجرد حسابنا للجهد يمكننا حساب التكلفة والوقت , سنتحدث في التدوينات القادمة عن طرق حساب التكلفة والوقت وكذلك بعض النماذج الأخرى لحساب الوقت والتكلفة

دمتم بود

إلى تدوينة أخرى

المصادر

[1] http://en.wikipedia.org/wiki/Use_Case_Points [2] التحليل والتصميم بالمنحنى للكائن بإستخدام ال UML – خالد الشقروني