الثلاثاء، 26 نوفمبر 2019

التنفيذ هندسة البرمجيات Software Engineering Implementation#

التنفيذ هندسة البرمجيات Software

  Engineering Implementation#

التنفيذ هندسة البرمجيات Software  Engineering Implementation#


في هذا الفصل ، سوف ندرس طرق البرمجة والوثائق والتحديات في تنفيذ البرامج.

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

 تنص البرمجة المنظمة على كيفية ترميز البرنامج.  تستخدم البرمجة المنظمة ثلاثة مفاهيم رئيسية:

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

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

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

 توفر البرمجة الوظيفية وسائل حساب كوظائف حسابية ، والتي تنتج بغض النظر عن نتائج حالة البرنامج.  هذا يجعل من الممكن التنبؤ بسلوك البرنامج.

 تستخدم البرمجة الوظيفية المفاهيم التالية:

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

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

Recursion - Recursion - تقنية Recursion - عبارة عن تقنية برمجة حيث تقوم دالة باستدعاء نفسها وتكرار رمز البرنامج ما لم تتطابق بعض الشروط المحددة مسبقًا.  العودية هي طريقة إنشاء حلقات في البرمجة الوظيفية.

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

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

 تعتبر بعض الأمثلة الشائعة على لغات البرمجة الوظيفية هي: Lisp و Scala و Haskell و Erlang و F #.

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

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

 إرشادات الترميز coding instructions 


تختلف ممارسة أسلوب الترميز باختلاف المؤسسات وأنظمة التشغيل ولغة الترميز نفسها.

 يمكن تعريف عناصر الترميز التالية بموجب إرشادات الترميز الخاصة بالمؤسسة:

 اصطلاحات التسمية - يحدد هذا القسم كيفية تسمية الدالات والمتغيرات والثوابت والمتغيرات العامة.

 المسافة البادئة - هذه هي المساحة المتبقية في بداية السطر ، وعادةً ما تكون 2-8 مسافة بيضاء أو علامة تبويب واحدة.

 مساحة بيضاء - يتم حذفها عمومًا في نهاية السطر.

 Operators - يحدد قواعد كتابة العوامل الرياضية والتخصيصية والمنطقية.  على سبيل المثال ، يجب أن يكون لمشغل المهمة '=' مساحة قبله وبعده ، كما في 'x = 2'.

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

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

 وظائف - وهذا يحدد كيفية الإعلان عن الوظائف واستدعاءها ، مع وبدون معلمات.

 المتغيرات - يشير ذلك إلى كيفية تعريف وتعريف متغيرات أنواع البيانات المختلفة.

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

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

 يجب أن تتضمن الوثائق التي تم صيانتها جيدًا المستندات التالية:

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

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

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

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

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


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

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

 هناك العديد من الأدوات الآلية المتاحة وبعضها يأتي مع لغة البرمجة نفسها.  على سبيل المثال ، تأتي java أداة JavaDoc لإنشاء الوثائق الفنية للرمز.

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

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

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

 إدارة الإصدار - في كل مرة يتم إصدار برنامج جديد للعميل ، يتعين على المطورين الحفاظ على الوثائق المتعلقة بالإصدار والتكوين.  يجب أن تكون هذه الوثائق دقيقة للغاية ومتاحة في الوقت المحدد.

 
Target-Host - يحتاج البرنامج ، الذي يتم تطويره في المؤسسة ، إلى تصميمه من أجل الأجهزة المضيفة في نهاية العملاء.  ولكن في بعض الأحيان ، يستحيل تصميم برنامج يعمل على الأجهزة المستهدفة.



التسميات: