Sản Phẩm Phần Mềm và Các Loại Sản Phẩm Phần Mềm Hiện Nay
Nền kinh tế xã hội ngày càng phát triển kéo theo cuộc cách mạng công nghệ 4.0 đã đưa thế giới đến một bước tiến mới. Công nghệ ngày càng phát triển đã cho ra đời nhiều thiết bị, công nghệ thông minh, kéo theo đó các thuật ngữ phần mềm cũng xuất hiện ngày càng nhiều và nhận được sự quan tâm đáng kể. Tuy nhiên, sự hiểu biết của chúng ta hiện nay về thuật ngữ “sản phẩm phần mềm” và các phân loại của nó chưa thực sự hệ thống và đầy đủ. Bài viết dưới đây sẽ giúp người đọc có cái nhìn rõ nét hơn về sản phẩm phần mềm và các loại sản phẩm phần mềm theo hướng tìm hiểu các quy định của pháp luật hiện hành.
1. Khái niệm về sản phẩm phần mềm
Trước hết, khoản 1 Điều 3 của Nghị định 71/2007/NĐ-CP (“Nghị định số 71”) có giải thích rằng, sản phẩm phần mềm là phần mềm và tài liệu kèm theo được sản xuất và được thể hiện hay lưu trữ ở bất kỳ một dạng vật thể nào, có thể được mua bán hoặc chuyển giao cho đối tượng khác khai thác, sử dụng.
Dựa trên quy định của Nghị định số 71, khoản 12 Điều 4 Luật Công nghệ thông tin năm 2006 (“Luật CNTT”) đưa ra quy định cụ thể hơn, theo đó phần mềm là những chương trình viết bằng mã số và chữ dùng để hướng dẫn điều hành thiết bị máy tính và quản lý nội dung thông tin hoặc dữ liệu trong máy. Có hai loại phần mềm thường gặp nhất là phần mềm hệ thống và phần mềm ứng dụng. Như vậy, sản phẩm phần mềm không chỉ bao gồm phần mềm và còn bao gồm cả những tài liệu kèm theo phần mềm đó.
Bên cạnh đó, hầu hết các sản phẩm phần mềm thường chỉ được phát triển và được phân phối bởi một nhà sản xuất duy nhất, đối tượng có quyền quyết định đến mẫu mã, nhãn hiệu, bản quyền, cải tiến kỹ thuật của phần mềm đó. Ví dụ, những phần mềm thuộc hệ điều hành Windows mà chúng ta đang sử dụng rất phổ biến được phát triển và phân phối độc quyền bởi hãng Microsoft.
2. Các loại sản phẩm phần mềm
Theo khoản 2 Điều 9 Nghị định số 71, sản phẩm phần mềm được phân loại như sau:
Phần mềm hệ thống
Theo quy định tại khoản 2 Điều 3 Nghị định số 71, phần mềm hệ thống là phần mềm dùng để tổ chức và duy trì hoạt động của một hệ thống hoặc một thiết bị số (sau đây gọi chung là “thiết bị số”). Phần mềm hệ thống có thể tạo môi trường cho các phần mềm ứng dụng làm việc trên đó và luôn ở trạng thái làm việc khi thiết bị số hoạt động.
Đây là một trong những dạng sản phẩm phần mềm phổ biến, giúp phối hợp các hoạt động và chức năng của phần cứng và phần mềm. Phần mềm hệ thống sẽ hỗ trợ kiểm soát hoạt động của phần cứng máy tính/điện thoại di động/sản phẩm điện tử khác và cung cấp môi trường hoặc nền tảng cho tất cả các phần mềm khác hoạt động. Đồng thời, vì được thiết kế để quản lý tài nguyên và vận hành các hoạt động của hệ thống máy tính/điện thoại di động/sản phẩm điện tử, phần mềm hệ thống sẽ giúp đơn giản hóa việc lập trình ứng dụng để từ đó người dùng giao tiếp với các phần cứng của máy tính hay các thiết bị điện tử.
Hiện nay, chúng ta dễ dàng bắt gặp nhất một số sản phẩm phần mềm hệ thống điển hình trong các dòng máy tính từ máy tính để bàn, máy tính xách tay, máy tính bảng như Hệ điều hành Microsoft Windows, MacOS, GNU/Linux,…; hay từ các sản phẩm điện thoại thông minh như Hệ điều hành IOS, Android, Windows Phone,… Bên cạnh hệ điều hành trong máy tính/điện thoại di động/sản phẩm điện tử, phần mềm hệ thống còn bao gồm cả phần lõi (firmware) và trình dịch ngôn ngữ máy tính (computer language translators).
Phần lõi (firmware) là phần mềm vĩnh viễn được nhúng vào bộ nhớ chỉ đọc (ROM – read-only memory), gồm một tập hợp các hướng dẫn được lưu trữ vĩnh viễn trên một thiết bị phần cứng, cung cấp các thông tin cần thiết về cách thiết bị tương tác với các phần cứng khác. Phần lõi có thể được coi là một sản phẩm phần mềm gần như vĩnh viễn – semi-permanent, vì nó sẽ tồn tại vĩnh viễn trừ khi chúng ta cập nhật phần lõi này. Trên thực tế, chúng ta có thể bắt gặp một số loại phần lõi như BIOS, thiết bị ngoại vi máy tính (Computer Peripherals), ứng dụng tiêu dùng (Consumer Applications), hệ thống nhúng (Embedded Systems), UEFI,…
Trình dịch ngôn ngữ máy tính (computer language translators) là những chương trình phần mềm trung gian mà qua đó các chương trình phần mềm dựa vào để dịch mã code ngôn ngữ cấp cao (high-level language code) sang mã code cấp máy đơn giản hơn (simpler machine-level code). Bên cạnh việc đơn giản hóa mã, trình dịch ngôn ngữ máy tính còn được sử dụng để thực hiện những công việc như chỉ định lưu trữ dữ liệu, nhập mã nguồn và chi tiết chương trình máy tính, cung cấp các báo cáo chuẩn đón, sửa lỗi hệ thống trong thời gian chạy. Một số ví dụ điển hình đối với trình dịch ngôn ngữ máy tính là Microsoft Visual Studio, GNU Complier Common Business Oriented Language, … (Complier); Ocaml, Python, … (Interpreter); Fortran Assembly Program (FAP), Symbolic Optionmal Assembly Program (SOAP), … (Assembler).
Phần mềm ứng dụng
Theo quy định tại khoản 3 Điều 3 Nghị định số 71, phần mềm ứng dụng là phần mềm được phát triển và cài đặt trên một môi trường nhất định, nhằm thực hiện những công việc, những tác nghiệp/tác vụ cụ thể. Cụ thể hơn, phần mềm ứng dụng là một chương trình phần mềm hoặc một nhóm chương trình phần mềm được thiết kế cho người dùng sử dụng cuối cùng (end-users).
Có nhận xét rằng đây là sản phẩm phần mềm huyệt mạch của các thiết bị số. Thông thường, nếu các doanh nghiệp cần một giải pháp kỹ thuật số thì giải pháp đóng thường ở dạng ứng dụng. Phần mềm ứng dụng thường dễ thấy nhất bao gồm các chương trình có thể hoạt động trên các thiết bị thông minh như điện thoại, máy tính,… Đặc điểm của loại phần mềm này là được cài đặt và hoạt động trên một môi trường nhất định để thực hiện các công việc nhất định. Có thể hiểu đơn giản, phần mềm hệ thống sẽ tạo môi trường cho các phần mềm ứng dụng hoạt động. Đơn cử như các phần mềm soạn thảo: Google Docs, Microsoft Word, Notepad,… hay các ứng dụng trò chơi điện tử game trên hệ thống Appstore và CH play như Angry Bird, Candy Crush, FreeFire; hay những phần mềm quản lý công việc như Google Calendar, Notion; các ứng dụng thương mại điện tử bán hàng như Tiki, Lazada, Shopee; hay các ứng dụng giao tiếp như Zoom, Google Meet, Skype, … hoặc ở những phần mềm doanh nghiệp như phần mềm quản lý quan hệ khách hàng (CRM) (HubSpot, Microsft Dynamic 365, …); công cụ quản lý dự án (Jira, Monday, …), phần mềm hoạch định nguồn lực doanh nghiệp (ERP) (SAGE, Oracle, Microsoft Dynamics, …), phần mềm hệ thống quản lý ngân quỹ (TMS) (SAP S/4HANA Finance, Oracle Treasury), phần mềm kinh doanh thông minh (BI) (SAP Business Intelligence, MicroStrategy, Microsoft Power BI), …
Phần mềm tiện ích
Theo quy định của khoản 4 Điều 3 Nghị định số 71, phần mềm tiện ích là phần mềm nhằm trợ giúp cho người dùng tổ chức, quản lý và duy trì hoạt động của thiết bị số.
Hiện nay, phầm mềm tiện ích được thiết kế để phân tích và tối ưu hóa thiết bị, đảm bảo cho hệ thống hoạt động một cách ổn định, từ đó hỗ trợ người dùng thao tác với máy tính theo cách thuận lợi hơn. Chúng ta có thể dễ dàng tìm thấy các sản phẩm phần mềm tiện ích ở những phần mềm chống virus như Microsft Defender, Bitdefender Antivirus, Norton 360 LifeLock, McAfee Total Protection, …; hoặc ở ngay trình quản lý tác vụ của Windows, chúng sẽ hiển thị tất cả các quy trình đang mở trong Windows, đồng thời trình bày chi tiết về hiệu suất theo thời gian và hiển thị dung lượng bộ nhớ mà mỗi bộ nhớ đã sử dụng.
Phần mềm công cụ
Theo quy định tại Điều 9 Nghị định số 71, phần mềm công cụ là một trong năm loại sản phẩm phần mềm được khai thác và sử dụng hiện nay.
Cụ thể, phần mềm công cụ là phần mềm được dùng làm công cụ cho người phát triển phần mềm sử dụng để phát triển các phần mềm khác. Có thể thấy, bất kỳ phần mềm hoặc chương trình tiện ích nào được dùng để hỗ trợ nhà nghiên cứu, phát triển hoặc lập trình viên phần mềm trong việc tạo lập, chỉnh sửa, bảo trì và/hoặc thực hiện bất kỳ nhiệm vụ lập trình hay phát triển cụ thể nào có liên quan thì đều được coi là phần mềm công cụ. Các phần mềm công cụ được thiết kế để hỗ trợ hoặc bổ sung các ngôn ngữ lập trình của những phần mềm khác bằng cách cung cấp các chức năng và tính năng mà các ngôn ngữ lập trình này không có.
Hiện nay, chúng ta có thể dễ dàng nhận thấy các sản phẩm phần mềm công cụ trên thực tế như: phần mềm tổ chức dữ liệu, phần mềm phát hiện và sửa lỗi, phần mềm Visual Basic, ASP, …
Các phần mềm khác
Bên cạnh những sản phẩm phần mềm nêu trên, loại sản phẩm phổ biến hiện nay của sản phẩm phần mềm còn có phần mềm điều khiển và phần mềm trung gian.
Phần mềm điều khiển (Device Drivers) là loại phần mềm giúp điều khiển phần cứng cụ thể được gắn vào hệ thống. Các thiết bị phần cứng này cần một phần mềm điều khiển để kết nối đến hệ thống bao gồm màn hình, âm thanh (sound cards), máy in, chuột máy tính (mice) và đĩa cứng (hard disks). Có hai loại phần mềm điều khiển thiết bị là (i) Phần mềm điều khiển hạt nhân (Device Drivers) và (ii) Phần mềm điều khiển thiết bị người dùng (Users Device Driver). Một số loại phần mềm điều khiển được sử dụng hiện nay như BIOS Driver, Display Drivers, Printer Drivers, Sound card Drivers, USB Drivers, Virtual Device Drivers, …
Phần mềm trung gian là phần mềm làm trung gian giữa ứng dụng và phần mềm hệ thống hoặc giữa hai loại phần mềm ứng dụng khác nhau. Đơn cử như phần mềm trung gian cho phép Microsoft Windows giao tiếp với Excel và Word.
Để nhận tư vấn chi tiết về nội dung này, quý khách vui lòng liên hệ với chúng tôi theo thông tin dưới đây:
Email: info@lttlawyers.com
Hotline: 0996901888
Website: https://lttlawyers.com/vi/trang-chu/
TRỤ SỞ CHÍNH (+84) 28 6270 7278 Lầu 3, 185 Đường Cô Bắc, Phường Cô Giang, Quận 1, TP. Hồ Chí Minh.
VĂN PHÒNG HÀ NỘI (+84) 24 7300 1255 Phòng 637, Tầng 6, Tòa nhà CIC, Số 2 Ngõ 219 Trung Kính, Phường Yên Hòa, Quận Cầu Giấy, Thành phố Hà Nội.
VĂN PHÒNG ĐÀ NẴNG (+84) 905 783 785 02 Đường Đoàn Nhữ Hài, Phường Hòa Khê, Quận Thanh Khê, TP. Đà Nẵng.