1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu phần mềm mã nguồn mở

78 719 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 1,01 MB

Nội dung

tìm hiểu phần mềm mã nguồn mở

Trang 1

TRƯỜNG ĐH HÙNG VƯƠNG

KHOA TOÁN – CÔNG NGHỆ

Giáo viên hướng dẫn: kỹ sư Đinh Thái Sơn

Họ và tên sinh viên: Nguyễn Tuấn Anh

Trang 2

TRƯỜNG ĐH HÙNG VƯƠNG

KHOA TOÁN – CÔNG NGHỆ

Giáo viên hướng dẫn: kỹ sư Đinh Thái Sơn

Họ và tên sinh viên: Nguyễn Tuấn Anh

Trang 3

LỜI CÁM ƠN

Chúng em xin gửi lời cám ơn và biết ơn sâu sắc nhất tới Kỹ sư Đinh Thái Sơn đã chỉ bảo và hướng dẫn tận tình cho chúng em trong suốt quá trình thực tập này

Chúng em chân thành cám ơn các thầy, cô trong bộ môn tin, khoa toán- công nghệ - trường Đại Học Hùng Vương đã giúp đỡ và tạo những điều kiện thuận lợi cho chúng em hoàn thành tốt đợt thực tập này

Chúng em cũng xin cám ơn ban lãnh đạo khoa Toán-Công nghệ và ban lãnh đạo trường Đại Học Hùng Vương đã tạo điều kiện cho chúng em được học tập và thực tập tại trường

Cuối cùng, chúng em muốn gửi lời cám ơn và biết ơn vô hạn tới bố mẹ, anh chị em và tất cả bạn bè đã cổ vũ và tạo điều kiện tốt nhất cho chúng em hoàn thành đợt thực tập này

Xin chân thành cảm ơn!

Trưởng nhóm Sinh viên: Lê Văn Ngọc

Trang 4

MỤC LỤC

DANH SÁCH CÁC TỪ VIẾT TẮT

4 Lesser General Public Licence LGPL

5 Berkely Software Distribution BSD

10 Hệ thống phiên bản đồng thời CVS

11 Hệ thống kiểm soát sửa đổi SVN

12 Thông tin và Truyền thông TT & TT

Trang 5

Bảng 1: Danh mục sản phẩm phần mềm mã nguồn mở đáp ứng được yêu cầu

sử dụng trong các cơ quan nhà nước, tổ chức nhà nước

Bảng 2: Thống kê việc triển khai mã nguồn mở tại Việt Nam đến tháng 3/2010

LỜI MỞ ĐẦU

1 Tính cấp thiết của đề tài

Trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin nói chung thì ngành công nghệ phần mềm cũng đang có những bước tiến vượt bậc Khi đã phát triển lên 1 tầm cao thì nhu cầu người dùng cũng ngày càng tăng khi đó người ta lại quan tâm tới

3 khả năng sau của một phần mềm đối với người sử dụng:

– Khả năng phân phối lại (Distribution Possibility): Quyền được phép sao chép và phân phối lại phiên bản phần mềm mà bạn đang có trong tay (có giấy phép sử dụng nó) hay không?

– Khả năng truy cập vào mã nguồn (Accessibility to source code): Chủ

sở hữu phần mềm cho phép bạn xem mã nguồn, sử dụng, sửa đổi mã nguồn phần mềm của họ cho mục đích của bạn hay không?

Trang 6

– Phí sử dụng phần mềm (Free): Khi bạn sử dụng một phần mềm, bạn phải trả tiền hay không cho người chủ sở hữu phần mềm đó?

Những khả năng trên chỉ có trên các phần mềm mã nguồn mở (Open Source Software) Như vậy sử dụng phần mềm mã nguồn mở có rất nhiều ưu điểm như:

thường bắt đầu là phần mềm nhỏ, miễn phí Phần mềm này thường sẽ phát triển tới bản beta, vesion 1.0, 2.0,… cho tới khi nhận được sự ủng hộ và tài trợ rộng rãi của cộng đồng Những phần mềm như vậy sẽ nhanh chóng có được thương hiệu riêng và nhóm phát triển bắt đầu đưa ra các dịch vụ hỗ trợ người dùng có chi phí

+ Ưu điểm thứ 2 là tính đa dạng của mã nguồn mở Một phần mềm tốt trên môi trường này sẽ nhanh chóng được một nhóm phát triển khác triển khai trên môi trường khác Các tính năng cũng sẽ được cộng đồng mã nguồn mở

bổ sung vào Để làm như vậy, các phần mềm đều có kiến trúc mở, theo dạng module để có thể sẵn sàng cấu hình tính năng mới

+ Ưu điểm thứ 3 là độ ổn định và ít lỗi Một khi đã chọn giải pháp mã nguồn mở, doanh nghiệp luôn có thể biết rõ hiện còn bao nhiêu lỗi, các lỗi sẽ sửa lúc nào, phiên bản nào,… Điểm này khác hẳn những phần mềm mã nguồn đóng ở chỗ chúng vẫn có lỗi nhưng không biết khi nào lỗi được sửa Bản chất của mã nguồn mở là phát triển bởi nhóm người nhỏ nhưng dùng và kiểm tra bởi nhiều người, có thể hàng trăm, hàng ngàn người Nhóm phát triển, để phần mềm của mình đạt được tiêu chuẩn mã nguồn mở thường phải đưa ra đầy đủ các tài liệu thiết kế, hướng dẫn cài đặt, các forum thảo luận, yêu cầu tính năng, các hệ thống kiểm soát mã nguồn, lỗi,…

Đề tài “tìm hiểu phần mềm mã nguồn mở ” tập trung nghiên cứu về quá

trình phát triển và khả năng ứng dụng của phần mềm mã nguồn mở tại Việt Nam và lợi ích thiết thực của nó

2 Mục đích nghiên cứu

Trang 7

- Tìm hiểu và nắm rõ những kiến thức cơ bản và chuyên sâu về phần mềm mã nguồn mở

- Tìm hiểu về thực trạng ứng dụng phần mềm mã nguồn mở tại các cơ quan nhà nước và trong hệ thống giáo dục ở Việt Nam

- Cài đặt và sử dụng một phần mềm mã nguồn mở demo

3 Phạm vi nghiên cứu

- Đối tượng nghiên cứu: phần mềm mã nguồn mở

- Phạm vi nghiên cứu: tìm hiểu về phần mềm mã nguồn mở, ứng dụng của nó trong các cơ quan nhà nước và trong giáo dục tại Việt Nam Giới thiệu một phần mềm mã nguồn mở demo

4 Phương pháp nghiên cứu

- Phương pháp nghiên cứu tài liệu: Tìm hiểu qua nhiều nguồn tài liệu

để rút ra những ý chính, những kết luận chính xác và hiệu quả nhất về phần mềm mã nguồn mở, về thực trạng việc triển khai mã nguồn mở trong cơ quan nhà nước và trong hệ thống giáo dục tại Việt Nam Nghiên cứu về một phần mềm mã nguồn mở demo

- Phương pháp tham khảo ý kiến chuyên gia: Từ những vấn đề mà đã

tìm hiểu nghiên cứu qua tài liệu, hỏi trực tiếp giảng viên hướng dẫn và các giảng viên trong bộ môn tin để hoàn thiện hơn về cả hình thức và nội dung

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM MÃ NGUỒN MỞ

1.1 Định nghĩa phần mềm mã nguồn mở

Phần mềm mã nguồn mở (PMMNM) là những phần mềm được cung cấp dưới cả dạng mã và nguồn, không chỉ là miễn phí về giá mua mà chủ yếu

