1. Phần mềm là gì?

Phần mềm hay còn gọi là phần mềm máy tính (nhu liệu), đây là một tập hợp dữ liệu hoặc các câu lệnh để hướng dẫn máy tính cho máy tính biết cách để làm việc. Trong khoa học máy tính và kỹ thuật phần mềm thì phần mềm máy tính bao gồm tất cả thông tin được xử lý bởi hệ thống máy tính, chương trình máy tính, thư viện và dữ liệu. Những nội dung trên không thể thực thi liên quan, ví dụ như tài liệu trực tuyến, phương tiện kỹ thuật số. Phần mềm và phần cứng vật lý có khái niệm trái ngược với nhau nhưng chúng yêu cầu lẫn nhau và không thể tự sử dụng một cách thực tế.

Phần mềm được viết bằng các ngôn ngữ lập trình cấp cao là những ngôn ngữ tự nhiên dễ dàng và hiệu quả hơn đối với các trình lập viên. Các ngôn ngữ lập trình cấp cao được dịch sang ngôn ngữ máy bằng trình biên dịch hoặc trình thông dịch hoặc cũng có thể kết hợp cả hai cùng một lúc. Tuy nhiên chúng cũng có thể viết bằng một hợp ngữ ở mức thấp gồm các lệnh mạnh để hướng dẫn ngôn ngữ máy của máy tính và được dịch sang ngôn ngữ máy bằng phần mềm lắp ráp.

 

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

Trên thực tế, chúng ta có 3 cách để phân loại các phần mềm là phân theo mục đích hoặc lĩnh vực sử dụng, phân theo bản chất hoặc miền thực thi, phân theo công cụ lập trình.

 

2.1. Mục đích và lĩnh vực sử dụng

Phần mềm cho ứng dụng: phần mềm này sử dụng cho các hệ thống máy tính để thực hiện các chức năng đặc biệt và cung cấp các chức năng giải trí ngoài những hoạt động cơ bản của máy tính.

Phần mềm hệ thống: phần mềm này quản lý hành vi phần cứng của máy tính, cung cấp các chức năng cơ bản được người dùng yêu cầu hoặc phần mềm khác để chạy đúng. Một phần mềm hệ thống sẽ bao gồm:

  • Hệ điều hành (operating system): là bộ sưu tập thiết yếu của phần mềm quản lý tài nguyên và cung cấp các dịch vụ chung cho các phần mềm khác chạy trên đỉnh của chúng. Phần cốt lõi của hệ điều hành sẽ bao gồm có các chương trình giám sát, bộ tải khởi động, hệ vỏ và hệ thống cửa sổ.
  • Trình điều khiển thiết bị (drive): đây là một thiết bị cụ thể được gắn vào máy tính mà mỗi thiết bị cần ít nhất một trình điều khiển.
  • Tiện ích (utility): là chương trình máy tính nhằm hỗ trợ người dùng trong việc bảo trì và chăm sóc máy tính.

Phần mềm độc hại: phần mềm này được phát triển để gây hại và phá hỏng máy tính, đây là phần mềm độc hại không mong muốn mà liên quan chặt chẽ đối với các tội phạm liên quan đến máy tính.

 

2.2. Phân theo bản chất hoặc miền thực thi

Các ứng dụng cho máy tính để bàn: trình duyệt web, Microsoft office, các ứng dụng điện thoại thông minh và máy tính bảng.

Các tập lệnh JavaScript: là phần mềm được nhúng truyền thống trong các trang web được chạy trực tiếp bên trong trình duyệt web khi một trang web được tải mà không cần plugin trình khác cũng có thể được chạy trong trình duyệt web nếu phần mềm được dịch sang JavaScript. Hoặc nếu một plugin trình duyệt web hỗ trợ ngôn ngữ đó được cài đặt.

Phần mềm máy chủ: gồm có các ứng dụng web thường chạy trên máy chủ web và xuất các trang web được tạo động sang trình duyệt web, sử dụng ví dụ như: PHP, Java, ASP, NET,… hoặc là các JavaScript chạy trên máy chủ.

Plugin và các tiện ích mở động: đây là phần mềm mở rộng hoặc sửa đổi chức năng của một phần mềm khác, yêu cầu phần mềm đó phải được sử dụng để hoạt động.

