Khái niệm cơ sở

Phân loại phần mềm

Trong thực tế chúng ta có thể gặp các thuật ngữ như: Phần mềm hệ thống, ứng dụng web, ứng dụng di động, v.v. Các thuật ngữ này là cách gọi một phần mềm được phân loại theo tiêu chí nào đó.

Nhìn chung, có rất nhiều phương pháp và tiêu chí để phân loại phần mềm và chúng chỉ mang tính tương đối, dưới đây là một số phương pháp phân loại thường gặp.

  1. Phân loại theo giấy phép sử dụng

    • Phần mềm thương mại: Phần mềm có bản quyền do tổ chức hoặc cá nhân sở hữu, người dùng phải trả phí để sử dụng.
    • Phần mềm mã nguồn mở: Phần mềm được công khai mã nguồn, có thể sử dụng miễn phí hoặc với chi phí thấp. Người dùng có thể tùy biến hoặc phân phối lại.
    • Phần mềm miễn phí: Cung cấp cho người dùng hoàn toàn miễn phí nhưng không chia sẻ mã nguồn.
    • Phần mềm dùng thử: Cho phép dùng miễn phí trong thời gian giới hạn, sau đó cần trả phí nếu muốn tiếp tục sử dụng.
  2. Phân loại theo mục đích sử dụng

    1. Phần mềm hệ thống

      Phần mềm hệ thống là các chương trình được thiết kế để quản lý, điều khiển và hỗ trợ hoạt động của phần cứng cũng như các phần mềm ứng dụng. Chúng đảm bảo rằng máy tính hoặc thiết bị có thể vận hành ổn định và hiệu quả. Ngoài ra, phần mềm hệ thống còn cung cấp môi trường để các phần mềm khác có thể thực thi.

      Các loại phần mềm hệ thống phổ biến bao gồm:

      • Hệ điều hành: Windows, macOS , Linux, Android, iOS.
      • Trình điều khiển thiết bị: Driver cho các thiết bị như card màn hình, card mạng, card âm thanh, máy in.
      • Tiện ích hệ thống: Disk Cleanup, Disk Defragmenter, Task Manager, Resource Monitor, Antivirus.
      • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server, Oracle Database, MySQL, PostgreSQL.
    2. Phần mềm ứng dụng

      Các phần mềm ứng dụng được phát triển nhằm phục vụ những nhu cầu cụ thể của người dùng, giúp họ thực hiện các tác vụ và hoạt động chuyên biệt. Không giống như phần mềm hệ thống – vốn chủ yếu làm việc với phần cứng – phần mềm ứng dụng giúp người dùng thực hiện những công việc thường ngày như xử lý văn bản, tính toán, quản lý dữ liệu, giao tiếp, giải trí, v.v.

      Đây là loại phần mềm phổ biến nhất hiện nay và vô cùng đa dạng. Dưới đây là một số nhóm phần mềm ứng dụng tiêu biểu:

      • Phần mềm văn phòng: Microsoft Office, LibreOffice, Google Workspace.
      • Chương trình giải trí: Spotify, VLC Media Player, Netflix, YouTube.
      • Phần mềm thiết kế: Adobe Photoshop, Adobe Illustrator, AutoCAD, SketchUp, Blender.
      • Công cụ giao tiếp: Zoom, Microsoft Teams, Google Meet, Zalo, Messenger, Telegram, Slack.
      • Trình duyệt web: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari.
    3. Phần mềm trung gian

      Phần mềm trung gian là các phần mềm nằm giữa hệ điều hành và các ứng dụng, đóng vai trò như một "cầu nối" giúp các thành phần của phần mềm, ứng dụng hoặc hệ thống khác nhau có thể giao tiếp, tương tác với nhau một cách trơn tru mà không cần giao tiếp trực tiếp với phần cứng hoặc hệ điều hành.

      Phần mềm trung gian thường được sử dụng trong các hệ thống phân tán, hệ thống doanh nghiệp và các ứng dụng phức tạp cần tích hợp nhiều dịch vụ hoặc nền tảng khác nhau, dưới đây là một số loại phần mềm trung gian tiêu biểu:

      • Web server: IIS, Apache, Nginx,v.v.
      • Message-oriented middleware: RabbitMQ, Apache Kafka, ActiveMQ, Redis Pub/Sub.
      • Database middleware: ODBC, JDBC, Hibernate.
      • Enterprise Service Bus: Mule ESB, WSO2 ESB, IBM Integration Bus.
  3. Phân loại theo nghiệp vụ

    Theo phương pháp này, phần mềm được phân loại theo nghiệp vụ ứng dụng phần mềm; có thể kể đến như phần mềm Ngân hàng, Tài chính - Kế toán, Thuế, Giáo dục, Y tế, CRM, v.v.

  4. Phân loại theo giao diện người dùng

    • Phần mềm giao diện đồ họa.
    • Phần mềm giao diện dòng lệnh - CLI hay còn gọi là ứng dụng Console.
  5. Phân loại theo thiết bị cài đặt

    • Phần mềm máy chủ: Cài đặt trên máy chủ phục vụ; ví dụ Microsoft SQL Server, IIS, Apache HTTP Server, v.v.
    • Phần mềm cho PC: Phần mềm cài đặt trên máy tính cá nhân.
    • Phần mềm di động: Phần mềm cài đặt trên thiết bị di động.
    • Phần mềm web: Phần mềm chạy trên trình duyệt web.
    • Phần mềm nhúng: Phần mềm cài đặt trên máy móc, thiết bị.
  6. Phân loại theo phương pháp triển khai

    • Phần mềm cài đặt - On-premise software: Cài đặt trực tiếp trên thiết bị người dùng hoặc máy chủ nội bộ.
    • Phần mềm dựa trên đám mây - Cloud-based software: Truy cập qua Internet mà không cần cài đặt trực tiếp.
    • Phần mềm lai - Hybrid software: Kết hợp giữa triển khai cục bộ và trên đám mây.
  7. Phân loại theo nền tảng

    • Native application: Phần mềm được thiết kế và phát triển cho một hệ điều hành cụ thể (Ví dụ phần mềm chạy trên Windows, hoặc Linux, hoặc Android, v.v.
    • Cross-platform application: Phần mềm được thiết kế và phát triển để thực thi trên nhiều hệ điều hành (Ví dụ phần mềm có thể chạy trên cả Windows và Linux).