PHẦN MỀM MÃ NGUỒN MỞ VÀ PHƯƠNG PHÁP HỌC

12 1.4K 4
PHẦN MỀM MÃ NGUỒN MỞ VÀ PHƯƠNG PHÁP HỌC

Đ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

PHẦN MỀM MÃ NGUỒN MỞ VÀ PHƯƠNG PHÁP HỌC

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HCMKHOA CNPM

BÀI LUẬN

PHƯƠNG PHÁP LUẬN SÁNG TẠO KHOA HỌC PHẦN MỀM MÃ NGUỒN MỞ VÀ PHƯƠNG PHÁP HỌC

Giảng viên hướng dẫn : GS.TSKH Hoàng Kiếm

Sinh viên thực hiện: Nguyễn Trung KiênLớp : CNPM01

Khoá : 01

Trang 2

LỜI CẢM ƠN

Đầu tiên, em xin chân thành cám ơn thầy Hoàng Kiếm đã truyền đạt cho chúng em những kiến thức trong bài giảng của môn Phương pháp luận sáng tạo

khoa học để chúng em hoàn thành đề tài này và đặc biệt là các phương pháp sáng

tạo mà thầy đã giới thiệu.

Với bài tiểu luận này em muốn vận dụng các phương pháp đã được học để đưa ra cách tiếp cận với một phần mềm mã nguồn mở theo kinh nghiệm của bản thân em Và từ đó các bạn có thể chọn ra một phương pháp của riêng mình để tiếp cận phần mềm mã nguồn mở cho phù hợp với bản thân.

Mặc dù đã rất nỗ lực, cố gắng nhưng kiến thức và kinh nghiệm thực tế còn hạn chế nên chắc chắn bài tiểu luận này vẫn còn nhiều thiếu sót Em rất mong nhận được sự góp ý đánh giá của các thầy cô để em có thể phát triển báo cáo này thêm hoàn chỉnh hơn

Một lần nữa, em xin chân thành cảm ơn!

TpHCM, ngày 31 tháng 12 năm 2009Lớp CNPM01

Sinh viên thực hiện:

Nguyễn Trung Kiên

Trang 5

Mục Lục

I, Lịch sử và định nghĩa 5

I.1 Định nghĩa opensource 5

I.2 Tiện ích của mã nguồn mở: 7

Với những quốc gia đang phát triển 7

Bảo mật: 8

Kiến thức: 8

II, Quy trình phát triển trên một phần mềm mã nguồn mở 9

Nguyên tắc sao chép, copy: 10

Phương pháp phân nhỏ, tách khỏi và linh động: 10

Nguyên tắc dự phòng và sử dụng trung gian 11

III, Kết luận và phương pháp học 11

Trang 6

I, Lịch sử và định nghĩaI.1 Định nghĩa opensource

Định nghĩa của Open Source Phiên bản 1.9

<http://opensource.org/docs/definition.html> Giới thiệu

Nguồn mở không chỉ có nghĩa là có thể xem mã nguồn của những trương trình tin học Từ ngữ sử dụng khi phân phối phần mềm phãi tuân thủ những điều khoản sau đây:

1 Tái phân phối miễn phí

Giấy phép sử dụng không được giới hạn bất kỳ ai trong việc bán hay cho không phần mềm cấu thành nên phần mềm hoàn chỉnh hình thành từ các nguồn khác nhau Giấy phép sử dụng không được đòi hỏi bất cứ phí tổn nào trong một thương vụ mua bán như vậy.

2 Mã nguồn

Chương trình bắt buộc phải đi kèm mã nguồn và sự phân phối phải bao gồm mã nguồn cũng như dạng biên dịch Trong trường hợp một số phần của sản phẩm không được phân phối cùng với mã nguồn, phải có những cách thức được chỉ dẫn rõ ràng cho mọi người để nhận lấy mã nguồn với giá phù hợp chi phí tái chế, hoặc là nhận lấy miễn phí qua mạng internet Mã nguồn phải dễ dàng cho một lập trình viên sử dụng hay sữa đổi Việc cố ý làm cho mã nguồn khó hiểu sẽ không được phép Những dạng trung chuyển chẳng hạn như sản phẩm của một quá trình tiền xử lý hoặc biên dịch đều không được phép.

3 Phát triển trên các phần mềm có sẵn