Phần mềm nhúng cư trú: ví dụ như firmware trong hệ thống nhúng hay thiết bị dành riêng cho việc sử dụng đơn lẻ hoặc các công dụng như xe hơi và tivi. Ở trong bối cảnh của hệ thống nhúng, đôi khi không có sự phân biệt rõ ràng giữa phần mềm hệ thống và phần mềm ứng dụng.

Microcode: đây là một phần mềm nhúng đặc biệt nên tương đối khó đọc hiểu, cho bản thân bộ xử lý biết cách thực thi mã máy. Chính vì vậy chúng có cấp độ thấp hơn mã máy.

 

2.3. Phân loại theo công cụ lập trình

Các công cụ lập trình cũng là một loại phần mềm ở dưới dạng chươn trình hoặc ứng dụng được các nhà phát triển phần mềm sử dụng để tạo, gỡ lỗi, bảo trì và hỗ trợ phần mềm.

Đối với một phần mềm có thể được viết từ 1 hay nhiều hơn các ngôn ngữ lập trình khác nhau, mỗi ngôn ngữ có ít nhất một triển khai, mỗi ngôn ngữ đó sẽ bao gồm một bộ công cụ lập trình riêng đi kèm. Các công cụ này là các chương trình khép kín như trình dịch biên, trình gỡ lỗi, trình thông dịch, trình liên kết, trình soạn thảo,…

 

3. Chất lượng phần mềm

Để đo lường một chất lượng phần mềm các tổ chức thường dựa trên các tiêu chí đánh giá của chứng chỉ ISO 9001 hoặc chứng chỉ CMM. Một phần mềm chất lượng được đánh giá từ chất lượng quy trình đến chất lượng phần mềm nội bộ. Cụ thể chúng được đánh giá như sau:

 

3.1. Tính năng

Là khả năng cung cấp các chức năng để thỏa mãn yêu cầu và mục đích được xác định khi bắt đầu triển khai phần mềm. Gồm có các chức năng:

  • Tính phù hợp.
  • Tính chính xác.
  • Khả năng tương tác.
  • Tính bảo mật.

 

3.2. Độ tin cậy

Việc đánh giá độ tin cậy của một phần mềm cung cấp có thể ước tính được mức độ rủi ro trong kinh doanh và khả năng gây ra lỗi tiềm ẩn của ứng dụng sau khi thử nghiệm. Nguyên nhân của độ tin cậy kém hầu hết là do cấu trúc phần mềm không được kết hợp với mã hóa. Việc kiểm tra và giám sát độ tin cậy sẽ giảm thiểu lỗi phần mềm như dừng hoạt động hoặc gây ảnh hưởng trực tiếp đến người dùng.

  • Tính hoàn thiện cấu trúc ứng dụng.
  • Quy trình mã hóa
  • Tính phức tạp của các thuật toán lập trình.
  • Khả năng xử lý, chịu lỗi, phục hồi và quản lý tài nguyên.
  • Phần mềm quản lý tính toàn vẹn và tính thống nhất của dữ liệu.

 

3.3. Tính hiệu quả

Là khả năng đáp ứng hiệu quả một cách thích hợp nhằm tiết kiệm tài nguyên, tăng hiệu suất ứng dụng và khả năng mở rộng phần mềm. Tính toán nguồn lực, mã nguồn đảm bảo hiệu năng cao khi phần mềm chạy trên hệ thống như khi xử lý các thuật toán, giao dịch, khả năng mở rộng. Đánh giá tính hiệu quả của phần mềm qua những điều kiện như sau:

  • Cấu trúc ứng dụng
  • Độ tương tác thích hợp với các nguồn tài nguyên
  • Hiệu suất, thời gian truy cập và quản lý dữ liệu.
  • Quản lý bộ nhớ, mạng và không gian đĩa.
  • Quy trình mã hóa và lập trình.

 

3.4. Tính bảo mật

Các biến pháp bảo vệ, ngăn chặn khả năng xảy ra các vi phạm bảo mật đến phần mềm, dữ liệu của hệ thống và ngăn chặn nguy cơ tấn công của các lỗ hổng.

