استثمر للحياة

مواضيعنا

هندسة البرمجيات

حجم الخط

استثمر للحياة هندسة البرمجيات 

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

الشخصية . و مع إنتشار الإنترنت  اصبحت مواقع الويب تمثل سمة الحضارة المدنية الحديثة فأصبحنا جميعاً نبحث عن حلول لمشكلاتنا عن طريق مواقع  الويب.
لكن كان هناك أمراً يؤرق المبرمجين هو صعوبة كتابة كود برمجي يعمل بشكل صحيح دون أخطاء , و يكون - إيضاً - سهل القراءة حتى من مبرمجه  الأصلي . و لهذا السبب ظهر – منذ عام 1968 م – مصطلح أزمة البرمجيات . والتي ظهرت بسبب عدم استخدام منهجية في التفكير(Software Development Process ) عند تكويد البرمجيات , و تحددت هذه الأزمة في عدة مشاكل تصادف مبرمجي هذا الزمان . منها :

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

الفرق بين البرمجة وهندسة البرمجيات

البرمجةهي كتابة الكود المصدري للبرنامج ، وبالتالي تعتبر جزء من مرحلة التصميم في هندسة البرمجيات التي تعمل على بناء النظام البرمجي كمشروع متكامل .
.

هندسة البرمجيات software engineering

الكود البرمجي  (Software)  هو شيء غير محسوس  و إن كان مكتوباً . هذه الأومر تكتب بسهولة و لكن ربما – عند تنفيذها – تتداخل و تتعقد بشكل يعُيقها عن تنفيذ العملية المكلفة بها . لإتها   سلسلة من العديد و العديد من  الأوامر البرمجية التي تقوم بإجراء العديد و العديد من العمليات  ، من هنا كانت أهمية
هندسة البرمجيات التي تعمل على بناء النظام البرمجيكمشروع متكامل ,  فهي تقوم بإدارة البرنامج منذ مرحلته الأولى " تحليل المشكلة "  ثم " مرحلة التصميم "  مروراً بمرحلة " كتابة البرنامج / التكويد " و مرحلة " التوثيق " و أيضاً  " تنصيبه و تثبيته " و كذلك القيام بعملية " الصيانة و التطوير " . ندرك  من هذا أن  كتابة الكود المصدري للبرنامج أي برمجته أو تكويده ، ما هي إلا  جزء من  هندسة البرمجيات .
فمثلاً موقع بحجم ياهو أو جوجل و هي من الأنظمة الضخمة والتي تحتوي على ملايين الأوامر والدوال  وقواعد البيانات الضخمة . كيف يمكن لها  تعديل أمر معين يقع بين ملايين الأوامر. كيف يمكن الوصول إليه وتعديله أو تصحيحه . يكون هذا هو دور و أهمية هندسة البرمجيات . فهي التي برمجية تساعد المبرمج من تعديل وتصحيح النظام بكل سهولة ويسر.
 

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

في هذه المرحلة  نقوم بتجميع المعلومات و الافكار من العميل بالتفصيل الممل و مناقشته في الافكار التي لا يمكن تنفيذها عملياً ,  و طرح الأفكار البديلة و النصائح التي تساعده  في تحقيق هدفه . ثم نحدد - بعناية و دقة تامة  - الافكار و المتطلبات والمهام النهائية و التي سينفذها البرنامج  ،  لذلك فهذه المرحلة  تتطلب مهارة و لباقة عالية في التعامل مع العملاء  ، وقدرة على التحليل الصحيح .  
 

المرحلة الثالثة :  التصميم / التخطيط للمشروع  " Software design"

التخطيط للمشروع البرمجي  هي مرحلة – تشبه رسم مخطط هندسي لمبنى ما – بمعنى إنها تصف الهيكل العام  للنظام / المشروع  إعتماداً على المتطلبات التي حددناها في مرحلة التحليل , و تقسيم  النظام إلى مجموعة من الأنظمة الفرعية  Sub-Systems . بل و أجزاء تحت الأنظمة الفرعية  , بغرض  تبسيط المشروع و تسهيل عملية تكويده   ، و عمل وصف كتابي للصفحات و عمل الخوارزميات لكل نظام فرعي , كما يتم في هذه المرحلة  تصميم الصفحات التي تمثل واجهة المستخدم  User Interfaces . و هذا أمر معتاد لان المهندس الذي يرسم مخطط هندسي لمبنى ما يحدد - في الشق المعماري منه - لون واجهة المبني و الشبابيك و غيرها .
هذا مثلا الوصف الكتابي لصفحة تسجيل الدخول

 

يجب دخول المستخدم إليها قبل دخوله لمنطقة الاعضاء

وصف دور الصفحة

كل من سبق له التسجيل

من هو المستخدم للصفحة

