كيف يتم تصميم لغات البرمجة

تطوير البرمجيات هو فرع من فروع هندسة البرمجيات . يستخدم هذا الفرع مجموعة من الترميز والمراجعة واختبار الوحدة واختبار النزاهة وتصحيح الأخطاء لإنشاء برامج دقيقة وهادفة ومفصلة للغاية. التصنيع البرنامج هو الفرع الذي يرتبط ارتباطا وثيقا جدا لفروع أخرى من هندسة البرمجيات (مثل تصميم البرمجيات و اختبار البرمجيات )


أساسيات تطوير البرمجيات


قلل التعقيد


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


توقع التغيير


يسمح توقع التغيير لمهندسي البرمجيات بإنشاء تطبيقات قابلة للتوسيع دون الحاجة إلى تعطيل البنية التحتية الداخلية لهذا التطبيق. تظهر التجربة أن تكلفة إعادة صياغة البرنامج يمكن أن تتراوح بين 10 و 100 ضعف التكلفة الأولية لكتابة البرنامج. في المتوسط ​​، يتم إجراء حوالي 25٪ من التغييرات المستقبلية في كل مشروع ، لذا فإن التنبؤ بالتغييرات في المشروع مهم بشكل خاص.


بناء أساس للمراجعة


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


إعادة استخدام


تؤدي إعادة الاستخدام المنتظم إلى تحسين الإنتاجية والجودة والتكلفة ولديها إجراءان وثيقان للغاية:


قم بإنشاء هيكل في البرنامج لإعادة استخدامه في البرنامج.


قم بإنشاء برنامج باستخدام إعادة الاستخدام.


معايير تصنيع البرمجيات


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


معايير الاتصال (مثل المعايير المتعلقة بتنسيق ومحتوى الوثائق)


لغات البرمجة


معايير الترميز


قواعد بيانات


الأدوات (مثل معايير الترميز).


إدارة تطوير البرمجيات


النماذج الهيكلية للبرامج


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


جدولة تطوير البرمجيات


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


قياس تطوير البرمجيات


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



يأتي تطوير البرامج مع عدد من الاعتبارات العملية ويجب أخذها في الاعتبار:


تصميم البناء


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


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


لغات بناء البرمجيات


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


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


لغات صندوق الأدوات: تستخدم هندسة البرمجيات هذه اللغات لبناء البرامج ، وهذه اللغات أكثر تعقيدًا من لغات التكوين.


لغات الكتابة: هذه اللغات أكثر دعمًا لكتابة التعليمات البرمجية وغالبًا ما تفسر النص بدلاً من تجميعه.


لغات البرمجة: هذه اللغات هي أكثر أنواع البرامج مرونة والتي تستخدم عادةً ثلاثة أنواع عامة من الترميز:


الترميز اللغوي: يستخدم هذا النوع من الترميز الكلمات ومجموعة من الكلمات لتمثيل البرامج المعقدة. الأوامر الداخلية لهذا النوع من التدوين تشبه الجمل اللغوية.


تدوين رسمي (رياضي): هذا الترميز بعيد عن الكلمات والمحادثات اليومية وهو مكتوب باستخدام تعريفات رياضية.


العلامات المرئية: يستخدم هذا النوع من العلامات كيانات مرئية لتمثيل البرنامج الأساسي.


المبرمجون الذين عملوا في لغة برمجة لمدة ثلاث سنوات على الأقل أكثر كفاءة بحوالي 30٪ من المبرمجين المبتدئين. تتمتع اللغات عالية المستوى مثل C ++ و جافا و سمولتاك و فيجوال بيزك بزيادة قدرها 5 إلى 15 بالمائة في الإنتاجية والبساطة والموثوقية والقابلية للفهم على اللغات منخفضة المستوى. تتطلب كتابة نفس البرنامج عددًا أقل من رموز الخطوط في لغات البرمجة عالية المستوى. 


الترميز


عند بناء البرنامج ، يجب إيلاء اهتمام خاص للاعتبارات التالية المتعلقة بكود أنثى:


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


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


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


