Tài liệu Phần mềm nguồn mở - Chương 2: Phát triển PM nguồn mở - Võ Đức Quang: Phần mềm Nguồn Mở 
(Open-Source Software) 
Võ Đức Quang 
Khoa CNTT-Đại học Vinh 
Nội dung chính 
Chương 1: Phần mềm nguồn mở 
Chương 2: Phát triển phần mềm nguồn mở 
Chương 3: Một số PM nguồn mở quan trọng 
Chương 4: Phát triển Website dựa trên PM 
nguồn mở 
Chương 2: Phát triển PM nguồn mở 
Cộng đồng phát triển PM nguồn mở 
Tiến trình phát triển phần mềm nguồn mở 
Hệ thống quản l{ phiên bản mã nguồn 
o CVS (Concurrent Versions System) 
o Subversion (SVN) 
o Github 
Cộng đồng phát triển PM nguồn mở 
Cộng đồng, đơn giản là một nhóm cá nhân chia 
sẻ một/một vài sự quan tâm chung nào đó. 
o Cả phần mềm nguồn đóng và mở đều có các cộng 
đồng của chúng. 
o Phần lớn các thành viên tham gia để trao đổi, tương 
tác với các thành viên khác trong cộng đồng. 
o Một dạng cộng đồng khác trong đó một số thành viên 
có các vai trò đặc biệt hơn, có quyền quyết định các 
vai trò hoạt động khác thông qua, ví dụ, báo cáo lỗi, 
viết tài liệu, hỗ trợ các thành viên khác, ...
                
              
                                            
                                
            
 
            
                 20 trang
20 trang | 
Chia sẻ: putihuynh11 | Lượt xem: 714 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Phần mềm nguồn mở - Chương 2: Phát triển PM nguồn mở - Võ Đức Quang, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Phần mềm Nguồn Mở 
(Open-Source Software) 
Võ Đức Quang 
Khoa CNTT-Đại học Vinh 
Nội dung chính 
Chương 1: Phần mềm nguồn mở 
Chương 2: Phát triển phần mềm nguồn mở 
Chương 3: Một số PM nguồn mở quan trọng 
Chương 4: Phát triển Website dựa trên PM 
nguồn mở 
Chương 2: Phát triển PM nguồn mở 
Cộng đồng phát triển PM nguồn mở 
Tiến trình phát triển phần mềm nguồn mở 
Hệ thống quản l{ phiên bản mã nguồn 
o CVS (Concurrent Versions System) 
o Subversion (SVN) 
o Github 
Cộng đồng phát triển PM nguồn mở 
Cộng đồng, đơn giản là một nhóm cá nhân chia 
sẻ một/một vài sự quan tâm chung nào đó. 
o Cả phần mềm nguồn đóng và mở đều có các cộng 
đồng của chúng. 
o Phần lớn các thành viên tham gia để trao đổi, tương 
tác với các thành viên khác trong cộng đồng. 
o Một dạng cộng đồng khác trong đó một số thành viên 
có các vai trò đặc biệt hơn, có quyền quyết định các 
vai trò hoạt động khác thông qua, ví dụ, báo cáo lỗi, 
viết tài liệu, hỗ trợ các thành viên khác, v.v. 
Cộng đồng phát triển PM nguồn mở 
Lợi thế của cộng đồng nguồn mở: 
o Nhiều bình duyệt sẽ làm cho chất lượng, tính an 
toàn. 
o Có thế sao chép nhanh chóng mà không lo lắng về 
chi phí (miễn phí hoặc thấp). 
o Có thể chia sẻ chi phí phát triển với những người 
trong cộng đồng 
o Có thể sửa đổi trong các trường hợp cần thiết 
Phát triển phần mềm nguồn mở 
Các hoạt động trong phát triển phần mềm: 
o Đặc tả: Định nghĩa việc hệ thống làm gì; 
o Thiết kế và thực thi: Định nghĩa việc hệ thống 
được tổ chức như thế nào và thực thi hệ thống; 
o Kiểm chứng: Kiểm tra việc hệ thống thực hiện 
những gì mà khách hàng muốn; 
o Tiến hoá: Thay đổi hệ thống để đáp ứng các thay 
đổi như khách hàng cần 
Phát triển phần mềm nguồn mở 
Nhu cầu chia sẻ mã nguồn giữa: 
o Nhóm phát triển, 
o Trong cùng một công ty 
o Cộng đồng cùng phát triển 
Ý tưởng của Stallman chia sẻ mã nguồn cho một 
cộng đồng rộng rãi cùng phát triển bắt đầu từ 
1970. 
Phát triển phần mềm nguồn mở là một tiến trình 
phát triển phần mềm trong đó mã nguồn được 
công bố. 
Phát triển phần mềm nguồn mở 
Một số vấn đề: 
o Người tham gia phát triển khắp nơi trên thế giới 
o Họ cải tiến mã nguồn cùng lúc 
o Họ luôn có nhu cầu chỉnh sửa mã nguồn trên 
phiên bản mới nhất 
o Gửi thông báo lỗi bất kz lúc nào 
Phát triển phần mềm nguồn mở 
Giải quyết vấn đề: 
o Quy trình, phương thức quản trị việc phát triển 
o Mức độ mở 
o Lựa chọn công cụ hỗ trợ việc phát triển sản phẩm 
một cách đồng thời 
Hệ thống quản l{ phiên bản mã nguồn 
VCS (version control systems) là hệ thống lưu giữ 
các phiên bản của mã nguồn của sản phẩm phần 
mềm 
VCS cho phép người quản trị phân chia các tập tin 
cho từng thành viên 
Cho phép các thành viên có thể phát hiện lỗi và 
sửa lỗi thuận tiện 
Tự động so sánh và cập nhật mã nguồn khi các 
thành viên sửa đổi cùng một tập tin tại cùng một 
thời điểm 
Hệ thống quản l{ phiên bản mã nguồn 
Hoạt động theo mô hình 
o Sao chép – Sửa đổi – Gộp 
Hệ thống quản l{ phiên bản mã nguồn 
 Người phát triển (developer) tải một bản copy đang 
làm việc của chương trình từ hệ thống (check out) 
 Người phát triển chỉnh sửa bản sao chép một cách tự 
do. Cùng thời điểm, các người phát triển khác cũng 
đang làm việc trên bản copy của họ 
 Người phát triển kết thúc việc thay đổi và chuyển nó 
cho hệ thống quản l{ mã nguồn (commit) 
 Các nhà phát triển khác có thể yêu cầu truy vấn thư 
viện các bản copy để thấy bản copy chính (master 
copy) có thay đổi hay không. Nếu có, hệ thống tự động 
cập nhật các bản copy đang làm việc của họ 
Hệ thống quản l{ phiên bản mã nguồn 
Hệ thống quản l{ phiên bản mã nguồn 
o CVS (Concurrent Versions System) 
o Subversion (SVN) 
o Git 
o Github 
o SourceForge 
o ... 
CVS (Concurrent Versions System) 
 CVS: Hệ thống các phiên bản đồng thời. 
 Đây là hệ thống quản l{ phần mềm mã nguồn mở, 
được đề xuất bởi Dick Grune vào những năm 80 
 CVS được dùng để theo vết tất cả các công việc và các 
thay đổi trong một tập hợp các tập tin. 
 CVS cho phép nhiều lập trình viên phát triển phần 
mềm cộng tác với nhau 
 CVS được cấp phép bởi giấy phép công cộng GNU GPL 
 Ngừng phát hành phiên bản mới từ 2008 
Subversion (SVN) 
Subversion được thiết kế với mục đích thay thế 
phần mềm quản l{ phiên bản Concurrent 
Versioning System (CVS) đã cũ và có nhiều nhược 
điểm 
Một số các lập trình viên chính cho dự án CVS 
tham gia phát triển Subversion 
Subversion rất phổ biến trong giới mã nguồn mở 
và được dùng để quản l{ mã nguồn cho nhiều 
ứng dụng Phần mềm miễn phí như: Apache 
Software Foundation, KDE, GNOME, Free Pascal, 
FreeBSD, GCC, Python, Ruby,.. 
Subversion (SVN) 
SourceForge.net và Tigris.org, nơi chứa miễn phí 
chuyên nghiệp dành cho các ứng dụng tự do, đều 
hỗ trợ Subversion cho các ứng dụng lưu trữ trong 
máy chủ 
Google Code, BountySource chỉ dùng Subversion 
để quản l{ các phiên bản mã nguồn 
Subversion được phát hành với giấy phép Apache 
License. Do đó Subversion là một phần mềm 
nguồn mở và miễn phí 
Git/Github 
Git là phần mềm quản l{ mã nguồn phân tán 
được phát triển bởi Linus Torvalds vào năm 
2005, ban đầu dành cho việc phát triển nhân 
Linux. 
Hiện nay, Git trở thành một trong các phần 
mềm quản l{ mã nguồn phổ biến nhất 
Git là phần mềm mã nguồn mở được phân 
phối theo giấy phép công cộng GPL2 
Git/Github 
 GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa 
trên nền web cho các dự án phát triển phần mềm. 
 Cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản 
 Các dự án mã nguồn mở sẽ được cung cấp kho lưu trữ miễn 
phí 
 Đến 4/2016, GitHub có hơn 14 triệu người sử dụng với hơn 35 
triệu kho mã nguồn 
 Github đã trở thành một yếu có sức ảnh hưởng trong cộng 
đồng phát triển mã nguồn mở 
 Nhiều nhà phát triển đã xem nó là một sự thay thế cho HS xin 
việc. Một số nhà tuyển dụng đánh giá ứng viên thông qua kho 
mã nguồn của họ. 
Git/Github 
Làm việc với Github.com 
oOnline trên giao diện website 
oSử dụng GFW (Github for windows) 
 Xem tài liệu bổ sung 
Bài tập về nhà 
Sử dụng Github.com 
o Đăng k{ tài khoản 
o Tạo dự án 
o Mời 3-5 bạn tham gia vào dự án 
o Quản l{, phát triển dự án 
Chuẩn bị cho bài học tiếp theo 
o Phần mềm VMWare 
o File ISO tạo máy ảo Linux 
            Các file đính kèm theo tài liệu này:
 phan_mem_nguon_mo_chuong2_9237_1997526.pdf phan_mem_nguon_mo_chuong2_9237_1997526.pdf