Để đánh giá độ an toàn, bảo mật cần kiểm tra các thuộc tính sau đây:

  • Cấu trúc ứng dụng;
  • Sự tuân thủ thiết kế nhiều lớp;
  • Vấn đề thực tế bảo mật;
  • Quy trình mã hóa, lập trình;
  • Bảo mật truy cập vào hệ thống, kiểm soát các chương trình.

 

3.5. Khả năng bảo trì

Bao gồm khả năng kiểm tra, nâng cấp, thay đổi và phát triển phần mềm cho phù hợp với yêu cầu, chức năng và môi trường.

Đánh giá khả năng bảo trì qua các thuộc tính sau:

  • Cấu trúc phần mềm và lập trình hướng đối tượng;
  • Khả năng phân tích;
  • Mức độ phức tạp của giao dịch, lập trình,thuật toán;
  • Kiểm soát mức độ mã hóa;
  • Tính ổn định của phần cứng, hệ điều hành, thành phần trung gian, cơ sở dữ liệu độc lập;
  • Khả năng kiểm thử được.

 

4. Các loại dịch vụ phần mềm 

- Dịch vụ quản trị, bảo hành, bảo trì hoạt động của phần mềm và hệ thống thông tin;

- Dịch vụ tư vấn, đánh giá, thẩm định chất lượng phần mềm;

- Dịch vụ tư vấn, xây dựng dự án phần mềm;

- Dịch vụ tư vấn định giá phần mềm;

- Dịch vụ chuyển giao công nghệ phần mềm;

- Dịch vụ tích hợp hệ thống;

- Dịch vụ bảo đảm an toàn, an ninh cho sản phẩm phần mềm, hệ thống thông tin;

- Dịch vụ phân phối, cung ứng sản phẩm phần mềm;

- Các dịch vụ phần mềm khác.

 

5. Mẫu hợp đồng bảo trì phần mềm

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh Phúc

Hà Nội, Ngày….. tháng ….. năm ……

 

HỢP ĐỒNG BẢO TRÌ PHẦN MỀM

– Căn cứ: Bộ luật dân sự số: 91/2015/QH13 được quốc hội ban hành ngày 24/11/2015;

– Căn cứ: Luật thương mại số: 36/2005/QH11 được quốc hội ban hành ngày 14/06/2005;

– Căn cứ vào các văn bản pháp luật khác có liên quan

– Căn cứ nhu cầu và khả năng của các bên

Hôm nay, ngày…tháng…năm…., chúng tôi bao gồm:

Bên A : (BÊN THUÊ BẢO TRÌ)……………

Sinh năm:…………

Chứng minh nhân dân/Căn cước công dân số:…………………. Do CA…………….. Cấp ngày…./…../…..

Địa chỉ thường trú:…………………………………………………………

Hiện tại cư trú tại:………………………………………………………….

Số điện thoại liên hệ:………………………….

Bên B : (BÊN BẢO TRÌ)……….

Địa chỉ trụ sở:………………………………………………………..

Mã số thuế:…………………………………………………………..

Hotline:…………………………..                  Số Fax (nếu có):……………………

Người đại diện theo pháp luật: Ông/Bà: Nguyễn Văn A  Chức vụ: Giám đốc

Số điện thoại liên hệ:………………………….

Hai bên cùng thoả thuận và nhất trí nhưng điều khoản sau đây:

Điều 1. Nội dung hợp đồng

            Bên B cung cấp dịch vụ bảo trì hệ thống phần mềm…….cho bên A từ ngày……đến ngày……….

Điều 2. Phạm vi bảo trì

Bảo trì thực hiện đảm bảo hoạt động của hệ thống phần mềm bao gồm các công việc sau:

– Khắc phục các sự cố kỹ thuật do bản thân phần mềm.

– Nâng cấp phần mềm.

– Bao gồm việc sửa lỗi phần mềm do chúng tôi xây dựng và không bao gồm việc xử lý các tình huống xảy ra do nguyên nhân là lỗi chương trình khác, phần mềm hệ thống khác, phần mềm hệ điều hành, phần mềm mạng, hay những lỗi do môi trường, vận hành, dữ liệu và lỗi phần cứng.

