تعقيدات تصميم البرمجيات في هندسة البرمجيات Software Engneering Software Design Complexity

تعقيدات تصميم البرمجيات في هندسة البرمجيات

 Software Engneering Software #Design Complexity

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

 يصعب تقييم تعقيد تصميم البرامج دون استخدام مقاييس ومقاييس التعقيد.  دعنا نرى ثلاثة تدابير تعقيد البرمجيات الهامة.

 تدابير تعقيد هالستيد
 في عام 1977 ، السيد  قدم موريس هوارد هالستيد مقاييس لقياس تعقيد البرمجيات.  تعتمد مقاييس Halstead على التنفيذ الفعلي للبرنامج وإجراءاته ، والتي يتم حسابها مباشرةً من المشغلين ومشغلي شفرة المصدر ، بطريقة ثابتة.  يسمح بتقييم وقت الاختبار والمفردات والحجم والصعوبة والأخطاء وجهود مصدر شفرة C / C ++ / Java.

 وفقًا لهالستيد ، "إن برنامج الكمبيوتر عبارة عن تطبيق لخوارزمية تُعتبر مجموعة من الرموز المميزة التي يمكن تصنيفها على أنها عوامل تشغيل أو معاملات".  تعتبر مقاييس Halstead أن البرنامج عبارة عن سلسلة من العوامل والمعاملات المرتبطة بها.

 يحدد المؤشرات المختلفة للتحقق من تعقيد الوحدة.

المتغيرالمعنى
n1 عدد المعاملات المميزة
n2عدد المعاملات المميزة
N1العدد الكلي لحدوث المعامل
N2العدد الكلي لحدوث المعامل

عندما نختار الملف المصدر لعرض تفاصيل التعقيد في Metric Viewer ، تظهر النتيجة التالية في Metric Report:
Metricالمعنىالتمثيل الرياضي 
nVocabularyn1 + n2
NSizeN1 + N2
VVolumeLength * Log2 Vocabulary
DDifficulty(n1/2) * (N1/n2)
EEffortsDifficulty * Volume
BErrorsVolume / 3000
TTesting timeTime = Efforts / S, where S=18 seconds

مقايس التعقيد السيكلومي
 يتضمن كل برنامج عبارات للتنفيذ من أجل أداء بعض المهام وبيانات اتخاذ القرارات الأخرى التي تقرر ما هي العبارات التي يتعين تنفيذها.  تغيير بنيات صنع القرار هذه تدفق البرنامج.

 إذا قارنا برنامجين من نفس الحجم ، فسيكون البرنامج الذي يحتوي على المزيد من عبارات اتخاذ القرار أكثر تعقيدًا من السيطرة على البرنامج بشكل متكرر.

 اقترح McCabe ، في عام 1976 ، قياس التعقيد السيكلاني لتحديد مدى تعقيد برنامج معين.  إنه نموذج يحركه الرسم البياني ويستند إلى عمليات صنع القرار في البرنامج ، مثل: if-else و do-do و Rep-so و switch-case و goto.

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

رسم قوس

من عقده الإنهاء إلى عقده الإدخال

رسم قوس.

لحساب التعقيد الحلقي للوحدة النمطية للبرنامج ، نستخدم الصيغة-
V(G) = e  n + 2

Where
e is total number of edges
n is total number of nodes



e = 10
n = 8
Cyclomatic Complexity = 10 - 8 + 2
                      = 4


