Tại sao phần mềm lại gồm phần mềm hệ thống, phần mềm hỗ trợ và phần mềm ứng dụng?
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.