– Trong trường hợp yêu cầu bảo hành/bảo trì bao gồm các yêu cầu phát sinh ngoài dịch vụ bảo trì (lỗi phát sinh không bắt nguồn từ bản thân phần mềm), bên A phải có trách nhiệm thanh toán chi phí bổ sung.

Điều 3. Giá trị hợp đồng

Stt

Dịch vụ

Đơn giá trên 1 tháng (VNĐ)

Thành tiền ( VNĐ)

1

Bảo trì theo chu kì

………

……….

CỘNG

………..

   

Tổng giá trị hợp đồng( tính cho 1 năm) là:……………

Giá trên là giá tiêu chuẩn, đã bao gồm 10% thuế VAT, chưa bao gồm chi phí phát sinh không bắt nguồn từ bản thân phần mềm

Điều 4. Phương thức và điều kiện thanh toán

4.1.Phương thức thanh toán: bằng tiền mặt hoặc chuyển khoản

4.2. Điều kiện thanh toán:

Bên A thanh toán sau mỗi 3 tháng 1 lần, sau khi nhận được phiếu nhiệm thu kỹ thuật bảo trì định kỳ mỗi tháng có ký xác nhận của bên A, kèm thèm phiếu thu tiền bảo trì và hoá đơn tài chính của bên B

  • Thanh toán đợt 1:……………VNĐ vào ngày………………..
  • Thanh toán đợt 2:……………VNĐ vào ngày………………..
  • Thanh toán đợt 3:……………VNĐ vào ngày………………..
  • Thanh toán đợt 4:……………VNĐ vào ngày………………..

Điều 5. Thời gian thực hiện

5.1 Thời gian thực hiện: Từ ngày…………đến ngày……..

5.2 Bên B chỉ thực hiện công tác bảo trì khi bên A thực hiện thanh toán tiền đầy đủ theo Điều 3

Điều 6. Quyền và nghĩa vụ của bên A

6.2 Bên A không được cho phép người ngoài không phải nhân viên của bên B thực hiện các công việc bảo trì phần mềm hoặc tiếp cận tác động vào phần mềm nếu không được bên B đồng ý.

6.3 Thanh toán phí bảo trì theo lịch thanh toán quy định trong Điều 3 hợp đồng này trong vòng 7 ngày khi đến hạn thanh toán

6.4 Bên A có trách nhiệm thông báo ngay chi tiết và chính xác lỗi của phần mềm trong quá trình sử dụng để bên B có biện pháp xử lí đúng đắn.

6.6 Cử người phụ trách ( theo hợp đồng uỷ thác còn hiệu lực) kiểm tra ký xác nhận khi bên B đã thực hiện xong việc bảo trì theo danh mục bảo trì như phụ lục I

Điều 7. Quyền và nghĩa vụ của bên B

7.1 Bên B có đội ngũ nhân viên bảo trì được đào tạo, phong cách phục vụ nhiệt tình, chuyên nghiệp, có tay nghề để có thể bảo trì  một cách đúng đắn, hiệu quả, an toàn.

7.2 Bên B có trách nhiệm theo dõi và rà soát định kỳ hàng tháng các lỗi (nếu có trên hệ thống), nếu phát hiện lỗi hệ thống hoặc khi phát hành phiên bản phần mềm mới, Bên B phải gửi thông báo bảo hành đến cho bên A.

7.3 Sau khi bên A gửi yêu cầu bảo hành đến bên B khi phát hiện sự cố hoặc lôi hệ thống. Trong vòng 24h, bên B phải khắc phục sự cố và xử lí lỗi cho bên A.Trong trường hợp việc xử lí lỗi cần thời gian lâu hơn, bên B phải gửi thông báo cho bên A bằng văn bản.

7.4 Sau mỗi lần thực hiện công việc bảo trì theo định kỳ, Bên B có trách nhiệm giao cho bên A các biên bản bảo trì có chữ kí xác nhận của hai bên công việc bảo trì đã hoàn tất.

7.5 Bên B cung cấp dịch vụ trực đường dây nóng 24/24 giờ trong 365 ngày/năm nhằm cứu hộ và sửa chữa khẩn cấp theo cuộc gọi của khách hàng trong thời gian nhanh nhất sau khi nhận được thông báo của bên A.Tuy nhiên Bên B có quyền tính tiền dịch vụ khẩn cấp này nếu đó là cuộc gọi quấy nhiễu hoặc sự cố gây ra là do người sử dụng. Số hotline:…………

