المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : هندسة البرمجيات الدرس الخامس



م/أحمد الكحلاوي
19-03-2008, 01:53 PM
بسم الله الرحمن الرحيم






الدرس الخامس: كتابة البرنامج واختباره



أهداف الدرس:



هذا الدرس لن يعلمك لغة برمجة لتكتب بها البرامج، ولكن الهدف منه التعرف على:





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


خطة الاختبار وأنواع الاختبارات







الجزء الأول: كتابة البرامج:



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

س: لماذا علينا إتباع هذه القواعد؟



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



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



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







بعض قواعد البرمجة Programming Guidelines





هياكل التحكم Control Structures





يقصد بها تلك الهياكل التي تتحكم في مسار عمل البرنامج (مثل Goto ، if- else)، وأثناء كتابة هذه الهياكل علنا أن نحاول أن نجعلها واضحة وسهلة التتبع، وخالية من القفزات الواسعة قدر الإمكان. انظر لهذا المثال:








benefit = minimum;

if (age < 75) goto A;

benefit = maximum;

goto C;

if (age < 65) goto B;

if (age < 55) goto C;

A: if (age < 65) goto B;

benefit = benefit * 1.5 + bonus;

goto C;

B: if (age < 55) goto C;

benefit = benefit * 1.5;

C: next statement






نفس الكود يمكن كتابته على هذا النحو:








if (age < 55) benefit = minimum;

else if (age < 65) benefit = minimum + bonus;

else if (age < 75) benefit = minimum * 1.5 +bonus;

else benefit = maximum;






عالم البرمجة هناك قاعدة تقول أن العمومية ميزة generality is a virtue، لذلك حاول دائما أن تجعل شفراتك البرمجة عامة، لتتمكن من إعادة استعمالها في بقية برامجك بأقل قدر ممكن من التعديل، ولكن حاذر من التمادي في ذلك!


لا تستخدم أبدا أسماء لا معنى لها لمتغيرات أو بارمترات برنامجك ( ينصح بمراجعة هذا الدرس "التسمية في البرنامج، درس لابد من أن يقرأه كل مبرمج! (http://www.c4arab.com/showlesson.php?lesid=1663) ")


"أريد برنامجا سريعا" وكلنا نريد ذلك، ولكن ما هو الثمن؟!





عندما تفكر في جعل برنامجك أسرع ما يمكن، عليك أن تفكر كذلك في الثمن الذي ستدفعه مقابل ذلك:




البرنامج السريع قد يتطلب منك كتابة كود معقد يتطلب منك (ومن فريق العمل) المزيد من الوقت والجهد في كتابته.


الوقت الذي تحتاجه عملية اختبار البرنامج المعقد في مختلف حالته.


الوقت والجهد الذي تحتاجه لتعديل هذا الكود أو لتطويره.


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






التوثيق: لا تهمل أبدا توثيق برنامجك، ما سُمي الإنسان إنسانا إلا لنسيانه.










إرفع رأسك أيها المهندس فأنت مهندس