การแบ่งประเภทของซอฟต์แวร์แบ่งออกได้เป็นหลายแบบ เช่น
การแบ่งเชิงเทคนิค อาจแบ่งซอฟต์แวร์เป็น 3 ประเภทหลักคือ
ซอฟต์แวร์ระบบ (System/Infrastructure software) ใช้ในการทำให้คอมพิวเตอร์ฮาร์ดแวร์ทำงานกับระบบคอมพิวเตอร์ได้ โดยรวมถึงระบบปฏิบัติการ ไดรเวอร์ และระบบหลักของคอมพิวเตอร์ต่าง ๆ
โปรแกรมประยุกต์ หรือซอฟต์แวร์ประยุกต์ (Application software) ช่วยให้ผู้ใช้งานสามารถดำเนินงานต่าง ๆ โดยทั่วไปเช่น โปรแกรมสำนักงาน ฐานข้อมูล คอมพิวเตอร์เกม เว็บเบราว์เซอร์ โดยโปรแกรมประยุกต์จะมีจียูไอ
โปรแกรมคอมพิวเตอร์ (Tools/Utilities) ประกอบไปด้วยเครื่องมือช่วยให้โปรแกรมเมอร์เขียนโปรแกรมอื่น ๆ หรือโปรแกรมประยุกต์ได้ เครื่องมือต่าง ๆ ประกอบไปด้วย คอมไพเลอร์ อินเตอร์พรีเตอร์ ดีบักเกอร์
การแบ่งตามรูปแบบการส่งมอบ แบ่งได้เป็น 2 กลุ่มคือ
ซอฟต์แวร์สำเร็จรูป (Package software) ซอฟต์แวร์ที่มีการขาย ให้เช่า หรือให้บริการ โดยคิดค่าบริการเป็น transaction หรือ license
ซอฟต์แวร์ที่พัฒนาเงินเดือน (Outsources software development) เป็นการออกแบบและพัฒนาซอฟต์แวร์เพื่อใช้งานเฉพาะกับงานประเภทต่าง ๆ เฉพาะกิจกรรมไป ส่วนใหญ่ลิขสิทธิ์ของซอฟต์แวร์นี้จะเป็นของผู้ที่ว่าจ้างให้พัฒนาขึ้น
การแบ่งตามประเภทของการนำไปใช้งานหลัก แบ่งได้เป็น 3 กลุ่มคือ
ซอฟต์แวร์ช่วยในการบริหารจัดการทั่วไป (Enterprise software) เป็นซอฟต์แวร์ที่ใช้กับการทำงานเพื่อแก้ปัญหา/จัดการทรัพยากรของ บุคคล/องค์กร เช่น ซอฟต์แวร์บัญชี ซอฟต์แวร์จัดทำเอกสาร เป็นต้น
ซอฟต์แวร์สำหรับอุปกรณ์พกพาขนาดเล็ก (Mobile applications software) เป็นซอฟต์แวร์ที่ทำงานผ่านระบบปฏิบัติการพิเศษบนอุปกรณ์ขนาดเล็ก เช่น โทรศัพท์มือถือ PDA โดยสามารถแบ่งเป็นกลุ่มใหญ่ ๆ ได้ 2 กลุ่ม คือ (1) ซอฟต์แวร์เพื่อสนับสนุนธุรกรรมทางธุรกิจ (Business applications) เช่น Mobile banking, Mobile payment, GPS on Mobile, Mobile applications for business process management และ(2) ซอฟต์แวร์ที่เกี่ยวข้องกับนันทนาการและบันเทิง (Entertainment applications) ซึ่งรวมเกมบนโทรศัพท์เคลื่อนที่
ซอฟต์แวร์สมองกลฝังตัว (Embedded System Software) เป็นซอฟต์แวร์ซึ่งฝังอยู่ไว้ในอุปกรณ์อิเล็กทรอนิกส์ต่าง ๆ เพื่อใช้สำหรับควบคุมการทำงานของอุปกรณ์นั้น ๆ เช่น ระบบ GPRS ระบบทำความเย็นอัจริยะ ระบบตรวจสอบย้อนกลับ เป็นต้น