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