Google AdSense

اقتصاديات هندسة البرمجيات / أ.د. محمد محمد الهادي Print E-mail
العدد 14، سبتمبر 2007
اقتصاديات هندسة البرمجيات


أ.د. محمد محمد الهادي
أستاذ نظم المعلومات
أكاديمية السادات للعلوم الإدارية
مستخلص
يهدف هذا العمل إلي إلقاء الضوء علي موضوع مهم بدأ في البزوغ فيالسنوات الحديثة وهو اقتصاديات هندسة البرمجيات كدعامة أساسية في التنمية القومية ومجابهة تحديات السوق التنافسية التي تميز هذهالصناعة. ويستعرض هذا العمل اقتصاد المعرفة وارتباطه باقتصاد المعلوماتوالاقتصاد الرقمي؛ وخلفية وأجيال هندسة البرمجيات من بداية الاعتمادعلي الحرفية المعتمدة علي الجهد اليدوي إلي المهنية المبنية عليالمهارة الفائقة والفكر الخلاق المبدع؛ وحدد مجال هندسة البرمجياتالمتسمة بالأداء البشري المميز والسرعة في التغيير، كما عرف هذا المجالمن منظور البرمجيات المنظمة والمراقبة والفعالة المرتكزة علي تحليلوتقييم وتوصيف وتصميم وتطور البرمجيات في إطار الإدارة والجودةوالحداثة والابتكارية وتوافر المعايير والمهارات، ووضح الارتباطالمباشر بعلم الحاسب الآلي؛ ووضحت خصائص وأبعاد صناعة البرمجياتالمرتبطة بالهيكل الصناعي والتعليم وتنمية الموارد البشرية المؤهلةوتوزيع الشركات المنتجة للبرمجيات وخصائصها وأحجامها وتكامل نظم وحزمالبرمجيات المباعة محليا في مواجهة الصادرات منها؛ ونوقشت اقتصادياتهندسة البرمجيات من منظور اتخاذ القرارات  الأحسن لخلق القيمة المضافة،ومراقبة الاستثمار الديناميكي والتحكم فيه بطريقة أحسن، ومراحل تطورالميزة التنافسية الخاصة بقيادة الإنتاج والاستثمار والإبداع والثروة؛وبينت عناصر مزاولة تطبيقات هندسة البرمجيات التي تحدد معالم إنتاجالبرمجيات وتوظيف نموذج نضوج القدرة؛ واشتمل هذا العمل علي أسس تحسيناقتصاديات هندسة البرمجيات من حيث تخفيض الحجم وتقليل درجة التعقيد،تحسين عملية التطوير، تكوين فرق عمل واستخدام أدوات متكاملة تستخدمآلية أكبر، تطوير البرمجيات في إطار الجدوى الاقتصادية والفنية؛ وقدوضحت تحديات التقدم المرتبطة بالتكلفة والموثوقية وسهولة الاستخداموإمكانية صيانة التطبيق؛ وانتهي هذا العمل باستنتاج مج
موعة من النتائج الحاكمةولبعض التوصيات المطلوب تبنيها من اعتماد أدوات ومعايير وطنية توافقالعالمية منها.
الاستشهاد المرجعي بالبحث
محمد محمد الهادي. اقتصاديات هندسة البرمجيات .- cybrarians journal .- ع 14 (سبتمبر 2007) . - تاريخ الاتاحة < اكتب هنا تاريخ اطلاعك على الصفحة > . - متاح في :
1. المقدمة
علي عكس كثير من الموضوعات المرتبطة بالطلب علي المنتجات والخدمات، فإن البحوث المتعلقة باقتصاديات هندسة البرمجيات لها مكون تكنولوجي. وترتكز معظم هذه البحوث بتقييم التكنولوجيا أو المداخل الجديدة الواعدة لتطوير البرمجيات. وقد يبتعد ذلك التوجه مع كثير من الأعمال المرتبطة بجانب الطلب عليها التي تكون أكثر قربا من البحوث الاقتصادية التقليدية.
وعلي هذا النهج فإن اقتصاديات هندسة البرمجيات تتطلب بعض المهارات والمعرفة الخاصة بمجال البرمجيات من جهة والاقتصاد من جهة أخري. وطبقا لذلك، فإن موضوع اقتصاديات هندسة البرمجيات الجديد جذب اهتمام بعض الباحثين المتخصصين في علم الحاسب الآلي وما يرتبط به من هندسة البرمجيات وانعكس عملهم في إطار المراجعة لما هو متواجد بالفعل ومقترحاتهم نحو المستقبل. ويتجه هذا التجميع المرتبط بمهارة المتطلبات أيضا بإعداد البحوث التي قد تكون صعبة مقارنة بالبحوث التي تختص بالطلب علي السلع والخدمات التقليدية.
ويمثل المزاولون المستخدمون لهندسة البرمجيات المطبقة في الأعمال بأنهم أكثر الفئات اهتماما بفهم أوجه الابتكار والإبداع في هذا المجال وتؤدي بأسلوب أحسن يطبق علي أوضاعهم المعينة. ويحدد ذلك الدافع والمحرك الرئيسي لبحوث اقتصاديات هندسة البرمجيات، إضافة للنمو المطرد لصناعة البرمجيات وحزمها، وبذلك ارتكز مجال الاهتمام علي البرمجيات كسلعة اقتصادية.
ويعني مفهوم "هندسة البرمجيات Software Engineering " تطبيق العلم والرياضيات التي من خلالها تصبح قدرات الحاسبات مفيدة عبر البرامج والإجراءات والتوثيق. أما مفهوم "البرمجيات" فيمثل مجموعة كاملة من البرامج والإجراءات والتوثيق المرتبط بها في إطار نظام حاسب آلي. وترتبط عملية تطوير دورة حياة البرمجيات علي عدد من المراحل والأنشطة. وتتمثل المراحل في التالي: (محمد محمد الهادي، 2001)  الخطط والمتطلبات، تصميم منتج البرمجيات، البرمجة أو إنتاج البرمجيات، التكامل والاختبار، الصيانة والتحديث. أما الأنشطة المرتبطة بتلك المراحل وتختص بالتالي: التخطيط، التوصيف، التنفيذ، والاختبار. وكل من المراحل والأنشطة ذات طابع فكري يرتبط بالتفكير العقلي والابتكار والإبداع.
ويتعرض هذا العمل باستعراض مفاهيم اقتصاد المعرفة واقتصاد المعلومات والاقتصاد الرقمي؛ تحديد خلفية وأجيال مجال هندسة البرمجيات من بداية الستينيات من القرن الماضي حتى بداية القرن الواحد والعشرين؛ والتعرف علي مجال هندسة البرمجيات وطبيعته ومفهومه وارتباطه بعلم الحاسب الآلي؛ عرض خصائص وأبعاد صناعة البرمجيات؛ توضيح اقتصاديات هندسة البرمجيات في اتخاذ القرارات لخلق قيمة مضافة ومراقبة الاستثمار والميزة التنافسية؛ وبيان عناصر مزاولة تطبيقات اقتصاديات هندسة البرمجيات؛ واستعرضت أسس تحسين هندسة البرمجيات للارتقاء بصناعة البرمجيات لدعم الاقتصاد الوطني؛ كما بينت تحديات التقدم في اقتصاديات هندسة البرمجيات؛ واختتم هذا العمل باستنتاج مجموعة من النتائج والتوصيات التي تركز علي خلق واعتماد الأدوات والمعايير الوطنية المتمشية مع العالمية منها.
2. اقتصاد المعرفة
يقوم الاقتصاد الحالي المعاصر علي توليد القيمة الناجمة عن التجديد والابتكار والإبداع التي أسستها المعرفة المكتسبة عن طريق التعليم والتدريب والممارسة والمعرفة القابلة للترميز. وتحقيق ذلك، يعتمد علي مجموعة من الهياكل والمقومات الضرورية التي من أهمها التعليم والتدريب والبحث والتطوير المعتمد علي تواجد نظام إبداع وطني كفء.
وينظر إلي اقتصاد المعرفة من عدة أوجه منها:
أولا، سرعة التطور التكنولوجي وعلي وجه الخصوص تطور التكنولوجيا التي تشكل اقتصاد المعرفة الحديث مثل تكنولوجيا المعلومات والاتصالات التي ترتكز علي تطوير هندسة البرمجيات؛
ثانيا، الوجهة الاقتصادية حيث أصبحت كل المجالات الزراعية والصناعية والتعليمية والإدارية، الخ تعتمد بقوة علي المعرفة المرتبطة بالمعلومات والبرمجيات المشغلة لهذه المجالات؛
ثالثا: الوجهة الاجتماعية التي توضح أن وصول المعرفة وتكنولوجياتها من البرمجيات أصبح ضرورة لكل فئات المجتمع بأفراده ومنظماته ومنشآته ويؤدي إلي تنمية رأس المال البشري الخلاق عن طريق إتاحة التعلم والتدريب المستمر للجميع بجودة عالية، ويعتمد علي رأس المال البشري في تطوير وإنتاج البرمجيات بكل أنواعها.
وعلي ذلك، فإنه بالنظر إلي اقتصاد المعرفة من المنظور السابق، يصبح هذا الاقتصاد وسيلة لتقليل وتقليص الفجوة المعرفية والفجوة الرقمية بين الدول المتقدمة والدول النامية، وخاصة عندما تتحول المعرفة إلي عنصر أساسي مساعد علي النمو والتنمية ويحل محل العناصر التقليدية المتمثلة في المواد الأولية ورأس المال المادي والقوي العاملة غير المؤهلة، حيث يؤكد السلع الذهنية المرتبطة بالفكر والإبداع والمهارة الفائقة التي منها اقتصاد هندسة البرمجيات الحديثة.
وعلي الرغم من الجهود الحثيثة التي تقوم بها مصر وكثير من البلاد العربية نحو الاهتمام بتطوير صناعة تكنولوجيا المعلومات والاتصالات، إلا أنه ما زال هناك إفراط في الاعتماد علي المواد الأولية وافتقار إلي القيمة المضافة والاقتراب من اقتصاد المعرفة المعتمد علي صناعة تكنولوجيا المعلومات والاتصالات الحديثة وخاصة صناعة البرمجيات التي تشغل هذه التكنولوجيات وتصبح قيمة مضافة لكل قطاعات المجتمع المعاصر.
ومن الملاحظ أن الاقتصاد الوطني والعالمي كان معتمدا، منذ القرن التاسع عشر وحتى النصف الثاني من القرن العشرين، علي الطاقة أو العمل ورأس المال. ومنذ النصف الثاني من القرن العشرين، أخذ هذا المنحي يتغير بوضوح نحو الاعتماد علي المعلومات والمعرفة، بديلا عن رأس المال والطاقة باعتبارهما العاملين الأساسيين لتوليد وإنتاج الثروة، تماما مثلما حل رأس المال والطاقة محل القوي العاملة اليدوية غير الماهرة والأراضي في نهاية القرن الثامن عشر. وفي القرن العشرين أيضا أدي التطور التكنولوجي إلي التحول من العمل الجسدي إلي العمل القائم علي المعرفة لتوليد الثروة. فالتكنولوجيا والمعرفة هما العاملان الرئيسيان في الإنتاج في الوقت الحاضر.
ويشير الوضع الاقتصادي الحالي إلي الميزة النسبية الوحيدة التي يمكن أن تتمتع بها شركة أو منظمة أو حتى دولة معينة تكون في قدرتها علي الابتكار والتجديد الناجمان من المعرفة المهنية للسوق والتكنولوجيا، إضافة إلي المواهب الخلاقة لعمال المعرفة في التعامل مع قضايا تنافسية متلاحقة. وعملية الابتكار والإبداع تتطلب تفاعلا عميقا ومكثفا يجري في كل الاتجاهات بين مختلف الأطراف أو القوي المؤثرة من مؤسسات وجامعات ومختبرات أو معامل ومستهلكين. وهكذا يكون الابتكار والإبداع نتيجة لتفاعلات كثيرة بين كيانات أو أطراف أو قوي متعددة تؤلف ما يمكن تسميته "نظام الإبداع الوطني" الذي سبق الإشارة إليه في المؤتمر العلمي التاسع لنظم المعلومات وتكنولوجيا الحاسبات ، عن "الابتكار والإبداع لتطوير صناعة المحتوي الإلكتروني في مصر" الذي عقدته الجمعية المصرية لنظم المعلومات وتكنولوجيا الحاسبات في فبراير عام 2002. (محمد محمد الهادي، 2002) وفي نظام الإبداع الوطني يتفاعل الصناعة والجامعات ومراكز البحوث والحكومة والقطاع الخاص ضمن إطار تطوير العلم والتكنولوجيا والارتقاء بالتعليم والبحث العلمي والتطوير والاقتصاد المشترك.
ويبين الشكل التالي المسار الذي يتخذه نظام الإبداع الوطني موضحا دور التعليم والتدريب والتعلم باعتبارها من العوامل الرئيسية لهذا النظام:

