تريند 🔥

🌙 رمضان 2024

البرمجة ليست مقتصرة على كتابة الشفرات.. المراحل السبع في صناعة البرمجيات !

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

6 د


مقال بواسطة/ خالد السعداني، من المغرب

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

عملية تطوير البرمجيات ليس مقتصرة على مرحلة كتابة الشفرات وتنفيذها، وإنما تبدأ من مراحل متقدمة لتستمر إلى مراحل مابعد التطوير إن أنت أهملتها أو قللت من شأنها انعكست سلبا على منتوجك البرمجي، فتتفاجأ في ختام ما وصلت إليه ببرنامج رديء لا يرقى إلى مستوى تطلعاتك، بل قد تجد نفسك قبل بلوغ مرحلة الختام واقعًا – بين الفينة والأخرى – في أخطاء منهجية وأغلاط تحليلية تعود بك لنقطة الصفر، لتكرر نفس الخطأ وتتساءل باستمرار: أين الخلل؟

الخلل في عدم إعطاء كل مرحلة من المراحل الآتي ذكرها حقها ووقتها.

ولتكون القراءة ممتعة بعيدة عن الرتابة البرمجية سنضع مقارنات ثانوية – يمكنك تجاهلها – بين كل مرحلة من مراحل تطوير البرمجيات، وبين أساليب الطاغية فرعون في استعباد قومه والتسلط عليهم.


المرحلة الأولى: جمع متطلبات وتـفاصيل المشروع صغيرها وكبيرها

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

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


المرحلة الثانية: تصميم الحل

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

فالعمل دون تخطيط ناقص لا محالة، فكأنك تنوي بناء منزل دون تصميم، أو تركيب قطع غيار سيارة دون دليل تجميع.

عليك بالتحليل، فالبرمجة بلا تحليل، كالإعلام العربي بلا تضليل…

لا تخلط بين التحليل وبين التكويد، قَدِّمْ الأول على الثاني ولا تنجزهما في نفس الآن، فالتحليل يعطيك نظرة صافية تسهل عليك التكويد.

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

وأيقن أن غياب التحليل قبل مرحلة التكويد، أو الاستناد إلى تحليل سيء Bad Design سَيَجُرُّكَ إلى عدة خيبات أبرزها ضياع الوقت، نقصان جودة المنتج، ضياع المال، أفول سمعة المؤسسة التي باسمها تم أصدار المشروع، اهتزاز ثقة الفريق البرمجي بسبب السقوط المتواصل.

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


المرحلة الثالثة: قَسِّمْ كُودَكَ شِيَعًا

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

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


المرحلة الرابعة: بداية التكويد

بمجرد ما تقوم بتوزيع مشروعك إلى وحدات، عليك بدء التكويد لكن بعد أن تحدد ما يلي:

#ماهي لغة البرمجة المناسبة لإنجاز المشروع (جافا، سي شارب، فيجوال بيسك، ..)؟

#ماهو نوع المشروع الذي علي اختياره في برنامجي (ويب، ويندوز، موبايل، سيرفيس، ..)؟

#هل يوجد لدي بعض الأكواد التي يمكنني إعادة استخدامها في برنامجي؟

#هل سيحتاج برنامجي إلى قاعدة البيانات؟

#إن كان الجواب نعم: ماهو نظام إدارة قواعد البيانات الأمثل في حالتي هذه (أوراكل، MS SQL Server، MySQL، MS Access، ..)؟

#هل برنامجي سيكون متعدد اللغات والثقافات (Multi-Languages and Multi-Culture) ؟

في هذه المرحلة بدأ فرعون عملية تقتيل الأطفال عليه من الله ما يستحق.


المرحلة الخامسة: تحزيم البرنامج

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

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

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

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


المرحلة السادسة: التجربة قبل التسليم

حينما تصل إلى هذه المرحلة لا تصرخ بشدة: لقد أنهيت البرنامج !

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

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

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

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

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

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

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


المرحلة السابعة: توثيق المشروع

ذو صلة

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

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

أحلى ماعندنا ، واصل لعندك! سجل بنشرة أراجيك البريدية

بالنقر على زر “التسجيل”، فإنك توافق شروط الخدمة وسياسية الخصوصية وتلقي رسائل بريدية من أراجيك

عبَّر عن رأيك

إحرص أن يكون تعليقك موضوعيّاً ومفيداً، حافظ على سُمعتكَ الرقميَّةواحترم الكاتب والأعضاء والقُرّاء.

هو لم ينسى تلك المرحلة من فضلك تمعن اكثر في المقال و اترك اشعارات التويتر و الفيسبوك.

هو لم ينسى تلك المرحلة من فضلك تمعن اكثر في المقال و اترك اشعارات التويتر و الفيسبوك.

و لكن لم يكن هناك داعى لتقمص شخصية الفرعون و ضرب المثل به (اعلم أن جرابك لن ينضب من تشبيه بدل فرعون عليه من الله ما يستحقه)

جيد جداٌ

نسيت اشي مهم جدا جدا
مرحلة ال bugs

كالمعتاد .. كم انت رائع يا أ.خالد السعداني :3

نحتاج حقا لفهم هذه الأمور و العمل بها بوركت يا بطل

رائع

http://www.youtube.com

http://www.youtube.com

اكثر من رائع
شكرا جزيلا

Alaa Al-Qabas جزاك الله خيرا

Alaa Al-Qabas جزاك الله خيرا

بالعربي دورات عبد الله عيد للبرمجة java 101 , java 102 , java 103
هيا طويلة شوية بس التعليم محتاج صبر،، من هنا :
http://abdullaheid.net

أو ممكن تحميلها مرفوعة على google drive في لينك واحد، من هنا :

http://www.dev-point.com/vb/t516149.html

بالعربي دورات عبد الله عيد للبرمجة java 101 , java 102 , java 103
هيا طويلة شوية بس التعليم محتاج صبر،، من هنا :
http://abdullaheid.net

أو ممكن تحميلها مرفوعة على google drive في لينك واحد، من هنا :

http://www.dev-point.com/vb/t516149.html

لو سمحتو حد يعطينا شي موقع لتعلم الجافا بشكل مفصل

موضوع ممتاز فالتخطيط والتحليل اهم شىئ سواء تم استخدامهم فى البرمجه او اى مشروع اخر
شكرا

خالد السعداني <3 انضم لاراجيك . ياريت تكون موجود علي طول

I like it 🙂

اعتقد ان هناك مرحلة ثامنة وهي صيانة البرنامج أي ما بعد التسليم

ذو صلة