Tải bản đầy đủ (.docx) (6 trang)

Đề cương mã NGUỒN mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (193.18 KB, 6 trang )

LÝ THUYẾT MÃ NGUỒN MỞ
Câu 1: Trình bày khái niệm phần mềm mã nguồn mở và phần mềm tự do? Nêu điểm khác nhau cơ
bản gữa 2 phần mềm này?
Định nghĩa:
*Phần mềm nguồn mở viết tắt là OSS (Open Source Software):
Định nghĩa về OSS: Có nhiều định nghĩa khác nhau về OSS như sau:
 OSS được hiểu là phần mềm hoặc hệ phần mềm cho phép người truy cấp có thể truy cập một
cách tự do (Free – access) đến mã nguồn và được quyền sửa đổi mã nguồn đó.
 OSS là các phần mềm cho phép người sử dụng có quyền chạy, sao chép, phân phối hay thay đổi
và cải tiến nó cho phù hợp với nhu cầu sử dụng mà không cần phải có sự cho phép hay phải trả
tiền.
 Định nghĩa OSS của tổ chức OSI (Tổ chức sáng kiến nguồn mở - Open source Initiatitive): OSS
là phần mềm tự do có sử dụng bất kì một dạng bản quyền nào được chấp nhận của OSI trong bản
liệt kê các bản quyền mà mở của tổ chức.
=> Như vậy OSS không chỉ đảm bảo cho người phát triển mà còn cho phép toàn bộ người sử dụng
có quyền sử dụng, thay đổi, sửa đổi mã nguồn.
* Phần mềm tự do: (Free software) là phần mềm thoả mãn 4 điều kiện tự do, bao gồm:
 Tự do chạy chương trình với mọi mục đích.
 Tự do nghiên cứu chức năng của chương trình, và thích ứng chương trình theo nhu cầu của bạn
(hệ quả là quyền truy cập mã nguồn của chương trình).
 Tự do phân phối bản sao của chương trình cho mọi người.
 Tự do cải tiến chương trình và tự do công bố cải tiến của mình.
Điểm khác nhau gữa 2 PMMNM và PMTD:
 Theo định nghĩa của OSI, PMNM không khác lắm so với PMTD. Tuy nhiên tiêu chí của PMNM
ít khắt khe hơn → mập mờ, dễ bị lợi dụng.
 PMNM không nhấn mạnh về tư tưởng “tự do” mà chú ý nhiều hơn đến “miễn phí” và “mã
nguồn”.
 Người sử dụng và phát triển nên tránh nhầm lẫn giữa PMTD và PMNM bằng cách xác định các
tiêu chí, điều kiện của giấy phép sử dụng và phân phối phần mềm.
Câu2: Có bao nhiêu thành viên trong cộng đồng phát triển phần mềm mã nguồn mở?Hãy trình bày
hiểu biết về những thành viên đó?


*: Một số nhóm nghiên cứu PMNM phân định ra 8 loại thành viên trong cộng đồng PMNM:
 vi (Peripheral Developer): Đóng góp thêm các chức năng, tính năng mới cho hệ thống (đóng
góp là ko thường xuyên → thời Người dùng thụ động (Passive User): Chỉ đơn thuần sử dụng
các phần mềm như các phần mềm thương mại, quan tâm đế PMNM chủ yếu do chất lượng cao
và khả năng tự thay đổi khi cần thiết.
 Người đọc (Reader): Người dùng chủ động, tích cực, không chỉ sử dụng mà còn cố gắng tìm
hiểu xem hệ thống hoạt động như thế nào bắng cách đọc mã nguồn. Đóng vai trò như người xét
duyệt (Peer Reviewers) trong tổ chức phát triển phần mềm truyền thống.
 Người báo lỗi (Bug Reporter): Phát hiện và thông báo lỗi (không sửa lỗi và có thể không đọc
mã nguồn), đóng vai trò của người kiểm thử (testers) trong tổ chức phần mềm truyền thống.
 Người sửa lỗi (Bug Fixer): Sửa các lỗi do họ phát hiện hoặc người khác thông báo. Phải đọc,
hiểu cặn kẽ phần mã nguồn phát sinh lỗi thì mới có thể chỉnh sửa được.
 Người phát triển ngoại gian tham gia ngắn).
 Người phát triển tích cực (Active Developer): Thường xuyên đóng góp các tính năng mới và giải