là miễn phí về bản quyền: người dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung qui định trong giấy phép PMMNM (ví dụ General Public Licence – GPL) mà không cần xin phép ai, điều mà họ không được phép làm đối với các phần mềm nguồn đóng (tức là phần mềm thương mại) Nhìn chung, điều thuận lợi chính PMMNM đem lại là sự miễn phí và cho phép người dùng có quyền “sở hữu hệ thống”

Nhà cung cấp Phần mềm mã nguồn mở có quyền yêu cầu người dùng trả một số chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv… tức là những dịch vụ thực sự đã thực hiện để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào

Tiện ích mà mã nguồn mở mang lại chính là quyền tự do sử dụng chương trình cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của

Trang 9

chương trình, chỉnh sữa phù hợp với nhu cầu, truy cập vào mã nguồn, quyền

tự do phân phối lại các phiên bản cho nhiều người, quyền tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích công cộng

1.2 Các điều khoản phân phối của phần mềm mã nguồn mở

Tự do và miễn phí tái phân phối :

Phần mềm có thể có nhiều bản sao và được tự do phân phối Tuy nhiên, cần có giấy phép bản quyền khi thực hiện phân phối phần mềm Bản quyền không giới hạn bất cứ ai bán hay đem cho phần mềm Bản quyền không đòi hỏi việc phải giữ nguyên trạng phần mềm và không phải trả tiền bản quyền hay các lệ phí khác để bán phần mềm

Mã nguồn

Chương trình phải đi kèm mã nguồn, và phải cho phép phân phối cả mã nguồn cũng như dạng đã được biên dịch Ở những nơi mà một số dạng sản phẩm không được phân phối cùng mã nguồn thì phải có các cách thức được phổ biến rộng rãi nhằm lấy được mã nguồn với chi phí không cao hơn chi phí tái sản xuất hợp lý–khuyến khích cho phép tải về một cách miễn phí qua Internet

Vì mục đích của mã nguồn mở là tạo điều kiện để việc phát triển được thuận lợi nên yêu cầu sự sửa đổi mã nguồn cũng phải được tạo điều kiện thực hiện Do đó, mã nguồn phải để dạng được ưa chuộng mà theo đó một lập trình viên sẽ có thể tham gia sửa đổi chương trình được Việc biến đổi mã nguồn thành một dạng mã gây rối một cách có chủ tâm là không được phép

Các chương trình phát sinh

Bản quyền phải cho phép sửa đổi và các chương trình phát sinh từ đó,

và phải cho phép chúng được phân phối cùng các điều khoản như giấy phép của phần mềm gốc

Trang 10

Tính toàn vẹn của mã nguồn cung cấp bởi Tác giả

Bản quyền có thể hạn chế không cho phép mã nguồn được phân phối ở dạng đã được sửa đổi nếu như “các file vá” cùng mã nguồn nhằm mục đích sửa đổi chương trình ở thời gian tạo sản phẩm Bản quyền phải cho phép một cách tường minh việc phân phối phần mềm được tạo ra từ mã nguồn được sửa đổi Bản quyền có thể yêu cầu các sản phẩm phát sinh phải mang một cái tên hay một số hiệu phiên bản khác so với phần mềm gốc

Theo đó, bản quyền mã nguồn mở phải đảm bảo rằng mã nguồn sẽ tồn tại ở dạng dễ dàng lấy được, nhưng có thể yêu cầu rằng nó sẽ được phân phối với mã nguồn nguyên gốc ban đầu kèm với các bản vá Theo cách này, những thay đổi “không chính thức” có thể xuất hiện ở hình thức sẵn sàng để tiếp cận nhưng được phân biệt một cách dễ dàng với mã nguồn cơ sở

Không có sự phân biệt đối xử giữa các cá nhân hay nhóm người

Bản quyền phải không được phân biệt đối xử với bất cứ cá nhân hay nhóm người nào

Không phân biệt đối xử với bất cứ một lĩnh vực công việc nào

Bản quyền phải không được cản trở bất cứ ai khỏi việc sử dụng chương trình trong một lĩnh vực công việc cụ thể Ví dụ, nó không được cản trở không cho chương trình đó được dùng trong một doanh nghiệp, hay không được dùng cho việc nghiên cứu gien

Việc phân phối bản quyền

Các quyền lợi đi kèm với chương trình phải áp dụng cho tất cả những ai

mà chương trình đó được tái phân phối đến, đồng thời không cần phải thực thi một thứ giấy phép phụ nào do các bên đó quy định

Trang 11

Giấy phép phải không được dành riêng cho một sản phẩm

Các quyền lợi đi cùng chương trình phải không được phụ thuộc vào việc chương trình đó là một bộ phận hay một bản phân phối phần mềm cụ thể khác Nếu chương trình được tách ra từ bản phân phối nào đó và được sử dụng hay phân phối dưới các điều khoản của giấy phép kèm theo chương trình thì tất cả các bên mà chương trình được phân phối đến cũng nên có được các quyền lợi ngang bằng như những quyền lợi được đưa ra theo bản phân phối phần mềm gốc

Bản quyền phải không được cản trở các phần mềm khác

Bản quyền phải không được áp đặt các giới hạn lên các phần mềm khác

mà được phân phối kèm với phần mềm có bản quyền đó Ví dụ, bản quyền không được chỉ dẫn nhất quyết rằng tất cả các phần mềm khác được phân phối trên cùng một phương tiện thì phải là phần mềm mã nguồn mở

Giấy phép phải trung dung về mặt công nghệ

Không cho phép tồn tại điều khoản nào của bản quyền khẳng định sự liên quan đến bất cứ một công nghệ riêng biệt hay một kiểu giao diện nào

1.3 Lịch sử phần mềm mã nguồn mở

Richard Stallman là người sáng lập ra dự án GNU (Gnu’s Not Unix) vào năm 1984, với mục đích phát triển một hệ điều hành máy tính miễn phí GNU Bằng cách này ông đã cho người dùng máy tính sự tự do mà họ chưa

hề có được trước đây GNU trở thành thuật ngữ để chỉ các phần mềm tự do: mọi người được quyền tự do sao chép và phiên bản, cũng như thay đổi nó ở bất cứ mức độ dù lớn hay nhỏ Stallman còn là tác giả chính và đầu tiên của một loạt các sản phẩm kiểu phần mềm soạn thảo GNU Emacs, chương trình

Trang 12

dịch GNU Compiler, phần mềm gỡ rối GNU Debugger và nhiều gói phần mềm GNU khác Ông là Chủ tịch của Tổ chức Phần mềm Tự do (Free Software Foundation)

Phần mềm tự do mã nguồn mở, dùng để chỉ các phần mềm có giấy phép sử dụng theo kiểu GNU Tự do ở đây không ám chỉ sự miễn phí, mà chỉ nói về các quyền tự do mà phần mềm tự do nguồn mở mang lại cho người sử dụng: tự do chạy, tự do sao chép, tự do phân phối lại, nghiên cứu, thay đổi và cải tiến cho phù hợp với nhu cầu sử dụng của mình mà không cần phải tới sự cho phép, hoặc phải trả tiền cho bất cứ cá nhân hoặc nhóm người nào

1.4 Giấy phép phần mềm mã nguồn mở

1.4.1 Các loại giấy phép mã nguồn mở:

Kiểu BSD - (Open Source BSD-style):

Một nhóm đã phát triển các PMMNM theo giấy phép phân phối Berkely (BSD – Berkely Software Distribution) cho phép sử dụng và phân phối lại các phần mềm này dưới dạng mã nhị phân và mã nguồn Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắc nhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ kho mã ra sửa (gọi là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi là các

“check-in”)

Kiểu Apache (Open Source Apache-style):