شكل (2): التلاحم بين التكنولوجيات المؤدي لظهور الاقتصاد الرقمي
ويمثل ذلك الحدث الأعظم أهمية الذي يشكل المستقبل. ويعتبر تقليل التكاليف وتكنولوجيا الدفع Push Technology والتطبيقات الأكثر قوة جزءا من الاتجاه المتنامي نحو استخدام الحاسبات الآلية في كل مراحل الحياة اليومية المعاصرة وأصبحت تمثل ضرورية ومطلوبة . هذه الحركة أدت إلي بزوغ الاقتصاد الرقمي، حيث أن السرعة المتناهية والقدرة علي الوصول إلي الجماهير في أي مكان وفي أي وقت بالإضافة إلي تطبيق المعرفة من أساسيات السوق التنافسية في حقبة العولمة التي يشهدها العالم المعاصر.
كما أن هذه التكنولوجيات تسرع إيقاع التجديد والإبداع في تطوير البرمجيات وهي أساس لكل ذلك، في دورة العمل والإنتاج، كما أنها أداة للتفاعل الجماعي الخاص بالمعرفة، وهي عامل هام في زيادة تبادل المعرفة الخاصة بتطوير البرمجيات.
وفي الأعوام الخمسة عشر الماضية، أدي تسارع انتشار شبكة الإنترنت عالميا إلي نمو كبير في الاقتصاد العالمي. وأحدثت هذه العملية أثرا عميقا وضاغطا علي اقتصاديات الدول والمنظمات والمنشآت للتنافس الفعلي في البيئة العالمية الجديدة. وأصبحت المعلومات والمعارف في بيئة العمل والتنافس الجديدة من أهم السلع التي يمكن للدول والمنظمات أن تحوز عليها وتمتلكها. وهنا يكمن دور كبير للحكومات في تشجيع مؤسسات البحث والتطوير، الخاصة والعامة، المجددة والقادرة علي استخدام المعرفة. وقد غير التكنولوجيا بوجه عام وتكنولوجيا هندسة البرمجيات بوجه خاص، طريقة التفكير والعمل والطريقة التي تستخدم بها هذه التكنولوجيا لتحسين الظروف الاقتصادية.
3. خلفية وأجيال هندسة البرمجيات
يتأثر تطوير هندسة البرمجيات بالأنشطة الفكرية للذكاء البشري التي ترتكز علي حل المشكلات التي تختص بالتعقيد الكبير في كثير من أوجه المنافسة العالمية الغير محددة بشكل كبير.
وفي بداية مداخل تطوير البرمجيات في الستينيات والسبعينيات من القرن العشرين، كانت الحرفية هي العامل الرئيسي للنجاح، وكان كل مشروع يستخدم عمليات وأدوات العميل المتاحة لديه. وفي الثمانينيات والتسعينيات من القرن الماضي نضجت صناعة البرمجيات وتحولت إلي أكثر من مجال. علي أي حال، كانت معظم مشروعات البرمجيات في هذه الحقبة ترتبط بالبحث والتطوير المتعمق التي يسيطر عليها الابتكار البشري وبذلك اعتبرت غير اقتصادية إلي حد كبير. إلا أنه في الحقبة الحديثة صار جيل عمليات البرمجيات يتجه نحو مدخل إنتاجي يسيطر عليه بواسطة الآلية واقتصاديات المدى البعيد.
يلخص العرض الملخص التالي الأجيال الثلاثة في تطوير البرمجيات:
3/1 الجيل الأول من تطوير البرمجيات يغطي الحقبة في الستينيات والسبعينيات من القرن العشرين يتسم بأنه ذا سمة تقليدية بحتة، استخدمت فيه المنظمات كل أدوات وعمليات ومكونات العميل وبناء البرمجيات بلغات عتيقة غير ناضجة إلي حد ما. وكان من الممكن في هذا الجيل التنبؤ بدرجة كبيرة بأهداف التكلفة والجدولة الزمنية والجودة لمشروعات تطوير البرمجيات التي علي الرغم من ذلك لم تلبى دائما.
3/2 الجيل الثاني يغطي الفترة من الثمانينيات والتسعينياتمن القرن الماضي أطلق عليه تطوير هندسة البرمجيات. واستخدمت المنظمات المضطلعة بالتطوير عمليات أكثر تكرارا وأدوات جاهزة الإنتاج، وأن حوالي 70% من مكوناتها اعتمدت علي لغات عالية المستوي HLL كما أن حوالي 30% من هذه البرمجيات كانت متوافرة كمنتجات تجارية تتضمن نظم التشغيل OS، نظم إدارة قاعدة البيانات DBMS ، الشبكية Networking ، واجهة التفاعل الرسومية مع المستخدم GUI. وخلال الثمانينيات بدأت بعض المنظمات تحقق اقتصاديات في هذا المجال، وتنمو درجة تعقيد التطبيقات وخاصة للنظم الموزعة التي أصبحت لغات البرمجة والأساليب والتكنولوجيات المتوافرة غير كافية.
3/3 الجيل الثالث الحالي ويبدأ ببزوغ القرن اللحادي والعشرين وحتى الآن ارتبطت الممارسة المعاصرة باستخدام العمليات المدارة والمقاسة جيدا ببيئات الآلية المتكاملة، وأصبح أكثر من 70% من المكونات متاحة بطريقة جاهزة، أما ال 30% من البرمجيات فإنه يحتاج إلي أن يبني بالتوجه نحو العملاء.
ويمكن تلخيص هذه الأجيال في الشكل التالي الذي يرتبط بتكلفة الوحدة والعائد علي الاستثمار:

 

