Vòng đời tính năng và những đặc tính của mô hình phát triển nguồn mở

Thứ hai - 16/04/2012 07:34
Trongsố tháng 03/2012 của tạp chí Tin học & Đời sống,chúng ta đã làm quen với mô hình phát triển phần mềmtự do qua bài Tìmhiểu mô hình phát triển phần mềm tự do nguồn mở”.Trong số này, chúng ta sẽ làm quen với vòng đời tínhnăng và những đặc tính của mô hình phát triển này.
A. VÒNG ĐỜI TÍNH NĂNG CỦANGUỒN MỞ
1. Qui trình yêu cầu tính năng
Cácyêu cầu tính năng thường được theo dõi và được ưutiên bằng việc sử dụng các qui trình nhìn thấy đượcđối với phần còn lại của cộng đồng phát triển.Điều này đảm bảo cho một sự hiểu biết chung vềnhững tính năng nào đã được yêu cầu, ưu tiên tươngđối của chúng, tình trạng phát triển của chúng, cáclỗi và các rào cản có liên quan, và khi nào chúng đượclên kế hoạch để phát hành.
Hình2: Vòng đời của tính năng trong mô hình phát triển nguồnmở
Hình3: Dòng chảy của mã nguồn từ những người đóng gópcho tới phiên bản dòng chính cho tới thị trường
Hình3 chỉ ra qui trình đặc trưng được sử dụng để đảmbảo rằng các yêu cầu tính năng được theo dõi, đượcưu tiên, được phát triển và được phát hành một cáchtỉ mỉ chính xác.
Cácyêu cầu tính năng có thể bắt đầu bằng một đề xuấttới một danh sách thư, một thảo luận trên trình chat cóđộ trễ trên Internet IRC (Internet Relay Chat), hoặc như mộtyêu cầu tính năng trong một chương trình quản lý lỗiphát sinh bugzilla của dự án. Yêu cầu đó thường đượcai đó thực hiện mà người đó thường là người dẫndắt triển khai công việc đó. Mục đích của yêu cầulà để lưu ý cho những người khác về nhu cầu, đềxuất xin ý kiến phản hồi, có được sự chấp nhậncho ý tưởng, và đi tới được một sự đồng thuậntrong các bước tiếp sau.
Nhữngngười đóng góp và những người duy trì dự án sau đóđánh giá yêu cầu đó, và xác định liệu nó có nên làmột ứng viên cho một phát hành trong tương lai hay không.Sẽ thường có những thảo luận giữa người đưa ra yêucầu và cộng đồng phát triển để làm sáng tỏ các nhucầu và các yêu cầu. Nếu yêu cầu được chấp nhận,thì một phát hành đích sẽ được thiết lập, và sựphát triển bắt đầu.
2. Thảo luận về kiến trúcvà thiết kế
Mộttrong những yếu tố đóng góp chính cho thành công của môhình phát triển nguồn mở là sự minh bạch của nó, vàkhả năng dàn xếp sự cộng tác phân tán giữa các độidự án. Điều này được hoàn thành bằng việc sử dụngcác phương pháp giao tiếp truyền thông có khả năng truycập được đối với tất cả mọi người trong cộngđồng của dự án để đưa ra quyết định chiến lược,những thảo luận về kiến trúc và rà soát lại mãnguồn.
Cácdanh sách thư là một trong những kênh giao tiếp thườngđược sử dụng nhất vì chúng là tự ghi thành tài liệu,minh bạch, và thường bất kỳ ai có liên quan trong dự ánđều có thể tham gia. Điều này bao gồm cả những ngườisử dụng đầu cuối, những người có thể đang giám sátcác danh sách để hiểu được các tính năng trong tươnglai khi chúng tiến hóa hoặc để đưa ra những ý kiếnphản hồi thực tế.
Bổsung thêm vào với các danh sách thư của dự án, nhiềuđội phân tán sử dụng IRC cho thảo luận trực tiếp vàcác cuộc gặp. Vì bản chất tự nhiên chỉ là văn bảncủa nó, IRC là hữu dụng cho các cuộc gặp về thiết kếvà hỗ trợ của những người sử dụng, đặc biệt khimà tiếng Anh không phải là ngôn ngữ đầu tiên đượcnói của tất cả những người tham gia.
3. Cộng tác trong triển khai
Môhình phát triển nguồn mở nhấn mạnh mạnh mẽ vào sựphát triển cộng tác và rà soát lại ngang hàng, từ ýtưởng đầu tiên cho tới sự chấp nhận cuối cùng. Vìnó có liên quan trong việc hỗ trợ cho các đội đượcphi tập trung hóa cao độ, nơi mà những người đệ trìnhkhông phải tất cả đều được rõ về cá nhân nhữngngười duy trì, nên mô hình này có lợi cho những ai làmviệc với những người khác về thiết kế và triểnkhai trong khi vẫn giao tiếp được rõ ràng với các kếhoạch của họ.
Bổsung thêm, hầu hết các dự án nguồn mở sử dụng cáccông cụ đã tiến hóa để hỗ trợ đóng góp mã nguồntừ nhiều cộng tác viên phân tán và cùng một lúc. Vídụ, hệ thống kho git nguồn mở đã được tạo rađặc biệt để hỗ trợ cho sự phát triển của Linux,nơi mà hàng ngàn người đóng góp đang đệ trình mãnguồn cho bất kỳ phát hành nào được đưa ra. Mỗi lậptrình viên làm việc để phát triển, dò tìm lỗi, xâydựng, và kiểm tra tính hợp lệ mã nguồn của riêng họso với cơ sở mã nguồn hiện hành, sao cho khi tới thờigian để tích hợp vào dự án dòng chính, thì những thayđổi của họ áp dụng rõ ràng được và với một sốnỗ lực hòa trộn tối thiểu. Nếu có một vấn đềchưa được thấy trước với mã nguồn, thì bất kỳ sựđề xuất cá nhân nào cũng có thể dễ dàng được đưatrở về tình trạng cũ trước đó.
4. Đệ trình mã nguồn
Vòngđời của một đệ trình mã nguồn mới, được minh họatrong Hình 4, thường hay là lặp đi lặp lại.
Quitrình này bắt đầu với sự phát triển cộng tác trongmột tập hợp phụ các lập trình viên, những người đãnắm lấy quyền sở hữu cho việc đưa ra tính năng đó.Khi mã nguồn hoạt động và áp dụng một cách sạch sẽso với dự án dòng chính, thì đội dự án đệ trình mãnguồn đó cho một người duy trì dự án qua danh sách thưcủa dự án.
Hình4: Dòng chảy đặc trưng của mã nguồn từ người đónggóp cá nhân tới phiên bản dòng chính
Ngườiduy trì và những người tham gia khác của dự án có thểđưa ra những ý kiến phản hồi về sự đệ trình và từchối chấp nhận nó, trong trường hợp đó thì độitriển khai có thể sẽ rà soát lại và đệ trình lại mãnguồn đó.
Vìcác bản vá nhỏ hơn là dễ dàng hơn để hiểu và kiểmthử, những người đệ trình thường được khuyếnkhích đệ trình những thay đổi nhỏ nhất có thể từngtí một. Những bản vá nhỏ hơn ít có khả năng gây ranhững hậu quả ngoài ý muốn, và nếu chúng có, thì việccó được lý do gốc rễ của một vấn đề là dễ dànghơn nhiều.
Khingười duy trì chấp nhận mã nguồn được đệ trình,thì nó sau đó sẽ được tích hợp vào trong cây pháttriển của anh hoặc chị ta. Trong một dự án lớn, nhiềulớp, thì người duy trì có thể sau đó sẽ có tráchnhiệm cho việc đệ trình nó cho những người duy trì bổsung tiếp theo lên trên cây. Khi mã nguồn đã được ngườiduy trì cao nhất phê chuẩn, thì nó sẽ được tích hợpcho sự phân phối trong phát hành dòng chính.
5. Kiểm thử và tích hợp liêntục
Vìcông việc có thể là phân tán cao độ, mô hình pháttriển nguồn mở đặt sự nhấn mạnh vào việc dò tìmra các vấn đề sớm và sửa chúng nhanh chóng. Nhiều dựán lớn hơn tạo ra những bản xây dựng theo qua đêm vàtheo tuần có sử dụng một bộ xây dựng tự động, đánhgiá mã nguồn sớm nhất có thể sau khi tích hợp.
Bổsung thêm vào các bộ xây dựng tự động, một số dựán cũng tạo ra các bộ kiểm thử tùy biến để dò tìmra các vấn đề về chức năng khi chúng xảy ra trong quátrình phát triển tích cực. Những bộ kiểm thử nàythường cũng là nguồn mở nốt.
Môhình phát triển nguồn mở có lợi cho những thay đổinhỏ, từng tí một, mà có thể làm cho việc chuẩn đoáncác vấn đề xây dựng, các lỗi, các lỗ hổng an ninh,và những hồi qui giật lùi dễ dàng hơn nhiều. Điềunày đảm bảo rằng mã nguồn mở không ảnh hưởng tớisự tập trung tổng thể của dự án vào mã nguồn an ninhvà chất lượng cao.
6. Phát hành mã nguồn
Vớimột ít ngoại lệ, các dự án sử dụng mô hình nguồnmở tạo nên hình ảnh chụp nhanh ổn định của pháthành mới nhất và cây phát triển sẵn sàng hiện hành.Điều này giúp đảm bảo rằng những người sử dụngcó thể tìm kiếm để sử dụng được phát hành ổnđịnh gần nhất, trong khi các lập trình viên có thể làmviệc từ mã nguồn hiện hành nhất.
Nhữngthực tiễn quản lý phát hành là khác nhau từ dự án nàysang dự án khác, nhưng hầu hết đều đề cử một cánhân hoặc đội để đánh giá độ chín của các tínhnăng trong cây phát triển, và giám sát các đo đếm vềđảm bảo chất lượng (QA). Khi các tiêu chí của pháthành đạt được, thì đội này sẽ công bố phát hànhđó là hoàn thành và phân nhánh cho cây phát triển.
B. NHỮNG ĐẶC TÍNH CỦA MÔHÌNH PHÁT TRIỂN
1. Chu kỳ phát triển đan xen
Môhình phát triển nguồn mở được đặc trưng bằng mộtloạt các qui trình đan xen, chúng liên tục cải thiệnchất lượng của mã nguồn, thay vì một sự tiến bộchính xác tuyến tính tới một phát hành. Không giống như“sự khám phá to lớn” thường đi kèm với mô hìnhphát triển phần mềm truyền thống, mô hình nguồn mởkhuyến khích sự phát triển các tính năng liên tục vàđộc lập. Điều này cho phép những tính năng mới đượctích hợp khi chúng sẵn sàng, mà tới lượt nó cho phépnhững lập trình viên khác xây dựng được trên chúngnhanh hơn và sản sinh ra một sản phẩm cạnh tranh hơn.
2. Phát hành sớm và thườngxuyên
Pháthành sớm và thường xuyên” tham chiếu tới thực tếphát triển của việc xuất bản mã nguồn alpha cho cộngđồng phát triển để rà soát lại tốt trước phát hànhcuối cùng. Điều này làm cho sự phát triển lặp đi lặplại cao độ, và giảm tối thiểu số thay đổi giữa cácphát hành trong sự phát triển, làm cho những sự thoáilui và những chỗ đứt đoạn dễ dàng hơn để chuẩnđoán.
Triếtlý phát hành này cho phép sự rà soát lại ngang hàng liêntục, nơi mà tất cả các thành viên của cộng đồng cócơ hội bình luận và đưa ra những gợi ý và các sửalỗi. Nó cũng khuyến khích những thay đổi nhỏ, từng tímột, chúng là dễ dàng hơn để hiểu và kiểm thử trongkhi các lập trình viên tham gia tích cực vào, hơn là đượcphát hiện ra trong một chu kỳ kiểm thử cuối cùng riêngbiệt.
Mộtlợi ích phụ là việc mã nguồn thường xuyên được ràsoát lại về sự tôn trọng kiểu lập trình và mã nguồndễ vỡ hoặc không mềm dẻo có thể được thấy vàđược cải thiện sớm trong chu kỳ phát triển.
3. Rà soát ngang hàng
Quitrình phát triển nguồn mở nhấn mạnh sự rà soát lạingang hàng xuyên qua khắp toàn bộ vòng đời phát triển.Các lập trình viên được mong đợi sẽ đệ trình mãnguồn của họ tới các danh sách thư của dự án cho việcrà soát lại ngang hàng công khai theo chu kỳ, đặc biệtkhi một chức năng đạt được một cột mốc phát triển.Điều này giúp đảm bảo rằng những người khác bênngoài đội phát triển nhận thức được về những thayđổi, và có thể đưa ra những ý kiến phản hồi trướckhi thiết kế là cuối cùng và sự triển khai hoàn tất.Những thành viên khác của dự án nguồn mở rà soát lạimã nguồn, đưa ra các bình luận và ý kiến phản hồi đểcải thiện chất lượng và chức năng, và kiểm thử đểbắt các lỗi và đưa ra những cải tiến sớm nhất cóthể trong chu kỳ phát triển.
Khimột tính năng hoàn tất và sẵn sàng để được xem xétcho sự tích hợp, thì ngươi duy trì của dự án cũng đưara một mức rà soát lại trước khi chấp nhận mã nguồnđó. Vào lúc mã nguồn được tích hợp vào sản phẩmchính, thì nó đã trải qua một số sự kiểm tra chi tiếtcủa những người khác bên ngoài đội phát triển. Kếtquả được cải thiện, mã nguồn có chất lượng caohơn.
C. LỜI KẾT
Cùngvới bài “Tìmhiểu mô hình phát triển phần mềm tự do nguồn mở”,chúng ta đã thảo luận về những yếu tố chính củavòng đời phát triển nguồn mở, và đã mô tả nhữngđặc tính đặc trưng của phát triển nguồn mở. Mô hìnhphát triển nguồn mở đã được chứng minh là rất thànhcông, với hàng trăm câu chuyện thành công. Mô hình pháttriển này có những đặc tính đặc biệt cho phép sựphát triển nhanh hơn của những đội phân tán một cáchrộng khắp, sự kiểm thử liên tục và tỉ mỉ, đổimới sáng tạo nhanh hơn, nhiều lớp rà soát lại nganghàng, và toàn bộ tính mở và sự minh bạch xuyên suốtcả dự án.
Đểcó khả năng áp dụng được mô hình phát triển nguồnmở vào trong các doanh nghiệp phần mềm của Việt Namtrong tương lai, khi mà hầu hết những doanh nghiệp đó làvừa và nhỏ, tiềm lực rất hạn chế về cả nhân lựcvà vật lực, chưa quen với mô hình này, thì phải biếtđứng trên vai của những người khổng lồ để pháttriển mà để làm được điều này, các công ty phầnmềm của Việt Nam rất nên làm việc với các dự ánnguồn mở đã và đang có sẵn trên thế giới. Trongtrường hợp này, một yếu tố quan trọng khác mà cácdoanh nghiệp phần mềm cần phải nắm vững và triểnkhai trong thực tiễn khi phát triển phần mềm là: ngượclên dòng trên. Ngược lên dòng trên là gì và tại sao lạiphải ngược lên dòng trên là những nội dung chúng ta sẽđề cập tới ở các bài tiếp sau của loạt bài này.


