برمجة
لذلك يجب على المبرمج أن يكون ملما ببعض لغات البرمجة وأن يعرف ما هي اللغة المناسبة لتطبيق هذا البرنامج.
لغة البرمجة الوحيدة التي يفهمها الحاسوب ويستطيع أن يتعامل معها هي لغة الآلة -machine language-. في البداية عمل المبرمجون على تحليل شيفرة الحاسوب –machine code- والتعامل معها بشكلها الجامد وغير المفهوم وهو (0،1). ولكن هذه العملية معقدة جدا ويصعب التعامل معها لعدم فهمها الواضح للبشر ولغموضها لذلك تم ابتكار لغات راقية تعمل كوسيط بين لغة الإنسان ولغة الآلة وهي لغة التجميع اسمبلي Assembly ثم تطورت للغات عالية المستوى مثل لغة السي ولغة البيسيك. ثم يتم تشغيل البرامج المكتوبة بهذه اللغات عن طريق أحد البرامج المتخصصة مثل المترجم والمصرف. هذه البرامج تعمل على ترجمة أسطر لغة البرمجة إلى لغة الحاسوب مما يسهل على الحاسوب تنفيذ هذه الأوامر وإخراج نتائج التنفيذ الواضحة.
أزمة البرمجيات
أول من صاغ المصطلح "أزمة البرمجيات" كان F. L. Bauer في المؤتمر الأول لهندسة البرمجيات الذي قام به حلف شمال الأطلسي- باعتباره من أهم الزبائن والمستخدمين للبرمجيات - سنة 1968 في ألماتيا. والسبب المباشر وراء انعقاد هذا المؤتمر هو لاقتراح الحلول لأزمة البرمجيات التي أصبحت ظاهرة شائعة، وكانت ملامحها:منذ ذلك اليوم، تم تطوير العديد من منهجيات التطوير - على غرار الهندسات الأخرى - التي لاقت نصيبا متباينا من النجاح والفشل مع تطور العلم حديث الولادة "علم الحاسوب". في يومنا الحالي - أي بعد أربعة عقود من الزمن بعد بداية هندسة البرمجيات- هناك تحذيرات من أزمة برمجيات ثانية إن لم نقم بالتطور من جديد نحو منهجيات تطوير متخصصة لمجالات العلوم المختفلة تقوم على النمذجة كأهم أداة للتطوير (Specific Domain Modeling Languages)