يعتمد بناء البرمجيات على العديد من الاعتبارات العملية:
تصميم البناء
يجب إجراء بعض تعديلات التصميم أثناء بناء البرنامج على نطاق صغير أو كبير لتوضيح تفاصيل تصميم البرمجيات، لحصر الثغرات غير المتوقعة في تصميم البرمجيات.
وجد الباحثون أن تقليل عدد المخارج هو أحد خصائص التصميم المفيدة. وأثبت أن إخفاء المعلومات هو أسلوب تصميم مفيد في البرامج الكبيرة لأن من السهل تعديلها بمعدل 4 أضعاف.
لغة البناء
تتضمن لغات البناء جميع أشكال الاتصال التي يمكن أن يستخدمها الإنسان لتحديد حل لمشكلة قابلة للتنفيذ للكمبيوتر. تشمل لغات التكوين ولغات مجموعة الأدوات ولغات البرمجة:
- لغات التكوين: هي اللغات التي يختار منها مهندسو البرمجيات مجموعة محدودة من الخيارات المحددة مسبقًا لإنشاء عمليات تثبيت برمجية جديدة أو مخصصة.
- تستخدم لغات مجموعة الأدوات لبناء تطبيقات خارج مجموعات الأدوات، وهي أكثر تعقيدًا من لغات التكوين.
- لغات البرمجة النصية: أنواع من لغات برمجة التطبيقات تدعم البرامج النصية التي تفسر غالبًا بدلًا من أن تترجم.
- لغات البرمجة: أكثر أنواع لغات البناء مرونة وتستخدم ثلاثة أنواع عامة من الرموز:
- الرموز اللغوية: تتميز بشكل خاص باستخدامها لسلاسل نصية مشابهة للكلمات لتمثيل عمليات بناء البرمجيات المعقدة، والجمع بين السلاسل النصية المشابهة للكلمات في أنماط لها تركيب شبيه بالجملة البرمجية.
- الرموز الرسمية: لا تعتمد كثيرًا على المعاني اليومية البديهية للكلمات والسلاسل النصية، بل تعتمد على تعاريف دقيقة وغير غامضة ورسمية (أو رياضية).
- الرموز البصرية: لا تعتمد على رموز البناء النصية اللغوية والرسمية، وتعتمد بدلًا من ذلك على التفسير والتنسيب المرئي المباشر للكيانات المرئية التي تمثل البرمجيات الأساسية.
وجد أن المبرمجون العاملون بلغة استخدموها لمدة ثلاث سنوات أو أكثر هم أكثر إنتاجية بنحو 30% من المبرمجين الذين لديهم نفس الخبرة ولكنهم جدد في استخدام لغة برمجة ما. تحقق لغات البرمجة عالية المستوى مثل سي++، وجافا، وسمول توك، وفيجوال بيزك، إنتاجية وموثوقية وبساطة وشمولية أفضل بـ5 إلى 15 مرة من اللغات منخفضة المستوى مثل لغة أسيمبلي ولغة سي. ثبت أن التعليمات البرمجية تنفذ بسطور أقل في اللغات عالية المستوى مقارنة باللغات ذات المستوى الأدنى.
الترميز
تطبق الاعتبارات التالية على عملية ترميز بناء البرمجيات:
- تقنيات لبناء كود مصدري مفهوم، تشمل تسمية وتخطيط الكود المصدري. أظهرت إحدى الدراسات أن الجهد المطلوب لتصحيح أخطاء البرنامج يقل إلى أدنى حد عندما تتراوح أسماء المتغيرات بين 10 و16 محرف.
- استخدام الصفوف والأنواع المعددة والمتغيرات والثوابت المسماة وكيانات مماثلة أخرى:
- أظهرت دراسة أجرتها ناسا أن صياغة الكود باستخدام أصناف محللة بشكل جيد يمكن أن يضاعف إمكانية إعادة استخدام الكود مقارنة بالكود المطور باستخدام التصميم الوظيفي.
- أظهرت إحدى التجارب أن التصاميم التي تصل إلى المصفوفات بالتتابع، وليس بشكل عشوائي، تنتج عددًا أقل من المتغيرات ومراجع المتغيرات.
- وجدت إحدى التجارب أن الحلقات المنتهية (بالإنجليزية: loops-with-exit) مفهومة أكثر من الحلقات الأخرى.
- في ما يتعلق بمستوى تداخل الحلقات والجمل الشرطية، أظهرت الدراسات أن المبرمجين يجدون صعوبة في فهم أكثر من ثلاثة مستويات متداخلة.
- أثبت أن تعقيد التحكم بالتدفق يرتبط بانخفاض الموثوقية والأخطاء المتكررة.
- معالجة حالات الخطأ -كل من الأخطاء المتوقعة والاستثناءات (إدخال بيانات سيئة مثلًا)
- منع خروقات الأمان على مستوى الكود (تجاوز سعة المخزن المؤقت أو تجاوز سعة فهرس المصفوفة مثلًا)
المصدر: wikipedia.org