الحمد لله ان الناس بدأت تتفاعل و يارب ان شاء الله الشرح يستمر سهل الي
النهاية، البرمجة غاية في السهولة كل ما تحتاج اليه هو ترتيب أفكارك و
أعتقد أن أي منكم يقدر علي ذلك، أنت أفضل من المبرمج الهندي و الاسرائيلي
و اللذان استحوذا علي نصيب كبير من صناعة البرمجيات فلم تركت لهم هذه
الفرصة؟ .. و لم تترك لهم هذه الفرصة الان ، لابد لنا من السبق و انا معكم
للنهاية ان شاء الله
للمرة
الثانية أرجوا من الاخوة المشرفين الأعزاء عبد الله فتحي و الطيب و بروف
مساعدتي في مشكلة الصور و تحميل الملفات، لأن الدروس هكذا سوف تتوقف، أو
لو أن أي من الأعضاء لديه و لومساحة استضافة و لو 30 ميجا يجزيه الله كل
الخير و الان نكمل الدرس.
الان سوف أكلمك عن موضوع لذيذ و سهل جدا و هو البناء الهيكلي للبرنامج
كلامي
هنا ينطبق علي كل لغات البرمجة ، يعتقد البعض ان البرنامج مجرد عمليات
تكويد فقط و لكن الحقيقة غير ذلك تماما فالبرمجة تحتوي عدة مراحل متكاملة
و مرتبة يمكن أن نجملها في كلمة PRACTICE و التي يمثل كل حرف منها مرحلة
معينة تعالوا بنا نأخذ جولة سريعة بهذه المراحل
(1) تحديد الهدف الأساسي من اعداد البرنامج (Pose)
__________________________________
•
قبل أن نكتب أكواد و أوامر البرنامج يجب أولا أن نعرف ما المفروض أن يقوم
به هذا البرنامج و هذا شيء طبيعي جدا الا اذا كنت تري شيء اخر.
• يجب
معرفة ما هي المشكلة أو المشاكل التي علي البرنامج حلها ( ما الذي يتوقع
من البرنامج كمخرجات أو معالجات و ما هي احتياجات العميل لأن احتياجاته هي
الأهم و ليس افتكاساتك أنت)
(2) تحليل متطلبات البرنامج ( Resolve)
__________________________
بعد
تحديد الهدف الأساسي من البرنامج يجب أن نحدد الوظائف التي يجب القيام بها
من أجل حل المشكلة أي تعريف المتطلبات requirements definition حيث ينبغي
وضع تصور كامل لهذه المتطلبات يعني طبعا مش ممكن ان انا أبدأ في التصميم
من غير ما أعرف ما هو المطلوب مني بالضبط عمله و سوف نأخذ مثال جميل
مثال
----
لو
جائني عميل و طلب مني عمل برنامج لشركته سأسأله و ماذا تريد من البرنامج
أن يفعله لو قال لك مثلا أريده أن يقوم بعمل كشوف مرتبات الموظفين و
مراقبة المخزون و حفظ بيانات العملاء فهذه هي وظائف برنامجك المطلوب منك
برمجتها و في حالتنا هذه فان الوظائف الثلاثة السابقة هي الوظائف الرئيسية
التي يمكن بعد ذلك تقسيم كل منها لوظائف فرعية و هو ما يقودنا الي النقطة
الثالثة
(3) تقسيم البرنامج الي أجزاء (Allocate)
___________________________
بعد
أن أعددنا المهام و الوظائف التي يجب علي البرنامج الوفاء بها يجب ان نقسم
هذه الوظائف الي مقاطع برمجية يؤدي كل مقطع منها مهمة محددة هذه المهام في
مجموعها تؤدي الوظيفة ... فهمت حاجة؟
يعني لو عاوزين ندفع مرتبات الموظفين هذا الشهر نعمل ايه
أولا نكتب مقطع برمجي يعد الموظفين و نشوف كل موظف حسابه كام
ثانيا نكتب مقطع برمجي يضيف مرتب الشهر الي حساب الموظف
ثالثا نكتب مقطع برمجي يخصم الضرائب و التأمينات و الخصومات
أظن المفهوم الان أسهل
(4)تحديد خطوات المعالجة (Consider)
__________________________
الان
أصبح البرنامج مجموعة من البلوكات البرمجية مهم جدا جدا قبل أن تكتب الكود
أن تشرح لنفسك أولا م الذي يجب علي البرنامج أن يفعله ثم تترجم هذا الكلام
الي أكواد و هو ما سيكفل لك تنفيذ أفضل و أحسن طبعا لن أتطرق الي تفصيل
الخوارزميات و قياس زمن الخوارزميات و السرعة مقابل الذاكرة لأنك لازلت
مبتديء و أغلب الظن أنك شاب و لا أريدك أن تكره الدنيا من الان (أمزح فقط
الموضوع سهل جدا والله)
و كمثال للخوارزمية
لو الطالب حصل علي أكثر من عشر درجات يزيد عدد الناجحين بمقدار واحد
أو بالانجليزية
- الكود:
If score ≥ 10 then
Add one to the succeded students' number
End if
اذا كان المقطع البرمجي كبير يستحسن تقسيمه الي مقاطع أصغر
(5) اختبار الأكواد و البرنامج بوجه عام (Test)
______________________________
اختبار البرنامج للتأكد من أنه يعمل بشكل صحيح البعض يقول أنه من الأفضل
أن نقوم بعمل حسابات البرنامج يدويا و تشغيل نفس البيانات و نري ان كانت
متطابقة أم لا، أو أن تتم هذه العملية علي برامج أخري تؤدي نفس الوظيف و
مقارنة النتائج
عموما من الأفضل اختبار كل بلوك علي حدة للتأكد من أن كل مهمة يتم تأديتها بشكل سليم
(6) احداث تكامل بين عناصر البرنامج (Integrate)
_________________________________
العمل علي ربط الأجزاء و التأكد من ارتباط العمليات و الوظائف بالمهام بشكل صحيح و تشمل هذه المرحلة أيضا الفحص و التنقيح Debugging
(7) التأكد من ان البرنامج يحقق الغرض من تصميمه (Correlate)
____________________________________________
وفي هذه المرحلة نقوم بعمل اختبار الدقة أو ما يسمونه باختبار الثبات
لنعرف اذا كان البرنامج يحقق الغرض الأساسي منه مع استخدام عدد من الأمثلة
( انهاء البرنامج و حفظه (End)
______________________
حفظ
البرنامج باخر تعديلاته وكتابة الملاحظات التي قابلتك أثناء اعداد
البرنامج و تدوين كل الخطوات و بهذا يكون لديك مستند كامل تستطيع العودة
اليه عند الرغبة في التعديل و التطوير.
روح ارتاح شوية و انا كمان عاوز أريح شوية و نكمل بعدين