شرح الدرس
نتاج التعلم ج
البرمجة
نتاج التعلم ج

ج } تطوير حل برمجي لتلبية متطلبات العميل
بمجرد تصميم الحل البرمجي وتوثيقه ومراجعته والموافقة عليه، يحين الوقت لتنفيذ التصميم لإنتاج تطبيق يعمل. إذا كان تصميمك مفصلًا، يجب أن تجد أنه من السهل نسبيًا تحويله إلى كود مناسب في لغة البرمجة المستهدفة.
تطوير حلول البرمجيات
- يمكن أن تستغرق عملية تطوير حلول البرمجيات وقتًا طويلاً. ومع ذلك، فقد أزالت أدوات التطوير الحديثة العديد من الصعوبات لكل من المبرمجين المبتدئين وذوي الخبرة.
- سيكون لديك العديد من الخيارات المتاحة لك عند تطوير تطبيقك.
- خطوتك الأولى هي اختيار بيئة التطوير الخاصة بك.
بيئة التطوير
تستخدم عملية تطوير البرمجيات بينات تطوير متكاملة (IDEs). تساعد بينات التطوير المتكاملة (IDEs) في تحسين الإنتاجية من خلال السماح للمطورين بإدارة المشاريع وتحرير وتجميع وتصحيح وتنفيذ الكود، كل ذلك من داخل مجموعة البرامج نفسها. وأحيانًا، تكون بيئة التطوير المتكاملة (IDE) خاصة بلغة البرمجة المختارة. على سبيل المثال، تستخدم Microsoft Visual Basic .NET إصدارات Visual Studio التجارية أو إصدارات Visual Studio Express المجانية، كما هو موضح في الشكل 4.36.
المهارات
- اختيار أدوات وأنظمة تكنولوجيا المعلومات المناسبة لتطوير البرمجيات
- مهارات الإدارة الذاتية والتخطيط
- القدرة على العمل بطريقة قانونية وأخلاقية
موضوعات ذات صلة
لمزيد من المعلومات حول بينات التطوير المتكاملة، انظر الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
52 نتاج التعلم ج
البرمجة
لغات البرمجة الأخرى لا تحتوي على بيئة تطوير متكاملة محددة، وقد يؤثر ذلك في اختيار لغة البرمجة. يمكن تطوير اللغات الشائعة مثل C و++C وPHP باستخدام مجموعة متنوعة من بينات التطوير. قد تتكون هذه البينات من عدد من العناصر المتباينة. على سبيل المثال، يمكن تطوير PHP باستخدام أحد الإعدادات الآتية:
- نظام تشغيل لينكس، محرر النصوص نانو، خادم الويب أباتشي HTTP مع وحدات PHP المثبتة
- نظام تشغيل Microsoft Windows، Notepad++، Microsoft IIS Web Server مع تثبيت ثنائيات ويندوز PHP.
أي من هذه الحلول سيوفر بيئة مناسبة لمطور يعمل مع PHP.
الروتينات المكتبية والأكواد القياسية والروتين الفرعي التي ينشئها المستخدم يجب أن توفر بيئة التطوير المختارة إمكانية الوصول إلى الروتينات المكتبية والأكواد القياسية والروتينات الفرعية المحددة من قبل المبرمج. يمكن استخدام ذلك لجعل البرنامج أكثر كفاءة. تحتوي العديد من بينات التطوير على ميزات لمساعدة المبرمجين على توليد الكود بسرعة أكبر. وتشمل هذه الميزات ما يأتي: 1 كود القالب (Boilerplate code) - يحدد 'الهيكل الرئيس' للكود القياسي الذي يعمل كنقطة انطلاق للمبرمجين لكتابة تطبيقاتهم. 2 الإكمال التلقائي للكود - النوافذ المنبثقة التي تقترح الكود الذي يمكن للمبرمج استخدامه لإنهاء سطر الكود الحالي، وغالبًا ما تقدم عددًا من الخيارات المختلفة، كاملة مع التعريفات والاستخدامات. 3 مقتطفات الكود - أقسام قصيرة من الكود التي يمكن إدراجها في برنامج من مكتبة من الروتينات المكتوبة مسبقًا، وغالبًا ما تتضمن المهام المستخدمة بشكل شائع. كل هذه الميزات مصممة لتوفير الوقت للمبرمج وجعل عملية التطوير أكثر سهولة. بالإضافة إلى ذلك، توفر العديد من بينات التطوير الوصول إلى موارد عبر الإنترنت تحتوي على دعم من طرف ثالث. على سبيل المثال، تحتوي MSDN (شبكة مطوري Microsoft) من Microsoft على مكتبة واسعة من الموارد والمنتديات النشطة.
اختبار الحلول البرمجية
- بمجرد إزالة الأخطاء الواضحة، مثل أخطاء الصياغة، بنجاح من البرنامج باستخدام أدوات التصحيح المتاحة في بيئة البرمجة الخاصة بك، يمكن اختبار الحلول البرمجية.
- يتضمن ذلك اتباع عملية بسيطة خطوة بخطوة، باستخدام خطة اختبار وبيانات اختبار.
يتم مناقشة بينات التطوير الشائعة لتطبيقات الهاتف المحمول في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
تُستخدم بينات التطوير المتكاملة في جميع أنواع التطوير. على سبيل المثال، الوحدة 7: تطوير تطبيقات الأجهزة المحمولة يفحص بينات التطوير المتكاملة المستخدمة لإنشاء تطبيقات الأجهزة المحمولة التي تعمل بنظامي Apple iOS وAndroid ويوفر مثالًا عمليًا لإنشاء تطبيق برمجي لحاجة مستخدم محددة. لمزيد من المعلومات حول بينات التطوير المتكاملة في سياقات مختلفة، انظر الوحدة 6: تطوير المواقع الإلكترونية والوحدة 8: تطوير ألعاب الحاسوب.
مثال عملي: اختبار البرمجيات
الخطوة 1: تضع أنا خطة اختبار وتختار بيانات اختبار مناسبة، والتي تشمل بيانات نموذجية، ومتطرفة وخاطئة. الخطوة 2: تُدخل أنا بيانات اختبار العينة الخاصة بها واختيارات المستخدم في الجدول التتبع. ثم تسجل النتائج التي تتوقع رؤيتها. الخطوة 3: تقوم أنا بإدخال بيانات اختبار العينة الخاصة بها في البرنامج المباشر وتسجيل النتائج الفعلية. الخطوة 4: تُقارن أنا بين المخرجات المتوقعة والفعلية لترى ما إذا كانت مختلفة. الخطوة 5: تقوم أنا بتحديد أي تناقضات وتعيد النظر في كود البرنامج لإصلاح الأخطاء الدلالية التي حددها الاختبار. الخطوة 6: تُعيد أنا اختبار البرنامج لترى ما إذا كانت التغييرات التي أجرتها على الكود قد أصلحت الأخطاء. إذا لم تفعل ذلك، يجب عليها بعد ذلك تكرار العملية حتى يتم حل الأخطاء.
53 نتاج التعلم ج
البرمجة
أنواع أخرى من الاختبارات ستشمل ما يأتي:
- اختبار التوافق - اختبار التطبيق في بينات مختلفة، مثل أنظمة التشغيل المختلفة و/أو منصات الأجهزة المختلفة (حاسوب مكتبي، جهاز أبل ماك، هاتف محمول، جهاز اللوحي، وحدة تحكم في الألعاب).
- اختبار الاستقرار - المعروف أيضًا باسم اختبار التحميل أو التحمل؛ يتحقق من أن الحل البرمجي يعمل بشكل جيد باستمرار، مرة بعد مرة، دون مشاكل.
- الاختبار الوظيفي - أسلوب اختبار الصندوق الأسود الذي يضمن أن الحل البرمجي يلبي المتطلبات الوظيفية التي قدمها العميل في الأصل.
أخطاء بناء الجملة هي الأخطاء في الكود المصدري التي لا يستطيع مترجم لغة البرمجة تمريرها أو حلها، والتي يقوم المترجم بالإبلاغ عنها لتنبيه المطور. يحدث هذا عندما يكسر كود البرنامج قواعد أو بنية اللغة، على سبيل المثال عندما تستخدم رموز غير صالحة أو تُكتب الكلمات المحجوزة بشكل غير صحيح. الأخطاء الدلالية في إصدار من برنامج (غالبًا ما يُطلق عليه 'بناء') يمكن أن تكون أكثر صعوبة في تمييزها وإصلاحها من أخطاء بناء الجملة. هذا لأن تركيبتها جيدة، لذلك لا يتم الإبلاغ عنها من قبل المترجم. ومع ذلك، فهي 'خطأ في المنطق أو المعنى'، ما يعني أنها لا تؤدي المهمة التي قصدتها.
بصفتك مطورًا، يمكنك استخدام عدد من الطرق لتطوير حل البرنامج وتحسينه. وتشمل الآتي:
- وضع تعليقات توضيحية على الكود، حيث سيسمح هذا للمطورين بإصلاح البرنامج أو تصحيحه وسيحسن من إمكانية صيانته
- تجميع البرنامج لمنصة أو بينة معينة
- مراجعة جودة البرنامج من حيث الموثوقية وسهولة الاستخدام والكفاءة وقابلية الصيانة وقابلية النقل
- إجراء اختبار المستخدم والحصول على ملاحظات من المستخدمين حول تجربتهم
- الاستفادة من نتائج الاختبار والتغذية الراجعة في أي صيانة تحسينية أو تكييف مخططة، على سبيل المثال استخدام الأخطاء التي تم العثور عليها في أثناء الاختبار الرسمي للكود المستهدف الذي يحتاج إلى إصلاح أو متابعة ملاحظات المستخدم لتحديد الجوانب التي تحتاج إلى تحسين
- توثيق أي تغييرات في التصميم والحل، مثل التغييرات في كود البرنامج، والمدخلات المطلوبة، والمخرجات المنسقة، وتخزين البيانات، وغيرها.
للاختبار البرمجيات، تحتاج إلى خطة اختبار وبيانات اختبار، والتي تم مناقشتها سابقًا في هذه الوحدة. يتم أيضًا مناقشة اختبار البرمجيات في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة، والوحدة 13: اختبار البرمجيات.
نصائح
إصلاح الأخطاء في إصدار من برنامج (غالبًا ما يُطلق عليه 'بناء') يمكن أن يؤدي عن غير قصد إلى تعطيل جوانب من البرنامج كانت تعمل قبل ذلك. تأكد دائما من اختبار البرنامج بالكامل في كل مرة يتم إصلاحه، بدلاً من اختبار الجوانب الأخيرة تهدف إلى إصلاحها فقط.
- مهارات الإدارة الذاتية والتخطيط
انظر الوحدة 7: تطوير تطبيقات الأجهزة المحمولة، كمثال محدد على هذه الأساليب في تطوير تطبيقات الهاتف المحمول.
مراجعة الحلول البرمجية
يجب عليك دائما مراجعة وتقييم حلول البرمجيات الخاصة بك بمجرد تطويرها. قد تجد أن الأسئلة الآتية مفيدة عند مراجعة الحل الخاص بك:
- ما مدى ملاءمته للفئة المستهدفة والغرض المقصود؟
- هل يلبي الاحتياجات الأصلية للعميل؟
- ما مدى سهولة استخدامه؟
- هل الحل البرمجي ذو جودة عالية؟
- أن يكون موثوقًا
- قابل للاستخدام
- فعال في الأداء
- سهل الصيانة
- قابل للنقل إلى منصات أخرى؟
- هل تحتوي لغة البرمجة المختارة على قيود أضرت بالحل؟
54 نتاج التعلم ج
البرمجة
- هل كانت هناك أي قيود أخرى أثرت في الحل؟ وقد تتضمن:
- الوقت المتاح للتطوير أو الاختبار
- مهاراتك الشخصية ومعرفتك
- مشاكل عند استخدام اللغات على منصات معينة.
- ما نقاط القوة والضعف في حل البرنامج؟
- كيف يمكنك تحسين الحل؟ فكر في ما من حيث التحسينات التي ستجريها على المدى القصير والمتوسط والطويل.
- هل يمكن تحسين حل البرنامج من خلال:
- تحسين المتانة، أي جعل البرنامج أكثر مرونة ضد أخطاء المستخدم والمدخلات السيئة وما إلى ذلك ومنعه من العمل بشكل متقطع أو التعطل
- تحسين كفاءة الكود، أي جعل البرنامج ينفذ الخطوات بشكل أسرع أو يستخدم موارد أقل أو تزداد استجابته للمستخدم
- توسيع الوظائف، أي تحسين تجربة المستخدم من خلال دمج خيارات جديدة أو التخصيص للمستخدم أو إضافة مهام جديدة للتطبيق لمعالجتها؟
المهارات والمعرفة والسلوكيات
عند تنفيذ حل جديد، ستحتاج إلى إظهار مهارات ومعارف وسلوكيات معينة. على سبيل المثال:
- التخطيط والتسجيل، بما في ذلك تحديد الأهداف ذات الصلة مع الجداول الزمنية، وكيف ومتى سيتم جمع التعليقات من الآخرين.
- مراجعة النتائج والاستجابة لها، بما في ذلك استخدام التعليقات من الآخرين، على سبيل المثال من متخصصي تكنولوجيا المعلومات والمستخدمين حول جودة البرنامج ومدى ملاءمته للمتطلبات الأصلية.
- عرض السلوكيات الشخصية وتأثيرها في النتائج، والتي تشمل الاحتراف، وآداب السلوك، ودعم الآخرين، والقيادة المناسبة في الوقت المناسب، والمساءلة والمسؤولية الفردية.
- تقييم النتائج للمساعدة في تقديم توصيات وقرارات مبررة عالية الجودة.
- مهارات الإعلام والاتصال، مثل القدرة على نقل المعنى المقصود، واستخدام اللهجة واللغة للاتصالات اللفظية والكتابية، والاستجابة بشكل بناء لمساهمات الآخرين.
يتم أيضًا مناقشة المراجعة بمزيد من التفصيل في الوحدة 7: تطوير تطبيقات الأجهزة المحمولة.
فكّر مليًا
التقييم هو مهارة أساسية ستطورها في عملك كمبرمج. خذ ما تعلمته من تقييم برامج الآخرين وأكوادهم وتمرن على تقييم برامجك الخاصة. قد تجد هذا صعبًا في البداية لأنك ستضطر إلى النظر إلى عملك كما لو كان عمل شخص آخر وتحديد نقاط ضعفه وكذلك نقاط قوته. ومع ذلك، فإن القيام بذلك سيحسن مهاراتك في البرمجة والأداء وسيطور قدرتك على تقديم توصيات مستنيرة وتبريرها. سيمنحك ذلك أيضًا مزيدًا من الثقة في اتخاذ القرارات حيث ستتمكن من تحليل أسبابك لاتخاذ قرار معين أو التوصية به.
تمرين تقييمي 4.2
أنت مبرمج في فريق تطوير، وقد تم تقديمك للتو إلى عميل يريد من فريقك تطوير برنامج مخصص لتلبية احتياجات شركته المتغيرة. العميل ليس لديه أفكار ثابتة حول كيفية حل المشكلة أو أي لغة برمجة يجب استخدامها. ومع ذلك، فقد قدم قائمة بالمدخلات المطلوبة، ووصفًا للمخرجات التي يجب إنشاؤها والإجراءات التي يجب أن يقوم بها التطبيق. حقق في المشكلة وحلل خصائصها. عندما تعتقد أنك تفهمها بأفضل ما لديك من قدرة، قم بإنتاج تصميم شامل لبرنامج حاسوبي لتلبية متطلبات العميل. تأكد من مراجعة التصميم مع الآخرين (بما في ذلك في ذلك العميل) واستخدام ملاحظاتهم لتحسين الحل المقترح. يجب عليك تبرير جميع أحكام التصميم الخاصة بك، موضحًا أن الحل الذي قمت بإنشائه سيكون فعالًا ويلبي احتياجات العميل بالكامل. بمجرد أن يتم توقيع التصميم من قبل العميل، سيطلب منك مدير الخط تنفيذ التصميم وتطوير الحل البرمجي.
55 نتاج التعلم ج
البرمجة
تمرين تقييمي 4.2 متابعة
استخدم لغة برمجة مناسبة وميزات لبيئة التطوير المختارة لإنتاج الكود المطلوب. بالإضافة إلى ذلك، تحتاج إلى اختيار روتينات المكتبة وتصميم الروتينات الفرعية لتحسين كفاءة برنامجك. قم بإنشاء وتنفيذ خطة اختبار منطقية لاختبار برنامجك بشكل شامل. يجب عليك التحقق من وظائف الكود واستقراره وتوافقه. بمجرد اكتمال الاختبار، قم بتحسين الحل الخاص بك عن طريق توضيحه بشكل صحيح لتمكين الإصلاح الفعال وتصحيح الأخطاء. راجع الكود الخاص بك من حيث الموثوقية وسهولة الاستخدام والكفاءة وقابلية الصيانة وقابلية النقل. استخدم ملاحظات المراجعة من المستخدمين لإجراء تغييرات على الحل وتوثيق الأساس المنطقي وراء كل تحسين. أخيرًا، يجب عليك تقييم التصميم والبرنامج المحسن النهائي، ومقارنتهما مع متطلبات العميل لمعرفة ما إذا كنت قد لبيت احتياجاتهم الأصلية بالكامل. يجب عليك إظهار المسؤولية الفردية والإبداع والإدارة الذاتية الفعالة في جميع مراحل مشروع تطوير البرمجيات.
التخطيط
- ما المهمة؟ ما المطلوب مني فعله؟ هل أفهم احتياجات العميل؟
- ما نقطة بدايتك في هذه المهمة؟ ما أهم شيء يجب معرفته؟
- ما مدى ثقتي في قدرتي على إنجاز هذه المهمة؟
- هل هناك أي مجالات قد أواجه صعوبة فيها، خاصة المجالات التقنية؟ إذا كان الأمر كذلك، فهل أعرف كيفية البحث عنها؟
- هل هناك أي موارد أو أمثلة عملية يمكن أن تساعدني في إنجاز هذه المهمة؟
- قبل أن أبدأ في كتابة الكود، إلى أي مدى الحل المقترح موصوف بشكل جيد في تصميم البرمجيات؟
التنفيذ
- أعرف ما أفعله وما أريد تحقيقه.
- سأستخدم هذا كفرصة لتجربة تقنيات جديدة وتحسين حل المشكلات.
- يمكنني استخدام التعليقات والمراجعات لتحديد متى أخطأت وتعديل تفكيري أو نهجي للعودة إلى المسار الصحيح.
- أعرف من أطلب منه ملاحظات حول الأفكار التي قمت بتوليدها.
- أنا مستعد لتحسين حلي بناء على المتطلبات المحددة وملاحظات المستخدمين.
مبرمج مبتدئ في فريق تطوير البرمجيات
- لقد عملت في الفريق لمدة تزيد قليلاً عن عام. في ذلك الوقت، عملت على برامج مختلفة وقد تعلمت الكثير بالفعل.
- بعض المهام البرمجية التي نتعامل معها معقدة للغاية - لقد وجدت أنني لا أستطيع الجلوس أمام لوحة المفاتيح والبدء في كتابة كود البرنامج دون التفكير بشكل صحيح في الحل.
- عندما بدأت لأول مرة، شجعني مديري على رسم مخططات انسيابية لتبسيط المنطق التجاري المعقد إلى خطوات بسيطة.
- أجد أن هذه الطريقة ناجحة، وأعود إلى مخططاتي الانسيابية كثيرًا في أثناء عملي على الجزء الآتي من المشكلة.
- عندما بدأت، كنت أعرف فقط Microsoft C#. كنت قلقًا عندما طُلب مني التطوير بلغات أخرى مثل جافا وPHP. بعد اللعب بهذه اللغات، اكتشفت أنها تحتوي على بناء جملة مشابه للغة #C، والعديد من مفاهيم #C التي كنت أعرفها كانت سهلة الترجمة.
- أعتقد أنه يمكنك القول أنني بدأت أتعرّف الأنماط المتكررة!
عندما أحتاج إلى وصف البرمجة لأصدقائي، أقول لهم إنها تتعلق بشكل أساسي بحل المشكلات. أقضي الكثير من وقتي في تبسيط المشكلات المعقدة إلى مشكلات أبسط ومحاولة اكتشاف أي أنماط التي أتعامل معها.
كن قادرًا على التكيف
- هناك العديد من لغات البرمجة المختلفة المستخدمة في الحوسبة والصناعة تتطور باستمرار.
- من المهم حقًا أن تحافظ على مهاراتك وتحديث معارفك بقدر الإمكان.
- للحصول على وظيفة كمطور مبتدئ في فريق تطوير البرمجيات، يجب أن تكون قادرًا على تكييف نفسك ومهاراتك لتلبية احتياجات السوق ومواكبة الاتجاهات الحالية في البرمجة.
إليك بعض الأسئلة لتطرحها على نفسك لمساعدتك في القيام بذلك:
- ما لغات البرمجة المطلوبة حاليًا؟
- ما أنواع المهارات المطلوبة؟ هل هناك اهتمام خاص بأنظمة تشغيل معينة أو أنواع معينة من التطبيقات؟
- هل هناك أي مهارات أخرى متعلقة بالبرمجة مطلوبة، مثل معرفة تقنيات الويب أو قواعد البيانات العلائقية؟
- ما الخبرة والمعرفة بلغات البرمجة المختلفة المتوقعة من مطور مبتدئ؟ ما المهارات المذكورة في أوصاف وظائف تطوير البرمجيات والشواغر؟
- هل يمكنني نقل مهارات البرمجة الخاصة بي إلى لغات جديدة وبيئات تطوير مختلفة؟