وفقًا لـ P. Jorgensen ، يجب ألا يتجاوز التعقيد السيكلوري لوحدة نمطية 10.

 وظيفة نقطة
 يستخدم على نطاق واسع لقياس حجم البرنامج.  تركز الوظيفة على الوظائف التي يوفرها النظام.  تستخدم ميزات ووظائف النظام لقياس تعقيد البرنامج.

 تحسب نقطة الوظيفة على خمس معلمات ، تسمى "الإدخال الخارجي" ، "الإخراج الخارجي" ، "الملفات الداخلية المنطقية" ، "ملفات الواجهة الخارجية" ، "الاستفسار الخارجي".  للنظر في تعقيد البرنامج ، يتم تصنيف كل معلمة على أنها بسيطة أو متوسطة أو معقدة.

 دعونا نرى معالم نقطة الوظيفة:

 المدخلات الخارجية
 كل مدخلات فريدة للنظام ، من الخارج ، تعتبر مدخلات خارجية.  يتم قياس تفرد المدخلات ، حيث لا ينبغي أن يكون لأي مدخلات نفس التنسيقات.  يمكن أن تكون هذه المدخلات إما معلمات بيانات أو تحكم.

 بسيط - إذا كان عدد المدخلات منخفضًا ويؤثر على ملفات داخلية أقل

 معقدة - إذا كان عدد المدخلات مرتفعًا ويؤثر على المزيد من الملفات الداخلية

 متوسط ​​- بين بسيط ومعقد.

 الإخراج الخارجي
 يتم احتساب جميع أنواع المخرجات التي يوفرها النظام في هذه الفئة.  يعتبر الإخراج فريدًا إذا كان تنسيق الإخراج و / أو المعالجة فريدًا.

 بسيط - إذا كان عدد المخرجات منخفض

 معقدة - إذا كان عدد المخرجات مرتفع

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

 بسيط - إذا كان عدد أنواع السجلات منخفضًا

 معقد - إذا كان عدد أنواع السجلات مرتفعًا

 متوسط ​​- بين بسيطة ومعقدة.

 ملفات الواجهة الخارجية
 قد يحتاج نظام البرنامج إلى مشاركة ملفاته مع بعض البرامج الخارجية أو قد يحتاج إلى تمرير الملف للمعالجة أو كمعلمة لبعض الوظائف.  يتم حساب كل هذه الملفات كملفات واجهة خارجية.

 بسيط - إذا كان عدد أنواع السجلات في الملف المشترك منخفضًا
 معقد - إذا كان عدد أنواع السجلات في الملف المشترك مرتفعًا
 متوسط ​​- بين بسيطة ومعقدة.

استفسار خارجي
 الاستفسار هو مزيج من المدخلات والمخرجات ، حيث يرسل المستخدم بعض البيانات للاستعلام عنها كمدخلات ويستجيب النظام للمستخدم مع معالجة مخرجات الاستفسار.  تعقيد استعلام ما هو أكثر من المدخلات الخارجية والمخرجات الخارجية.  يُقال أن الاستعلام فريد من نوعه إذا كانت المدخلات والمخرجات فريدة من حيث التنسيق والبيانات.

 بسيطة - إذا تطلب الاستعلام معالجة منخفضة وتنتج كمية صغيرة من بيانات المخرجات

 معقدة - إذا كان الاستعلام يحتاج إلى عملية عالية وتنتج كمية كبيرة من بيانات المخرجات

 متوسط ​​- بين بسيطة ومعقدة.

 يتم إعطاء وزن لكل من هذه المعلمات في النظام وفقًا للفئة والتعقيد.  يذكر الجدول أدناه الوزن المعطى لكل معلمة:
المتغيىبسيطمتوسطمعقد
Inputs346
Outputs457
Enquiry346
Files71015
Interfaces5710

يعطي الجدول أعلاه نقاط دالة خام.  يتم ضبط نقاط الوظيفة هذه وفقًا للتعقيد البيئي.  يوصف النظام باستخدام أربعة عشر خصائص مختلفة:

 اتصالات البيانات
 المعالجة الموزعة
 أهداف الأداء
 تحميل التكوين العملية
 معدل المعاملة
 إدخال البيانات عبر الإنترنت ،
 كفاءة المستخدم النهائي
 التحديث عبر الإنترنت
 منطق معالجة معقدة
 إعادة الاستخدام
 سهولة التركيب
 سهولة التشغيل
 مواقع متعددة
 الرغبة في تسهيل التغييرات
ثم يتم تصنيف عوامل الخصائص هذه من 0 إلى 5 ، كما هو مذكور أدناه:

 لا تأثير
 عرضي
 معتدل
 متوسط
 هام
 أساسي
 ثم يتم تلخيص جميع التصنيفات كـ N. وتتراوح قيمة N من 0 إلى 70 (14 أنواعًا من الخصائص × 5 أنواع من التصنيفات).  يتم استخدامه لحساب عوامل ضبط التعقيد (CAF) ، باستخدام الصيغة التالية:

CAF = 0.65 + 0.01N

ثم

Delivered Function Points (FP)= CAF x Raw FP


يمكن بعد ذلك استخدام FP في مقاييس متنوعة ، مثل:

 التكلفة = $ / FP

 الجودة = أخطاء / FP

 الإنتاجية = FP / الشخص في الشهر