الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقدير البرمجيات (2)

بدأه سلفي وأفتخر في 18 أكتوبر 2010 · 5 رد · 947 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نعود لنكمل معاً سلسلة تقدير البرمجيات وهذا الموضوع هو الجزء الثاني من هذه السلسلة. كما تحدثنا في الجزء السابق عن بعض المصطلحات الهامة في هذا العلم كالهدف والتعهد أو الالتزام والتقدير وغيرها. نكمل اليوم ما بدأناه.

ما علاقة تقدير البرمجيات بنظرية الاحتمالات؟!

ربما يستغرب الكثير منكم ما علاقة تقدير البرمجيات بنظرية الاحتمالات؟! وما علاقتها بالموضوع أصلاً إذ أننا نتكلم عن تعريف هذا العلم ومقدمة لما هو أهم.

ولكن في الحقيقة فإن هذا العلم يرتبط ارتباطاً وثيقاً بالاحتمالات. كيف؟!

إذا كانت ثلاثة أرباع المشاريع في العالم تتعدى التقديرات الزمنية أو المالية، فإن احتمالات اكتمال مشروع برمجي معين في مدة زمنية محددة ودون تعدي التقدير المالي له ليست 100% على الإطلاق! ومن هنا ينشأ سؤال هام جداً: إذا كانت الاحتمالات ليست 100% فكم إذن؟!

عادة ما نسمع بعض التقديرات التي تمثل برقم واحد. على سبيل المثال: يمكنني إنهاء هذا البرنامج في 15 يوماً!

هذا النوع من التقدير لا يعتبرعملياً بالمرة ويسمى هذا التقدير: تقدير النقطة الواحدة. في الحقيقة هذا النوع غير مفيد بالمرة فهو ليس مقترناً باحتمالية معينة. إذا نظرنا للرسم البياني التالي:

1.png

سيتضح أن تقدير النقطة الواحدة يعني أنك تعني ضمنياً أنني يمكنني إنهاء هذا المشروع في 15 يوماً بنسبة 100% فلا يوجد احتمالية للفشل أبداً! وهذا النوع لا يعطي نوعية من المرونة ويسبب مشاكل وتعقيدات كثيرة. الحقيقة أن هذا النوع من التقديرات هو نوع من أنواع الأهداف المتنكرة في صورة تقدير.

لذا فيجب أن نضع قاعدة عريضة هي أننا عندما نجد تقديراً من هذا النوع فيجب علينا أن نسأل عن احتمالية هذا التقدير.

ولكن في الحقيقة التقدير السابق لا يعبر عن الواقع بأي حال من الأحوال. الواقع هو أن المشاريع البرمجية محاطة من كل جانب بغموض تام وهذا ما يعرضها لكثير من سوء التخطيط والتقدير والإدارة لغير المحترفين. لذا فإن تقدير البرمجيات مرتبطاً ارتباطاً وثيقاً بالاحتمالات. ولهذا فإن الشكل الصحيح للرسم البياني السابق يجب أن يكون كالتالي:

2.png

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

ولكن افتراض أن الرسم البياني متماثل حول المتوسط افتراضٌ خاطيء. وهذا لأنه يوجد بعض الحدود التي قد تعيقنا في كيفية بدء المشروع ولهذا فإن النصف الأيسر من الرسم البياني لن يكون ممتداً بهذه الطريقة. وأيضاً بما أنه يوجد بعض المعوقات التي قد تعيق في كيفية بدء المشروع بطريقة صحيحة وأنه لا يوجد طريقة محددة للتأكد من أن المشروع يسير في الاتجاه الصحيح فهذا معناه أنه لا يوجد أي حد ولا أي تصور في كيفية تنفيذ المشروع بطريقة خاطئة أو غير مجدية.

لذا فإن الرسم البياني التالي هو الرسم الصحيح العملي:

3.png

وكما هو ملاحظ من الرسم السابق أنه يوجد احتمالية 50% في أن يمر المشروع بسلام وبنجاح واحتمالية 50% أن يفشل المشروع أو أن يمر بمراحل سيئة. وهذه طريقة أخرى لتصوير هذا الأمر وتقريبه أكثر:

4.png

أيضاً يمكن تصوير هذا الأمر بشكل ثالث:

5.png

يتضح من الشكل الأخير عدة نقاط هامة جداً:

1. عندما ترى تقدير النقطة الواحدة فلابد أن يكون لها احتمالية فهو ليس بشرط أن يكون 100% لهذا عليك أن تسأل. كمثال: في الشكل السابق احتمالية إنجاز المشروع في هذه المدة هي 10% وليس شرطاً أن يكون 100%.

2. إذا قلنا أن تقدير برنامج ما 18 أسبوع فهذا لا يحتوي على الكثير من المعلومات ولا يمكن اعتباره مفيداً. ولكن الأفضل والأحسن أن تقول سيأخذ من 18 أسبوع إلى 24 أسبوع. أو أن تقرنه بنسبة كأن تقول سيأخذ 22 أسبوع بنسبة 75%.

3. كل التقديرات تحتوي على احتمالية سواء صرح بهذا أوكان ضمنياً. ولكن من المؤكد أن التقدير المقترن باحتمالية علامة على التقدير الجيد.

في المرة القادمة سننهي هذه المقدمة بإذن الله لندخل بعدها في موضوع أخر بخصوص هذا العلم الشيق. ابقوا معنا.

المصدر مدونتي

تم تعديل هذه المشاركة بواسطة نـــور في 20 أكتوبر 2010 في 21:15

3 −1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#2

هل هذا تمهيد لل FPA

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

أخي الحبيب طارق ...

الـ Function Point Analysis (FPA) يعتبر أحد طرق تقدير البرمجيات .. وسنمر عليه ولا شك ..

ولكن في الجزء السابق من الموضوع وهذا الجزء والذي يليه نقوم بوضع أساسيات لتعريف علم تقدير البرمجيات وبعض اللبس الذي يحدث بسببه.

أنا أؤمن بشدة لو أننا تعلمنا هذا العلم جيداً قد يتغير حال هذه الصناعة في الدول العربية لأن هذا العلم يعتمد عليه أمور كثيرة من أهمها التخطيط مثلاً.

وبعد هذه الأجزاء الثلاثة سنتحدث عن أساسيات لهذا العلم يجب علينا معرفتها قبل الدخول إلى العالم الكبير (طرق تقدير البرمجيات) .. والتي منها Function Point Analysis (FPA).

جزاك الله خيراً :)

1 −1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#4

....

تم تعديل هذه المشاركة بواسطة نـــور في 19 أكتوبر 2010 في 07:53

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#5

الله يجزيك الخير وبانتظار الجزء الثالث

:(:( ذكرتني بمادة الاحصاء

:)

In bad state

#6

على الرغم من كرهي لمادة الإحصاء وأنا صغير .. ومادة الاحتمالات وغيرها من هذه المواد

إلا أنني في الوقت الحالي أؤمن بشدة أنه ممكن برسم بياني واحد أن أعبر عن آلاف الكلمات دون عناء.

في الحقيقة أصبحت أحبه في بعض الأحيان :D

1

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

مواضيع مشابهة