Thiết lập quyền sở hữu
Vì những đề xuất mã nguồn có thể tới từ bất kỳ ai, hầu hết các dự án có các thủ tục chính thức hiện diện để theo dõi quyền sở hữu mã nguồn khi một bản vá được đệ trình.
Dòng “Được ký bởi” đưa ra tên thực và thư điện tử của người có trách nhiệm đối với mã nguồn. Đây cũng là một thỏa thuận cho Chứng chỉ Gốc của Lập trình viên, nó đòi hỏi rằng người đệ trình có các quyền đóng góp mã nguồn. Ít nhất một dòng được-ký-bởi thường được yêu cầu, khi mà nó cho phép những người khác nhanh chóng xác định được ai đã đệ trình mã nguồn nếu bất kỳ lúc nào có một câu hỏi về gốc gác, giấy phép hoặc sự duy trì.
Theo cách tương tự, một số dự án cũng theo dõi những người rà soát lại. Dòng “Được tiến hành bởi” chỉ ra khi ai đó không phải là tác giả hoặc người duy trì đã đưa ra sự rà soát lại tỉ mỉ và tin tưởng nó sẵn sàng để tích hợp.
TrầnLê
Bàiđăng trên tạp chí Tin học & Đời sống, số tháng04/2012, trang 62-65.

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Về Blog này

Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...

Bài đọc nhiều nhất trong năm
Thăm dò ý kiến

Bạn quan tâm gì nhất ở mã nguồn mở?

Thống kê truy cập
  • Đang truy cập114
  • Máy chủ tìm kiếm4
  • Khách viếng thăm110
  • Hôm nay5,482
  • Tháng hiện tại85,200
  • Tổng lượt truy cập15,092,135
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây