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

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

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

 

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

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

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

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

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

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

 

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

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

 

طريقة الحساب

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

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

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

نوع اللاعب

الوزن

بسيط

1

متوسط

2

معقد

3

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

 

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

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

تصنيف واقعة الإستخدام

عدد الحركات

الوزن

بسيطة

أقل من أو تساوي 3

5

متوسطة

4 إلى 7

10

معقدة أكبر من أو تساوي 7

15

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

تصنيف واقعة الإستخدام

عدد الصنفيات

الوزن

بسيطة

أقل من أو تساوي 5

5

متوسطة

6 إلى 10

10

معقدة أكبر من أو تساوي 10

15

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

 

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

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

عامل الوزن الوزن الوصف الدرجة (من 0 – 5)
T1 نظام موزع 2 هل النظام يعتمد على التوزيع أم أنه مركزي بشكل أساسي
T2 سرعة تجاوب النظام عند الطلب 1 هل يجب أن يكون تجاوب النظام سريع
T3 كفاءة واجهات المستخدم (الإنترنت) 1 كفاءة واجهات المستخدم
T4 تعقيد العمليات الداخلية 1 هل عمليات النظام معقدة , مثل المخازن والحسابات وإلخ
T5 الكود يمكن إستعماله مره اخرى 1 هل يتم بناء الكود والمصدر بطريقة لإمكانية إعادة إستخدامها وبالتالي زيادة درجة التعقيد.
T6 سهولة التثبيت 0.5 هل هناك سهولة عند تثبيت أو تنزيل المكاتب الخاصة بالنظام.
T7 سهولة الإستخدام 0.5 هل سهولة الإستخدام لها أولوية عالية
T8 القابلية للأنظمة المختلفة 2 هل يجب عمل النظام ليعمل على انظمة مختلفة
T9 سهولة التغيير 1 إمكانية التغيير والتنويع حسب رغبة المستخدم , مما يعقد التصميم.
T10 التزامن 1 هل ينظر العميل إلى أن عدد كبير من المستخدمين يمكن أن يعمل على مهمة واحدة.
T11 يحوي خصائص معينة للأمان 1 العميل يطلب خصائص معينة للأمان مثل ال SSL أو كتابة مصدر خاص للتشفير
T12 التعامل مع أطراف وأنظمة أخرى 1 هل النظام يعتمد على التواصل بأطراف أخرى أو أنظمة أخرى
T13 يحتاج إلى تعليم خاص للمستخدم 1 المستخدم للنظام بحاجة إلى تدريب خاص بعد التطوير

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

(TCF = 0.6 + (0.01 * TFactor

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

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

عامل البيئة الوزن الوصف لدرجة من 0-5
F1 المعرفة بالإجراءات والعمليات 1.5 العاملين على المشروع يعرفون الإجراءات والعمليات اللازمة في المشروع
F2 الخبرة في التطبيق المراد تطبيقه 0.5 هل جميع من يعملون في المشروع لديهم خلفية تقنية جيدة عن مجال المشروع , أم تحتاج إلى وقت لشرح مجال وتقنية المشروع
F3 الخبرة بالبرمجة الشيئية 1 وقائع الإستخدام ستكون كمدخل للبرمجة الشيئية , فهل جميع من يعملون على المشروع سيكون سهل لديهم التعامل مع ترجمة الوقائع
F4 القدرة العالية على التحليل 0.5 كيف هي قدرة المحلل الذي يقوم المشروع على التحليل في مجال المشروع
F5 الحماس 1 هل المشروع محفز للجميع للعمل به
F6 ثبات المتطلبات 2 هل العميل يعرف تماما ما يريد , أم أن هناك ضبابية وتغيير في المتطلبات
F7 دوام جزئي -1 هل هناك أعضاء من الفريق يعملون بدوام جزئي
F8 صعوبة لغة البرمجة -1 كم درجة تعقيد اللغة المستعملة

بعد حساب ال 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 – خالد الشقروني

NO COMMENTS

LEAVE A REPLY