Chấp nhận nguồn mở kiểu BSD nhưng cho phép những người ngoài nhóm phát triển xâm nhập vào lõi của mã nền (core codebase)

Kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, style):

Linux-Phần mềm mã mở kiểu CopyLeft hay còn gọi là giấy phép GPL (General Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phép phần mềm Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phối theo các qui định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL

Trang 13

1.4.2 Giấy phép công cộng GNU

Giấy phép Công cộng GNU (tiếng Anh: GNU General Public License,

viết tắt GNU GPL hay chỉ GPL) là giấy phép phần mềm tự do phổ biến

nhất, mới đầu do Richard Stallman viết cho dự án GNU Đây là giấy phép cho phần mềm tự do, được phát hành cho phần lớn các sản phẩm của dự án GNU

Các giấy phép cho hầu hết các phần mềm không cho phép tự do chia sẻ

và thay đổi các phần mềm Ngược lại, GNU General Public License được dành để đảm bảo quyền tự do để chia sẻ và thay đổi tất cả các phiên bản của một chương trình Tổ chức phần mềm miễn phí sử dụng Giấy phép Công cộng của GNU cho hầu hết các phần mềm thuộc dự án GNU

Giấy phép GPL cho phép người sử dụng các quyền sau đây:

- Tự do chạy chương trình cho bất cứ mục đích nào

- Tự do tìm hiểu cách hoạt động của chương trình, và tự do sửa đổi nó

- Tự do tái phân phối bản sao

- Tự do cải tiến chương trình, và phát hành những gì cải tiến ra công cộng

Giấy phép GPL ít ràng buộc hơn so với các giấy phép tự do khác như là Giấy phép BSD, tại vì GPL bảo đảm các quyền tự do ở trên được giữ trong các bản sao và tác phẩm phái sinh Nó là giấy phép kiểu copyleft nên nó làm cho các tác phẩm bắt nguồn từ chương trình dưới GPL cũng phải được phát hành dưới GPL Không giống vậy, các giấy phép kiểu BSD để những tác phẩm phái sinh được tái phân phối như phần mềm thương mại

Các phiên bản của GPL

Version 1 – General Public License – GPL v1, 1989

Version 2 – General Public License – GPL v2, 1991

Version 2 – Library General Public License – LGPL v2, 1991

Version 2.1 – Lesser General Public License – LGPL v2.1, 1999

Trang 14

Version 3 – GPLv3, 2007

Phiên bản hiện hành của giấy phép này là phiên bản 2, được phát hành vào năm 1991 Giấy phép bản quyền gốc của các phần mềm tự do nguồn mở chính là giấy phép GPL Các phần mềm được cung cấp theo giấy phép GPL chính là các phần mềm tự do nguồn mở tuân thủ theo các quyền của GPL Một số qui định đáng lưu ý trong GPL Version 2:

– Có thể bán mã thực thi tạo ra từ phiên bản sửa đổi tuy nhiên mã nguồn phải công bố

– Mã nguồn của sản phẩm và tất cả các sửa đổi sau đó phải tồn tại dưới dạng phần mềm tự do

– Tất cả các chương trình có sử dụng mã nguồn GPL phải phát hành dưới giấy phép GPL

– Liên kết động hay tĩnh đến mã nguồn hoặc thự viện GPL

– Sao chép một số dạng của mã nguồn GPL

Giấy phép công cộng GNU hạn chế:

Giấy phép công cộng GNU hạn chế (LGPL) là giấy phép sửa đổi của GPL, được sử dụng cho một số thư viện phần mềm Đây là phiên bản đầu tiên của giấy phép GNU hạn chế Giấy phép này cũng được coi là phiên bản

kế tiếp của giấy phép công cộng GNU phiên bản 2.0 do đó nó có phiên bản

– Hầu hết các điều khoản và điều kiện tương tự GPL

– Nếu bạn thay đổi và phân phối một thư viện LGPL

Trang 15

– Thư viện và những thay đổi phải được công bố (mã thực thi và mã nguồn cùng với chú thích về những sửa đổi)

– Bằng sáng chế được gắn với sự phân phối những sửa đổi

1.5 So sánh phần mềm mã nguồn mở và phần mềm mã nguồn đóng 1.5.1 Ưu điểm

Về độ tin cậy và tính an ninh của phần mềm:

- PMMNM có mã nguồn để công khai trên Internet nên được rà soát liên tục bởi nhiều người Còn phần mềm nguồn đóng (PMMNĐ) việc rà soát

mã nguồn chỉ do nhóm phát triển phần mềm thực hiện Vì vậy khả năng phát hiện lỗi và các lỗ hổng an ninh của PMMNM cao hơn

- Khi đã phát hiện lỗi và lỗ hổng an ninh, PMMNM có đông đảo các nhà lập trình tham gia sửa, nên sẽ sửa nhanh hơn

=> Từ hai lý do trên, độ tin cậy và tính an ninh của PMMNM cao hơn PMMNĐ

Về khả năng thay đổi để thích ứng nhanh với yêu cầu sử dụng:

PMMNM có mã nguồn có thể thay đổi không hạn chế cho phép thay đổi tùy vào hoàn cảnh và mục đích sử dụng sao cho phù hợp Nếu là PMMNĐ thì phải thương lượng với nhà cung cấp

Về khả năng độc lập với nhà cung cấp:

Do mã nguồn công khai, nhiều nhà cung cấp có thể tìm hiểu để làm chủ phần mềm Do đó PMMNM có thể được vận hành và bảo trì bởi nhiều nhà cung cấp Ngược lại với PMMNĐ, chỉ người viết ra nó mới hiểu rõ Vì vậy khả năng lựa chọn nhà cung cấp PMMNM rộng hơn Khi cần, bỏ nhà cung cấp này, chọn nhà cung cấp khác cho cũng phần mềm đó dễ dàng hơn

Về phạm vi áp dụng:

Trang 16

Giấy phép sử dụng PMMNM không hạn chế người sử dụng cũng như lĩnh vực sử dụng Do đó khi cần, có thể cung cấp nhanh phần mềm đó cho những người sử dụng mới Ngược lại, giấy phép sử dụng PMMNĐ có những quy định chặt chẽ, ví dụ, là giấy phép cấp cho cơ quan A dùng vào mục đích đào tạo chẳng hạn Khi cần mở rộng phải mua giấy phép khác

Về chi phí sử dụng:

PMMNM gần như miễn phí hoàn toàn khâu đăng ký Đa số các sản phẩm sử dụng chỉ phải trả một ít chi phí cho những dịch vụ nhất định khi cần thiết PMMNM có thể được tải hầu như hoàn toàn miễn phí từ Internet Đương nhiên dùng PMMNM rõ ràng là rẻ hơn rất nhiều so với dùng phần mềm có bản quyền

Phí sử dụng PMMNĐ thường tính theo đầu máy tính Phí sử dụng PMMNM (nếu có) không tính theo kiểu đó, nó không hạn chế số lượng máy cài Vì vậy, khi số người dùng không dự kiến trước được thì dùng PMMNM lợi hơn vì cài thêm cho nhiều máy mà không bị tăng phí

Thử nghiệm nhanh:

PMMNM đặc biệt thích hợp để tạo mẫu và thử nghiệm nhanh Vì vậy, những trường hợp cần có bản chạy thử với chi phí nhỏ nhất và thời gian nhanh nhất thì PMMNM là rất phù hợp

Trang 17

PMMNM thường không hoàn toàn tương thích với PMMNĐ, nhất là khi cài trên máy để bàn Khi nào các công ty chuyển hẳn từ hệ thống chuẩn đóng sang chuẩn mở thì nhược điểm này sẽ được khắc phục

Hiện tại, ở Việt Nam, theo đánh giá của Liên minh phần mềm doanh nghiệp BSA và công ty Dữ liệu Quốc tế IDC thì tỉ lệ vi phạm bản quyền phần mềm còn ở mức khá cao khoảng 85% Mặc dù, các PMMNM là hoàn toàn miễn phí nhưng vẫn có rất nhiều người chấp nhận vi phạm bản quyền hơn là

sử dụng các PMMNM

Theo giới chuyên môn, các PMMNM nói chung vẫn còn kém xa về chất lượng so với các phần mềm có thu phí Chẳng hạn những phần mềm trong ngành dầu khí tại Việt Nam có phần mềm lên tới 10.000 đô la và hiện nay vẫn chưa có phần mềm miễn phí nào có thể sánh kịp Riêng phần mềm office của Windows thì đã có vô số những sản phẩm cạnh tranh với nó như OpenOffice, Google Docs, Zoho,… Nhưng thực tế tại Việt Nam, rất ít người

sử dụng các phần mềm này vì chúng còn thiếu nhiều tính năng so với bản của Microsoft

Thiếu sáng tạo

Điểm hạn chế thứ hai của PMMNM là thiếu tính sáng tạo 100% các phiên bản của những phần mềm này thường chỉ có một nhiệm vụ duy nhất là bắt chước y chang các tính năng của bản nâng cấp các phần mềm thu phí Điển hình nhất là Ubuntu với Mac và Windows Khi Windows và Mac phát triển một loạt các tính năng giao diện mới thì Ubuntu cũng xây dựng bổ sung các tính năng đó Một vài chuyên gia cho rằng, nếu thực sự những PMMNM giành được thị phần lớn, nó sẽ vấp phải một rào cản cực lớn đó là bản quyền,

vì tất cả những nội dung của các phần mềm này đều là sao chép lại các phần mềm bản quyền Bởi vì lý do đó, theo đánh giá của cộng đồng mạng, khá nhiều người đã chán nản quay lại dùng các phần mềm trả phí (đã crack) vì tính năng của chúng được cập nhật thường xuyên hơn

Trang 18

Giao diện chưa hấp dẫn

PMMNM còn thiếu tính tiện dụng vốn là đặc trưng của phần mềm thương mại Giao diện đồ họa với người sử dụng (GUI – Graphical User

Interface) của PMMNM chưa thực sự thân thiện

Bảo mật không bảo đảm

Mặc dù được cho rằng có độ bảo mật tốt và dễ phát hiện và chữa lỗi nhưng không ai dám khẳng định những PMMNM là an toàn Nếu như với Windows hay Apple, những sản phẩm của họ do các lập trình viên giỏi nhất trên thế giới sáng tạo ra thì các PMMNM lại do một nhóm các lập trình viên

đủ mọi trình độ từ khắp nơi trên thế giới xây dựng nên Nhiều người thường

có sự nhầm lẫn về độ bảo mật của các phần mềm và không phải phần mềm ít

bị tấn công, ít lỗ hổng là an toàn

Theo đánh giá của các chuyên gia, Internet Explorer là trình duyệt web

an toàn nhất so với các trình duyệt khác, nhưng nó bị tấn công nhiều vì được

sử dụng nhiều trên thế giới Safari thậm chí còn “dính” rất nhiều lỗi bảo mật hơn cả Internet Explorer nhưng lại ít bị hacker tấn công, đơn giản vì hệ điều hành Macintosh chiếm một tỷ trọng quá nhỏ trên thế giới

Điều này cũng đồng nghĩa với các hệ điều hành mã nguồn mở dễ bị tấn công hơn rất nhiều lần vì code thiết kế được cung cấp sẵn trên mạng Nếu như một PMMNM có thể do nhiều người thiết kế nhưng đến lúc nó bị tấn công thì lại không có ai đứng ra chịu trách nhiệm Không những thế, các phiên bản những hệ điều hành dạng này khá nhiều và phức tạp nên người dùng đôi khi

sẽ không biết họ đang dùng sản phẩm nào Đó cũng là lý do, tại sao các hãng sản xuất máy tính, thà chấp nhận bỏ tiền mua hệ điều hành Microsoft Windows còn hơn sử dụng các hệ điều hành nguồn mở miễn phí như Hacao hay Ubuntu

Trang 19

Mã nguồn mở không có nghĩa là miễn phí

Các code thiết kế ban đầu của các phần mềm ban đầu được cung cấp miễn phí trên mạng, nhưng khá nhiều công ty đã đi theo hướng sử dụng các code này để biến chúng thành sản phẩm của riêng mình Công ty Mozilla bỏ tiền thuê nhân viên phát triển trình duyệt web mã nguồn mở Firefox và cung cấp miễn phí trên mạng Nếu miễn phí thì tiền đâu để Mozilla trả lương cho nhân viên? Theo thông cáo báo chí năm 2009, Firefox kiếm được gần 100 triệu đô là nhờ việc tích hợp các công cụ search vào bên trong nó Hiện tại, Hoa Kỳ đang dự định đánh thuế công ty này vì mục đích phi lợi nhuận ban đầu của Firefox đã không còn nữa

Các PMMNM muốn phát triển tốt phải có một tổ chức đầu tư nghiên cứu chuyên sâu Và một khi đã dày công nghiên cứu, phát triển thì chẳng ai chấp nhận cho không chất xám và công sức của chính mình

là lợi nhuận Nếu người dùng chỉ nghĩ tới miễn phí thì doanh nghiệp cung cấp

sẽ không có được lợi nhuận

Nhiều chuyên gia cũng đã bình luận “ứng dụng PMMNM như đường hầm không thấy lối ra”, vì thế đòi hỏi cần có mô hình để phát triển sao cho hợp lí

Trang 20

CHƯƠNG 2: PHÁT TRIỂN PHẦN MỀM MÃ NGUỒN MỞ

2.1 Mô hình phát triển phần mềm mã nguồn mở

2.1.1 Giới thiệu

Mô hình phát triển phần mềm mã nguồn mở được đặc trưng bởi các qui trình và giá trị làm cho nó khác biệt với mô hình phát triển sở hữu độc quyền theo truyền thống

Mô hình phát triển phần mềm được nhiều tổ chức thực hiện thường gồm những giai đoạn riêng rẽ các hoạt động phát triển như kiểu thác nước đổ cho tới một sự phát hành của dự án Tuy nhiên, mô hình phát triển phần mềm

mã nguồn mở có cách tiếp cận khác, ưu tiên cho qui trình phát triển dễ thay đổi hơn được đặc trưng bằng sự gia tăng trong các đội về sự cộng tác, tích hợp và kiểm thử liên tục, và sự can thiệp lớn hơn của người sử dụng đầu cuối

2.1.2 Mô hình phát triển truyền thống

Đặc trưng của mô hình phát triển phần mềm truyền thống là mô hình thác nước Mô hình thác nước khá nổi tiếng và được sử dụng nhiều bởi nhiều

Trang 21

nhóm phát triển phần mềm và nhiều doanh nghiệp trên thế giới Đây là mô hình thác nước điển hình:

Hình 1: Mô hình thác nước điển hình Trong đó quy trình phát triển trông giống như một dòng chảy, với các bước được thực hiện theo trật tự nghiêm ngặt và không có sự quay lui hay nhảy vượt các bước là: phân tích yêu cầu, thiết kế, triển khai thực hiện, kiểm

- Các lập trình viên sẽ dựa vào tài liệu trên tiến hành viết phần mềm bao gồm: mã hóa và viết mã

Trang 22

- Khi sản phẩm được sử dụng thì dựa vào yêu cầu người dùng thì tiến hành bảo trì, bảo dưỡng phần mềm

Mặc dù mô hình này rất hợp lý theo từng bước nhưng nó cũng có khá nhiều khuyết điểm khi xây dựng phần mềm như:

- Yêu cầu khách hàng luôn thay đổi không cụ thể chính xác ngay từ đầu

- Sự cạnh tranh giữa các công ty đòi hỏi phần mềm phải có hiệu quả cao và đáp ứng đúng và đủ yêu cầu của khách hàng

- Thời gian sống của phần mềm không được xác định nó phụ thuộc vào nhu cầu thị trường

- Khi phần mềm đã hoàn thành mà khách hàng lại có yêu cầu khác thì đòi hỏi lập trình viên phải làm lại từ đầu và khách hàng phải chờ đợi khá lâu

Phương pháp phát triển phần mềm truyền thống thì có sự quản lý chặc chẽ:

• Quản lý ai là người viết các phần mã lệnh, phương pháp mà họ liên kết các gói mã lệnh với nhau

• Quản lý nội dung của phần mềm

• Quản lý trong xuất quá trình vận hành sản phẩm cho tới khi sản phẩm không được sử dụng nữa

2.1.3 Mô hình phát triển phần mềm mã nguồn mở

Phần mềm mã nguồn mở (OSS) là dự án được xây dựng và duy trì bởi một mạng lưới của các lập trình viên tình nguyện và không có một thiết kế ban đầu rõ ràng, không có một qui trình quản lý chính thức Phần mềm mã nguồn mở nói chung cho phép bất cứ ai có thể tạo ra các thay đổi của phần mềm, cho phù hợp với các hệ thống điều hành và có thể chia sẻ nó với những người khác

Mô hình này sử dụng một chính sách lỏng lẽo trong việc:

- Phát hành mã nguồn

Trang 23

- Quản lý ai là người viết mã nguồn cho việc sửa lỗi và cho các chức năng mới

Một trong những đặc tính cốt lõi của mô hình phát triển mã nguồn mở

là cá nhân hoặc các đội lập trình có trách nhiệm cho sự phát triển là duy trì

mã nguồn Các tính năng được đóng góp sẽ được đưa vào trong một thân mã nguồn duy nhất từ một hoặc nhiều người duy nhất, những người mà đảm bảo cho các mã nguồn mới được phát hành đáp ứng được toàn bộ yêu cầu và tập hợp các tiêu chuẩn được thiết lập cho dự án

Vòng đời phát triển tính năng của một dự án phần mềm nguồn mở bắt đầu với một ý tưởng, tính năng hoặc sự cải tiến cho một dự án mới, được đề xuất cho các lập trình khác của dự án Tiếp sau là thảo luận về yêu cầu cho tính năng đó, bước tiếp theo là thiết kế và triển khai nó Vòng đời tính năng của một dự án được minh họa như sau:

2.1.4 Sự khác và giống nhau giữa 2 mô hình trên

Trang 24

Các yêu cầu cần thiết cho phát triển một phần mềm là: lập trình viên, máy tính, kênh phân phối, kỹ thuật viên

• Đối với CNPM truyền thống:

- Số lượng lập trình viên và các tài nguyên khác thì phụ thuộc vào nơi đảm nhiệm xây dựng phần mềm

- Phần mềm là bản quyền nên cần xây dựng cơ chế bảo vệ phần mềm

• Đối với PMMNM:

–Lập trình viên làm việc trên tinh than tình nguyên

–Sử dụng hạ tầng cơ sở (ví dụ máy tính) sẵn có

–Phân phối qua Internet

2.2 Quy trình phát triển phần mềm mã nguồn mở

2.2.1 Các giai đoạn phát triển

Quy trình phát triển phần mềm luôn được xây dựng trên cơ sở các giai đoạn chuẩn của Công nghệ phần mềm Một cách tổng quát có thể nói rằng cả hai quy trình phát triển phần mềm mã nguồn mở và phần mềm mã nguồn đóng đều thực hiện theo các bước sau:

Bước 1: Xác định các yêu cầu phần mềm (Requirement Engineering):

Xác định phần mềm cần phải làm gì, có những yêu cầu gì Trong giai đoạn này chúng ta cùng với khách hàng xác định các yêu cầu phần mềm về mặt chức năng, tổng hợp các yêu cầu phần mềm và mô hình hóa các yêu cầu phần mềm

Bước 2: Phân tích hệ thống phần mềm (Analysis):

Tiến hành phân tích hệ thống phần mềm: xác định kiến trúc cấu hình phần cứng, xác định kiến trúc phần mềm, mô hình phát triển phần mềm, xác

định các kiến trúc và thành phần đáp ứng các yêu cầu của phần mềm

Bước 3: Thiết kế chi tiết (Design):

Thiết kế chi tiết các thành phần trong kiến trúc tổng thể của phần mềm Các thành phần có thể được xây dựng dựa trên các phương pháp luận: hướng

Trang 25

đối tượng, hướng thành phần, Mục đích của giai đoạn này là thiết kế chi tiết

các thành phần để có thể tiến hành lập trình

Bước 4: Thực hiện (Development):

Thực hiện viết mã cho các mô-đun và các thành phần theo thiết kế Quá trình này có thể phân chia cho các lập trình viên để tiến hành song song, sau

đó tiến hành liên kết các thành phần lại với nhau đề tạo thành sản phẩm phần

mềm một cách tổng thể

Bước 5: Kiểm thử phần mềm (Testing):

Kiểm thử phần mềm theo các kịch bản kiểm thử đã vạch ra Giai đoạn này phải đảm bảo tất cả các mô-đun phần mềm đều được kiểm thử và chạy

không có lỗi và đáp ứng đầy đủ các chức năng như theo yêu cầu phần mềm

Bước 6: Tích hợp triển khai (Integration Implementation):

Cài đặt phần mềm để đưa vào sử dụng Thông thường các công việc trong giai đoạn này liên quan đến đào tạo người dùng, tiến hành nhập các dữ liệu thực, v.v…

Bước 7: Bảo dưỡng phần mềm (Maintenance):

Các hỗ trợ cho người sử dụng trong quá trình sử dụng phần mềm

Đây là trình tự chung của bất kỳ một dự án phát triển phần mềm nào Thông thường các giai đoạn này được thực hiện đúng như thứ tự đã chỉ ra Một số phát triển của mô hình này đã được thực hiện với mục đích phân công các công việc trong từng giai đoạn có thể thực hiện song song khi phần mềm

có khối lượng công việc lớn (cho các dự án lớn) và nhân sự thực hiện dự án

có số lượng đông (mô hình RUP)

Phân phối phần mềm mã nguồn mở (PMMNM) có nghĩa là mã nguồn của phần mềm được phân phối và truyền bá cùng với các ứng dụng của nó

Mô hình phát triển PMMNM cũng có tất cả các giai đoạn của quy trình phát triển phần mềm:

- Xác định các yêu cầu phần mềm: Lập trình mã nguồn mở cần phải xây dựng các công cụ cần thiết để phát triển phần mềm Thông thường các

Trang 26

yêu cầu phần mềm được phân tán và lan truyền trên Internet Những lập trình viên và những người sử dụng khác quan tâm tới các công cụ này trao đổi các thông tin về các đặc tính của hệ thống của các công cụ

- Thực hiện: Quá trình thực hiện ở đây được hiểu là quá trình xây dựng những gì mà chúng ta muốn Cơ hội viết mã nguồn là một trong những động

cơ thúc đẩy chính của tất cả những người tham gia vào các dự án PMMNM Quá trình tích hợp của các PMMNM thông thường là quá trình viết các tài liệu và kiểm soát xem tất cả có quyền sử dụng các thư viện mã nguồn hay không

Trang 27

- Kiểm thử phần mềm: Các chức năng của phần mềm sẽ được kiểm thử miễn phí; người sử dụng sẽ tham gia tích cực vì lý do đơn giản là họ không phải trả chi phí cho sử dụng phần mềm

- Triển khai: Phần mềm được tự triển khai bởi người sử dụng theo nhu cầu của mình

- Bảo dưỡng: Phần mềm không cần (không được) bảo dưỡng

Ưu điểm của quá trình phát triển PMMNM

(l) Phát triển PMMNM cho phép xây dựng các sản phẩm phần mềm có chất lượng và miễn phí dựa trên sự hợp tác của đông đảo các lập trình viên, ví

Các đặc điểm của quá trình phát triển PMMNM

(l) Trao đổi thông tin: Quá trình trao đổi thông tin giữa các thành viên tham dự vào một dự án mã nguồn mở thông thường được thực hiện trên các dịch vụ của Intemet Các dịch vụ thường sử dụng như Email lists, Newsgroups của các Web site được xây dựng cho các dự án tương ứng

(2) Khả năng hợp tác lớn và không phụ thuộc vào vị trí địa lý của các thành viên: Thông qua Internet vị trí địa lý của những người tham gia vào dự

án trở thành không có ý nghĩa nữa

Trang 28

(3) Khả năng thực hiện song song: Nếu như mô hình các thành phần đã được xác định khi đó có thể tổ chức những nhóm các lập trình viên giải quyết các bài toán và nhiệm vụ cụ thể, độc lập trong dự án Các lập trình viên tham gia vào dự án theo sở thích nên quá trình phát triển thực hiện mã nguồn sẽ rất nhanh chóng

(4) Hạn chế hiện tượng Code Forking: Một trong những nhược điểm của bất kỳ một đội ngũ phần mềm lớn là hiện tượng code-forking Code forking là hiện tượng gặp trong quá trình phát triển phần mềm khi có nhiều phiên bản khác nhau của phần mềm dựa trên các mã nguồn khác nhau Trong PMMNM chúng ta phát triển từ mã nguồn của dự án nên hiện tượng này không hoặc ít xảy ra

Quản lý cấu hình trong phát triển PMMNM cũng có những đặc thù riêng, khi dự án PMMNM chỉ tập trung chủ yếu vào những giai đoạn đầu của quy trình phát triển phần mềm là phân tích yêu cầu thiết kế kiến trúc và hệ thống Mẫu hình tiến hóa PMMNM cũng đa dạng hơn so với PMNĐ Một trong những đặc điểm khác biệt nữa của một dự án PMMNM so với dự án phát triển PMNĐ là các thành viên của dự án PMMNM tự xác định vai trò của mình trong cộng đồng PMMNM ấy tùy theo khả năng và sở thích cá nhân, thay vì ''bị chỉ định'' vai trò cố định trước bởi trưởng dự án hay lãnh đạo cấp trên của mình

Kết luận

Quá trình phát triển PMMNM là quá trình cho phép phát triển các phần mềm chất lượng và nhanh chóng PMMNM cũng thúc đẩy chất lượng phần mềm và độ tin cậy của phần mềm PMMNM trong những năm gần đây được coi như một mô hình để thúc đẩy phát triển phần mềm Các đặc điểm của quá trình phát triển PMMNM có những ưu điểm thúc đẩy nhanh sự tiến hoá và phát triển của phần mềm, nhanh chóng đáp ứng các yêu cầu của người sử dụng, cho phép thực hiện các công việc một cách song song với sự tham gia của rất nhiều người và đảm bảo được chất lượng phần mềm, v.v…

Trang 29

(2) Các dự án không được tài trợ:

Các dự án này không được hỗ trợ kinh phí Tất cả mọi người tham gia vào dự án đều mang tính chất phi thương mại, với mong muốn các kết quả công việc của mình được sử dụng miễn phí Tuy nhiên có một số điều luật quy định rõ các yêu cầu những người sử dụng phải hay không phải tuân thủ (được gọi là GNU và Free Software Foundations license) Các điều khoản đó quy định rõ: Cung cấp phần mềm với mã nguồn hay không, cung cấp mã nguồn miễn phí hay có phí, người sử dụng có quyền sửa đổi và sử dụng mã nguồn theo đúng các quy định nào

(*) Dựa vào giấy phép PMMNM có thể chia thành các loại như:

▪ Phần mềm thương mại (Commercial Software)

Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được cung cấp ở dạng mã nhị phân, người dùng phải mua và không có quyền phân phối lại

▪ Phần mềm giới hạn thử nghiệm (Limited Trial Software)

Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giới thiệu sản phẩm và kích thích người dùng quyết định mua Loại sản phẩm này không chỉ giới hạn về tính

Trang 30

năng mà còn giới hạn về thời gian dùng thử (thường là 60 ngày) ▪ Phần mềm “chia sẻ” (Shareware)

Loại phần mềm này có đủ các tính năng và được phân phối tự do, nhưng có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình hình cụ thể Nhiều tiện ích Internet (như “WinZip” dùng các thuận lợi của Shareware như một hệ thống phân phối)

▪ Phần mềm sử dụng phi thương mại (Non-commercial Use) Loại phần mềm này được sử dụng tự do và có thể phân phối lại bởi các

tổ chức phi lợi nhuận Nhưng các tổ chức kinh tế như các doanh nghiệp, muốn dùng phải mua Netscape Navigator là một thí dụ của loại phần mềm này

▪ Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries Software)

Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do Thí dụ: bản nhị phân của các phần mềm Internet Explorer và NetMeeting ▪ Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries)