Điều 8. Trường Hợp Bất Khả Kháng

Trong trường hợp một bên không thể thực hiện được nghĩa vụ hợp đồng do các hiện tượng thiên nhiên, lũ lụt, động đất, chiến tranh, khởi nghĩa, nổi loạn và các sự kiện khách quan không nằm trong sự kiểm soát hợp lý của Bên bị ảnh hưởng, và nếu Bên này đã nỗ lực hợp lý giảm thiểu hậu quả, và đã báo cáo bằng văn bản cho bên còn lại một cách nhanh chóng thì đó sẽ là lý do để biện minh và thời gian thi công sẽ được gia hạn thêm thời gian bị đình trệ bởi sự kiện này. Bất kể nguyên do bất khả khác, nếu Bên bị ảnh hưởng không thực hiện nghĩa vụ trong vòng ….. ngày sau ngày sự kiện bất khả kháng xảy ra thì bên kia có quyền chấm dứt hợp đồng. Việc chấm dứt hợp đồng này sẽ không ảnh hưởng đến nghĩa vụ của các bên cho đến ngày chấm dứt.

Điều 9 : Vi phạm và chế tài

9.1.Trừ trường hợp bất khả kháng, nếu một trong hai bên không thực hiện đúng theo thoả thuận của hợp đồng hoặc đơn phương chấm dứt hợp đồng không có sự thoả thuận của hai bên, thì sẽ bị phạt 15% giá trị hợp đồng.

9.2.Bên vi phạm hợp đồng , ngoài việc chịu phạt vi phạm theo thoả thuận tại khoản 9.1. Điều này, còn phải chịu bồi thường thiệt hại cho bên bị vi phạm theo quy định của pháp luật, bao gồm nhưng không giới hạn những khoản thiệt hại: thiệt hại thực tế, trực tiếp mà một bên phải gánh chịu do bên còn lại vi phạm hợp đồng gây ra; thiệt hại là khoản lợi nhuận mà bên bị vi phạm lẽ ra được hưởng nếu không có hành vi vi phạm hợp đồng của bên còn lại, các khoản chi phí mà bên bị vi phạm bỏ ra để hạn chế khắc, phục thiệt hại, để thực hiện công việc cần thiết nhằm đòi bồi thường thiệt hại, bảo vệ quyền lợi của bên bị vi phạm trong trường hợp bên vi phạm không ngay lập tức khắc phục, bồi thường thiệt hại khi nhận được yêu cầu của bên bị vi phạm.

Điều 10 : Giải quyết tranh chấp hợp đồng

Trong trường hợp phát sinh tranh chấp, các bên đồng ý ưu tiên giải quyết thông qua trao đổi, thương lượng. Việc trao đổi, thương lượng này phải được thực hiện ít  nhất là …. lần và phải được lập thành…….. (văn bản). Nếu sau… lần tổ chức trao đổi, thương lượng mà hai bên không thỏa thuận giải quyết được tranh chấp, một bên hoặc cả hai bên có quyền đưa tranh chấp ra Tòa án có thẩm quyền để giải quyết theo quy định của pháp luật tố tụng dân sự.

Điều 11: Hiệu lực hợp đồng

-Hợp Đồng này có hiệu lực kể từ ngày ký và sẽ chấm dứt khi hết hạn bảo trì và biên bản thanh lý hợp đồng được hai Bên ký kết.

– Mọi sự thay đổi hay bổ sung vào bản hợp đồng này phải được sự thống nhất của cả hai Bên và được lập thành văn bản mới có giá trị hiệu lực.

– Hai Bên cam kết thực hiện nghiêm túc các điều khoản đã thỏa thuận trong hợp đồng.

– Hợp đồng làm thành 02 bản có giá trị pháp lý như nhau, mỗi Bên giữ 01 bản.

BÊN A
(ký và ghi rõ họ tên)

BÊN B
(ký và ghi rõ họ tên)

6. Câu hỏi thường gặp

6.1 Hợp đồng sử dụng phần mềm là gì?