تطلب عندما يرييد العضو تسجيل دخول

الحدث

لا يوجد

الشروط السابقة للحدث

يسمح للعضو بدخول منطقة الاعضاء

الشروط اللاحقة للحدث

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

التنفيذ الطبيعي

نسيت كلمة المرور
النظام يقوم بعرض صفحة نسيت كلمة المرور
المستخدم يكتب ايميله
النظام يظهر  شاشة تغير كلمة المرور
المستخدم يقوم بتغير كلمة المرور و إنهاء العملية
 
تسجيل عضوية جديدة
النظام يقوم بعرض صفحة تسجيل عضوية
المستخدم يكتب البيانات المطلوبة
النظام يظهر  شاشة تم التسجيل بنجاح
النظام يسمح للعضو دخول  منطقة الاعضاء

التنفيذ البديل

لا يوجد

تنفيذ استثنائي

لا يوجد

مطالب خاصة

 

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

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

 
المرحلة السابعة :  الصيانة والتطوير

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

 

 تخطيط مشروع

 
الخلاصة :
أصبحت  الأن  هندسة البرمجيات  هي الاساس في تطوير أو تصميم موقع ويب أو برنامج مكتبي ,  لانها توفر لنا   :

  1.   تحدد نقطة  لبداية المشروع وإنهائه و تتحكم في مساره وبالتالي تضمن أن المشروع سيتم خلال الفترة الزمنية المحددة وبالتكلفة المحدد.

  2.   ترسم لنا تصور مسبق عن الشكل النهائي للموقع  .

  3. تجعلنا نعتمد على فكر منهجي  جذوره  النظام في العمل وتوثيق كل مرحلة  و ثماره السهولة في صيانة و تطوير الموقع  في أقل وقت وجهد دون إعادة بناؤه من جديد.

و تبقى المعضلة الآزلية  كـيفية أخذ متطلبات العميل

 

هي أطول  المراحل - ستأخذ تقريبا 80% من الوقت المخصص لبناء الموقع  -  وأصعب المراحل – قد يحدث سوء تفاهم بين العميل و محلل النظام –    في دورة حياة النظام ,  رأي العميل وفهم احتياجاته وتحديد ماهي الخدمات التي سيقدمها له الموقع الذي طلبه من أصعب ما يكون , علينا أن ندرك يقينا أن العميل لا يدري شئ عن أمور البرمجة و هندستها فمن ثم يصعب عليه – الا النادر – وصف ماذا يريد , فيلجأ دائماً لتقليد موقع أخر , و يكون دور محلل النظام هو أن  يفهم طبيعة العميل  و يلمس الغرض من أنشاء موقع , فيقدم للعميل الافكار و الحلول المناسبة له بقدر الامكان  و يرشده عن الافكار عديمة الجدوى أو مستحيلة التنفيذ , بعدة طرق منها :

 

المشاهدة

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

المقابلة الشخصية / الإجتماع مع أصحاب المصلحة

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

أولاً : تتم المناقشة عن طريق أسئلة يطرحها محلل النظام و ينتظر رد العميل ليدونه .
ثانياً : البعد التام عن الاسئلة التى لا تهم العميل مثل
عايز كام قاعدة بيانات فى الموقع !!!!
تحب الاستضافة تكون على اي سيرفر !!!! .... و ما شابهها
ثالثا : الاستعانة – إذا لزم الأمر – بعرض مرئي عام  للمواقع ليقريب الصورة لذهن العميل

مخطط مشروع صفحة رئيسية
 

مخطط مشروع صفحة رئيسية

 


رابعاً :التركيز على أسئلة تدخل فى دائرة حواس  العميل مثل

ما هي الصفات العامة للموقع ؟ من حيث   لغة الموقع  -  مجموعة ألوان الموقع  - قوائم الموقع ؟ رأسية – أفقية - رأسية  و  أفقية معاً
ما الهدف من الموقع ؟
هل الموقع ربحي تجاري ؟    موقع تجارة ألكترونية ؟    أم هو موقع غير ربحي ؟
كيفية التحكم  فى الموقع هل يحتاج لوحة تحكم  للمدير ؟ 
ما هي مهام المدير ؟
          هل يحتوي على صور و فيديوهات ؟
          هل يحتاج الى تسجيل دخول ؟
          هل يسمح بالتعليقات للزوار أم للاعضاء فقط ؟
          هل يحتاج تغذية  RSS؟  عام / لكل قسم على حدة
          هل يرتبط بمواقع التواصل الإجتماعي ؟

حسن الإنصات  و الإستماع

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

 النموذج المبدئي  prototype

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

  وأخيراً

عليك بالصبر ... فقد تصادف – رغم كل ما سبق – ببعض المشكلات عند التعامل مع العميل منها

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



اعلان تجاري
اعلان 468