Giấy phép sử dụng phải cho phép việc sữa đổi và phát triển phần mềm dựa trên các phần mềm có sẵn và phải cho phép việc phân phối các phần mềm này theo cùng các điều khoản qui định cho phần mềm gồc.

4 Tính toàn vẹn dành cho mã nguồn của tác giả

Giấy phép sử dụng có thể giới hạn việc phân phối mã nguồn dưới dạng được sữa đổi chỉ với điều kiện giấy phép sử dụng cho phép việc phân phối các tập tin bổ sung kèm theo mã nguồn dùng cho mục đích sữa đổi chương trình tại thời điểm xây dựng chương trình đó Giấy phép sử dụng phải cho phép một cách rõ ràng việc phân phối phần mềm hình thành từ nguồn mở đã được sữa đổi Giấy phép có thể đòi hỏi các phần mềm phát triển dựa trên những phần mềm có sẵn phải mang tên

Trang 7

hoặc số phiên bản khác với phần mềm gốc.

5 Không phân biệt cá nhân hay tập thể

Giấy phép sự dụng không được phân biệt bất cứ cá nhân hay đoàn thể nào

6 Không phân biệt lãnh vực sử dụng

Giấy phép sử dụng không được giới hạn bất cứ ai trong việc sử dụng chương trình ở một lãnh vực cụ thể Ví dụ như một giấy phép không thể giới hạn một trương trình chỉ được sử dụng trong lãnh vực kinh doanh hay chỉ được sử dụng trong lãnh vực nghiên cứu di truyền.

7 Việc phân phối giấy phép

Các quyền sử dụng đính kèm với phần mềm phải được áp dụng đối với bất cứ ai được tái phân phối phần mềm mà không đòi hỏi phải có bất cứ giấy phép bổ sung

8 Giấy phép không được giới hạn một cách cụ thể đến một sản phẩm

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

9 Giấy phép phải không giới hạn phần mềm khác

Giấy phép phải không áp đặt những giới hạn lên phần mềm khác được phân phối kèm theo phần mềm đã có giấy phép Ví dụ như giấy phép phải không đòi hỏi tất cả những trương trình được phân phối kèm theo phải là nguồn mở phần mềm.

I.2 Tiện ích của mã nguồn mở:Với những quốc gia đang phát triển

Những nước đang phát triển (cụ thể là những quốc gia ít phát triển nhất) đương đầu với tính đa dạng và những tai biến của các chu kỳ phát triển tin học Vấn đề này nằm ngoài các phương tiện khả thi đối với hầu hết các cá nhân lẫn tập đoàn và các phân bộ hành chánh, liên hệ đến giá thành của máy và phần mềm căn bản, đại loại là phần mềm hoạt nền [OS] hoặc phần mềm văn phòng [OP] Hậu quả này đưa các quốc gia này đến chỗ, hoặc chấp nhận thiệt thòi trên phương diện thâu gặt

Trang 8

những ích lợi của tính công nghệ cấp tiến và bởi thế, lỡ làng trong "cuộc cách mạng công nghệ tin học" (hậu quả này tương tự như một lần nữa, lỡ bước cuộc cách mạng kỹ nghệ hóa nếu như chúng ta mong muốn họ thịnh vượng và phát triển thì họ không còn một chọn lựa nào khác), hoặc đành phải đi vào con đường xâm phạm luật bản quyền.

Ðây là điều không may, bởi kỹ nghệ hóa vĩ mô đòi hỏi nguồn đầu tư khổng lồ trên phương diện thời gian và cơ sở hạ tầng (đường xá, hải cảng ), trong khi đó, sự hình thành các chuỗi tin học ứng dụng có thể được giải quyết nhanh hơn và ít tốn kém hơn, ngay cả ở những vùng xa xôi và thiếu thốn Các quốc gia đang phát triển có thể ứng hiệu phương thức kỹ nghệ hóa bằng cách đi thẳng vào nền kinh tế ứng dụng kỹ năng tin học để tạo nên sự thịnh vượng và công ăn việc làm, đồng thời nới rộng những ích lợi điện toán mang đến cho các giới tiêu dùng (nâng cao năng xuất, thông tin điện thơ ) Những đòi hỏi căn bản gồm có: huấn nghệ, điện lực, máy vi tính và phần mềm.