quyết các lỗi. Là lực lượng phát triển chủ yếu của các hệ PMNM.
 Thành viên cốt cán (Core Member): Chịu trách nhiệm dẫn dắt, điều phối sự phát triển của dự án
PMNM. Là những người “thường trực” của dự án, tham gia với thời gian đủ dài và có những
đóng góp nhất định cho sự tiến hóa và phát triển của hệ thống. Trong một số cộng đồng PMNM,
những thành viên cốt cán được gọi là những người bảo trì (Maintainers).
 Trưởng dự án (Project Leader): Là người nêu sáng kiến, tạo lập dự án, có trách nhiệm quán
xuyến hướng phát triển của dự án.
Câu 3:Phân tích lợi ích của PMMNM đối với người sáng lập và người sử dụng?
Phân tích lợi ích:
 Phát triển PMNM cho phép xây dựng các sản phẩm phần mềm 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í dụ: Linux).
 Thúc đẩy quá trình tham gia của nhiều người vào quá trình xây dựng và phát triển phần mềm.
Phát triển PMNM là quá trình tự phát triển, nếu dự án PMNM thu hút được sự quan tâm của
đông đảo người sử dụng thì nó sẽ phát triển rất nhanh chóng.
 PMNM cho phép kiểm soát mã nguồn, kiểm thử và gỡ lỗi với chất lượng cao hơn các PMNK.
 PMNM thúc đẩy khả năng tái sử dụng của mã. Lập trình viên có khả năng truy cập tới toàn bộ

mã nguồn và anh ta có khả năng để lựa chọn sử dụng và kế thừa những gì cần thiết.
 =>
Như vậy OSS không chỉ đảm bảo cho người phát triển mà còn cho phép toàn bộ người sử dụng có
quyền sử dụng, thay đổi, sửa đổi mã nguồn.
Câu 4:Hãy nêu hiểu biết của mình về sự phát triển PMMNM tại việt Nam?Những cơ hội và thách
thức đặt ra cho sự phát triển PMMNM tại Việt Nam?
Sự phát triển của PMNM tại Việt Nam:
Quá trình phát triển của PMNM:Linux vào Việt nam đầu những năm 90, phong trào PMNM bắt đầu
xuất hiện bằng sự hình thành các nhóm nghiên cứu Linux, ngoài ra còn được ứng dụng tại các trung tâm
đào tạo: Viện tin học Pháp ngữ, Đại học quốc gia HCM, ĐH Bách khoa, ĐH Cần Thơ, ĐH Huế.
Hai sản phẩm quan trọng: Hệ điều hành Linux, các ứng dụng Tin học văn phòng được việt hóa bởi
Việt Khang (Vietkey Linux), CMC Ngoài ra còn có các sản phẩm nhúng trên các thiết bị cầm tay.
Đối với các thiết bị cầm tay, nhúng: CDiT(Tổng công ty bưu chính Viễn thông), Vietkey group,
Cadpro.
Ứng dụng trên Web: Nhất Vinh – phần mềm thiết kế & quản lý Web.
Máy tính hiệu năng cao: ĐHBK mô phỏng luyện kim, Viện toán học – các sản phẩm mô phỏng dự
báo thời tiết, công ty AIC bộ Quốc phòng cho các nhiệm vụ huấn luyện, đào tạo sử dụng trang thiết bị
quốc phòng.
Hợp tác Quốc tế: IBM, Sun, UNDP, Hàn quốc, Trung quốc, Nhật bản
Đặt ra những thách thức:
 Ý thức về bản quyền phần mềm thấp (dùng PM không hợp pháp là bình thường).
 Phụ thuộc vào một môi trường (quen dùng Microsoft).
 Thiếu hiểu biết pháp lý về PMNM (chưa hiểu biết về lợi ích của PMNM – chung – riêng).
 Thiếu nguồn nhân lực và kinh nghiệm (chưa có đội ngũ có kinh nghiệm cung cấp các dịch vụ hỗ
trợ).
Và những cơ hội:
 Nhu cầu bảo vệ bản quyền phần mềm: Hiệp định thương mại Việt Mỹ, WTO, Bell.
 Chính phủ kiểm soát chi tiêu CNTT.
 Cộng đồng PMNM trên thế giới đạt được nhiều kết quả.
 Sinh viên và thế hệ trẻ Việt nam có năng lực tiếp thu nhanh đối với sự đổi mới và chuyển đổi

 Các tổ chức quốc tế và nhiều nước hỗ trợ việc hợp tác và ứng dụng phát triển PMNM: UNDP;
WB
Câu 5: Trình bày về mô hình đĩa cấu trúc cộng đồng pm MNM?
Mô hình đĩa cấu trúc cộng đồng PMNM:
Cấu trúc đĩa bao từ ngoài vào trong (có thể coi là cấu trúc phân cấp), ở trung tâm của đĩa là trưởng
dự án, càng gần tâm thì vai trò của thành viên càng có nhiều ảnh hưởng tới dự án.
Vòng ngoài cùng là người dùng thụ động, ít có ảnh hưởng tới dự án. Tuy nhiên lại có vai trò quyết
định tới sự tồn tại và phát triển dự án (nếu đồng đảo người dùng quan tâm sẽ kích thích thành viên cốt cán
làm việc hăng say hơn – yếu tố tâm lý và xã hội).
Vai trò và ảnh hưởng trong cộng đồng không liên quan đến tuổi tác và địa vị của thành viên. Càng
đóng góp nhiều thì thành viên càng tiến gần vào tâm của cấu trúc hơn.
Để duy trì cộng đồng PMNM có được sự phát triển bền vững, phải đảm bảo tính cân đối trong cấu
trúc bởi vì nếu tất cả các thành viên là người dùng thụ động thì phần mềm không thể phát triển còn nếu tất
cả đều là thành viên cốt cán thì lại khó điều hòa mọi cố gắng, phát triển. Sự tiến hóa của phần mềm là
không bền vững.
Phân bố thành viên trong từng cộng đồng PMNM khác nhau phụ thuộc vào bản chất của hệ phần
mềm. Nói chung, phần lớn thành viên là người dùng thụ động (trong cộng đồng Apache, 99% thành viên
là người dùng thụ động) và tỷ lệ người dùng giảm nhanh từ người đọc đến thành viên cốt cán. Đa số các
PMNM chỉ do số ít các thành viên thực sự phát triển.
Câu 6:Hãy trình bày mô hình phát triển PMMNM, các quá trình của dự án phần mềm mã nguồn
mở và các ưu điểm của mô hình phát triển PMMMN?
Mô hình phát triển PMNM
 Mô hình phát triển PMNM có đủ tất cả các giai đoạn của quy trình nói chung, dự án PMNM
được chia làm 2 loại theo tính chất:
 Dự án được tài trợ toàn phần: Kinh phí được tài trợ toàn phần bởi các tổ chức. Quy trình phát
triển giống bất kỳ dự án phần mềm thương mại nào khác (nhưng tính chất lại là nguồn mở). Ví
dụ: BSD, BIND, Sendmail
 Dự án không được tài trợ: Không được hỗ trợ kinh phí, mọi người tham gia dự án với tính chất
phi thương mại. (Tuy nhiên vẫn có những điều khoản quy định: 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 hay không?).

Các quá trình của dự án PMNM:
(1) Xác định yêu cầu của phần mềm (Requirement Engineering):
(2) Phân tích hệ thống phần mềm (Analysis):
(3) Thiết kế chi tiết(Design)
(4) Thực hiện (Development):
(5) Kiểm thử (Testing):
(6) Triển khai
(7) Bảo dưỡng
Các ưu điểm của mô hình phát triển PMNM
 Phát triển PMNM cho phép xây dựng các sản phẩm phần mềm 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í dụ: Linux).
 Thúc đẩy quá trình tham gia của nhiều người vào quá trình xây dựng và phát triển phần mềm.
Phát triển PMNM là quá trình tự phát triển, nếu dự án PMNM thu hút được sự quan tâm của
đông đảo người sử dụng thì nó sẽ phát triển rất nhanh chóng.
 PMNM cho phép kiểm soát mã nguồn, kiểm thử và gỡ lỗi với chất lượng cao hơn các PMNK.
 PMNM thúc đẩy khả năng tái sử dụng của mã. Lập trình viên có khả năng truy cập tới toàn bộ
