أثر هندسة البرمجيات في اقتصاديات نظم المعلومات




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

شكل (3): مدى العائد على الاستثمار لأجيال تطوير البرمجيات الثلاثة
 ويوضح الشكل التالي درجة تعقيد البرمجيات والاتجاهات المختلفة في اقتصادياتها:

شكل (4): درجة التعقيد والاتجاهات في اقتصاديات البرمجيات
من الشكلين السابقين يمكن أن يتضح أداء مشروع تطوير معين في كل جيل من الأجيال التي مر بها تطوير البرمجيات في التالي:
· إمكانية التنبؤ في الجيل الأول إلا أن ذلك كان دائما أكثر من الميزانية والجدول الزمني المحدد للتطوير.
·غير ممكن التنبؤ في الجيل الثاني المرتبط ببزوغ هندسة البرمجيات حيث كان الأداء يقع نادرا علي أساس الميزانية والجدول الزمني.
·إمكانية التنبؤ في الجيل الثالث الحديث الذي في العادة يعتمد علي ميزانية وجدولة محددة جيدا.
4/3 هندسة البرمجيات كأحد تخصصات علم الحاسب الآلي:
   يتمثل عدم الإدراك المشترك عن رؤية مجال هندسة البرمجيات بأنه يرتبط بالأنشطة الموجهة نحو العملية (أي المتطلبات، التصميم، تأكيد الجودة، تحسين العملية وإدارة المشروع). ويلاحظ أن هذه الرؤية يمكن أن تتحقق بواسطة التزود بخلفية هندسية، ومعرفة قوية بعملية تطوير البرمجيات وخلفية محدودة بالحاسب الآلي التي تتضمن خلفية استخدام لغة برمجة أو أكثر. وفي الواقع فإن الخلفية الهندسية تعتبر إدراك قاصر قاد إلي هذا التفكير، كما أنها مبنية علي رؤية طبيعية وتحديات غير كاملة عن هندسة البرمجيات.
   وفي التطور التاريخي للحاسبات الآلية، أنتج علماء الحاسب الآلي برمجيات، كما أنتج علماء الهندسة الكهربائية الأجهزة التي تشغل عليها البرمجيات. وبنمو حجم وزيادة درجة التعقيد والأهمية الحرجة للبرمجيات، نمت الحاجة لتأكيد أن البرمجيات تؤدي ما قصد من تطويرها. ومن بدء السبعينيات من القرن العشرين الماضي كان واضحا أن مزاولات تطوير البرمجيات الملائمة تتطلب أكثر من تأكيد مبادئ علم الحاسب الآلي فحسب، حيث أنها تحتاج إلي توافر كلا من الأدوات التحليلية والوصفية المطورة في إطار علم الحاسب الآلي، وإن الدقة المرتبطة بمجالات الهندسة في الواقع العملي ترتبط باعتماد الحقائق الاصطناعية Artifacts التي تتعامل معها. وعلي ذلك فإن هندسة البرمجيات تختلف في الخواص عن مجالات الهندسة طبقا لكل من طبيعة البرمجيات غير المنظورة وطبيعة تشغيلها المنفصلة والمتميزة. وتسعي هندسة البرمجيات إلي تكامل مبادئ الرياضيات وعلم الحاسب الآلي مع المزاولات الهندسية المطورة في إنتاج حقائق اصطناعية طبيعية ملموسة. وبناء علي الرياضيات كأسس لهذا المجال فإن هندسة البرمجيات تسعي لتطوير نماذج منظمة وأساليب موثوق منها لإنتاج برمجيات عالية الجودة. وتمتد هذه الاهتمامات إلي كل من المدى المنظور من النظرية والمبادئ لمزاولات التطوير الأكثر وضوحا، إلي تلك المتواجدة خارج نطاق هذا المجال. وبينما لا يتوقع أن كل مهندسي البرمجيات يمتلكون خبرة متعمقة في كل أوجه الحاسب الآلي، فإن الفهم العام المرتبط بهم يحتم عليهم الخبرة في الأوجه العملية لتطوير البرمجيات ذاتها.