Tuy nhiên, những nơi sản phẩm của Microsoft trở nên một thứ bán-tiêu-chuẩn, những máy vi tính không thể đọc và tạo những hồ sơ tương thích tiêu chuẩn Microsoft, gần như được xem là vô dụng đối với người dùng bình thường Nhưng theo bản dẫn sau đây cho thấy khá rõ ràng những quốc gia như Việt Nam, đối với những công dân bình thường, giá cả của loại phần mềm tiêu chuẩn (Microsoft) quả nhiên đắt đỏ đến mức không kham nổi; nếu bán phần mềm tiêu chuẩn này dựa trên thu nhập quốc dân thì vấn đề này không còn tính hấp dẫn thương mại đối với Microsoft, bởi lẽ vấn đề này sẽ dẫn đến khối lượng xuất cảng song phương khổng lồ (ví dụ mua phần mềm ở Việt Nam và bán lại ở Châu Âu hoặc Hoa Kỳ) Vì lẽ đó, một điều không đáng để ngạc nhiên là đa số phần mềm được xử dụng ở các quốc gia đang phát triển hầu hết, thuộc dạng bất hợp pháp Một khi sự thật phủ phàng này tiếp tục, nó sẽ dẫn đến khuynh hướng hình thành một thứ văn hóa: vi phạm bản quyền phần mềm một nỗi bế tắc đối với những người làm chủ bản quyền, chính quyền của họ và đương sự các phía.

Ngoài vấn đề đắt đỏ, hệ điều hành mới của Microsoft có xu hướng càng ngày càng gia tăng nhu cầu năng lực xử lý và khả năng trữ chứa dữ liệu của máy, nhu cầu này dẫn đến tình trạng máy dùng bị lỗi thời chỉ trong vòng vài năm Các quốc gia đang phát triển không thể kham nỗi cả chu kỳ nâng cấp và đầu tư kế tiếp lẫn tình thế sa thải thiết bị Trong khi đó, hầu như không có giải pháp nào khác cho tình hình hiện tại.

Tuy ở việt nam đã có nhiều công ty nhận ra mã nguồn mở là một hướng đi kinh tế tuy nhiên so với khách hàng thì đây vẫn là một món hàng kém chất lượng do quá rẻ và ai cũng biết Khách hàng có nhiều nghi nghờ.

Trang 9

Chất lượng: Không như phần mềm thương mại (trường hợp mã nguồn tạo nên phần mềm thương mại là một thứ bí mật kinh doanh) một trong những điểm mạnh của GNU GPL là sự phân bố rộng rãi mã nguồn (cắt nghĩa cho lý do tại sao loại phần mềm này được biết đến như là Mở Nguồn), đây là điểm chính cho phép lập trình viên khắp nơi trên thế giới liên tục nâng cao hiệu quả của các ứng trình theo định hướng mà không có bất cứ tập đoàn tư nào kể cả Microsoft có thể sánh được.

Những tu bổ hoàn chỉnh nhất của loại "phần mềm theo chủ thuyết Darwin" này sẽ hình thành phiên bản phát hành của các ứng trình Mã nguồn (loại mã có thể đi vào hàng triệu hàng) được liên tục trau chuốt và nâng cao từ khắp nơi trên thế giới, suốt ngày đêm, từ hàng ngàn lập trình viên Kết quả mang lại một phiên bản phần mềm cực ổn và mạnh mẽ, kích lực máy điện toán Desktop, máy chủ Internet và ngay cả vài loại siêu điện toán trên thế giới (ví dụ chùm Beowulf ) ở NASA và các tổ chức khác cần nhu cầu năng lượng xử lý miễn phí.

Bảo mật: Thêm một thuận lợi to lớn của Mở-Nguồn (đặt biệt quan trọng đối với

các chính phủ và các đại tổ hợp) là tính năng cho phép người dùng biết được sự an toàn của phần mềm đó Nó không nhân nhượng tính bảo mật bằng cách thu thập (hoặc cho phép thu thập) dữ liệu bí mật một cách thiếu thận trọng (hành động thu thập qua quá trình khuấy tìm những lỗi sai trong hệ thống), hoặc có chủ ý (xuyên qua cách dùng "cửa sau") Bởi thế, với những vấn đề trọng tâm thuộc bảo mật, không phải ngẫu nhiên mà các đại công ty (các nhà băng, các công ty viễn thông, các dịch vụ Internet ) và các chính phủ (ví dụ như bộ quốc phòng Hoa Kỳ) đang xử dụng phần mềm của GPL GNU Phần mềm Mở Nguồn cũng đã chứng minh một cách đáng kể khả năng miễn nhiễm đối với viruses trên máy điện toán và các hoạt động khuấy tìm.

