در حالت کلی نرم افزارها به دو دسته تقسیم می شوند:
1- نرم افزارهای سیستمی مانند سیستم عامل، درایور انواع سخت افزار و سایر کدهای قابل اجرای کامپیوتری که منجر به عملکرد صحیح کامپیوتر می شوند
2- نرم افزارهای کاربردی که هر یک به طور مستقیم برخی از نیازهای کاربر را برطرف می سازند.
برای بسیار از نیازهای روزمره خانگی، دانشگاهی و یا حتی امور تخصصی فنی و مهندسی نرم افزارهای گوناگون خارجی با امکانات متنوع در کشور فراهم است و کاربران می توانند با هزینه ای ناچیز از امکانات متنوع آن نرم افزارها بهره مند شوند.
پیشرفت بشر، افزایش جمعیت، گستردگی روز افزون نیازهای افراد و خدمات و امکانات موسسات و اشخاص حقوقی کار را به جایی رسانیده است که دیگر ارائه خدمات تخصصی مطلوب با روشهای سنتی و تکیه بر حافظه و توانایی شخصی ارائه دهندگان خدمات میسر نمی باشد. به عنوان مثال در گذشته در یک سازمان حجم عملیات مالی و نیازهای مدیریتی در حدی بود که از طریق دفاتر مالی و ثبت حساب دفتری به راحتی تمامی مسائل حسابداری و مالی سازمانها مورد توجه قرار می گرفت. لیکن امروزه بدون نرم افزارهای حسابداری، حتی سازمانها و شرکتهای متوسط هم قادر به پاسخگویی به نیازها و مقتضیات روز (مانند بودجه بندی، محاسبه هزینه تمام شده، محاسبه حقوق و مزایای پرسنل و ...) نیستند.