Phần mềm là một đại gia đình. Những phần mềm khác nhau thường là được thiết kế cho những mục đích khác nhau. Có loại dùng cho việc giải quyết vấn đề chuyên môn nào đó, như thiết kế ô tô và máy bay, thiết kế công trình xây dựng, thiết kế trang phục mũ giày, điều khiển tự động trạm phát điện v.v. Có loại dùng để làm phương tiện giúp cho việc thiết kế các hệ thống ứng dụng khác. Ngoài ra, do bởi các phần mềm vận hành trên máy tính đều sử dụng tài nguyên máy tính cho nên cần phải có phần mềm để quản lý tài nguyên, phối hợp sự vận hành của phần mềm và phần cứng. Theo chức năng và tác dụng, ta có thể chia phần mềm ra ba loại: phần mềm hệ thống, phần mềm hỗ trợ và phần mềm ứng dụng.
– Trong hệ thống máy tính, phần mềm hệ thống (system software) là lớp gần kề với phần cứng. Các thành phần khác phải thông qua nó mà phát huy tác dụng. Nó không có ứng dụng cụ thể. Hệ điều hành và chương trình biên dịch chính là phần mềm hệ thống. Hệ điều hành phụ trách quản lý các tài nguyên của hệ thống máy tính như các tài nguyên phần mềm, phần cứng của bộ phận chính của máy tính (gồm CPU và RAM), đường truyền, tổng mạch, thiết bị lưu trữ ngoại vi, chương trình và văn kiện dữ liệu; điều khiển việc chấp hành chương trình. Chương trình biên dịch là chương trình mà người thiết kế chương trình viết ra bằng ngôn ngữ bậc cao của máy tính và được dịch ra thành chương trình ngôn ngữ hợp dịch hoặc ngôn ngữ máy tương đương với nó, sao cho máy tính có thể chấp hành.
– Phần mềm hỗ trợ là phần mềm soạn thảo và trợ giúp các phần khác. Cùng với sự phát triển của khoa học kĩ thuật máy tính thì sự tiêu phí cho soạn thảo và trợ giúp của phần mềm trong tổng thể của hệ thống máy tính ngày càng có tỉ trọng lớn hơn. Vượt xa cả phần cứng. Bởi vậy, sự thúc đẩy công cuộc nghiên cứu phần mềm hỗ trợ có một ý nghĩa quan trọng. Nó sẽ có một vai trò trọng yếu trong việc xúc tiến phát triển phần mềm, rút ngắn thời gian khai phá và tiết kiệm kinh phí. Vào cuối thập kỷ 70 của thế kỷ XX, các loại phần mềm hỗ trợ phát triển, bao gồm các hoàn cảnh khai phá phần mềm, là tiêu biểu cho phần mềm hỗ trợ hiện đại, chủ yếu gồm kho dữ liệu, phần mềm giao diện, và phần mềm công cụ. Cả ba loại đó tạo thành một chỉnh thể, cùng hỗ trợ cho việc khai phá các phần mềm khác.
– Phần mềm ứng dụng (application software) là phần mềm chuyên dùng cho các lĩnh vực ứng dụng. Ví dụ phần mềm thuế vụ, phần mềm kế toán, phần mềm trợ giúp dạy học, phần mềm trợ giúp chế tạo v.v. Với các lĩnh vực ứng dụng cụ thể, chất lượng của phần mềm ứng dụng thường trở thành nhân tố quyết định ảnh hưởng đến hiệu quả thực tế. Các chủng loại phần mềm ứng dụng ngày càng nhiều, tác dụng của chúng ngày càng lớn.
Phần phân loại kể trên không phải là tuyệt đối, có những phần mềm trong một hệ thống là phần mềm hệ thống nhưng trong hệ thống khác lại là phần mềm hỗ trợ. Ví dụ chương trình biên dịch thuộc loại này. Có những phần mềm như hệ thống quản lý kho dữ liệu, phần mềm mạng, phần mềm đồ họa trước đây coi là phần mềm ứng dụng, về sau được dùng làm phần mềm hệ thống trong nhiều hệ thống.
Tuy nhiên, việc phân loại thế nào tuy là quan trọng, nhưng điều quan trọng hơn là phần mềm đó có tác dụng thực tế thế nào trong hệ thống; kĩ thuật viết phần mềm hệ thống, phần mềm hỗ trợ và phần mềm ứng dụng về cơ bản là giống nhau. Ba loại này vừa có sự phân công lại vừa kết hợp với nhau cùng phát huy tác dụng trong một hệ thống.