Professional Documents
Culture Documents
*برمجة المشروع -بعض المعلومات والرسومات مستوحاة ومأخوذة من موقع الكتروني جزائري10/11/9/8/7/6/5/4-------- -
*حماية المشروع11-------------------------------------------------------------------------------------------
*اختبار المشروع12------------------------------------------------------------------------------------------
*تسليم المشروع13-------------------------------------------------------------------------------------------
المشروع
تعريف المشروع
يعرف بانه عمل يقوم به الفرد لينفذ فكرة معينه سواء كانت عباره عن منتج او خدمة بحيث يستخدم المشروع لتنفيذ هذه الفكرة
بعض الموارد الرئيسية كالموارد المالية والمعرفية والعمال.
هذا تعريف الذي نقوم بإعطائه هو تعريف عام للمشاريع هنا وفي هذا الكتاب سنتحدث عن المشاريع البرمجية مبدءيا أي اننا
سنتطرق الى المراحل العامة التي تتشارك فيها جميع المشاريع وستتطرف الى المراحل الخاصة بالمشاريع البرمجية
يحتاج تنفيذ مشروع للمرور على بعض المراحل المتزامنة والمتسلسلة بحيث ال يمكن اكمال المشروع دون اكمال هذه المراحل
قاعديا وتصنف هذه المراحل على الشكل التالي
1
محاور تقسيم أي مشروع
تقسيم اي مشروع ينطوي ضمن المراحل التالية
دراسة جدوى المشروع
اول مرحله وهي دراسة جدوى المشروع او ما يسمى بتحليل البيانات في دراسة المشاريع البرمجية هذه المرحلة تنطوي عليها
دراسة فكره المشروع دراسة تامه مع دراسة السوق التي ستطرح فيه الفكرة ودراسة مدى جدوى المشروع ان كانت الفكرة قابله
للتطبيق عمليا ام ال
تعتبر هذه المرحلة مهمه جدا بحيث ال يمكن مرور عليها دون اكمالها بطريقه صحيحه الن عدم دراسة مشروع بطريقه صحيحه
يؤدي الى خطا في تنفيذ المراحل القادمة من المشروع وبالتالي خطأ في تنفيذ فكره المشروع على أساسه أي أن المشروع لن يكتمل
بطريقه صحيحه.
تنقسم دراسة جدوى مشروع الى مراحل فرعيه
* مرحله التحدث مع العميل ان كنت ستنفذه من أجل عميل معين وهي مرحلة استنباط أكبر قدر من المعلومات من أجل أخذ
العناوين األساسية من أجل بدء البحث في الطريق الصحيح ومن أجل االستنباط االفكار التي يريدها والتي ال يريدها العميل اساسا او
افكار تنفذها في المشروع بطريقه خاطئة او اقل مما يريد.
* مرحله البحث وهي المرحلة التي تقوم فيها بالبحث عن تعريف العناوين االساسية مجرد التعاريف واخذ واستنباط المعاني
االساسية من اجل بناء قاعده صحيحه وفهم الفكرة على اسس صحيحة .ألن فهم المشروع وفهم الفكرة قاعديا بطريقه صحيحه
سيسمح لك بالتعديل وتكبير المشروع كما تريد فيما بعد في حال كنت قد قمت ببناء قاعده صحيحه .تكمن خطورة عدم دراسة
المشروع بطريقه صحيحه في انه يمكن ان يتوقف المشروع في اي لحظه رغم انه ينفذ بطريقه صحيحه .فعلى سبيل المثال المشروع
يقول بأن نقوم بتصميم سيارة او صناعة سيارة بينما من ينفذ المشروع يقوم بصناعه طائرة على اخر المواصفات تعمل بطريقة
صحيحه .رغم ان ما صنعه يعمل بطريقة صحيحة لكن ليس كما تتطلبه فكرة المشروع وهذا يعني إعادة المشروع من الصفر .لذا
تأكد في ان 90بالمئة من االخطاء في دراسة مشروع تؤدي في مرحله معينه الى اعاده مشروع من الصفر.
*جدوى المشروع وهي المرحلة التي تقوم فيها بدراسة السوق المراد الدخول اليه ومعرفه ان كانت او كان المشروع مجديا وقابال
للتطبيق عمليا وعلى ارض الواقع فهنا مجموعه كبيره من األفكار التي يمكن تطبيق على بيئات مختلفة لكن ال يمكن تطبيق على البيئة
التي تريد النشاط فيها
*مرحله دراسة المنافسة وهي مرحله مقارنة النتائج القاعدية عن المشروع التي استنبطناها من المرحلة السابقة مع السوق المراد
الدخول فيه لتلبيتها او عرضها على العمل .فلنضرب مثاال على ان العميل طلب منك انشاء تطبيق لمركبه سياحيه مع سائق .فكرة
تطبيق سهلة جدا وهي توفير السيارات أجرة للعمل دون ان يتحرك من مكانه بحيث يقوم بفتح التطبيق واختيار وجهته ثم سيختار
التطبيق السائق االقرب اليه اوتوماتيكيا ليذهب الى مكان تواجده والذهاب في الرحلة .أي أنك بعد أن تقوم برحلة البحث عن
المعلومات األساسية وفهم الفكرة جيدا ستذهب الى رحله الدراسة السوق الجزائري على سبيل المثال من أجل رؤية ومعرفه أكبر عدد
معلومات عن أشهر التطبيقات المماثلة ومعرفه النقائص أو نقاط القوة التي جعل تلك التطبيقات ناجحة في هذا السوق
جميع ما مر من المراحل سيسمح لنا بمعرفه النقاط االساسية كاملة للمشروع قاعديا على األقل بطريقه صحيحه او كما اقولها دائما
-كي تشوف النهاية تاع المشروع كيفاش دايرة اعرف بلي راك كملت هذه المرحلة قاعديا-
2
تصميم قواعد البيانات
تُ ّ
عرف قاعدة البيانات بأنها عبارة عن كمية كبيرة من البيانات والمعلومات التي يُمكن الرجوع إليها وإجراء العمليات المختلفة عليها
كعمليات البحث والتعديل والمقارنة ،وذلك من خالل تكلفة بسيطة وسرعة عالية ،وتمتاز هذه البيانات الرقمية بأنها بيانات ذات فهرسة
.وترتيب معين ،وتُعتبر لغة سيكوال هي أشهر لغات قواعد البيانات
بعد االنتهاء من مرحله البحث المفصلة ستذهب مباشرة الى تخطيط المشروع او ما يسمى في المشاريع البرمجية -تصميم
قواعد البيانات -وألنها هي األساس في أي مشروع برمجي فان أي خطأ على مستوى البرنامج أو الكود المصدري الخاص بك يمكن
تعديله .أي خطأ في الكود يمكن تعديله لكن خطآ في تصميم قاعده البيانات قد يؤدي الى اعاده تصميم قاعدة البيانات كاملة أي اعادة
تصميم المشروع كامال من الصفر ولهذا تعتبر هذه النقطة وهذه المرحلة مهمه جدا ولذلك يجب أن تكون مرحلة البحث مفصلة
وصحيحة وبدون أخطاء قاعدي ة .مرحلة تصميم قواعد البيانات تعتبر النقلة الفعلية من النظري الى العملي أي نقل المشروع من واقع
البحوث النظرية ل تجسيده ميدانيا .تصميم قواعد البيانات هو علم بحد ذاته و ربما ال أملك الخبرة الكافية للتحدث عنه بطريقة تعليمية
لكنه يتركز على تحويل المعلومات الى جداول و مخططات مفهومة للمبرمجين
فلنضرب مثاال كنت عند عميل وطلب منك العميل التالي
-لدي شركة بها موظفون .أود برنامجا يسمح بتسيير الموظفين من حيث توقيت العمل الحضور و الرواتب حسب الرتب-
صدق أو ال تصدق فأنت محظوظ فهذا العميل قد اختصر عليك مرحلة بحث طويلة وحدد مراده بالضبط .لن تضطر للتعمق في
البحث فهو قد اعطاك جميع المعلومات الالزمة في سطر واحد
أوال تحتاج لمعرفة ماهو الموظف لتجد بانه شخص يمتاز ببعض المزايا اإلضافية +المزايا التي يتطلبها العمل في هذه الشركة
لدينا أول كيان و هو شخص .كيف نستطيع ان نميز أي شخص كان ؟ نعم أحسنت االسم واللقب الجنس و رقمه التسلسلي أو رقم
هاتفه..
جيد اذا لدينا كيان اسمه شخص مكون من اسم ولقب وجنس و رقم تسلسلي ال يتكرر خاص به و رقم هاتف والتي هي معلومات
يمتلكها أي شخص في الوقت الحالي و ال يمكن بأي حال ان تكون غير متوفرة
جيد .من هو الموظف؟ الموظف هو عبارة عن شخص يمتلك مهارات معينة .توقف عندك قلت أن الموظف هو شخص أي أنه
أوتوماتيكيا سيمتلك صفات الشخص العادي +مهارات معينة +معلومات إضافية كالراتب .أي أن الكيان المسمى موظف سيكرر
نفس معلومات الشخص باإلضافة لمعلومات أخرى..
و لحسن الحظ و لتفادي التكرار وفر لنا العلماء تحفة علمية تسمى الوراثة والتي بواسطتها لن يقوم كيان الموظف بتكرار معلومات
كيان الشخص بل سيرثها ببساطة.
ترى كمية المعلومات التي قمت باستخالصها من سطر واحد فقط ؟ دعن أفاجئك ألقول لك أنها 40بالمئة فقط من المعلومات
الموجودة في هذا السطر
كما قلت في البداية فالكتاب ليس لتعلم قواعد البيانات لذلك فسنكتفي بالشرح السطحي و اعطائكم لينك لألستاذ المصري القدير حسونة
احمد في دورته المفصلة جدا الخاصة بتحليل البيانات
رابط الدورة
https://www.youtube.com/watch?v=cTHsMvsyOyE&list=PLHIfW1KZRIfkmVuqMl3gaRLUtHOl
1db12
بعد انتهاء هذه المرحلة و التي تقوم فيها بتخطيط مشروعك كامال ستذهب ألسهل مرحلة !! نعم ! نعم هي أقل المراحل خطورة و هي
مرحلة برمجة وتصميم المشروع كامال .
3
تصميم الواجهات
بما أنك وصلت لهذه المرحلة فأنت قد مررت على اصعب مرحله وهي مرحله دراسة المشروع وتحليل بيانات وفي الحقيقة في
حياتي العملية ال اسمح ألحد غيري باستالم هذه المرحلة و انا موجود في المشروع ! لماذا !! ألنني ال أثق في أحدهم لحد اآلن في أنه
يستطيع أو يمكنه أن يوفر ما قلت للعميل ..فتخيل معي أنه بعد ما أوكلت تحليل البيانات لشخص معين وبعد الشهر او شهرين من
العمل أكتشفنا أن بعض من المعلومات التي قام بإعطائها لي المشاركين في المشروع خاطئة !!!!
كيف سيكون الرد مني ؟حتى وان قمت بفصله فان المشروع سيعاد من الصفر لألسف.
األخطاء في البرمجة األخطاء في التصميم ال بأس بها يمكن اصالحها وتمديد الوقت فقط لكن خطآ في تحليل البيانات يساوي اعادة
المشروع من الصفر لذلك لحد اآلن على ان اقوم بجمع المعلومات بنفسي والسهر على مرحله البحث بنفسي ألي مشروع برمجي
أقوم به باستالمه من عميل معين لكي أتفادى االخطاء في التحليل والتي لن تراها حتى يمر على المشروع وقت معين و هذا مبنية عن
تجارب حقيقة مررت بها حين عملي لدى شركات برمجية .فأثناء استالمي مخططات بعض المشاريع ألقوم بتنفيذها اكتشفنا بعد 3
بل وهناك أخطاء تصميمية تمنع تطوير اشهر من العمل ان بعض المعلومات خاطئة وال يمكن االستمرار على هذا المخطط .
المشروع مستقبال .كبناء برج خليفة لتكتشف بعد انتهاء بناءه من أن األرضية غير صالحة على المدة البعيد!
بعد التأكد من جميع ما فات ستذهب لتصميم الواجهات و التي ستكون مبنية على تصميم قواعد البيانات وكياناتها .هذه المرحلة يلزمها
مصمم متخ صص ان كان مشروعا موجها لالستعمال الواسع لكن يمكن ان يتكفل به شخص تعلم التصميم حديثا كبداية
تصميم الواجهات يشمل العديد من لغات التصميم على حسب بيئة التطوير أشهرها
Html-css
4
برمجة المشروع
أحد أهم المراحل وهي مرحله برمجة المشروع هذه المرحلة بالذات تستند الى قاعدة البيانات مباشرة ببرمجته او كتابته لجعل
البرنامج حيا ومتفاعال مع التغيرات والوظائف التي يلزم القيام بها في الحقيقة.
مع التطور الموجود اآلن يمكن أو تسمح بعض التطبيقات والبرامج من انشاء الوظائف أوتوماتيكيا مباشره من مخطط البيانات يعني
بمجرد ان تقوم بتخطيط قاعده البيانات الخاصة بك وهناك بعض البرامج التي تحول قاعده بيانات الخاصة بك الى أكواد جاهزة باللغة
التي تريد !
مع تطور التكنولوجيا اآلن اصبحت هذه المرحلة تحصيل حاصل كما قلت من قبل بحيث أصبحت هناك برامج تقوم بتحويل قواعد
بيانات الخاصة بك الى كود جاهز باللغة التي تريد أي أن جميع الدوال الخاصة بك ستكتب مباشرة.
ما عليك فعله فقط هو ملئ الدوال و كتابتها وتنفيذ الحل باللغة التي تريد تنفيذ المشروع بها .
مرحله البرمجة تمد بصلة مباشرة لمرحلة تحليل البيانات ألن مرحلة البرمجة تقوم بتنفيذ الحلول الخاصة بالمشاكل التي واجهتها
والتي سيواجهها المشروع أثناء تنفيذه.
بعض المشاكل التقنية التي ستواجهها في هذه المرحلة هي مشاكل اختيار اطار العمل المناسب لتنفيذ هذه المرحلة على حسب
احتياجاتك بطبيعة الحال لتوفر عديد الخيارات.
مثل ما ذكرنا في مرحلة تحليل البيانات فانه من المهم جدا أن نجعل المشروع الخاص بنا قابال للتعديل مستقبال
كي نقوم بتنفيذ هذه المرحلة على مستوى الكود ؟ نقوم بتنفيذها بواسطة البرمجة كائنية التوجه والتي تستند الى
5
البرمجة كائنية التوجه أوال يجب ان نعرف
هي نمط برمجة متقدم يقوم بتقسيم البرنامج الى كائنات بحيث تكون هذه الكائنات عبارة عن حزم تعليب من البيانات والمتغيرات
والدوال ووحدات التنظيم وواجهات االستخدام الخاصة بكل كائن أي أن الكائن يقوم بأخذ جميع ما سبق لتخصيصها على حسب نمط
االستعمال بحيث يتكون هذا النمط البرمجي من التالي
الكائنات
وهي حزم تعليب البيانات والدوال الوظيفية في وحدات تعمل ضمن برنامج نشيط وهي أساس هيكلية برمجة الحاسوب الشيئية مثل
ما ذكرناه سابقا .تعتمد البرمجة الكائنية التوجه على مفهوم الكائن ،في العالم الحقيقي يمكن أن يكون الكائن سيارة أو دولة أو أستاذا أو
(behaviors).والسلوكيات ) (attributesحاسوبا…هذه األشياء لها ما نسميه بالسمات مثلما سترون في المخطط ادناه..
األصناف – Classالصنف
يمكن اعتبار صنف في البرمجة الكائنية بمثابة قالب أو نموذج يمكن من خالله إنشاء كائنات ،وستكون للكائنات التي تم إنشاؤها من نفس
.الصنف نفس الجوانب المتشابهة (نفس السمات والطرق) ،ويسمى كائن صنف معين أيضًا “مثيل” من هذا الصنف
Dz-res.com
6
التجريد
وهو قدره البرنامج على تجاهل بعض واجهات المعلومات المتالعبة اي التركيز على المفهوم االساسي للكائن وهيكله النظري
وتجريده من طريقة العمل النهائية والتوجهات الخارجية
Dz-res.com
7
التغليف
لنفترض أن لدينا برنام ًجا يحتوي على عدد قليل من الكائنات المختلفة منطقيًا والتي تتواصل مع بعضها البعض وفقًا للقواعد المحددة سابقًا
في البرنامج ،يتم تحقيق التغليف عندما يحافظ كل كائن على حالته الخاصة ،داخل صنف معين .ال تملك الكائنات األخرى وصوال مباشرا
إليها وبدالً عن ذلك ،يمكنهم فقط استدعاء قائمة بالوظائف العامة التي نسميها “طرق” كما ذكرنا من قبل .إذا كنت ترغب في التواصل مع
الكائن ،فيجب عليك استخدام الطرق المقدمة ولكن بشكل افتراضي ال يمكنك تغيير الحالة .لتوضيح األشياء دعونا نلعب لعبة ،هناك أشخاص
وهناك قطة ،لتطبيق التغليف ،نلخص كل منطق “القط” في صنف يسمى “القط
”
Dz-res.com
8
تعدد االوجه
لقد وصلنا إلى الكلمة األكثر تعقيدًا والتي نفسي وجدت صعوبة في فهمها أثناء دراستي الجامعية ،تعدد األشكال الذي يعني “العديد من
األشكال” في اليونانية .عرفنا قوة التوريث وبإمكاننا اآلن استعمالها بكل بساطة ،ولكن تبقى لدينا مشكلة ،لنفترض أن لدينا صنف أصلي
وبعض األصناف الفرعية التي ترثه ،أحيانًا نريد استخدام مجموعة أو على سبيل المثال قائمة تحتوي على مزيج من جميع هذه األصناف،
أو لدينا طريقة منشأة في الصنف األصلي ولكننا نرغب في استخدامها في األصناف الفرعية أيضًا .يمكن حل ذلك باستخدام التعدد ،ببساطة!
يعطي هذا األخير طريقة الستخدام صنف تما ًما مثل صنفه األصلي بحيث ال يكون هناك التباس بخلط األنواع ولكن كل صنف فرعي يحافظ
صنف رئيسية ليتم إعادة استخدامها ،وهي تحدد ) (interfaceعلى طرقه الخاصة كما هي .يحدث هذا عادةً عن طريق تحديد واجهة
مجموعة من الطرق الشائعة .ثم يقوم كل فصل تابع بإضافة نسخته الخاصة من هذه الطرق .في أي وقت تتوقع فيه مجموعة مثل القائمة أو
مثيال من الواجهة حيث يتم تحديد الطرق الشائعة ،فإن اللغة تهتم بتقييم اإلضافة الصحيحة للطرق الشائعة بغض النظر عن الفرع الطريقة ً
ق نظرة على المثال التالي
ِ أل لي، بالنسبة احً واض جعله التالي المثال لكن األولى، المرة من التعدد فهم الصعب من يبدو قد تمريره. الذي تم
:لتعدد األشكال الهندسية ،حيث تعيد هذه األشكال استخدام واجهة مشتركة لحساب مساحة السطح والمحيط
أوهو بدل من استدعاء االجراءات الفرعية مباشره تستطيع البرمجة الشيئية ارسال رسائل او االجراء المعين الذي يتم نداءه نتيجة
الرسالة يعتمد على نوع الكائن الذي تم االرسال له اي انه باستخدام اجراءات ودوال مختلفة اعتمادا على نوع الكائن .ببساطه هو
استعمال وسيط لكي ال نصل او ال نحرر المصدر األساسي ..
Dz-res.com
9
الوراثة
بحيث يستطيع الكائن وراثه خصائص كائن معين وزياده عليها دون ان يتأثر كائن االصلي فقد يكون هناك كائن اسمه مركبه فيه
الخصائص العامة لكل المركبات مثل االسم واللون ورقم التسجيل والكائن طائره ممكن ان يكون هناك مثال كائن مربع في خصائص
طول العرض يمكن للكائن مكعب ان يرث هذا المربع ويضيف عليه خصائص العمق والحجم ونفس المثال الذي ضربناه في بداية
الكتاب هو بالنسبة لألشخاص والموظفين او مثلما ترون في المثال ادناه
Dz-res.com
10
حماية المشروع
واالن بعد االنتهاء من مرحله البرمجة سننتقل مباشره الى مرحله حماية المشروع وهي مرحلة مهمة جدا تتطلب أناس مختصون
في الحماية من أجل حمايه البرنامج بطريقه صحيحه ألن ببساطه حمايه المشروع أهم من المشروع نفسه وأهم من جميع المراحل
السابقة بالنسبة لنقاط عديدة في حماية المشروع فهي تعني حماية كلفة المشروع وحماية االستثمار الذي قمنا به في فكرة المشروع
والعمال الخاصين به.
ولحماية المشاريع البرمجيات توجد عده طرق معتمده باستعمال ادوات تشفير متعددة اشهرها
Rsa
والتي تعتبر احدى اقوى دوال التشفير في العالم على غرار طرق التشفير و الحماية المعتمدة التي تدرس في المعاهد و الجامعات
11
االختبارات البرمجية
هي عبارة عن عملية تستخدم لتقييم وظيفة تطبيق برمجي معين؛ بقصد معرفة ما إذا كانت ) (Software Testingاختبار البرمجيات
البرمجيات المطورة تفي بالمتطلبات المحددة أم ال ،ويتم أيضا ً من خالل هذه العملية تحديد العيوب؛ لضمان خلو المنتج من العيوب من أجل إنتاج
.منتج جيد النوعية ،والهدف منها هو تزويد المستخدمين بمعلومات عن جودة المنتج أو البرامج التي يتم اختبارها
توفر عملية اختبار البرمجيات معلومات واضحة عن جودة البرامج وخطر فشلها للمستخدمين في المستقبل ،واختبار البرمجيات مهم ألنه إذا كان
هناك أخطاء في البرنامج فإنه من الممكن تحديدها في وقت مبكر ويمكن حلها قبل تسليم المنتج البرمجي النهائي.
م ّما يؤدي إلى توفير الوقت والتكلفة وفيما يلي أهمية استخدام فحص البرمجيات بشكل مفصل
يزيد من رضا المستهلك والعمالء :حيث تساعد عملية فحص البرمجيات في الحفاظ على رضا العمالء
حيث يجب أن يكون رضا العمالء هي األولوية عندما يتعلق األمر ببيع منتج أو خدمة معينة ،ويمكن )(Customers Satisfaction
للعمالء طلب استرداد األموال خاصة عندما ال يكون المنتج أو الخدمة غير مطابقة للمواصفات المحددة مسبقاً.
تقليل التكاليف :عملية فحص البرمجيات تقلل من التكاليف الحالية حيث يتم توفير المزيد من المال عند تسويق برنامج خالي من األخطاء
والعيوب ،وهذا يمنع النفقات غير المتوقعة التي يجلبها العمالء الغير راضين مثل :استبدال المنتج وإصالحه.
إنجاح المشاريع واألعمال:
باإلضافة إلى ذلك فإن اختبار البرمجيات يضمن أن عملية تقديم المنتج أو الخدمة تساعد عملية اختبار البرمجيات في تحسين عائد االستثمار
سيكون على مستوى أعلى وذلك يساعد في المحافظة على العمالء ويخلق الوالء للعالمة التجارية.
أنواع اختبارات البرمجيات :يمكن تصنيف تقنيات فحص البرمجيات بشكل رئيسي إلى فئتين
وهي طريقة لفحص البرمجيات وال يحتاج هذا النوع من االختبارات معرفة الشيفرة المصدرية للبرمجيات ،ومن الممكن تطبيق هذا النوع من
االختبارات على كافة المستويات .اختبار الصندوق األبيض
وهي طريقة الختبار البرمجيات حيث يتم اختبار الهياكل الداخلية أو عمل التطبيقات ،ويتطلب هذه النوع من االختبارات معرفة الشيفرة المصدرية
،.ويتضمن هذا االختبار التأكد من أن جميع العمليات الداخلية تتم وفقا ً للمواصفات)(source code
12
اذا وصلنا الى اخر مرحله وهي تسليم المشروع للعميل وذلك بعدما مررنا
بجميع المراحل من دراسة المشروع لتحليل بياناته مرورا بتصميم الواجهات
وبرمجة الدوال األساسية وحماية المشروع واختباره .
أصبح المشروع اآلن بعد مرور بجميع المراحل جاهزا للتسليم واالطالق في
السوق رسميا.
كان معكم أخوكم ياسر بوضياف في تقديم بسيط وشرح بسيط لمراحل تسيير
مشروع برمجي.
لست مولعا او ذا صيت بالكتابة لكن ان تمنى ان المعلومة قد وصلت
كما اريدها بالضبط
دمتم في رعاية هللا وحفظه .
السالم عليكم.
13