ترجمة: يامن التميمي، خالد نزال، عاصم الشوشاري

الأستاذ المشرف: د.وفاء بني مصطفى

المدقق اللغوي: د.ابتسام حسين 


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

تركز هندسة الويب على المنهجيات والتقنيات والأدوات التي تشكل أساس تطوير تطبيقات الويب والتي تدعم تصميمها وتطويرها و تطورها وتقييمها. يتميز تطوير تطبيقات الويب بخصائص معينة تجعله مختلفًا عن البرامج التقليدية أو نظام المعلومات أو تطوير تطبيقات الكمبيوتر.

هندسة الويب متعددة التخصصات وتشمل مساهمات من مجالات متنوعة: تحليل وتصميم النظم ، هندسة البرمجيات، هندسة الوسائط التشعبية، هندسة المتطلبات، تفاعل الإنسان – الكمبيوتر، واجهة المستخدم، هندسة المعلومات، فهرسة المعلومات واسترجاعها، الاختبار، النمذجة والمحاكاة، المشروع الإدارة، وتصميم الرسوم البيانية والعرض.

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

1-هندسة الويب كنظام

 دعم أنصار هندسة الويب إنشاء هندسة الويب كنظام في مرحلة مبكرة من الويب .

الحجج الرئيسية لهندسة الويب كتخصص جديد :
-عملية تطوير أنظمة المعلومات المستندة إلى الويب المختلفة وفريدة من نوعها .
-هندسة الويب متعددة التخصصات. لا يوجد مجال واحد (مثل هندسة البرمجيات) يمكن أن يوفر أساسًا نظريًا كاملاً ، ومجموعة من المعرفة والممارسات لتوجيه تطوير نظام معلومات المنظمة.
-مشكلات التطور وإدارة دورة الحياة عند مقارنتها بالتطبيقات “التقليدية.
-ومع ذلك ، فقد كان من المثير للجدل ، وخاصة بالنسبة للأشخاص في التخصصات التقليدية الأخرى مثل هندسة البرمجيات ، التعرف على هندسة الويب كحقل جديد. تكمن المشكلة في مدى اختلاف هندسة الويب المختلفة والمستقلة ، مقارنةً بالمجالات الأخرى

هندسة الويب تشمل:
هندسة متطلبات تطبيقات الويب.
تطوير الويب.
تصميم الويب.

2-الحاجة إلى هندسة الويب

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

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

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

3-تصورات تطوير الويب.

يُنظر إلى تطوير الويب على مستويات مختلفة:


6.تخطيط وإدارة مشاريع الويب

5.النظام القائم على الويب
4. بناء الويب “الموقع”
3. تصميم موقع الويب
2. تصميم صفحة الويب
 1-بناء صفحة الويب

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

إذا كانوا من خلفية تقنية المعلومات (IT) ، فهم يدركون أن المهارات الخاصة مطلوبة ، والعديد من علوم الكمبيوتر نفسها ، وخلفية مهندسي البرمجيات.

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

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

 من حيث هندسة البرمجيات ، يتوافق هذان المستويان مع واجهة المستخدم ، والتي تُعتبر عمومًا مسألة تفصيل وتكمن أكثر في تفاعل الإنسان والحاسوب (HCI).

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

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

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

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

تجربة مطوري الويب ، التقنيات الحديثة وتوافق الخبراء

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

تأتي المساهمات المنشورة من العديد من المصادر ، وقائع المؤتمرات وورش العمل ، والمقالات الصحفية ، والإصدارات الخاصة من (IEEE Multimedia، Cutter IT Journal ، IEEE Software و IEEE Internet Computing)، والكتاب المحرر في هندسة الويب.

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

كما يلاحظ المؤلفون ، فإن هذه الاختلافات لا تنشأ ببساطة بسبب حقيقة أن العديد من مطوري الويب الأوائل أتوا من خلفية هندسة البرمجيات ولكن بسبب الأنواع الجديدة من تطبيقات (الويب).

4-الاختلافات الرئيسية بين تطبيقات الويب والبرامج التقليدية

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

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

الأولى هي طبيعة المعلومات (“المحتوى هو الملك”) وتأثيره على تطوير تطبيق ويب.
الثانية هي طبيعة المستخدمين النهائيين (“رضا المستخدمين وتهديد المنافسة”) لتطبيقات الويب.

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

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

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

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

5-خصائص وتعقيدات تطبيقات الويب

تختلف تطبيقات الويب على نطاق واسع: من الخدمات الصغيرة ، قصيرة الأجل إلى المؤسسات الكبيرة التطبيقات الموزعة عبر الإنترنت والشبكات الداخلية للشركات.

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

6-الطبيعة متعددة التخصصات لتطوير الشبكة

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

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

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

7-خصائص تطبيقات الويب البسيطة والمتقدمة

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

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

تطبيقات الويب متعددة التخصصات . يتم بناؤها في بيئة متغيرة باستمرار حيث تكون المتطلبات غير مستقرة وفرق التطوير صغيرة عادة.

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


المراجع

  1. Murugesan, S., Deshpande, Y., Hansen, S. and Ginige, A. (1999) Web Engineering: A New Discipline for Development of Web-based Systems, Proceedings of the First ICSE Workshop on Y. Deshpande,S. Murugesan, A. Ginige, S. Hansen, D. Schwabe, M. Gaedke, B. White 15 Web Engineering, International Conference on Software Engineering, Los Angeles, May 1999. http://aeims.uws.edu.au/WebEhome/ICSE99-WebE-Proc/San.doc
  1. Pressman, R.S. (1998) Can Internet-Based Applications Be Engineered? IEEE Software, September/October 1998 
  2. Deshpande, Y., Hansen, S. and Murugesan, S. (1999) Web Engineering: Beyond CS, IS and SE ñ An Evolutionary and Non-Engineering View, online Proceedings of the First Workshop on Web Engineering, http://fistserv.macarthur.uws.edu.au/san/icse99-WebE/ICSEWebE-program.PDF
  3. IEEE Multimedia, Special issues on Web Engineering, vol 8, nos 1 and 2, Jan-Mar 2001 and AprJun 2001 
  4. Cutter IT Journal, vol 14, no. 7, July 2001 
  5. IEEE Software, Special issue on Engineering Internet Software, Mar-Apr 2001 
  6. IEEE Internet Computing, Special issue on Web Usability, Mar-Apr 2002 
  7. Murugesan, S. and Deshpande, Y. (2001) Web Engineering, Lecture Notes in Computer ScienceHot Topics, vol 2016, Springer Verlag, 2001 
  8. Glass, R. (1994) Editor’s Corner: Theory + Practice: A Disturbing Example, J. Systems Software, vol 25, pp 125-126 
  9. White, B. (1996) Web Document Engineering, SLAC-PUB-7150, May 1996, http://www.slac.stanford.edu/pubs/slacpubs/7000/slac-pub-7150.html (based on a tutorial presented at the World Wide Web Conference WWW5, Paris, 1995)