يمثل الويب نظاماً معلوماتياً ضخماً يضم تطبيقات تلبي احتياجات المستخدمين، وأخرى تُبنى وفق متطلبات محددة للمستفيد. ويستلزم تطوير هذه المواقع وصيانتها اتباع منهجية تعرف بهندسة المواقع. وهي توظف الأدوات العلمية والهندسية والمبادئ الإدارية والطرق المنهجية لبناء أنظمة الويب وتطويرها وصيانتها بكفاءة، بدءاً من نمذجة الموقع وحتى إتاحته للاستخدام.
يختلط على كثير من الناس الفرق بين مفهومي هندسة مواقع الإنترنت وهندسة البرمجيات، ففي حين تهتم هندسة البرمجيات باستخدام الطرق والمبادئ الهندسية في تصميم وتطوير البرمجيات، تهتم هندسة المواقع بتصميم وتطوير تطبيقات الويب، وتستخدم في ذلك طرق ومبادئ حديثة في التطبيق والنمذجة لتلبية متطلبات أنظمة الويب (Web Based Systems).
كما أن هناك اختلافاً آخر من ناحية دورة حياة النظام في هندسة البرمجيات عنه في هندسة المواقع، حيث تتم مرحلة الصيانة في هندسة البرمجيات من خلال مطور النظام والزبون، بينما في هندسة المواقع تتم على الشبكة لاختبار جاهزية النظام والعلاقات الداخلية والخارجية الموجودة بين صفحاته، أي بين التقنية وفن التصميم الخاص بالموقع.
يجب أن يتصف الموقع المهندس جيداً بالمواصفات التالية: الصحة: الموقع ينجز مجموعة من الوظائف ويكون خالياً من الأخطاء.
القابلية للاختبار: الموقع يمكن اختباره وظيفياً وعملياً.
القابلية للصيانة: الموقع سهل الصيانة ويمكن تعديله بسهولة.
القابلية لتغيير الحجم: وهي قدرة الموقع على التمدد والانكماش بحسب إعدادات المتصفح الذي يستخدمه المستفيد.
القابلية للاستخدام المتعدد: الموقع يكون قابلًا للاستخدام مستقبلاً كجزء من موقع آخر، وهذا ما يسمى أنظمة العناصر (Component Based System)
القوة: الموقع قابل للاستخدام بدرجة من الوثوقية لتلبية الخدمات الموجودة فيه.
وضوح التنظيم: يجب أن يكون ترتيب ملفات الموقع واضحاً ومفهوماً، ليساعد المطور على إجراء التعديلات مستقبلاً.
التوثيق: وذلك لكل مرحلة من مراحل بناء الموقع.
التصميم الجيد لواجهة الموقع الرئيسة، والتي من خلالها يتفاعل المستخدم مع الموقع.
ويقصد بتطوير صفحات الويب عملية بناء الموقع وتطويره من مرحلة استلام متطلبات الزبون إلى بناء الموقع ونشره على شبكة الإنترنت، وهذا يتضمن مجموعة من المراحل الموضحة فيما يأتي:
أشرنا فيما سبق إلى الخلط بين مفهومي هندسة البرمجيات وهندسة المواقع، وهنا نود أن نوضح الفرق بين دورتي حياة بناء الموقع وبناء النظام البرمجي، ففي حين يمر بناء النظام البرمجي بالمراحل التالية: كتابة الشروط الداخلية والخارجية، التحليل، التصميم، الترميز، الاختبار والتكاملية، التوثيق، الصيانة والتطوير، نجد أن بناء الموقع يمر بالمراحل التالية:
المرحلة الأولى (تعريف المشكلة): وفي هذه المرحلة تتم المقابلة بين الزبون ومهندس الموقع، ويتم فيها تحديد أهداف الموقع، ويستخدم في ذلك أسلوب "لماذا" للتعليل والسؤال عن كل شيء، وفي هذه المرحلة تتم كتابة وتوثيق كل شيء عن الموقع.
المرحلة الثانية (تحديد المتطلبات): في هذه المرحلة يتم تحديد متطلبات الموقع والتي منها: ما المخرجات المطلوبة؟
ما العمليات التي يتضمنها الموقع؟
ما المدخلات المتوافرة؟
ما هي المصادر المتاحة لنا؟
وتحديد كل التقنيات والأدوات المستخدمة من لغة التصميم، ومحركات البحث، وقواعد البيانات.
المرحلة الثالثة (تصميم الموقع): وفي هذه المرحلة يتم تحديد: هيكلية التنظيم للموقع بشكل عام.
هيكلية التنظيم لكل صفحة من صفحات الموقع.
وبعد ذلك تبدأ مرحلة التصميم، واستخدام التقنيات المتاحة لدعم الموقع بشكل رسومي، وبما يخدم متطلبات المستخدم.
المرحلة الرابعة (التنفيذ والاختبار): في هذه المرحلة يتم استخدام لغة البرمجة والتقنيات البرمجية المحددة في المرحلة الثانية، وفي هذه المرحلة نتحقق من سلامة التنفيذ وتلبية الموقع للمتطلبات (Verification and Validation)، وذلك من خلال طرح هذه الأسئلة:
هل صممنا موقعًا خاليًا من الأخطاء؟
هل صممنا الموقع الذي طلبه الزبون؟
المرحلة الخامسة (التكامل): وهنا نبدأ باختبار الموقع على شبكة الإنترنت، واختبار ترابط صفحات الموقع.
المرحلة السادسة (الصيانة): هذه المرحلة تهتم بأي تغيير قد يطرأ في الموقع بناء على متطلبات الزبون، أو أي تطوير مستقبلي للموقع.
وأخيراً، لا يوجد موقع يخلو من فرص التحسين. لكن تطبيق هندسة المواقع يتيح تطويره بخطوات منهجية مدروسة، كما أن هندسة مواقع الإنترنت فتحت المجال لمهندسي البرمجيات لبلورة أفكار ومبادئ هندسة البرمجيات للتعامل مع التطبيقات الموجودة على الشبكة، على اعتبار أنها أنظمة ليست جاهزة، وإنما أنظمة مبنية وفقاً لمتطلبات الزبون، بحيث يمكن نمذجة تلك التطبيقات لتكتسب الأفكار الحديثة التي ظهرت مؤخراً في مجال الحاسب ونظم المعلومات.