mã nguồn Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắc nhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ kho mã ra sửa (gọi là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi là các “check-in”)

▪ PMMNM kiểu Apache (Open Source Apache-style)

Trang 31

Chấp nhận nguồn mở kiểu BSD nhưng cho phép những người ngoài nhóm phát triển xâm nhập vào lõi của mã nền (core codebase), tức là được phép thực hiện các “check-in”

▪ PMMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style)

PMMNM kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU – Gnu’s Not Unix, để đối nghịch hoàn toàn với CopyRight !) hay còn gọi là giấy phép GPL (General Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phép phần mềm Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phối theo các qui định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL GPL cho người dùng tối đa quyền hạn và tự do đối với các PMMNM theo GPL, cụ thể người dùng có quyền không những sao chép, sửa đổi, mua bán các PMMNM dưới CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất Tóm lại nếu PMMNM gốc đã theo CopyLeft thì mọi PMMNM dẫn xuất của nó cũng đương nhiên theo CopyLeft

2.2.3 Môi trường phát triển

Các kênh truyền thông

Gồm các thành phần như: Website, Mailing list, Bug Tracker, IRC, Wiki, Newsletters, Files bundled with code

Cung cấp các thông tin như:

• Mô tả và mục tiêu dự án

• Tin tức và bản phân phối mới nhất

• Tài liệu người dùng

• Tài liệu thiết kế

• Vật phẩm quảng cáo

• Kế hoạch và lịch trình tương lai

• Chuẩn lập trình

Trang 32

• Quyền sở hữu tập tin/môđun

• Danh sách lỗi đang mở (và đóng)

• Cách thức để lấy mã; đóng góp vào mã nguồn

• Liên kết tới những kênh giao tiếp khác

Các nhà phát triển và người sử dụng của một dự án mã nguồn mở không phải nhất thiết phải làm việc trên các dự án ở gần Họ có thể sử dụng một số phương tiện thông tin liên lạc điện tử Email là một trong những hình thức phổ biến nhất của giao tiếp giữa các nhà phát triển mã nguồn mở và người sử dụng

Các công cụ phần mềm

+ Hệ thống quản lý mã nguồn

• Lưu trữ mã nguồn trực tuyến

• Theo dõi vết thay đổi trên mã nguồn

• Trộn những đụng độ trên một tập tin

Trong cơ chế phát triển "một cửa" những người tham gia, chủ yếu là tình nguyện viên, được phân phối giữa các vùng địa lý khác nhau, do đó có nhu cầu cho các công cụ để hỗ trợ người tham gia cộng tác trong sự phát triển của mã nguồn

Hệ thống phiên bản đồng thời (CVS) là một ví dụ nổi bật của công cụ

mã nguồn, một sự hợp tác đang được sử dụng trong các dự án theo cơ chế

"một cửa" CVS giúp quản lý các tập tin và mã số của một dự án khi một số người đang làm việc trên dự án cùng một lúc CVS cho phép một số người làm việc trên cùng một tập tin cùng một lúc Điều này được thực hiện bằng cách di chuyển các tập tin vào thư mục của người dùng và sau đó sáp nhập các tập tin khi người sử dụng được thực hiện CVS cũng cho phép dễ dàng lấy một phiên bản trước của tập tin

Hệ thống kiểm soát sửa đổi (SVN) đã được tạo ra để thay thế cho CVS Nó nhanh chóng đạt được hiệu quả như một hệ thống kiểm soát dự án theo cơ chế "một cửa"

Trang 33

Nhiều dự án nguồn mở đang sử dụng hệ thống kiểm soát sửa đổi phân phối , có quy mô tốt hơn so với các kho lưu trữ tập trung như SVN và CVS Các ví dụ phổ biến là git được sử dụng bởi hạt nhân Linux và Merurial, được sử dụng bởi các ngôn ngữ lập trình Python

+ Các cơ sở dữ liệu về lỗi

Lỗi (bugs) là không tránh khỏi, cần có phương tiện để người dùng thông báo lỗi

Sử dụng mailing list có hạn chế:

• Dễ bị mất

• Lập trình viên mới không biết các lỗi trước đây Lưu lỗi vào cơ sở dư liệu có những lợi thế:

• Dễ dàng trong tìm kiếm lỗi

• Dùng cho các mục đích khác nữa: yêu cầu tính năng, cải tiến, bản vá lỗi

Hầu hết các dự án quy mô lớn đòi hỏi một hệ thống theo dõi lỗi (thường là web hoặc nếu không dựa trên Internet) để theo dõi tình trạng của các vấn đề khác nhau trong sự phát triển của dự án Một tập tin văn bản đơn giản là không đủ, bởi vì họ có nhiều lỗi như vậy, và bởi vì họ muốn tạo điều kiện thuận lợi cho báo cáo và bảo trì các lỗi bởi người dùng và các nhà phát triển thứ cấp Một số trackers lỗi phổ biến bao gồm:

- Bugzilla - một trang web dựa trên theo dõi lỗi tinh vi từ các nhà Mozilla

Mantis Bug Trackers- một trang web dựa trên PHP / MySQL lỗi tracker

- Trac- tích hợp theo dõi lỗi với wiki, và một giao diện hệ thống kiểm soát phiên bản Subversion

- Request tracker-được viết bằng Perl Được đưa ra như là một mặc định CPAN module

- GNATS-Bugtracking GNU hệ thống

Trang 34

- SourouForge và các nhánh của nó cung cấp một theo dõi lỗi như là một phần của các dịch vụ của nó Kết quả là nhiều dự án tổ chức tại SourceForge.net mặc định dịch vụ tương tự để sử dụng

- Libresource

- SharpForge bao gồm diễn đàn, các hạng mục công trình theo dõi, quản

lý phát hành, wiki và quản lý kiểm soát phiên bản

- JIRA - Atlassian quản lý dự án và công cụ theo dõi vấn đề

+ Công cụ Kiểm tra

Kể từ khi các dự án "một cửa" trải qua hội nhập thường xuyên, các công cụ giúp tự động kiểm tra trong quá trình tích hợp hệ thống được sử dụng Một ví dụ về công cụ này là Tinderbox Tinderbox cho phép tham gia trong một dự án "một cửa" để phát hiện lỗi trong quá trình hội nhập hệ thống Tinderbox chạy một quá trình xây dựng liên tục và thông báo cho người sử dụng về các phần của mã nguồn có vấn đề và vào nền tảng những vấn đề phát sinh Hơn nữa, công cụ này xác định các mã vi phạm của tác giả Tác giả sau đó được tổ chức chịu trách nhiệm để đảm bảo lỗi đó được giải quyết Chủ yếu là bởi vì các công cụ kiểm tra bình thường là khá tốn kém, công cụ kiểm tra mã nguồn mở đang được phổ biến

Một debugger là một chương trình máy tính được sử dụng để gỡ lỗi (và đôi khi kiểm tra hoặc tối ưu hóa) các chương trình khác GNU Debugger (GDB) là một ví dụ về một trình sửa lỗi được sử dụng trong phát triển phần mềm mã nguồn mở Trình gỡ lỗi này cung cấp gỡ lỗi từ xa Ngoài ra, một

số Memory leak phát hiện đã được thiết kế để làm việc với GDB

+ Quản lý gói

Một hệ thống quản lý gói là một tập hợp các công cụ để tự động hoá quá trình cài đặt, nâng cấp, cấu hình, và gỡ bỏ các gói phần mềm từ một máy tính

Trang 35

CHƯƠNG 3 : THỰC TRẠNG TRIỂN KHAI PHÁT TRIỂN PMMNM TẠI CƠ QUAN NHÀ NƯỚC VÀ TRONG GIÁO DỤC Ở VIỆT NAM

Internet và phần mềm mã nguồn mở (PMMNM) là 2 yếu tố chính sẽ làm thay đổi toàn bộ thế giới này! Ứng dụng và phát triển PMMNM là cơ hội cho các nước đang phát triển, trong đó có Việt Nam Do đó ứng dụng PMMNM là một chủ trương lớn của nhà nước ta và cũng là một trào lưu đang

phát triển rất mạnh trên thế giới

3.1 Thực trạng triển khai phát triển PMMNM trong các cơ quan nhà nước ở Việt Nam

3.1.1 Thực trạng triển khai

Tại Việt Nam, PMMNM được coi là một hướng chiến lược trong phát triển tin học quốc gia và Chính sách PMMNM tại Việt Nam là một trong 16 chính sách mang tính áp buộc được CSIS thống kê

Trang 36

Chính phủ và Bộ TT&TT đã sớm có định hướng và ban hành cơ chế chính sách nhằm thúc đẩy việc ứng dụng và phát triển sâu rộng việc sử dụng PMMNM Bên cạnh đó, một số Bộ, ngành, địa phương đã xây dựng chương trình hành động cũng như cam kết quyết tâm đưa Phần mềm mã nguồn mở vào trong hoạt động ứng dụng CNTT của mình, đây là những điểm sáng trong ứng dụng PMMNM Các chính sách được ban hành nhằm mục tiêu “Đẩy nhanh phát triển và ứng dụng phần mềm nguồn mở, góp phần bảo vệ quyền

sở hữu trí tuệ, giảm thiểu chi phí mua bản quyền phần mềm thương mại, thúc đẩy phát triển công nghiệp CNTT, hình thành đội ngũ cán bộ kỹ thuật có năng lực, làm chủ công nghệ và phát huy sáng tạo trong ứng dụng và phát triển PMMNM”

Tóm tắt một vài sự kiện gần đây:

 Ngày 2/3/2004 Thủ tướng chính phủ ban hành Quyết định số 235/2004/QĐ-TTg phê duyệt dự án tổng thể “Ứng dụng và phát triển Phần mềm mã nguồn mở ở Việt Nam giai đoạn 2004-2008” với những nội dung chính sau:

I M ụ c t i ê u d ự á n

1 Đẩy nhanh việc ứng dụng và phát triển Phần mềm mã nguồn

mở (PMMNM), góp phần bảo vệ bản quyền tác giả và giảm chi phí mua sắm phần mềm, thúc đẩy phát triển công nghiệp công nghệ thông tin nói chung và công nghiệp phần mềm nói riêng của Việt Nam

2 Hình thành đội ngũ cán bộ kỹ thuật có năng lực, làm chủ công nghệ và phát huy tính sáng tạo trong ứng dụng và phát triển PMMNM

3 Tạo được một số sản phẩm công nghệ thông tin (CNTT) đặc thù phù hợp với điều kiện và yêu cầu ứng dụng trong nước trên cơ sở PMMNM

I I N ộ i d u n g d ự á n

1 Các nhiệm vụ chính:

Trang 37

a) Xây dựng các chính sách thúc đẩy ứng dụng và phát triển phần mềm nguồn mở