الجيل الثالث

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

 


شكل (4): درجة التعقيد والاتجاهات في اقتصاديات البرمجيات
من الشكلين السابقين يمكن أن يتضح أداء مشروع تطوير معين في كل جيل من الأجيال التي مر بها تطوير البرمجيات في التالي:
·        إمكانية التنبؤ في الجيل الأول إلا أن ذلك كان دائما أكثر من الميزانية والجدول الزمني المحدد للتطوير.
·        غير ممكن التنبؤ في الجيل الثاني المرتبط ببزوغ هندسة البرمجيات حيث كان الأداء يقع نادرا علي أساس الميزانية والجدول الزمني.
·        إمكانية التنبؤ في الجيل الثالث الحديث الذي في العادة يعتمد علي ميزانية وجدولة محددة جيدا.
4. مجال هندسة البرمجيات: طبيعته ومفهومه
منذ بدء ظهور الحاسبات العلمية Computing في الأربعينيات من القرن العشرين وحتى الآن، تمت تطبيقات واستخدامات الحاسبات الآلية بشكل مذهل ومثير للاهتمام. وصارت البرمجيات تلعب دورا مركزيا في كل أوجه الحياة اليومية: في الحكومة، البنوك والتمويل، الصناعة، النقل، الاقتصاد، الإدارة، التجارة، التعليم، الترفيه، الخ. كما نمي بصورة دراماتيكية عدد وحجم وتطبيق مجالات برامج الكمبيوتر. ونتيجة لذلك، تنفق مئات البلايين من الدولارات في تطوير البرمجيات التي صارت تمثل عصب الحياة لمعظم البشر الذين يعتمدون علي فعالية تطوير البرمجيات.
وقد ساعدت منتجات البرمجيات الناس في أن يكونوا أكثر كفاءة وإنتاجية، حيث أن هذه المنتجات تجعل الناس أكثر فعالية في حل المشكلات التي تواجههم وتوفر لهم بيئة للعمل والأداء الأكثر مرونة والأقل تعقيدا. وعلي الرغم من هذا النجاح الكبير توجد كثير من المشكلات الخطيرة التي ترتبط بتكلفة وحداثة وجودة كثير من منتجات البرمجيات نظرا لطبيعتها المميزة.
4/1 طبيعة هندسة البرمجيات:
من الأسباب التي تكمن فيها المشكلات المتعلقة بهندسة البرمجيات تتمثل في طبيعتها التي تتميز بالعوامل الثلاث التالية:
· منتجات البرمجيات تكون من بين النظم الأكثر تعقيدا التي يؤديها البشر، وأن البرمجيات بطبيعتها تشتمل علي مكونات وخواص ضمنية ذات طبيعة جوهرية (علي سبيل المثال، التعقيد المتعاظم والصفة غير المنظورة والتغير المستمر) التي لا يمكن مخاطبتها بسهولة [Brooks, 1995] .
·        أساليب وعمليات البرمجة التي أنجزت بفعالية بواسطة فرد أو فريق عمل صغير لتطوير البرامج المتواضعة الحجم لا تلائم أو ترفع بنسبة ما لتطوير النظم الكبيرة والمعقدة (علي سبيل المثال، النظم التي تشتمل علي ملايين من سطور التكويد أو التشفير وتتطلب سنوات من العمل الدءوب بواسطة مئات من مطوري البرمجيات).
·        سرعة التغيير في تكنولوجيا الحاسبات والبرمجيات التي تدفع الطلب علي منتجات البرمجيات الجديدة والمتطورة باستمرار. وقد خلق هذا الوضع توقعات العملاء وقوي المنافسة التي تشد قدرتنا لإنتاج برمجيات تتسم بالجودة العالية في إطار تطوير وجدولة مقبولة.
وعلي هذا الأساس فإن مجال هندسة البرمجيات مختلف في طبيعته من مجالات الهندسة الأخرى بسبب طبيعته غير الحسية أو غير المنظورة وطبيعة عملياته المحددة المعالم، كما أن هذا المجال يسعى لتكامل مبادئ الرياضيات وعلم الكمبيوتر مع المزاولات المختلفة المطورة لإنتاج حقائق اصطناعية Artifacts طبيعية ومنظورة، كما يسعى أيضا لتطوير نماذج منظمة وأساليب موثوق منها لإنتاج برمجيات عالية الجودة.
4/2 مفهوم هندسة البرمجيات:
بزغ مسمي "هندسة البرمجيات" كمجال علمي عام 1968 في نطاق مؤتمر الناتو NATO عن هندسة البرمجيات [Naur,1969] . ومنذ ذلك الوقت صار مصطلح "هندسة البرمجيات" مستخدما بتوسع كبير في الصناعة والحكومة والدوائر الأكاديمية: ففي الوقت الحالي يتوافر مئات الآلاف من مهنيي الحاسبات الذين يطلق عليهم "مهندسي برمجيات"، ونشرت المطبوعات العديدة تحت هذا المسمي، وأطلق المصطلح عل عدد كبير من المجوعات والمنظمات والمؤتمرات المهنية، واستحدثت مقررات وبرامج تعليمية تدرس هذا التخصص في كثير من الجامعات في الدول المتقدمة وعلي وجه الخصوص في الولايات المتحدة الأمريكية.
وعلي الرغم من التوسع الكبير في استخدام مصطلح "هندسة البرمجيات"، إلا أنه لا زالت توجد كثير من الآراء التي تتفق وتختلف عن معني ومفهوم وطبيعة المصطلح. وعلي الرغم من ذلك، فإن المؤيدين والمعارضين للمصطلح يشتركون جميعا بخيط مشترك يحدد ويتضمن أن هندسة البرمجيات هي أكثر من ترميز أو تشفير البرامج، حيث تتضمن جودة وجدولة واقتصاديات ومعرفة تطبيق المبادئ .  والعرض التالي يقدم ثلاث مفاهيم أو تعاريف تمثل تلك الآراء:
(1) "إنشاء واستخدام مبادئ الهندسة المحددة (الطرق) للحصول علي برمجيات اقتصادية الموثوق منها والتي تعمل علي الآلات الواقعية" [Bauer, 1972] .
(2) هندسة البرمجيات تمثل ذلك الشكل من الهندسة الذي يطبق مبادئ علم الحاسب الآلي والرياضيات لتحقيق حلول ترتبط بفعالية التكلفة لمشكلات البرمجيات.
(3) تطبيق مدخل منظمي محدد وكمي في تطوير وتشغيل وصيانة البرمجيات [IEEE, 1990].
وباستعراض هذه المفاهيم الثلاث، يمكن ملاحظة تواجد أوجه معينة لكل من هذه التعاريف التي تسهم في منظور البرمجيات في إطار نمط منظم ومراقب وفعال. وتبع لذلك، يوجد تركيز هام علي تحليل وتقييم وتوصيف وتصميم وتطور البرمجيات. بالإضافة لذلك، تتوافر مجموعة من القضايا المرتبطة بالإدارة والجودة، والحداثة، والابتكارية، والمعايير والمهارات المرتبطة بالفرد وفريق العمل والمزاولة المهنية التي تطلب دورا حيويا في هندسة البرمجيات.
4/3 هندسة البرمجيات كأحد تخصصات علم الحاسب الآلي:
يتمثل عدم الإدراك المشترك عن رؤية مجال هندسة البرمجيات بأنه يرتبط بالأنشطة الموجهة نحو العملية (أي المتطلبات، التصميم، تأكيد الجودة، تحسين العملية وإدارة المشروع). ويلاحظ أن هذه الرؤية يمكن أن تتحقق بواسطة التزود بخلفية هندسية، ومعرفة قوية بعملية تطوير البرمجيات وخلفية محدودة بالحاسب الآلي التي تتضمن خلفية استخدام لغة برمجة أو أكثر. وفي الواقع فإن الخلفية الهندسية تعتبر إدراك قاصر قاد إلي هذا التفكير، كما أنها مبنية علي رؤية طبيعية وتحديات غير كاملة عن هندسة البرمجيات.
وفي التطور التاريخي للحاسبات الآلية، أنتج علماء الحاسب الآلي برمجيات، كما أنتج علماء الهندسة الكهربائية الأجهزة التي تشغل عليها البرمجيات. وبنمو حجم وزيادة درجة التعقيد والأهمية الحرجة للبرمجيات، نمت الحاجة لتأكيد أن البرمجيات تؤدي ما قصد من تطويرها. ومن بدء السبعينيات من القرن العشرين الماضي كان واضحا أن مزاولات تطوير البرمجيات الملائمة تتطلب أكثر من تأكيد مبادئ علم الحاسب الآلي فحسب، حيث أنها تحتاج إلي توافر كلا من الأدوات التحليلية والوصفية المطورة في إطار علم الحاسب الآلي، وإن الدقة المرتبطة بمجالات الهندسة في الواقع العملي ترتبط باعتماد الحقائق الاصطناعية Artifacts التي تتعامل معها. وعلي ذلك فإن هندسة البرمجيات تختلف في الخواص عن مجالات الهندسة طبقا لكل من طبيعة البرمجيات غير المنظورة وطبيعة تشغيلها المنفصلة والمتميزة. وتسعي هندسة البرمجيات إلي تكامل مبادئ الرياضيات وعلم الحاسب الآلي مع المزاولات الهندسية المطورة في إنتاج حقائق اصطناعية طبيعية ملموسة. وبناء علي الرياضيات كأسس لهذا المجال فإن هندسة البرمجيات تسعي لتطوير نماذج منظمة وأساليب موثوق منها لإنتاج برمجيات عالية الجودة. وتمتد هذه الاهتمامات إلي كل من المدى المنظور من النظرية والمبادئ لمزاولات التطوير الأكثر وضوحا، إلي تلك المتواجدة خارج نطاق هذا المجال. وبينما لا يتوقع أن كل مهندسي البرمجيات يمتلكون خبرة متعمقة في كل أوجه الحاسب الآلي، فإن الفهم العام المرتبط بهم يحتم عليهم الخبرة في الأوجه العملية لتطوير البرمجيات ذاتها.
5. خصائص صناعة البرمجيات
5/1 التدرج العالمي لصناعة البرمجيات وتصدير منتجاتها:
تندرج دول العالم في إطار صناعة البرمجيات وتصدير منتجاتها تحت أربعة فئات أو مستويات كما يلي:
·        المرتبة الأولي تضم دولا كالولايات المتحدة الأمريكية، دول الاتحاد الأوربي، كندا، استراليا، اليابان ثم الهند وإسرائيل وأيرلندا كأهم الدول المنتجة والمصدرة للبرمجيات،
·        في المرتبة الثانية تأتي دولتان فقط هما روسيا والصين كدول منتجة ومصدرة للبرمجيات في مرحلة تحول،
·        أما في المرتبة الثالثة فترد دول كالبرازيل، كوستاريكا، الفلبين، ماليزيا، كوريا، باكستان، المكسيك، بولندا ورومانيا كدول منتجة ومصدرة صاعدة حديثة،
·        أما المرتبة الرابعة والأخيرة فتأتي دولا مثل كوبا، الأردن، الإمارات، مصر، إيران،بنجلاديش، إندونيسيا وفيتنام كدول منتجة ومصدرة وليدة.
وفي هذا الإطار يلاحظ أنه علي الرغم من مرور سنوات طويلة، إلا أن صناعة البرمجيات في مصر لم تحقق ما هو مطلوب منها حتى الآن، علي الرغم من خطة الاتصالات والمعلومات التي وضعتها وزارة الاتصالات والمعلومات بعد إنشائها مباشرة في ديسمبر 1999 [وزارة الاتصالات والمعلومات، 1999] كانت تهدف للوصول بمعدل تصدير البرمجيات المصرية إلي (500) مليون دولار أمريكي بعد خمس سنوات، إلا أنها لم تصل حتى فبراير 2006 إلي (200) مليون دولار أمريكي فقط وفقا لتصريح وزير الاتصالات وتكنولوجيا المعلومات المتاح عل موقع ويب الوزارة[http://www.mcit.gov.eg] .
5/2 أبعاد وخصائص صناعة البرمجيات:
يمكن تحديد أبعاد وخصائص صناعة البرمجيات في التالي:
·        الهيكل الصناعي وخصائص الصناعة الرئيسية.
·        وضع الموارد البشرية.
·        توزيع الشركات إقليميا.
·        خصائص حجم شركات تطوير البرمجيات.
·        الأنشطة الرئيسية كتكامل النظم وحزم البرمجيات والمبيعات المحلية في مواجهة الصادرات.
وعلي هذا الأساس تتحدد مخرجات البرمجيات وصناعة الكمبيوتر مع الناتج المحلي الإجمالي GDP في إطار جدول يحدد في صفوفه سنوات التطور ويبين في أعمدته العناصر التالية: مخرج صناعة البرمجيات (مليون جنيه)، مخرج صناعة الكمبيوتر (مليون جنيه)، البرمجيات ونسبتها لصناعة الكمبيوتر (%)، الناتج المحلي الإجمالي (مليون جنيه)، البرمجيات ونسبتها للناتج المحلي الإجمالي (%).
ومن هذه الجدولة يمكن تحديد نمو قطاع البرمجيات في الدولة.
وفيما يخص الخصائص السابق الإشارة إليها يمكن النظر إليها في التالي:
(1) الهيكل الصناعي والخصائص:
يجب تحديد ذلك في جدول يوضح معدل نمو قطاعات الاقتصاد القومي المختلفة علي مدي سنوات المقارنة التي ترتب في صفوف هذا الجدول بينما توضح منتجات البرمجيات، الخدمات، الصادرات والإجمالي لكل ذلك في أعمدة الجدول.
كما توضح أنواع منتجات البرمجيات من برمجيات النظم، البرمجيات المساندة، برمجيات التطبيقات الإجمالي ومعدل النمو (%) في صفو الجدول أما أعمدته فقد ترتبط بالسنوات المرتبطة بالمقارنة.
(2) التعليم والموارد البشرية:
ترتبط بقوة العمل المتاحة في صناعة البرمجيات من حيث عدد مهنيي البرمجيات وعدد الخريجين في مجال الحاسبات والمعلومات علي مدي عدة سنوات للمقارنة. كما يمثل ذلك بعض المؤشرات التي منها: معدل أمية الكبار (نسبة العمر من 15 سنة لأعلي من ذلك)، المقيدون في التعليم الثانوي، والمقيدون في التعليم الإعدادي، المقيدون في التعليم الجامعي، الخ.
(3) توزيع شركات تطوير وتصنيع البرمجيات إقليميا:
يوضح في جدول يخصص لذلك توزيع شركات صناعة البرمجيات في مدن أو محافظات الدولة وسنوات المقارنة لذلك.
(4) حجم شركات صناعة البرمجيات:
توضح هذه الخاصية حجم الشركات طبقا لرأس المال وعدد العاملين المهنيين.
(5) مؤشرات الأداء:
التي تحدد متوسط نمو المنتج المحلي الإجمالي GDP السنوي.
(6) الحافز الاقتصادي:
التشكيل المحلي الإجمالي كنسبة من المنتج المحلي الإجمالي (متوسط النمو السنوي)، قيود الرسوم المفروضة علي البرمجيات، المواد القانونية والتشريعية المنظمة، مدي الرقابة علي الفساد.
(7) نظام الإبداع الوطني:
يختص ذلك بالاستثمار المباشر الأجنبي كنسبة من متوسط الناتج القومي الإجمالي، المصروفات المكرسة للبحث والتطوير كنسبة من الناتج القومي الإجمالي، منتجات التكنولوجيا المتقدمة كنسبة من الصادرات المصنعة محليا.
(8) بنية المعلومات الأساسية:
تختص هذه البنية التحتية بعدة مؤشرات منها: التليفونات (الأرضية والمحمولة لكل ألف من السكان، عدد أجهزة الكمبيوتر لكل ألف من السكان، وعدد مضيفات الإنترنت لكل 10000 شخص.
وعند مقارنة قدرة شركات صناعة البرمجيات، يمكن قياس القدرة من خلال عدة خصائص منها:
·        المهارة الفنية الفردية: تخص الخريجين المهنيين من الجامعات ومراكز التدريب المهني.
·        نضوج قدرة العملية: عدد الشركات الحاصلة علي مستوي معين من نموذج نضوج القدرة CMM الذي يمثل قوة أو قصور الشركات.
·        التكنولوجيا المتاحة: تعتبر من أهم الخصائص الخاصة بالقدرة التنافسية التي تميز الشركات القوية من تلك الضعيفة. وتفسر التكنولوجيا في هذه الحالة بالتكنولوجيا المنشأة من إنجازات وقدرات البحث والتطوير.
·        نموذج الإيراد: ويرتبط بمبيعات المنتج مع تكامل النظم المحفزة للإيرادات الإضافية.، كما يمثل مزيج قدرات المنتج والخدمة في نفس الوقت.
·        قدرة تسويق المنتج: من حيث الترويج والإعلان وكسب السوق المحلي والمنافسة في السوق الخارجية.
وعند مقارنة شركات صناعة البرمجيات يعمل جدول يوضح الشركات وارتباطها بأنواع القدرات السابق الإشارة إليها.
5/3 صناعة البرمجيات المصرية:
ومن الملاحظ أن ترتيب مصر في صناعة البرمجيات الذي يأتي في المرتبة الأخيرة كما سبق ذكره، يثير كثيرا من التساؤلات عن مستقبل صناعة البرمجيات المصرية، وما هي نقاط القوة ونقاط الضعف للقدرة التصديرية المصرية في هذه الصناعة في ضوء التجارب العالمية الناجحة؟ وما هي الإجراءات المطلوب اتخاذها لتحقيق الخطط الطموحة التي ارتبطت بها الخطة القومية للاتصالات والمعلومات المطلوبة الصادرة في أواخر عام 1999؟ [وزارة الاتصالات والمعلومات، 1999].
فعناصر القوة التي قد تتسم بها صناعة البرمجيات المصرية تتمثل في: انخفاض تكلفة العمالة، الموقع الجغرافي المميز، اتقانا لغات الأجنبية وخاصة اللغة الإنجليزية، توافر المهارات الفنية، والقدرة علي اجتذاب الشركات الأجنبية وخاصة العالمية منها.
أما عناصر الضعف التي تكمن في صناعة البرمجيات المصرية، فإنها تتمثل في: محدودية وقصور القدرة التنافسية، عدم مصادر تمويلية كافية، محدودية السوق المحلية، وارتفاع معدل القرصنة. لذلك يبزغ التساؤل التالي: كيفية ترجمة عناصر القوة إلي قدرة تصديرية مرتفعة؟ وما هي ملامح الرؤية والخطة القومية الاستراتيجية التي تتبناها مصر لتحقيق هذا الهدف؟
الخطة القومية للاتصالات والمعلومات التي تبنتها مصر في أواخر عام 1999 وما تبعها من خطة المبادرة بدخول مصر مجتمع المعلومات هدفت الإسراع في النهوض بصناعة واستخدامات البرمجيات المصرية، حيث ارتبط المحور الثاني من هذه الخطة بالتوجه نحو الأسواق العالمية، وأن أحد مشروعات الخطة تنمية حجم الصادرات من البرمجيات إلي (500) دولار أمريكي بعد خمس سنوات كما سبق توضيحه؛ وفتح الأسواق الخارجية للبرمجيات المصرية من خلال قنوات تربط بين المنتجين في مصر وهذه الأسواق؛ وتسويق القدرات المصرية في تكنولوجيا المعلومات وبصفة خاصة الخبرات البشرية في شكل عقود للدعم الفني والاستشارات بالمنطقة العربية وأفريقيا. وقد حددت الخطة مكونات هذا المشروع في حصر الإمكانات البشرية المتوافرة في مجال الصناعة وخاصة القادر منها علي التصدير؛ وكذلك حصر دقيق لحجم ونوعية التصدير القائم حاليا، وتحديد خطة التصدير القصيرة المدى مع تحديد الأسواق المستهدفة ,إنشاء هيئة تنمية البرمجيات المصري مع إقامة برامج تدريبية.
وتشير البيانات المتاحة عن صناعة البرمجيات المصرية أن قيمة إيرادات صناعة البرمجيات بلغت حوالي (49) مليون دولار في عام 1997، ارتفعت إلي 129 مليون دولار عام 2001، التي ارتفعت إلي 148 مليون دولار في عام 2002، ثم إلي 174 مليون دولار في عام 2003. وقد وصل عدد الشركات العاملة في صناعة البرمجيات (296) شركة يعمل بها حوالي (700) فني تقدر نسبة الشركات التي تقوم بالتصدير منه حوالي 1% من الحجم الكلي للشركات، وفي عام 2003 قدرت صناعة البرمجيات من 5- - 100 مليون دولار وفقا لأكثر التقديرات تفاؤلا. وقد أشارت دراسة هارفارد الاستشارية حول القدرة التنافسية لقطاع تكنولوجيا المعلومات المصرية بحوالي (45) مليون دولار أمريكي لعام 2002 ، بينما قدرت نفس الدراسة أن إيرادات قطاع تكنولوجيا المعلومات وصلت إلي (470) مليون دولار ومتوسط الإيراد المشغل في هذا القطاع يقدر بحوالي 3700 دولار الذي يعتبر مرتفعا بالمقارنة بكثير من الدول مثل الهند، كما انتهت ستة شركات فقط من الشركات العاملة في مجال تكنولوجيا المعلومات من إعادة تأهيل نفسها والحصول علي نموذج نضوج القدرة CMM المستوي الثالث حتى منتصف 2005.[http://www.mcit.gov.eg]
ويحدد الجدول التالي مؤشرات تطور قطاع تكنولوجيا المعلومات في ديسمبر من عامي 2003 و 2005وفقا لموقع الويب لوزارة الاتصالات وتكنولوجيا المعلومات [http://www.mcit.gov.eg] .
جدول (1 ): مؤشرات تكنولوجيا المعلومات في عامي 2003 ، 2005
خصائص تكنولوجيا المعلومات
مؤشرات ديسمبر 2003
مؤشرات ديسمبر 2005
النسبة المئوية
عدد الشركات
968 شركة
1442 شركة
67%
رأس المال المصدر
7, 1868 مليون جنيه
3601 مليون جنيه
52%
التكاليف الاستثمارية
3146 مليون جنيه
8, 4754 مليون جنيه
66%
فرص العمالة
28086 فرصة عمل
35094 فرصة عمل
80%
عدد متدربي برامج تنمية المهارات
82383 متدرب
120280 متدرب
5, 68%
عدد متدربي برامج التدريب التخصصية
4, 1667 متدرب
23092 متدرب
2, 7%
يتضح من الجدول السابق الزيادة الملحوظة في توفير فرص العمل وعدد الشركات العاملة في مجال تكنولوجيا المعلومات وفي التكاليف الاستثمارية ورأس المال المصدر.
5/4 صناعة البرمجيات الهندية:
والتوجه العالمي وزيادة مهنية منشآت تطوير البرمجيات في تجربة الهند علي سبيل المثال [Kumar, 2001] أدت لربط عملياتها في هندسة البرمجيات مع المزاولات العالمية الأحسن والحصول علي الشهادات الدولية المعترف بها في جودة المنتجات. علي سبيل المثال، حصلت (170) شركة هندية علي معيار ISO 9000 للمنظمة الدولية التوحيد القياسي في يونيو 2000 ويتوقع حصول (50) شركة أخري علي نفس الشهادة في عام 2001، بالإضافة لذلك حصلت (38) شركة برمجيات هندية علي نموذج نضوج القدرة CMM لمعهد هندسة البرمجيات في المستوي الثالث وأعلي. [Kumar, 2001] ويبين الجدول التالي التخصصات الرئيسية لشركات البرمجيات الهندية في عام 2000   [Kumar, 2001] .
جدول (2): التخصصات الرئيسية لشركات البرمجيات الهندية
القطاع / التخصص
عدد الشركات
1. البنوك، التأمين، المحاسبة المالية، البور صات
247
2. التصنيع، التجزئة، التجارة والتوزيع
331
3. النقل، الخطوط الجوية، السكك الحديدية، المواني
157
4. تطبيقات الويب، خدمات المعلومات علي الخط
295
5. الهندسة، الإلكترونيات، تصميم الآلية، الإنسان الآلي
224
6. التطبيقات الطبية والصحية
163
7. التعليم والتدريب والتعلم
115
8. الاتصالات عن بعد
174
يتضح من هذا الجدول تشعب وتعدد الشركات الهندية العاملة في معظم القطاعات الحاكمة في أي اقتصاد.
كما يوضح الجدول التالي ميادين تخصص هذه شركات تطوير البرمجيات الهندية فيما يتعلق بالمجالات التخصصية للبرمجيات ذاتها: [Kumar, 2001]
جدول (3): ميادين التخصص في البرمجيات للشركات الهندية
ميادين تخصص البرمجيات
عدد الشركات المقدمة للخبرة
1. تكنولوجيا الويب، الإنترنت، التجارة الإلكترونية
319
2. الحلول المالية والنقدية
132
3. تطوير منتجات البرمجيات
286
4. صيانة وتكامل البرمجيات
233
5. نظم إدارة قواعد البيانات، مستودعات البيانات، تنقيب البيانات
215
6. تخطيط موارد المنشأة ، حلول موارد الإدارة
205
7. نظم المعلومات الجغرافية، وإعداد الرسومات
55
8. إعادة الهندسة، استشارات عمليات الأعمال
168
يوضح الجدولان السابقان الارتقاء الحديث للهند كمصدر منافس لخدمات وصناعة البرمجيات الذي جذب اهتمام عالمي واسع تجاه التجربة الهندية، حيث صارت الهند رائدة وقائدة للدول النامية في صناعة البرمجيات وتقديم خدماتها كنشاط بحث وتطوير وإفراز معرفة تكنولوجية، مما حدي بلجوء الشركات العالمية من كل أنحاء العالم إلي الهند لتعهيد Outsourcing متطلبات تطوير برمجياتها في إطار مستودع الخبرات المتاح بالهند.
ويرجع نجاح التجربة الهندية في صناعة البرمجيات وتقديم خدماتها إلي الاستثمارات الضخمة التي أنفقت في تطوير نظام التعليم بها وبناء نظام الإبداع الوطني الخاص بها عبر الخمسين عاما الماضية الذي أصبح نشاطا شبيها بالبحث والتطوير R&D في هندسة البرمجيات.
6. اقتصاديات هندسة البرمجيات
تبدأ اقتصاديات البرمجيات بهدف تطوير المعرفة الأساسية التي سوف تساعد الزيادة الجوهرية الممكن قياسها في القيمة المنشأة عبر الوقت بواسطة مشروعات ومنتجات وصناعة البرمجيات وتكنولوجيا المعلومات.
وعند التوجه إلي الخلف من الهدف النهائي إلي الوصول لمنتج البرمجيات المستهدف، يجب تعريف شبكة المخرجات الوسيطة المهمة التي تبدأ من الاهتمامات التكتيكية مثل تحسين تقدير تكلفة مشروعات البرمجيات، حتى الوصول للاهتمامات الاستراتيجية المرتبطة بالبرهنة عن الخيارات الحقيقية بين عناصر المشروع والبرنامج المعين.
وفي هذا الصدد يمكن استعراض العوامل الثلاثة التالية المؤثرة علي اقتصاديات البرمجيات:
6/1 اتخاذ القرارات الأحسن لخلق القيمة المضافة:
الهدف من اقتصاديات البرمجيات يرتبط بالمخرج الرئيسي، حيث يجب أن يتخذ المصممون في كل المستويات قرارات التصميم التي تكون أفضل للقيمة المضافة من تلك القرارات التي تتخذ بطريقة لا تراعي القيمة الاقتصادية لها. وتعتبر قرارات التصميم مهمة جدا وجوهرية في تصميم العملية والمنتج، هيكلة مشروع التطوير والإدارة الديناميكية للبرامج الكبيرة، توزيع البرمجيات في محفظة Portfolio المبادرات الاستراتيجية، بالإضافة لسياسة البرمجيات الوطنية. وعلي هذا الأساس، فإن اتخاذ القرارات الأحسن يعتبر العامل المساعد الرئيسي لقيمة مضافة أعظم.
وترتبط عملية اتخاذ قرارات الأعمال المتعلقة باختيار البديل الأحسن لمشروع عرض تطوير البرمجيات بالشكل التالي:
·        دراسة الجدوى،
·        تحديد وتحليل الحاجات والمتطلبات،
·        تصميم المنتج،
·        التصميم التفصيلي،
·        البرمجة أو التشفير،
·        التكامل، التنفيذ،
·        الصيانة .
والتي تتمثل في النموذج العملي التالي لهندسة تطوير البرمجيات وخاصة البرمجيات التعليمية:
1- الجدوى Feasibility (التحليل)
تقرير نهائي
2. تحليل الحاجات Needs Analysis
توصيف المتطلبات
3. مرحلة التصميم   Design Phase
توصيف الوظائف
4. مرحلة الإنتاج Production Phase
الموديول + النموذج التمهيدي
5. دورة النمذجة التمهيدية Prototyping Cycle
الاختبارات
6. الاختبار التجريبي والميداني والمراجعة Pilot / Field Testing and Revision
7. التركيب أو الإنشاء Installation
شكل (6): نموذج عملي لهندسة البرمجيات
وتتضمن كل مرحلة من المراحل السبع المشار إليها سابق عمليات التدقيق والتصحيح.
وفي هذا الصدد يجب القيام بالتالي:
(1) التبرير الاقتصادي لنموذج دورة الحياة:
- لتحقيق منتج برمجيات ناجح يجب تحقيق كل الأغراض الفرعية المرتبطة بالعواقب
المكلفة التي يجب تجنبها،
- أي طلب لأهداف فرعية مختلفة سوف ينتج برمجيات أقل نجاحا، لذلك يجب الكشف
المبكر علي الأخطاء وعلي وجه الخصوص الكامنة في المتطلبات سوف يؤدي إلي
تغييرات بسيطة وأقل تكلفة محتاج إليها.
(2) التطوير التعاقبي:
- تعاقب القدرة الأساسية للتشغيل، تعاقب قدرات توجه الإنتاج ذات القيمة المضافة، الخ.
- المزايا يجب أن تكون أكثر إفادة وأسهل للاختبار، تتضمن خبرة المستخدم بطريقة أقل
تكلفة، وتقلل تكاليف العمل، الخ.
(3) التعزيزات والتقدم المستمر:
- التوثيق المرتبط بتفسير الأهداف والخطط المفصلة لأنشطة تطوير البرمجيات، وإنتاج
إصدارات تجريبية لتوثيق المستخدمين.
- المزايا تختص بتقليل التكاليف الكلية بالحد من الوقت والطاقة المبذولة في أنشطة غير
إنتاجية، وإعادة توزيع التكاليف من خلال الاستثمار المبدئي الذي يقلل تكاليف الاستثمار
المتأخر.
(4) نموذج التكلفة الإنشائي Constructive Cost Model
- منتجات مطورة ذات الحجم الصغير إلي المتوسط،
- يختص بنظام تقدير تكاليف البرمجيات.
(5) المعاني والمسلمات Definitions and Assumptions
- باعث التكلفة الأولي يمثل عددا مكن تعليمات المصدر الناتجة  Derived Source Instructions
المطورة بواسطة المشروع.
- تبدأ فترة التطوير في مرحلة التصميم وتنتهي في مرحلة التكامل والاختبار،
- تغطي تلك الأنشطة المبنية علي برمجيات هيكل تجزيء العمل Work Breakdown Structure
- تغطي كل العمالة المباشرة علي المشروع،
- يشتمل رجل – شهر علي 152 ساعة عمل.
- العمل غير المنتج يبقي في حده الأدنى،
- يفترض أن توصيف المتطلبات لا يتغير جوهريا بعد مرحلة الخطط والمتطلبات.
(6) رجل – شهر في مواجهة التقديرات بالعملة الصعبة:
- تكاليف بالدولار الأمريكي مثلا يجب تجنبها،
- رجل – شهر تمثل كمية القياس الثابتة،
- لتحويل رجل – شهر إلي تقديرات بالدولار مثلا يطبق متوسط سعر الدولار لأشكال
الرجل – شهر.
(7) جهد وجدول التطوير:
- تقدم معادلات جهد وجدول لمعظم أنواع مشروعات تطوير البرمجيات الأساسية،
(8) توزيع مرحلة التطوير:
- نسبة توزيع جهد وجدول البرمجيات في نطاق مراحل التطوير.
- منحني العمالة يتبع منحني مستمر،
- يفسر ذلك بأن عوامل التكيف حيث تكون أحجام المشروع غير معيارية.
(9) تكلفة جودة الإنتاج:
يحدد الشكل التالي معالم تكلفة جودة تطوير البرمجيات:

فشل التكلفة
التكلفة
إجمالي التكلفة
تكلفة تحقيق الجودة

صفر           قياس الجودة                   100%
شكل (7): تكلفة جودة البرمجيات
يلاحظ من الشكل السابق أن تكاليف جودة البرمجيات ترتبط بالتالي:
·        تكاليف الإنجازAchievement تختص بكل من:
- تكاليف التقييم Appraisal التي ترتبط بتكاليف تقدير جودة البرمجيات فيما يخص:
مراجعات تصميم الأداء، اختبار الأداء، وتدقيق وتصحيح البرمجيات. ويرتبط ذلك
بأداء أدوات القياس. علي سبيل المثال، عند قياس تقري ما إن كانت البرمجيات
تلبي أهداف الأداة.
- تكاليف المنع Prevention تختص بتكاليف تأكيد جودة البرمجيات الخاصة بكل من:
أجور ومرتبات العاملين، تكلفة الأدوات والتصميم الموجه نحو الأداء ومراجعاته.
وتختص بقياس جمع بيانات لإنشاء نماذج أداء.
- تكاليف عدم التطابق Non-conformance تختص بكل من تكاليف الفشل الداخلي التي
تحدث قبل إمداد وإتاحة البرمجيات فيما يتعلق بالتعديل وإعادة التصميم. كما تختص
بتكاليف الفشل الخارجي التي تحدث بعد إمداد البرمجيات فيما يخص المرتجعات أو
المردود، والتدرج وعواقب التعاقد.
- تكاليف الفشل الداخلي تختص بتكاليف الأخطاء المعمارية والتصميم وتتضمن تعريف
وتقرير المشكلة،  تصحيح المعمارية والتصميم، الاختبار الإضافي نتيجة التصحيح،
المكونات المهدرة نتيجة تغييرات المعمارية والتصميم. هذا بالإضافة إلي تكاليف
التعديل الخاصة أيضا بتعريف وتقرير المشكلة، إعادة عمل المكونات الصحيحة،
والاختبار الإضافي نتيجة للتصحيح.
- تكاليف الفشل الخارجي تختص بتكاليف كل من: الدعم الفني، المنتجات المرتجعة أو
المعادة، إصدارات الصيانة، العقوبات، المبيعات المفقودة، الخ.
9. تحديات التقدم في اقتصاديات هندسة البرمجيات
يؤثر عدد من العوامل علي التقدم في هندسة البرمجيات بصفة عامة، واقتصادياتها بصفة خاصة. وكما بين في البند السابق أن هندسة البرمجيات ترتكز علي إنتاج البرمجيات التي تعتبر بطبيعتها المميزة جدا سلعة غير ملموسة نسبيا. وتحديد موضوعية وقياس كثير من أبعاد البرمجيات وعناصرها يعتبر في الغالب من الموضوعات التي تمثل تحديا كبيرا للباحثين. وحتى في الحالات التي نجد فيها برمجيات جيدة نسبيا للفحص، قد توجد أدلة قليلة القياس والفحص التي ترتبط بالعملية التي أنتجت البرمجيات من خلالها.
وحتى إذا وجد وصولا جيداإلي بيانات مشروع ما، يوجد عامل تحدي رئيسي. فقد نمي عدد تطبيقات البرمجيات وزاد تعقيدها بسرعة كبيرة جدا مزودة بدرجة كبيرة من التحسينات الأساسية في تكنولوجيا الأجهزة والبرمجيات ، حيث تقلصت أجهزة الكمبيوتر في الحجم وزاد أداؤها لكل وحدة تكلفة، كما صار في الإمكان تبرير تطبيقات أكثر عليها، وقد خلق ذلك طلبا متزايدا علي البرمجيات. وبينما زود هذا الطلب المتعاظم والمتنامي علي البرمجيات طلبا كبيرا ملقي علي عاتق مطوري البرمجيات ومنظماتهم، فإنه يقدم أيضا تحديات جوهرية أمام الباحثين عند تقدير التقدم في إمداد وإتاحة البرمجيات. وحيث أن التطبيقات بالإضافة إلي الأدوات قد تغيرت، أصبح من الصعب جدا تقدير تأثيرات الأدوات الجديدة. وقد تكون هذه هي الحالة التي توضح أن تأثير الأداة الجديدة لخلق الاختلاف في النوع بدلا من الاختلاف في درجة الكفاءة مع خلق أنواع نظم معينة لم تكن متاحة من قبل.
ومعظم بحوث هندسة البرمجيات ارتكزت علي مساعدة فرق مطوري البرمجيات لتخطيط وتصميم وتنفيذ ورقابة مشروعات البرمجيات. ويحتاج نجاح مشروعات هندسة البرمجيات إلي أن تقيم فيما يتصل بإمداد مجموعة من الأنشطة الوظيفية التي تقيم أيضا من خلال عدد من المحاور، علي سبيل المثال:التكلفة، والموثوقية، وسهولة الاستخدام، وإمكانية صيانة التطبيق، الخ. وقد برهنت هذه المحاور أو الأبعاد صعوبة كبيرة في القياس، حتى عند ثبات أو عدم تغير الأنشطة الوظيفية ذاتها. علي أنه بدلا من ذلك، أعتقد الكثيرون علي نطاق واسع أن تلك التطبيقات نمت فيما يتعلق بدرجة تعقيدها وأن ذلك ما يمكن رؤيته، وفيما عدا ذلك فأن ما يتحقق يعتبر مكاسب مبهمة غير واضحة وذات تعقيدات أعظم. علي سبيل المثال، قد يعتقد البعض أن قياس نسبة المشروعات الفاشلة يجب أن تنخفض وخاصة في إطار التقدم الحاصل في عمليات تطوير البرمجيات بأساليب أحسن، إلا أن هذا العدد قد يبقي ثابت أو يزداد عندما تستخدم عمليات التطوير لمحاولة إعداد مشروعات طموحة بسهولة أكبر.
وسوف يستمر العمل في تطوير هندسة البرمجيات لمواجهة نفس مجموعة التحديات التي صاحبت ذلك في الماضي، حيث أن معدل التغيير التكنولوجي السريع يكون في مدي التفاوت والاختلاف مع سرعة تقدم معظم جهود البحوث والتطوير. وغالبا يهتم الباحثون والمزاولون في نفس الوقت بهذا التفاوت والاختلاف، علي أنه قد يساء وضع هذا الاهتمام في إطار عمليات التطوير ذاتها. وبينما تتوافر كمية من التغيير الواقعي الأساسية، توجد أيضا كمية كبيرة من التغييرات السطحية التي لا يجب السماح لها بالتأثير علي تقدم البحث والتطوير في هذا المجال.
ومن خلال التحفيز والحث الذي كان يحدث في الماضي بواسطة رغبات المزاولين والممارسين، فإن كثيرا من الجهود المتعلقة بإنشاء وخلق أدوات هندسة البرمجيات ترتبط بألفاظ ومصطلحات جديدة تعكس ما قد تمثله الاختلافات القانونية القاصرة. وتتجه هذه التسميات إلي غموض النقاش والجدل عن الدرجة التي تكون فيها النتائج المتوصل إليها في أحد المجالات المتوافقة والمنطبقة علي المجالات الأخرى. علي سبيل المثال، بينما يوجد تغيير ظاهر وواضح في تطوير البرامج، توجد مجموعة من الأفكار الجوهرية المرتبطة بالأدوات والمعايير والأساليب المستخدمة في ذلك.
ومع هذه الأفكار الأساسية تقع المفاهيم التي لها بقاء ملحوظ ودائم وخاصة في نطاق إعداد وحدة القياس Modularity التي تمثل مفهوم التماسك والتزاوج. ومن المهم لكل الباحثين والممارسين ملاحظة ذلك عند فحص تكنولوجيات هندسة برمجيات جديدة، حيث يجب أن يكون الباحثين واضحين فيما يرتبط بالأفكار الأساسية في أي تكنولوجيا جديدة، حيث يحتاج مخترعو التكنولوجيا أن يكونوا واضحين فيا يتعلق بالإجابة علي لماذا تعمل التكنولوجيا الجديدة، وأن بحوث التقييم يجب ارتباطها بالأفكار الأساسية بدلا من بحوث التسميات الثانوية؟ وتبين الإجابة علي ذلك السؤال أن قيمة أي بحث وتطوير يجب أن تسهل جدا التواصل مع الممارسين الذين يقدرون علي استخدامها. هذه الممارسة يجب أن تمنع بعض الاختلافات والبلبلة التي تواجه الباحثين الذين يجب عليهم التركيز علي المشكلات ذات العوائد الجوهرية الطويلة الأجل.
ويجب أن تطبق هذه الأفكار أيضا علي بحوث اقتصاديات هندسة البرمجيات بعيدا عن تقييم التكنولوجيا في حد ذاتها. علي سبيل المثال، قد تحدد مشكلة الممارس أو المزاول في نقص مبرمجي لغة الجافا Java . ومن الواضح انه يمكن حل هذه المشكلة من خلال قوي السوق المتاحة لتسويق التكنولوجيا. وعلي ذلك، فإن ما يجب التركيز عليه عندئذ يرتبط بمشكلة استراتيجيات المنظمات الأساسية الجارية والطويلة الأجل لتدريب وإعادة تدريب العاملين في التكنولوجيات الجديدة، وكيف يمكن للمنظمات التي ترغب في تطبيق هذه التكنولوجيات الجديدة أن تشكل نفسها بطريقة أحسن لكي تقدم بيئة ملائمة للعاملين من ذوي المهارات النادرة التي سوف تكون ذات طلب دائم عالي؟ وما الدروس التي يمكن استنباطها من الدراسات السابقة عن اقتصاديات التعاقد التي تساعد هذه المنظمات؟
ومن التحديات المستمرة الأخرى المرتبطة بمجال اقتصاديات هندسة البرمجيات ما يتمثل في طبيعة البيئة التي تتضمن تخصصات أساسية عديدة. فإنه بسبب الدور الذي يؤديه الناس، أصبحت هندسة البرمجيات أحد تخصصات علم الكمبيوتر القريبة من العلوم الاجتماعية لا العلوم الهندسية. وعلي ذلك فإنه من خلال التركيز علي الأوجه الاقتصادية لتطوير البرمجيات فإن البحوث صارت تتجه إلي هذا المجال بطريقة أكبر. كما أن البحوث التي تنجز في كليات ومعاهد إدارة الأعمال والاقتصاد التي تستخدم الاقتصاديات كمجال علمي قائم بذاته، تحتاج إلي أن يكون لها أساس قوي في التكنولوجيا المرتبطة بالاقتصاد لتأكيد الأسئلة المطروحة والنماذج المستخدمة الملائمة.
10. الاستنتاج
مما تقدم يتضح أن العالم المعاصر يدار ويشغل باستخدام البرمجيات المرتبطة بخدمات وتطبيقات شبكة الويب العالمية، والبرمجيات الضمنية المتضمنة في المنتجات الحديثة في نطاق الوقت الحقيقي، وبرمجيات تحقيق وتطبيق البنية الأساسية والإدارية والرقابية علي كل قطاعات الاقتصاد الوطني. وقد أدي ذلك إلي بزوغ الاقتصاد الحديث أو اقتصاد المعرفة من حيث العولمة والتماسك والوقتية والإنتاجية الفائقة الذي تكون البرمجيات فيه مفتاح التنمية والتقدم واكتساب الميزة التنافسية في تصدير منتجات هندسة البرمجيات. وفي هذه البيئة الديناميكية المتطورة والمتغيرة نتيجة التقدم والتطور المستمر لتكنولوجيا المعلومات والاتصالات وبزوغ الدعوة المستمرة لمجتمع المعرفة ومجتمع المعلومات وسد الفجوة المعرفية والرقمية بين الدول وبين مجتمعات الأمة الواحدة كان لهندسة البرمجيات الدور الرئيسي في جهود تطوير وإنتاج البرمجيات وبزوغها كمجال علمي مرتبط بعلم الحاسب الآلي يدرس في حد ذاته  في كل أو معظم الجامعات والمعاهد العلمية في الدول المتقدمة. وأصبحت منتجات البرمجيات النابعة من جهود التطوير التي تقوم بها هندسة البرمجيات الوجهة الاقتصادية التي تمثل قيمة مضافة للمنتج الإجمالي المحلي. أي أن اقتصاديات هندسة البرمجيات بجانب التوجه التقني للتطوير ترتبط بكل من الأوجه الاقتصادية التالية: تحليل الطلب والعرض لمنتجات البرمجيات؛ أداء تحليل بسيط لنقطة Break-even، تحليل تأثير قرارات الاستثمار والتسويق والتصميم البديلة اقتصاديا؛ اعتبار قيمة وقت المال والمخاطرة الجوهرية. من هذا المنطلق تصبح لأدوات ومعايير تطوير هندسة البرمجيات أهمية عظمى في تعظيم الناتج المحلي القومي من خلال زيادة منتجات البرمجيات العالية الجودة ذات الميزة التنافسية في أسواق العالم المعاصر المفتوحة.
أما النتائج المستخلصة من هذا العمل فيمكن تحديدها في التالي:
1.     تتواجد البرمجيات لأن للمعلومات المعالجة قيمة، فإذا لم يرغب في دفع تكاليف تطوير برمجياتها لتوقع القيمة المعززة منها، فإن كل العاملين في هذا المجال لن يكون لهم وظائف ، مما يؤدي إلي توقف العالم المعاصر كليا.
2.     العالم المعاصر يعيش ويستفيد من وضعية منتجات البرمجيات المتقدمة المقرر قيمتها، ومن الاهتمامات الذاتية في زيادة فهمها والقدرة في التعامل مع أوجهها الاقتصادية المبررة.
3.     تعزيز وتكييف منتجات البرمجيات المتوافرة يمثل حلا لمواجهة الطلب المتزايد عليه في السوق العالمية المفتوحة.
4.     تمثل منتجات هندسة البرمجيات الدعامة والمفتاح المميز لكل الأعمال المعاصرة لوصلها بالعملاء والموردين والشركاء، وإمكانياتها في تمكين كل أداة تعمل يوميا وبذلك فإن قدرة هذه المنتجات ذات ضرورة حيوية لكل الأعمال.
5.     ترتبط هندسة البرمجيات بإمكانيات المستقبل والطلب المتزايد اللانهائي علي منتجاتها.
6.     ضغوط الأعمال والخدمات في اقتصاد المعرفة الجديد ترتبط بكل من: السرعة في إمداد السوق بمنتجات البرمجيات المطلوبة، تغير التكنولوجيا المتسارع، الجودة العالية ورخص الأسعار.
7.     غالبا ما يخطئ في فهم اقتصاديات هندسة الإنتاج كأدوات تقدير تكلفة برمجة المشروعات فحسب، إلا أن ذلك يمثل في المقام الأول علم الاختيار الرشيد للبرمجيات، وبذلك يجب أن تقدم اقتصاديات هندسة البرمجيات الأدوات والمعايير والطرق والنماذج لتحليل الاختيارات في مشروعات التطوير.
8.     معايير الاختيار المعينة إما أن تكون اقتصادية أو مالية تختص بالاستثمار والتنمية ومعدلات العائد الداخلي، أو فنية ترتبط بالأداء والموثوقية وإمكانية الحفظ والصيانة وإعادة الاستخدام، أو غير فنية ترتبط بسرعة الإمداد والجودة العالية والدعم المتواصل لما بعد البيع وسمعة الموردين.
9.     التكلفة الإجمالية لمنتجات البرمجيات لا تقتصر عن تطويرها فحسب ولكنها تمتد بعد عملية إمدادها وحفظها وصيانتها وتسويقها وإدارتها.
ونستنتج من هذا العمل مجموعة التوصيات التالية:
1.     من الضروري، في تطوير وبناء صناعة تكنولوجيا البرمجيات، اعتماد أدوات ومعايير وطنية تتفق مع المعايير الدولية وتتيح إجراء التحسينات بسهولة، بحيث يستجاب للتغيير التكنولوجي الحادث علي الدوام. فاعتماد الإجراءات الدولية المعيارية للترميز والتوقيعات الرقمية سوف بسهل ويضمن أمن الصفقات المستندة إلي الشبكية المتنامية.
2.     يشكل اعتماد الأدوات والمعايير النوعية الخاصة بأجهزة تكنولوجيا المعلومات ومنتجاتها من البرمجيات وما يتصل بها من خدمات وممارسات صيانة، كما يشكل نشر هذه الأدوات والمعايير ونفاذها بفعالية مهمة عظيمة الشأن لضمان التحلي بقدرات تنافسية في مجال هذه التكنولوجيا.
3.     يفترض في الأدوات والمعايير والمقاييس المعتمدة لتقييم المشروعات الوطنية المتصلة ببناء القدرات في مجال هندسة البرمجيات أن تكون متوافقة مع أفضل الممارسات الدولية. وتتمثل الاعتبارات المطلوبة في اختبار وصياغة هذه الأدوات والمعايير التالي:
·        مجموعات واضحة من الأدوات والمعايير والمقاييس التي يقيم بواسطتها أي مشروع يتضمن اتخاذ مبادرة في تطوير مشروع هندسة البرمجيات الذي يجب أن ي
·        توافق مع أفضل الممارسات أو الاتجاهات العالمية.
·        نشر وإنفاذ الأدوات والمعايير النوعية والممارسات الخاصة لعمليات ومنتجات هندسة البرمجيات في نطاق واجهة التفاعل مع المستخدمين المستهدفين.
·        اعتماد تشفير التوقيع الإلكتروني باعتباره أداة تسهل وتضمن أمن علي شبكة الويب.
4.     توجد حاجة ملحة إلي إجراءات منسقة تتخذها جميع الجهات أو الأطراف المعنية: الحكومة، المنظمات غير الحكومية، الشركات المنتجة، الجامعات، وسائل الإعلام بالإضافة إلي المنظمات الإقليمية والدولية المعنية بتشجيع التنمية التكنولوجية والاقتصادية المستدامة.
المراجع
(1) محمد محمد الهادي، دورة حياة عملية تطوير نظم المعلومات المبنية علي الكمبيوتر، القاهرة: المكتبة الأكاديمية، 2001، [كراسات مستقبلية]
(2) محمد محمد الهادي، محرر، الابتكار والإبداع لتقدم صناعة المحتوي الإلكتروني في مصر: أبحاث ودراسات المؤتمر العلمي التاسع لنظم المعلومات وتكنولوجيا الحاسبات...، القاهرة: الجمعية ومركز البحوث الإدارية بأكاديمية السادات للعلوم الإدارية، 2002،
(3) وزارة الاتصالات والمعلومات، الخطة القومية للاتصالات والمعلومات، القاهرة: الوزارة، ديسمبر 1999.
(4) BANKER, r. d., Kauffman, R. J. and Kumar, R. An Emperical Test of Object-based Output Measurement Metrics in Computer-aided Software Engineering (CASE) Environments, Journal of Information Systems, Vol. 8 (1991), pp. 127-150.
(5) Bauer, F. L. “Software Engineering”, Information Processing, Vol. 71 (1972).
(6) Brooks, F. P., The Mythical Man-Month, Essays on Software Engineering, Anniversary ed., Addison-Wesley, 1995.
(7)Cusumano, M. and Selby, R. Microsoft Secrets, New York: The Free Press, 1995.
(8) Code, D. K., Barua, A. and Mukhopadhyoy, T., “On Economics of Software Replacement Problem”, In: Proceedings of the 11th International Conference on Information Systems, Copenhagen, Denmark: 1990, pp. 159-170.
(9) Humphery, W. S., Snyder, T. R. and Willis, R. R. “Software Process Improvement at Hughes Aircraft”, IEEE Software, Vol. 8, N0. 4 (Feb. 1991), pp. 11-23..
(10) IEEE 1990 STD 610.12-1990. Standard Glossary of Software Engineering Terminology, IEEE Computer Society, 1990.
(11) Kemerer, Chris F. “Advances in Software Engineering Economics: Progress, Obstacles and Opportunities in Software Engineering Economics”, Communications of ACM, Vol. 41, N0. 8 (August 1998), pp. 63-66.
(12) Kemerer, C. F. “Reliability of Function Points Measurement: A Field Experiment”, Communication of ACM, Vol. 36, N0.2 (Feb. 1995), pp. 85-97.
(13) Kumar, Nagesh. National Innovation System and the India Software Industry Development: Research and Information Systems for Developing Countries, 2001 [A Background Paper for World Industrial Development Report].
(14) Lim, W. C. “effects of Reuse Quality, Productivity and Economics”, In: Kemerer, C. F., ed. Software Project Management: Readings and Cases, Boston, MA: McGraw-Hill (R. D. Irwin), 1997.
(15) Pandey, Albhishek et al., India’s Transforming to Knowledge –based Economy, Evolving Role of India Dispora, Washington, DC: World Bank and Evalueserve, 2002.
(16) Pfleeger, S. L. “Lessons Learned in Building a Computer Metrics Program”, IEEE Software, Vol. 10, N0.5 (1993), pp. 67-74.
(17) Porter, Michael E. The Compe4titive Advantage of Nations, New York: The Free Press, 1990.
(18) Shepperd, M., Schofield, C. and Kitchenham, B. “Effort Examination Using Analogy”, In: Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany: 1996.
(19) Telecoms Infotech Forum (TIF), The Economics of Software Development, Hong Ko9ng: HKU, June 2004. [http://www.trp.hku.ht/tif].