نرم افزار، مجموعه ای از برنامه های رایانه ای، رویه ها و مستندات است که انجام کارهای مختلف بر روی یک سیستم رایانه ای را بر عهده دارد. عبارت "نرم افزار" برای نخستین بار توسط جان توکی در سال 1958 مورد استفاده قرار گرفت. در سطح بسیار ابتدایی، نرم افزار کامپیوتر، متشکل از زبان ماشین است که شامل گروهی از مقادیر دودویی بوده و دستورالعمل پردازنده را تعیین می کند. دستورالعمل پردازنده تغییر بیان از سخت افزار کامپیوتر در یک توالی از پیش تعریف شده می باشد. به طور خلاصه، نرم افزار کامپیوتر، زبانی است که اصطلاحاً به وسیلۀ آن یک رایانه، صحبت می کند. انواع مختلفی از نرم افزار های رایانه ای وجود دارد و باید دید اقسام اصلی آنها کدامند؟

نرم افزار‌ها از منظرهای مختلفی قابل دسته بندی و تقسیم می باشند و متخصصین علوم رایانه ای با توجه به ابعاد مختلف نرم افزار به ارائۀ تقسیم بندی های متفاوتی از این پدیدۀ فناورانه پرداخته اند.

 با توجه به این نکته که هر تقسیم بندی می بایستی فلسفه و فایده ای داشته باشد و از طرفی نرم افزار از دو بعد فنی و حقوقی نیز امکان دسته بندی دارد، آنچه در پی می آید بر آن است که نرم افزار را از منظرهای متفاوتی مورد دسته بندی و تحلیل قرار دهد تا زوایا و ابعاد فنی و حقوقی نرم افزار ، قدری روشن تر گردد؛ زیرا به نظر می رسد، میزان و شکل حمایت حقوقی با توجه به اجزا، مراحل و اقسام نرم افزار، متفاوت خواهد بود.