- Xây dựng và ban hành cơ chế, chính sách khuyến khích ứng dụng và phát triển PMMNM để thu hút các cơ sở giáo dục, đào tạo, nghiên cứu khoa học tham gia vào việc đào tạo và nghiên cứu phát triển PMMNM; khuyến khích và tạo điều kiện thuận lợi cho các chuyên gia người Việt Nam ở nước ngoài và chuyên gia nước ngoài cũng như các công ty, tổ chức quốc tế đầu tư kinh doanh, phát triển, chuyển giao công nghệ và đào tạo về PMMNM tại Việt Nam

- Ban hành chính sách sử dụng một số PMMNM trong khu vực Nhà nước

b) Triển khai ứng dụng phần mềm nguồn mở

- Tổ chức ứng dụng PMMNM thí điểm, trước hết là các ứng dụng PMMNM ở một số Bộ, cơ quan và địa phương, sau đó nhân rộng trên toàn quốc

- Triển khai ứng dụng PMMNM vào một số ứng dụng chuyên nghiệp, ứng dụng trong an ninh quốc phòng Thiết lập và đưa vào sử dụng hệ thống máy tính hiệu năng cao và tính toán mạng lưới trên nền nguồn mở để giải các bài toán ứng dụng đòi hỏi năng lực tính toán mạnh của các Bộ, ngành và địa phương trong cả nước