أظهرت الأبحاث أن تكديس المصفوفات يمكن أن يقلل من عدد المتغيرات ومراجعها.


يعد استخدام هياكل التحكم أمرًا ضروريًا ويجب مراعاة الاعتبارات التالية عند استخدامها:


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


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


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


يجب دائمًا إدارة الأخطاء المخططة أو المفاجئة (على سبيل المثال ، من خلال إجراء استثناءات).


يجب تجنب الاختلافات المضمونة في خطوات التعليمات البرمجية.


من الأفضل استخدام قواعد وآليات الاستخراج لإعادة استخدام الموارد (مثل الخيط وقفل قاعدة البيانات).


يجب تنظيم الكود الأساسي باستخدام البيانات أو الإجراءات ؛ في هذا الاتجاه ، ينبغي النظر في النقاط التالية:


الإجراءات عالية الاستمرارية أقل عرضة للخطأ من الإجراءات منخفضة الاتساق. في الدراسات ، ثبت أنه في إحدى الدراسات ، تمت مراجعة 450 إجراء ووجد أن حوالي 50 ٪ من الإجراءات ذات اتساق عالٍ وحوالي 18 ٪ من الإجراءات ذات الاتساق المنخفض كانت خالية من أي أخطاء.


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


أظهرت دراسات أخرى أنه إذا كان الحجم الروتيني يتراوح بين 100 و 150 سطرًا من التعليمات البرمجية ، فلن تكون هناك حاجة لتغييرها وتحريرها.


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


المعلمات غير المستخدمة تزيد من احتمال الأخطاء.


يجب أن يكون عدد معلمات الروتين 7 كحد أقصى ؛ هذا لأن القراء غير قادرين على متابعة أكثر من 7 أجزاء من المعلومات.


بالإضافة إلى استخدام الإجراءات والبيانات ، يجب تنظيم الكود الأساسي في فئات وحزم وهياكل أخرى. لاحظ أن عدد أعضاء الفصل يجب ألا يتجاوز 7 +/- 2 لأن هذا هو الحد الأقصى لعدد الأنشطة المنفصلة التي يمكن أن يفكر فيها الشخص أثناء أداء الأنشطة الأخرى. عند التفكير في الميراث ، يجب أن يكون عدد مراحل شجرة الميراث محدودًا. من المحتمل أن يكون العدد الكبير من الموروثات مرتبطًا بعدد أخطاء البرمجة. يجب أن يكون عدد الإجراءات داخل الفصل عند الحد الأدنى.


يجب دائمًا إيلاء اهتمام خاص لتوثيق وتوحيد الرموز.


اختبار تطوير البرمجيات


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


اختبار الوحدة


اختبار متكامل


إعادة استخدام


تعد إعادة استخدام البرامج أكثر من مجرد إنشاء المكتبات واستخدامها. تشمل الأنشطة المتعلقة بإعادة استخدام تطوير البرمجيات أثناء الترميز والاختبار ما يلي:


حدد الوحدات القابلة لإعادة الاستخدام وقواعد البيانات وعملية الاختبار وبيانات الاختبار


قم بتقييم الكود واختبر قابليته للاستخدام لإعادة الاستخدام


الإبلاغ عن إعادة الاستخدام في التعليمات البرمجية الجديدة واتجاهات الاختبار وبيانات الاختبار


جودة البناء


التقنيات الأساسية لضمان جودة الكود الذي تم إنشاؤه هي:


اختبار الوحدة والاختبار المتكامل: في الدراسات السابقة ، تم الإشارة بوضوح إلى أن معدل الكشف عن متوسط ​​الأخطاء في طريقتين اختبار الوحدة والاختبار المتكامل هو 30 و 35٪ على التوالي.


اختبار التطوير الأول


استخدام أساليب التوكيد والبرمجة الدفاعية