Kiến thức: Thuận lợi to lớn thứ ba ở chỗ nó cho phép truy nhập vào mã nguồn,

một khả năng giúp các lập trình viên, những người có quan tâm và các sinh viên đại học học tập phương thức ứng hoạt của các phần mềm đương đại, và kế tiếp đi đến nâng cấp tổng quát hoá Thay vì dựa trên luật bản quyền để giới hạn cạnh tranh qua bước chặn giao lưu kiến thức, phần mềm GNU GPL xây dựng từ những nâng cấp và những khám phá chung của cộng đồng như một mô phỏng của quá trình nghiên cứu khoa học (liên hệ những quan tâm cụ thể đến các quốc gia đang phát triển) Phần mềm GNU cũng dựa trên tiêu chuẩn hồ-sơ-mở, giúp giảm thiểu các lệ thuộc vào mỗi phần mềm cá biệt

Tái dụng: Hoạt nền GNU Linux có ứng dụng khối tự nhiên và hoạt nền này có thể

đơn giản hóa để thích hợp với phần chứa nhỏ hơn, cho phép tái ứng dụng các máy điện toán cũ (ví dụ 386, 486, Pentium I) cho phép nó làm việc như máy hồ sơ chủ, máy chủ phục vụ Internet hoặc máy chủ wi-fi Các máy điện toán cũ trở nên tái

Trang 10

dụng hoàn hảo dưới phần mềm GNU, điều này phá vỡ chu kỳ liên tục nâng cấp và đầu tư.

Tiết kiệm chi phí:

Theo một báo cáo gần đây từ Forrester Research, các công ty có thể tiết kiệm tới 25% chi phí duy trì cơ sở dữ liệu bằng cách chuyển sang sử dụng mã nguồn mở và ngoài ra là 25% chi phí phần cứng Tiết lộ từ Nidiffer, lãnh đạo C&K Market cho hay, họ đã tiết kiệm được gần 20% chi phí so với trước đây khi chuyển qua sử dụng nền tảng cơ sở dữ liệu của Ingres.

Một nguyên tắc được xác định để căn cứ vào chọn phần mềm mã nguồn mở đó là

Rẻ Thay Cho Đắt, như đã trình bày ở trên phần mềm mã nguồn mở tuy mã nguồn

của nó được chia sẻ cho nhiều người nên có thể có sự lo ngại về bảo mật… ai cũng biết mã nguồn rồi thì việc phá hoại website có dễ dàng quá không, chương trình rẻ thì giá không tốt bằng chương trình có bản quyền…

phần mềm mã nguồn mở chính nhờ tính mở của nó mà nó mới trở nên mạnh mẽ, nó được cộng đồng đóng góp, hoàn thiện và nâng cấp nên có thể nói người sử dụng có thể hoàn toàn yên tâm về vấn đề bảo mật cũng như chất lượng

Bảo mật, không chỉ là ở phần mềm mã nguồn mở mà người sử dụng chọn mà còn nằm ở hạ tầng mạng công ty và nhiều yếu tố khác.

II, Quy trình phát triển trên một phần mềm mã nguồn mở

Ở đây em không nói rõ về một quy trình lớn như là tích hợp một hệ thống bao gồm từ hệ điều hành, tới quản lý tài liệu (Enterprise Content Management System), quản lý nhân lực (HRM), khách hàng (CRM) mà chỉ đưa ra trong khía cạnh người phát triển và triển khai, làm sao để tiếp cận tốt nhất, có cách phát triển, cách sử dụng nó là tốt nhất.

Một phần mềm mã nguồn mở thường có quy trình để tích hợp một module vào cho phù hợp với người sử dụng Module này có thể là nhà sản xuất cung cấp kèm theo(out of box) và cũng có thể là người sử dụng tự phát triển cho phù hợp với nhu cầu cá nhân.

Nguyên tắc sao chép, copy: Điều đầu tiên em đề cập tới đó là cách học một