c) Đào tạo nguồn nhân lực cho ứng dụng và phát triển phần mềm nguồn mở

- Tổ chức đào tạo đội ngũ giáo viên giảng dạy về PMMNM trong các trường đại học, cao đẳng, trung học chuyên nghiệp và dạy nghề; giáo viên cho công tác đào tạo cán bộ, công chức nhà nước

- Hình thành đội ngũ cán bộ đủ năng lực triển khai ứng dụng và phát triển PMMNM ở các Bộ, ngành và địa phương

Trang 38

- Hỗ trợ đào tạo cán bộ kỹ thuật phục vụ công tác triển khai, hướng dẫn mạng lưới đội ngũ chuyên môn về PMMNM ở các Bộ, ngành và địa phương, có chương trình đào tạo và duy trì đội ngũ này

- Xây dựng và triển khai chương trình đào tạo về sử dụng PMMNM cho cán bộ, công chức nhà nước, sinh viên các trường đại học, cao đẳng, trung học chuyên nghiệp, dạy nghề và học sinh phổ thông trung học Phát triển các phần mềm công cụ, tiện ích, các ứng dụng phục vụ cho công tác giảng dạy và học tập

- Thu hút các tổ chức, cá nhân trong nước và nước ngoài, người Việt Nam định cư ở nước ngoài tham gia vào hoạt động đào tạo về PMMNM ở Việt Nam