mã nguồn và anh ta có khả năng để lựa chọn sử dụng và kế thừa những gì cần thiết.
Câu 7: So sánh quy trình phát triển PMMNM và PM nguồn đóng?
So sánh điểm khác nhau: Dựa vào biểu đồ trên ta thấy chi phí cho việc phát triển phần mềm nguồn
đóng là tương đối lớn, chi phí chuyển đổi từ phần mềm nguồn đóng sang phần mềm nguồn mở còn cao
hơn cả chi phí để xây dựng phần mềm nguồn đóng.
Việc phát triển phần mềm theo hướng OSS sẽ là hướng tốt nhất, tiết kiệm thời gian và hiệu quả kinh
tế cao nhất, từ đó đẩy nhanh được sự phát triển phần mềm nói riêng và Công nghệ thông tin nói chung.
 Quy trình phát triển PMNK:
Các PMNK tuân thủ nghiêm ngặt theo các bước của quy trình nêu trên. Tuy nhiên, PMNK thường
phụ thuộc HĐH cho nên sử dụng các hàm của HĐH đó (API – Application Programming Interface).
Dự án PMNM được chia làm 2 loại theo tính chất:Dự án được tài trợ toàn phần và dự án không được
tài trợ
So sánh điểm giống nhau:
 Quy trình phát triển PM: Các phần mềm (mở hay đóng) đều thực hiện theo các bước sau:

• Xác định các yêu cầu phần mềm (Requirement Engineering)
• Phân tích hệ thống phần mềm (Analysis)
• Thiết kế chi tiết (Design)
• Thực hiện (Deployment)
• Kiểm thử (Testing)
• Tích hợp, triển khai (Intergration – Implementation)
• Bảo dưỡng
Câu 8 Trình bày ưu,nhược điểm của 1 số PM mã nguồn mở:
PrestaShop – Giải pháp website thương mại điện tử cho cá nhân và doanh nghiệp với những chức
năng đầy đủ và hoàn thiện nhất của một website 2.0 chuyên nghiệp bán hàng trực tuyến e-Commerce
shopping cart.
Được phát triển từ năm 2005, trước đây PrestaShop khá ít tên tuổi, do phát hành chủ yếu với phiên
bản tiếng Pháp. Nhưng thời gian gần đây, với những cải tiến vượt bậc, PrestaShop đã trở thành mã nguồn
mở khá phổ biến.
Ưu điểm chính
 Đầy đủ các chức năng của một website bán hàng trực tuyến: thêm, sửa, xóa, thống kê sản
phẩm, nhà sản xuất, nhà phân phối, khách hàng ,…
 Theo dõi tình trạng bán hàng, thông báo cho khách hàng bằng tin nhắn sms, thu thập thông tin
khách hàng,…
 Áp dụng được nhiều phương thức thanh toán khác nhau với các đơn vị tiền tệ lưu hành phổ
biến.
 Tốc độ tải và xử lý nhanh. An toàn, bảo mật.
 URL thân thiện, tối ưu máy tìm kiếm SEO, quản lý nội dung CMS…
 Bạn không cần quan tâm tới chi phí mua phần mềm hay vấn đề bản quyền vì Prestashop là
phần mềm nguồn mở và hoàn toàn miễn phí.
 Thường xuyên cập nhật các phiên bản mới hơn để sửa các lỗi bugs và bổ sung thêm các chức
năng, modules mới.
 Dễ dàng quản trị website với các công cụ tương đối đầy đủ và bảng điều hướng thuận tiện.
 Dễ dàng tích hợp và mở rộng phát triển các modules độc lập
 Giao diện thân thiện, dễ sử dụng, có thể thiết kế giao diện độc lập.

khuyết điểm:
 Khả năng quản lý Url-rewrite khá yếu, không có khả năng mở rộng tùy biến. Làm giảm đáng
kể khả năng SEO của website.
 Thuật toán tìn kiếm của PrestaShop được đánh giá là khá yếu so với các Opensource khác.
 Kiến trúc Extensions hỗ trợ cho bên thứ 3 tự phát triển khá yếu

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×