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

كيف كانوا يبرمجون ؟!

مغلق
بدأه Free Electron في 19 أكتوبر 2005 · 2 رد · 1,753 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف كانو يبرمجون ؟!

ما قبل البرمجة الهيكلية:

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

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

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

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

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

مكامن الضعف في البرمجة التقليدية :

إن كافة مراحل البرمجة التقليدية من تصميم ، وتوثيق ، وترميز (تكويد) ، واختبار وصيانة تتم بطرق غير متقنة أو غير نظامية.

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

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

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

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

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

منقول من أحد الكتب ...

#2

اردت ان المبرمج المشهور ديكسترا صاحب خوارزمية اقصر طريق في الجراف سمي الانتقال من البرمجة غير الهيكلية الى البرمجة الهيكلية بانها عملية التخلص من التعبير GO TO

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

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

#3

انا شايف الموضوع ده قبل كدة .. مو واحد صاحبنا بتاع والاس وانج ولا لانج ولا حاجة زي كدة!

هذا الموضوع مغلق.

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