نرم افزار (Software)، مجموعهای از کدها است که از الگوریتمهای خاصی پشتیبانی کرده و دستور العملهای دقیق و گام به گام را به وجود میآورند. نرم افزارها بنابر اهدافی خاص توسط برنامهنویسان و از طریق زبانهای برنامه نویسی نوشته میشوند.
نرم افزارها به طور کلی به دو دسته نرم افزارهای سیستم (System Software) و نرم افزارهای کاربردی(Application Software) تقسیم میشوند. در یک تقسیم بندی کلی دیگر میتوان آنها را در دو دسته تجاری و آزاد نیز طبقهبندی کرد.
نرم افزارهای کاربردی همان برنامههای مورد استفاده کاربر هستند در حالی که نرم افزارهای سیستم، مدیریت سیستمهای کامپیوتری را بر عهده دارند. "سیستم عاملها" از مهمترین انواع نرم افزارهای سیستم به شمار میآیند.