[تسعير البرمجيات] … حساب الجهد عن طريق وقائع الإستخدام “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 – خالد الشقروني

LEAVE A REPLY

Please enter your comment!
Please enter your name here