مهندسی نرم افزار پیشهای است که به یاری دانش رایانه و دیگر فناوریها و روشها به آفریدن و نگاهداری نرم افزار رایانهای می پردازد. نرم افزار هایی نظیر tool ها یا سیستم عامل و ...
مسئله اصلی مهندسی نرمافزار تولید نرم افزار براساس:
الزامات تعیین شده
در زمان تعیین شده
در محدودهٔ بودجه پیشبینی شده است.
کاربردهای مهندسی نرم افزار دارای ارزش اجتماعی و اقتصادی است زیرا بهره وری مردم را بالا برده چند و چون زندگی آنان را بهتر میکند. مردم با بهره گیری از نرم افزار توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههای آن سامانههای توکار، نرم افزار اداری، بازیهای رایانهای، و اینترنت می باشد. فناوریها و خدمات مهندسی نرم افزار به کاربران برای بهبود بهره وری و کیفیت یاری می رساند. نمونههایی از زمینههای بهبود: دادگان، زبان ها، کتابخانه ها، الگو ها، فرایندها و ابزار.
چرا نرم افزار را مهندسی می گویند ؟
به این دلیل که مهندسی نرم افزار یعنی بکار گیری یکسری تکنیکها و قواعد معتبر مهندسی به منظور تولید محصول قابل اطمینام و مقرون به صرفه .
همانگونه که سایر رشته های مهندسی نیر چنین هستند یعنی از یکسری اصول و تکنیکها استفاده می کنند تا به یک محصول برسند .
نکته ای که مهم است و خیلی ها به آن توجه ندارند تفاوت مهندسی نرم افزار و برنامه نویسی است . برنامه نویسی فقط بخش کوچکی از چرخه حیات یک نرم افزار را تشکیل می دهد که آن هم وظیفه مهندس نرم افزار نمی باشد .
در مورد نرم افزار هم مانند سایر رشته های مهندسی در مورد یک پروژه زمانبندی ُمدیریت و کنترل پروژه"ُ تولید و ... را داریم .