- Cử giáo viên, giảng viên, học sinh ưu tú đi đào tạo ngắn hạn và dài hạn ở nước ngoài về PMMNM

d) Phát triển một số phần mềm cốt lõi, xây dựng các chuẩn, hệ thống chứng chỉ và đào tạo chuyên gia cao cấp

- Tổ chức nghiên cứu đề xuất và phát triển một số phần mềm cốt lõi của Việt Nam, lựa chọn và bản địa hoá một số phần mềm nhằm đáp ứng các nhu cầu ứng dụng cơ bản của Việt Nam

- Thiết lập hệ thống đánh giá kiểm tra chất lượng sản phẩm PMMNM và đưa ra những khuyến cáo sử dụng cho cộng đồng

- Nghiên cứu xây dựng và ban hành các chuẩn kỹ thuật và chuẩn

kỹ năng PMMNM, thiết lập hệ thống sát hạch kỹ năng và cấp chứng chỉ về PMMNM

- Khuyến khích hình thành các doanh nghiệp kinh doanh và phát triển PMMNM, các công ty và các cơ quan khoa học, cơ sở giáo dục cung cấp các dịch vụ hỗ trợ ứng dụng PMMNM Xây dựng Trung tâm phát triển và phòng thí nghiệm về PMMNM

đ) Hợp tác quốc tế về phần mềm nguồn mở

