સોફ્ટવેર ફરજિયાત કાર્યો પર આધાર રાખીને, બધા સોફ્ટવેર કેટલાક વર્ગો, કે જે બાદમાં ચર્ચા કરવામાં આવશે વિભાજિત કરી શકાય છે.