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

6 2.7K 32
Đề cương mã NGUỒN mở

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

Thông tin tài liệu

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

LÝ THUYẾT NGUỒN MỞ Câu 1: Trình bày khái niệm phần 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 nguồn và được quyền sửa đổi 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 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ở của tổ chức. => Như vậy OSS không chỉ đảm bảo cho người phát triển còn cho phép toàn bộ người sử dụng có quyền sử dụng, thay đổi, sửa đổi 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 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” 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 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 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 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 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 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 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ộ 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 còn cho phép toàn bộ người sử dụng có quyền sử dụng, thay đổi, sửa đổi 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 phỏng luyện kim, Viện toán học – các sản phẩ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ề hình đĩa cấu trúc cộng đồng pm MNM? 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 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 hình phát triển PMMMN? hình phát triển PMNM  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 nguồn miễn phí hay có phí, người sử dụng có quyền sửa đổi và sử dụng 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 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 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ộ 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 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 . 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. 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. 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

Ngày đăng: 24/05/2014, 23:41

Từ khóa liên quan

Mục lục

  • 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?

    • * 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:

    • 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 đó?

    • 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?

    • 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?

    • Câu 5: Trình bày về mô hình đĩa cấu trúc cộng đồng pm MNM?

    • 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?

    • Câu 7: So sánh quy trình phát triển PMMNM và PM nguồn đóng?

      • So sánh điểm giống nhau:

      • Câu 8 Trình bày ưu,nhược điểm của 1 số PM mã nguồn mở:

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

Tài liệu liên quan