Trang 39

- Tham gia vào các tổ chức, hiệp hội PMMNM của khu vực và quốc tế để tăng cường khả năng hợp tác và trao đổi kinh nghiệm giữa các thành viên của các tổ chức này

- Tổ chức hợp tác nghiên cứu phát triển và kinh doanh PMMNM với các đối tác nước ngoài

 Quyết định của Thủ tướng chính phủ số 169/2006/QĐ-TTg ngày 17 tháng 7 năm 2006 “Quy định về việc đầu tư, mua sắm các sản phẩm công nghệ thông tin của các cơ quan sử dụng nguồn vốn ngân sách nhà nước” và nêu rõ

“Ưu tiên đầu tư, mua sắm sử dụng các sản phẩm phần mềm mã nguồn mở, đặc biệt là các sản phẩm do các doanh nghiệp trong nước khai thác, cung cấp.”

 Quyết định số 08 /2007/QĐ-BTTTT ngày 24 tháng 12 năm 2007 “Ban hành Danh mục các sản phẩm phần mềm mã nguồn mở đáp ứng được yêu cầu sử dụng trong các cơ quan, tổ chức nhà nước”

DANH MỤC SẢN PHẨM PHẦN MỀM MÃ NGUỒN MỞ ĐÁP ỨNG ĐƯỢC YÊU CẦU SỬ DỤNG TRONG CÁC CƠ QUAN, TỔ CHỨC NHÀ NƯỚC

3 Phần mềm trình duyệt Web Mozilla Firefox

4 Phần mềm bộ gõ tiếng Việt Unikey

Ngày đăng: 08/06/2014, 09:12

HÌNH ẢNH LIÊN QUAN

Hình 1: Mô hình thác nước điển hình  Trong đó quy trình phát triển trông giống nhƣ một dòng chảy, với các  bước được thực hiện  theo trật tự  nghiêm  ngặt và không  có  sự  quay  lui hay  nhảy vượt các bước là: phân tích yêu cầu, thiết kế, triển khai thực - tìm hiểu phần mềm mã nguồn mở
Hình 1 Mô hình thác nước điển hình Trong đó quy trình phát triển trông giống nhƣ một dòng chảy, với các bước được thực hiện theo trật tự nghiêm ngặt và không có sự quay lui hay nhảy vượt các bước là: phân tích yêu cầu, thiết kế, triển khai thực (Trang 21)
Hình 3: Mô hình quy trình PMMNM - tìm hiểu phần mềm mã nguồn mở
Hình 3 Mô hình quy trình PMMNM (Trang 26)
Hình 4: Giao diện màn hình hệ điều hành Linux. - tìm hiểu phần mềm mã nguồn mở
Hình 4 Giao diện màn hình hệ điều hành Linux (Trang 59)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w