Hợp đồng sử dụng phần mềm là thỏa thuận sử dụng phần mềm giữa bên sử dụng được cấp phép và chủ sở hữu phần mềm. Trong hợp đồng sử dụng phần mềm, nhà phát triển phần mềm vẫn giữ quyền sở hữu phần mềm, trong khi người dùng được cấp phép sử dụng phần mềm theo các hạn chế đã chỉ định. Thông thường, các hạn chế bao gồm các quy định cấm đối với kỹ thuật phân tích cấu trúc của phần mềm để tạo lại mã nguồn hay hạn chế sửa đổi phần mềm. 

Tùy mức độ sử dụng và tùy biến thích hợp, phần mềm chuyển giao theo hợp đồng sử dụng phần mềm có thể đi kèm quy định chuyển giao quyền tái phân phối lại phần mềm hay cấp phép cho mục tiêu thương mại của đối tác được cấp phép như nhà sản xuất thiết bị gốc, cho bên kinh doanh bán lại phần mềm.

 

6.2 Những nội dung cần lưu ý trong hợp đồng sử dụng phần mềm?

Phạm Vi Hạn Chế: bao gồm các hạn chế về địa lý, cấm đối với các hạn chế về kỹ thuật, chuyển giao cho bên thứ ba, phạm vi cấp phép sử dụng bao gồm để (i) cài đặt và sử dụng phần mềm trên (một hoặc nhiều) hệ thống máy tính, thiết bị; (ii) sao chép có hạn chế … 

Tính Độc Quyền:  Hợp đồng nên xác định hình thức cấp phép độc quyền hay không. Thông thường, người cấp phép sẽ muốn cung cấp một giấy phép không độc quyền. Việc cho phép nhiều đối tượng sử dụng sẽ tối đa hóa lợi nhuận của bên cấp phép. 

Phí Bản Quyền Phần Mềm Và Các Loại Phí Khác:  Số tiền phải trả cho bên cấp phép nên được thiết lập rõ ràng kể cả tính trên các lợi ích mang lại khi sử dụng (ví dụ phí bản quyền có thể dựa trên tỷ lệ phần trăm của khối lượng bán hàng). 

Bồi Thường:  Một điều khoản bồi thường yêu cầu người cấp phép phần mềm bảo vệ và bồi hoàn cho người được cấp phép nếu người được cấp phép bị kiện bởi người khác vì phần mềm vi phạm quyền sở hữu trí tuệ của họ.

Các Hợp Đồng Liên Quan: Bao gồm các thỏa thuận nâng cấp, bảo trì, cập nhật, đào tạo được tính trong phí sử dụng phần mềm hay tính trong thỏa thuận riêng.

 

6.3 Bản chất của hợp đồng sử dụng phần mềm?

Với hợp đồng sử dụng phần mềm, bên được cấp phép biết được phạm vi sử dụng mà nhà cấp phép chấp thuận, làm cơ sở để mở rộng tối đa thỏa thuận về phạm vi sử dụng kể cả quyền sử dụng phái sinh, sử dụng trên thiết bị gốc để bán cho bên thứ ba (tùy từng hợp đồng), VD bên mua máy tính có cài phần mềm bản quyền thì thay vì bên mua trực tiếp nhận cấp phép từ bên cấp phép thì bên bán thiết bị sẽ được quyền bán thiết bị đi kèm phần mềm cho phép khách hàng sử dụng tính trong giá mua thiết bị đó.

Qua hợp đồng sử dụng phần mềm, bên được cấp phép có thể sử dụng các quyền bảo đảm khi sử dụng phần mềm như quyền hỗ trợ, bảo trì, sửa chữa, khiếu nại vi phạm bản quyền, quyền chuyển giao quyền và nghĩa vụ cho bên thứ ba, mô tả trách nhiệm về sự tương thích giữa phần cứng và phần mềm cài đặt trên đó, quyền sử dụng phần mềm của bên thứ ba dùng chung khi cài đặt trên thiết bị …

Hợp đồng sử dụng phần mềm là cơ sở để giải quyết chấm dứt sử dụng phần mềm nếu nó không phù hợp hay gây thiệt hại cho bên được cấp phép, các quyền pháp lý, biện pháp khắc phục khác.