opensource bằng phương pháp nào thì sẽ tiện lợi nhất và nhanh nhất về sau lẫn hiện tại, đó là phương pháp sao chép(copy), và việc áp dụng phương pháp này như thế nào sẽ là tốt nhất.

Mặc định thì muốn hiểu rõ một opensource đầu tiên đó là phải hiểu rõ tính nghiệp vụ của nó, người phát triển phải sử dụng nó thuần thục với vai trò là người không biết về IT và với vai trò là nhà quản trị Sau đó là bước tìm hiểu về cấu trúc của phần mềm mã nguồn mở.

Trang 11

Việc mở mã nguồn của phần mềm mã nguồn mở lựa chọn là hiệu quả nhất sau khi người phát triển biết được phần mềm của mình sử dụng những công nghệ gì để làm ra (framework, template…)

Cách viết một module tốt nhất là gì? Đó cũng là cách xem mã nguồn của một module mà nhà cung cấp đã viết sẵn cho mình (out of box module)

Thế nhưng nếu chỉ như vậy thì chỉ có thể viết một module, còn vấn đề tốc độ tư duy trong việc viết module thì sao.Người phát triển nếu là trên ngôn ngữ nào thì cũng phải nên tự viết cho mình một chương trình trước đó.Ví dụ nếu là phát triển trên Drupal thì trước đó người phát triển nên tự viết cho mình một chương trình quản lý nội dung, hay là một website thương mại điện tử để hiểu rõ quy trình làm một phần mềm như thế nào.

Việc người phát triển học xong một ngôn ngữ rồi ngay lập tức lao vào một phần mềm mã nguồn mở tất nhiên là không có hại gì nhưng tốc độ tư duy, khả năng lập trình của người đó sẽ không bằng một người trước đó đã từng viết một chương trình.

Cơ bản nguyên tắc sao chép không phải là chép, chép và chép.Mà trước đó phải biết được cơ bản của vấn đề.Làm phần mềm mã nguồn mở cũng vậy, trước khi tiếp xúc với nó các nhà phát triển phải có cái nhìn vững chắc về ứng dụng web, nếu là đang làm việc với các CMS, và hiểu rõ về các Linux nếu làm việc với linux Bản thân em đã làm việc với VtigerCrm khi mà chưa hiểu rõ về PHP,

webapplication, công việc thì vẫn có thể làm bình thường, vừa làm vừa học bằng nguyên tắc sao chép.Tạo mới module dựa vào các module có sẵn của Vtiger và sửa các lỗi của Vtiger chỉ dựa vào kiến thức cơ bản về C/C++ và hướng đối tượng Nếu cứ tiếp tục vậy thì công việc vẫn hoàn thành tốt nhưng về sau, em sẽ không thể theo kịp những người đã làm quen với PHP và ứng dụng web trước em Thực sự bây giờ điều em cần phải làm là viết một ứng dụng web cho em.

Phương pháp phân nhỏ, tách khỏi và linh động: Nếu bản thân người phát triển

có ý định đi sâu về phần mềm mã nguồn mở thay vì dùng nó như là một giải pháp

tạm thời thì nên sử dụng phương pháp phân nhỏ, tách khỏi và linh động áp dụng

hai nguyên tắc này người phát triển sẽ phải định hướng cho module của mình khi viết phải có khả năng tách rời với mã nguồn của phần mềm, có thể dùng module đó cho nhiều phần mềm khác nhau, sử dụng cho các khách hàng có chung mục đích.

Với một vài phần mềm mã nguồn mở thì việc đóng gói module là bản thân nó đã hỗ trợ và bắt buộc người sử dụng phải tuân theo như drupal, joomla … Người phát triển phải viết module thành một gói riêng và theo chuẩn riêng của nó.

Với một vài phần mềm mã nguồn mở khách như Vtiger, việc đóng gói module rất khó, và người phát triển sẽ phải tự mình tối ưu hóa mã nguồn của mình sao cho việc đóng gói là tiện lợi nhất Và với liferay thì người sử dụng được quyền lựa chọn một trong hai khả năng là đính kèm module vào mã nguồn hoặc tách rời module đó ra.

Ngày đăng: 18/09/2012, 14:04

Từ khóa liên quan

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

Tài liệu liên quan