المراقبة: أظهرت الدراسات أن متوسط ​​معدل اكتشاف الأخطاء في المراقبة الرسمية للشفرة يبلغ حوالي 60٪. فيما يتعلق بتكلفة اكتشاف الأخطاء ، أظهرت إحدى الدراسات أن القراءة سطرًا بسطر للرمز تكشف عن أكثر من 80٪ من الخطأ مقارنة بعملية الاختبار. يمكن أن تكتشف هذه الطريقة أخطاء التصميم بشكل أكثر كفاءة من طرق الاختبار. 


أظهرت الدراسات أيضًا أن المراقبة تقلل الأخطاء بنسبة 20 إلى 30 بالمائة في رمز مكون من ألف سطر وتزيد الإنتاجية بنسبة 20 بالمائة. عادةً ما يمثل الإشراف الرسمي 10 إلى 15 بالمائة من إجمالي ميزانية المشروع وعادةً ما يقلل التكلفة الإجمالية للمشروع. يعتبر الحد الأقصى لعدد المراقبين عادة من 2 إلى 3 ، ولن تنجح زيادة عددهم في اكتشاف الأخطاء. 


الفحص الفني: يبلغ متوسط ​​معدل اكتشاف الأخطاء من خلال المعاينة غير الرسمية والفحص المكتبي حوالي 25 و 40٪ على التوالي تتمتع جلسات مراجعة الأخطاء أيضًا بالقدرة على اكتشاف حوالي 20 إلى 40 بالمائة من الأخطاء التي ستكون مكلفة للغاية في أعباء العمل العالية جدًا تم إجراء فحص تقني أيضًا في وكالة الفضاء الأمريكية ، والتي تمكنت من اكتشاف حوالي 3.3 أخطاء في الساعة ؛ من ناحية أخرى ، كانت طرق الاختبار التقليدية قادرة على اكتشاف 1.8 خطأ في الساعة.


التحليل الإحصائي


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


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


 وجدت تجربة شملت مبرمجين ذوي خبرة أنهم تمكنوا في المتوسط ​​من العثور على 5 أخطاء (9 في أحسن الأحوال) من أصل 15 خطأ عن طريق الاختبار. 


تتركز ثمانون بالمائة من أخطاء البرنامج في 20 بالمائة من فئات وإجراءات البرنامج. 50٪ من الأخطاء موجودة في 5٪ من فئات المشروع. من خلال إصلاح وإعادة كتابة حوالي 31 فئة من 425 فئة في برنامج واحد ، خفضت شركة آي بي ام عدد الأخطاء بمقدار العُشر وخفضت تكاليف الصيانة بنسبة 45 بالمائة. 


تواصل اجتماعي


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


تقنيات التصنيع


قضايا وقت التشغيل الموجهة للكائناتيحرر


تدعم اللغات الموجهة للكائنات عددًا من آليات وقت التشغيل المختلفة ، والتي يزيد استخدامها من مرونة التطبيقات وقابليتها للتكيف (مثل تلخيص البيانات ، والوراثة ، وتعدد الأشكال ، والانعكاس ، وما إلى ذلك).


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


التحكيم وتصميم الالتزام والبرمجة الدفاعيةيحرر


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


إدارة الأخطاء وإدارة الاستثناءات ونطاق الخطأيحرر


إدارة الأخطاء هي نوع من البرمجة يتم فيها عمل تنبؤات وترميز للأخطاء أثناء تنفيذ البرنامج. إدارة الاستثناءات هي بنية في البرمجة يمكن استخدامها لإقناع البرنامج بالعمل بشكل طبيعي في حالة حدوث سلسلة من الأخطاء (سواء كانت متطابقة أو متغيرة). يشير نطاق الخطأ إلى مجموعة من الأساليب التي يمكن استخدامها لاكتشاف الأخطاء في البرنامج واتخاذ الترتيبات لاستعادة البرنامج. هذه المجموعة من التقنيات تزيد من مصداقية البرامج.


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


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


الإعدادات في وقت التشغيل وتدويلها


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


لا توجد أسئلة بعد