Xếp hạng Tính sẵn sàng Sử dụng lại

Thứ sáu - 03/05/2013 06:24
P { margin-bottom: 0.21cm; }A:link { }

Sử dụng lại phần mềm có thể tiết kiệm thời gian, tiết kiệm tiền và làm gia tăng độ tin cậy của các sản phẩm kết quả. Tuy nhiên, sự cố gắng sửa dụng lại phần mềm mà không dễ sử dụng lại có thể có hiệu ứng ngược. Có một số mô hình để đo đếm độ chính các thành phần phần mềm để sử dụng lại, mà chúng có xu hướng tập trung vào một hệ thống tính điểm hơn là xác định rõ ràng một mô hình độ chín. Vì các mô hình độ chín cho phép các dự án đo đếm hiệu năng của nó và vì thế thiết lập các mục tiêu cải thiện khả năng sử dụng lại, có thể còn có tranh cãi rằng chúng là về giá trị nhiều hơn so với các hệ thống tính điểm. Nhóm Làm việc (WG) Sử dụng lại Phần mềm Hệ thống Dữ liệu Khoa học Trái đất ESDS (Earth Science Data Systems) của NASA đã phát triển các Mức độ Sẵn sàng Sử dụng lại (Reuse Readiness Levels) như một mô hình cho sự đo đếm và đánh giá như vậy. Tài liệu này giới thiệu khái niệm các Mức độ Sẵn sàng Sử dụng lại và khai thác khả năng ứng dụng của chúng cho phần mềm nguồn mở.

Sử dụng lại phần mềm là gì?

Sử dụng lại phần mềm là ứng dụng lại tri thức được gói ghém trong mã phần mềm dể giảm nỗ lực phát triển và duy trì một hệ thống phần mềm mới. Có nhiều thứ cần phải được xem xét cho sử dụng lại, không chỉ bản thân phần mềm. Ví dụ, thậm chí khi phần mềm không thể được sử dụng lại, các định dạng dữ liệu, các thiết kế mức cao, các thuật toán hoặc các khoản khác cũng vẫn có thể được sử dụng lại. Hệ quả là, khi xem xét sử dụng lại phần mềm chúng ta phải xem xét từng khoản quan tâm. Những khoản đó được biết tới như là các chế tác (artifacts), các tài sản và các thành phần.

Một chế tác là bất kỳ khoản nòa được sản xuất ra ở cùng thời điểm trong quá trình của chu kỳ phát triển phần mềm. Một chế tác có thể được sử dụng lại, đó là một chế tác được thừa nhận như là có một giá trị đặc biệt, được biết tới như là một tài sản. Một thành phần là một mẩu phần mềm được phác họa rõ ràng, thực hiện một chức năng hữu dụng bên trong một hệ thống phần mềm.

Các thành phần phần mềm sử dụng lại được – RSC (Reusable Software Components) là các thực thể phần mềm có ý định để sử dụng lại. Về nguyên tắc, nhiều chế tác khác nhau được sản xuất ra trong quá trình vòng đời phát triển phần mềm có thể sử dụng lại được, bao gồm: mã nguồn, đặc tả phân tích và thiết kế, các kế hoạch (quản lý dự án), dữ liệu (kiểm thử), tài liệu, sự tinh thông và kinh nghiệm, các qui trình đảm bảo chất lượng, và bất kỳ thông tin nào được sử dụng để tạo ra phần mềm và tài liệu phần mềm. Tuy nhiên, trong khi tất cả các khoản đó là hữu dụng, thì phần mềm là chế tác mà hầu hết thường sử dụng lại được.

Có nhiều ví dụ về mã phần mềm đang được sử dụng lại, đặc biệt nếu chúng ta nhìn vào các phần mềm nguồn mở vì sự truyền cảm hứng. Các thành phần phần mềm sử dụng lại trải từ các thư viện nhỏ, như các thư viện trong dự án Apache Commons, thông qua các khung công việc cho việc xây dựng các ứng dụng hoàn chỉnh, như Eclipse Rich Client Platform để hoàn tất các ứng dụng có thể được mở rộng thông qua các hệ thống cài cắm, như Mozilla Firefox.

Sử dụng lại các thành phần phần mềm

Có 2 dạng sử dụng lại phần mềm, hộp đen và hộp trắng. Hộp đen có nghĩa là sự triển khai mã đó được ẩn dấu khỏi người sử dụng đầu cuối bằng các giao diện được xác định tốt và được làm thành tài liệu tốt, thường là một giao diện lập trình ứng dụng - API (application programming interface), nó cho phép người tiêu dùng sử dụng thành phần đó mà không càn biết nó đã được triển khai như thế nào. Các thành phần hộp đen có thể đắt giá hơn để sản xuất so với các thành phần hộp trắng, nhưng chúng thường sẽ đưa ra tiết kiệm tổng thể lớn hơn cho người sử dụng đầu cuối trong các trường hợp nơi mà thành phần đó là một sự phù hợp tự nhiên cho các nhu cầu của người sử dụng. Sử dụng lại hộp đen vì thế là phổ biến nhất cho các trường hợp sử dụng chung, như các thư viện cho các hoạt động chung trong một ứng dụng; ví dụ, các thư viện cho việc quản lý ghi lưu ký và báo cáo lỗi có thể thường được sử dụng lại theo cách này. Khi sử dụng lại các thành phần hộp đen cho các ứng dụng web, như các thư viện Javascript, cũng có khả năng sử dụng một thành phần từ một mạng phân phối nội dung - CDN (content delivery network), sinh ra trong việc truy cập nó qua Internet, hơn là việc gói thành phần đó với ứng dụng.

Sử dụng lại hộp trắng là sử dụng lại mà theo đó người sử dụng đòi hỏi sự truy cập tới sự triển khai ben trong của thành phần đó để thực hiện các sửa đổi. Là phổ biến hơn với nhiều người triển khai vì thành phần đó có thể được tùy biến cho phù hợp với các nhu cầu chính xác của hệ thống đích. Tuy nhiên, các lợi ích về hiệu suất của sử dụng lại có thể nhanh chóng thu nhỏ khi nhiều sửa đổi hơn được giới thiệu. Sử dụng lại hộp trắng là phổ biến hơn nơi mà các hệ thống chồng lấn với nhau nhưng có các yêu cầu khác biệt cho lĩnh vực được đưa ra của chúng. Ví dụ, các trình duyệt web thường sẽ được tùy biến cho các trường hợp sử dụng đặc thù.

Phần mềm nguồn mở thường thể hiện tốt nhất cả 2 thế giới đó. Những người có mong muốn sử dụng lại một thành phần như là một hộp đen có thể làm thế bằng việc tải về các phát hành nhị phân của phần mềm, trong khi những người có mong muốn sử dụng lại hộp trắng có thể giành được mã nguồn của dự án để tiến hành các sửa đổi. Không có nhu cầu để quyết định trước liệu hộp đen hay hộp trắng được yêu cầu, vì người ta có thể chuyển sang mô hình hộp trắng nếu những hạn chế trong mô hình hộp đen được xác định. Hơn nữa, một dự án nguồn mở được phát triển bằng việc sử dụng một mô hình phát triển mở sẽ giúp các đội dự án đảm bảo rằng những sửa đổi cục bộ không ngăn cản được các bản nâng cấp sang các phiên bản mới của thành phần đó trong tương lai.

Đánh giá cho sử dụng lại

Quy trình tìm kiếm và đánh giá phần mềm để sử dụng lại là tương tự, bất kể chế độ sử dụng lại. Các bước chính trong qui trình đó la:

  • Chỉ định đối tượng sẽ được tạo ra

  • Tìm kiếm dự án, lĩnh vực và các cơ sở dữ liệu chung cho các ứng viên sử dụng lại

  • Đánh giá các ứng viên để xác định các ứng viên nào (nếu có) sẽ được sử dụng

  • Sửa đổi, nếu cần, để phù hợp cho các nhu cầu đặc thù

  • Tích hợp (các) thành phần sử dụng lại được

  • Kiểm tra hệ thống bao gồm cả (các) thành phần mới

  • Lấy ý kiến phản hồi tri thức về chi phí sử dụng lại

Có lẽ khó nhất của các bước đó là 'Đánh giá các ứng viên để xác định các ứng viên nào (nếu có) sẽ được sử dụng'. Không loại bỏ được các thành phần không phù hợp ở cơ hội sớm nhất sẽ gây ra nỗ lực tiêu phí trong các giai đoạn sau này. Các Mức độ Sẵn sàng Sử dụng lại – RRL (Reuse Readiness Levels) được thiết kế đặc biệt để hỗ trợ trong đánh giá này, bằng việc xác định rõ một tập hợp các tiêu chí đối với chúng một thành phần có thể được đánh giá để sử dụng lại. Việc áp dụng một tập hợp các tiêu chí một cách nhất quán cho các thành phần sẽ đảm bảo rằng tất cả các khía cạnh được xem xét và tất cả các thành phần được xem xét như nhau.

Sử dụng RRL để chỉ dẫn cho đánh giá cho phép người ta định tỷ lệ cho thành phần trong thang độ chín sử dụng lại. Một thành phần được đánh giá càng cao trong thang tỷ lệ này thì khả năng sử dụng lại càng dễ. Càng thấp trong thang này, thì nỗ lực lớn hơn được yêu cầu để sử dụng lại. Bất kỳ thành phần phần mềm nào cũng có thể được đo đếm theo thang đo này, bất kể quy trình phát triển được áp dụng. Tuy nhiên, vì các thành phần nguồn mở cho phép người sử dụng sửa đổi thành phần đó một cách trực tiếp, sử dụng lại các thành phần mức thấp hơn thường dễ dàng hơn đáng kể cho các thành phần nguồn mở so với các thành phần nguồn đóng.

Các yêu cầu cho một thành phần phần mềm sử dụng lại được

Một thành phần phần mềm sử dụng lại được thường sẽ là khép kín và có những biên giới được xác định rõ với lưu ý tới những gì nó làm và không làm được. Ở các biên giới đó nó sẽ thể hiện một tập hợp được xác định rõ như nhau các điểm giao diện mà sẽ cho phép tích hợp dễ dàng với các thành phần khác. Đối với hầu hết những người sử dụng, giao diện sẽ là đủ để cho phép sử dụng lại; đó là, sự triển khai sẽ được ẩn dấu thông qua vỏ bọc.

Đối với những người sử dụng nào cần sửa đổi bên trong thành phần đó theo một cách thức nào đó, ví dụ để bổ sung thêm một tính năng, hoặc sửa một lỗi không được phát hiện trước đó, thì một đặc tả rõ ràng, không mù mờ tối nghĩa và có thể hiểu được đối với thành phần đó sẽ được yêu cầu. Thành phần đó sau đó sẽ tuân thủ các kiểm thử đặc tả và tái thực hiện được của người sử dụng, sẽ kiểm tra sự tuân thủ này. Điều này cho phép người sử dụng sửa đổi các chi tiết triển khai, giả thiết mã nguồn là sẵn sàng, không sợ phá vỡ các hệ thống đang tồn tại đang sử dụng thành phần đó.

Khi phân phối một thành phần phần mềm sử dụng lại được, cũng quan trọng để cung cấp tài liệu rõ ràng về cách sử dụng lại nó, cùng với các ứng dụng ví dụ và các chỉ dẫn cài đặt và các script. Cuối cùng, là sống còn rằng thành phần đó được cấp phép đúng và các chi tiết đầy đủ được làm sẵn sàng cho người sử dụng đầu cuối.

Các mức độ sẵn sàng sử dụng lại

Các mô hình độ chín không phải là khái niệm mới hoặc duy nhất. Chúng thường được sử dụng trong nhiều lĩnh vực chuyên ngành để đo đếm và quản lý sự tiến bộ cùng với một thước đo độ chín. Ví dụ, Tích hợp Mô hình Độ chín Khả năng (Capability Maturity Model Integration) của Carnegie Mellon đưa ra một số mô hình cho phát triển phần mềm, mua sắm và cung cấp dịch vụ. Mô hình Độ chín Phần mềm Nguồn mở - OSMM (Open Source Maturity Model), Mô hình Độ chín Bền vững Phần mềm – SSMM (Software Sustainability Maturity Model) và Định phẩm chất và Lựa chọn Phần mềm Nguồn Mở - QSOSS (Qualification and Se-lection of Open Source Software) tất cả là những ví dụ các kỹ thuật đánh giá đề cập tới độ chín của các thành phần phần mềm. Tuy nhiên, từng trong số các mô hình đó tập trung vào các thành phần nguồn mở hơn là các thành phần phần mềm nói chung.

RRL được thiết kế để cho phép đánh giá bất kỳ thành phần phần mềm nào, bất kể phương pháp phát triển của thành phần đó. Trong trường hợp sử dụng lại hộp đen, đánh giá sử dụng các mức đó là đủ trong hầu hết các trường hợp. Tuy nhiên, sử dụng lại nguồn mở dạng hộp trắng đòi hỏi sự tham gia với cộng đồng dự án. RRL không đưa ra cơ chế cho một đánh giá như vậy. Vì thế, chúng tôi gợi ý cũng đánh giá bằng việc sử dụng một trong những mô hình khác được nêu ở trên.

Các Mức độ Sẵn sàng Sử dụng lại – RRL (Reuse Readiness Levels) có 9 mức độ sử dụng lại, như được chỉ ra trong bảng bên dưới. Trong khi các mức đó là hữu dụng, thì chúng thường được thấy là được định nghĩa quá rộng. Hệ quả là , một số Mức độ Chủ đề đã được định nghĩa. Chúng đưa ra một phương tiện để đánh giá các khía cạnh đặc thù của sử dụng lại và được thảo luận trong phần sau.

Tóm tắt các Mức độ Sẵn sáng Sử dụng lại

Mức

Tóm tắt

Mô tả

1

Khả năng sử dụng lại hạn chế; phần mềm không được khuyến cáo sử dụng lại.

Ít được cung cấp ngoài các mã nguồn hạn chế hoặc tiền biên dịch, các tệp nhị phân thực thi được. Không có sự hỗ trợ, thông tin liên hệ về các lập trình viên hoặc các quyền sử dụng lại được chỉ định, phần mềm không có khả năng mở rộng và không thỏa đáng hoặc không tài liệu.

2

Khả năng sử dụng lại sơ khai, sử dụng lại phần mềm là không thực tế.

Một số mã nguồn, tài liệu và thông tin liên hệ được cung cấp, nhưng vẫn còn rất hạn chế. Việc kiểm thử ban đầu từng được thực hiện, nhưng các quyền sử dụng lại vẫn còn chưa rõ. Sử dụng lại có thẻ là thách thức và chi phí cao tới mức cấm đoán.

3

Khả năng sử dụng lại cơ bản; phần mềm có thể sử dụng lại được với những người sử dụng có kỹ năng với nỗ lực, chi phí và rủi ro đáng kể.

Phần mềm có một số sự tuân thủ về khả năng module hóa và các tiêu chuẩn, một số hỗ trợ được các lập trình viên cung cấp, và các chỉ dẫn cài đặt chi tiết là sẵn sàng, nhưng các quyền không được chỉ định. Một chuyên gia có thể có khả năng sử dụng lại phần mềm, nhưng người sử dụng thông thường có thể không.

4

Sử dụng lại là có khả năng; phần mềm có thể được hầu hết mọi người sử dụng sử dụng lại với một số nỗ lực, chi phí và rủi ro.

Phần mềm và tài liệu là hoàn chỉnh và hiểu được. Phần mềm từng được trình bày trong một phòng thí nghiệm trong một hoặc nhiều nền tảng, các bản vá không thường xuyên sẵn sàng, và các vấn đề về sở hữu trí tuệ có thẻ cần phải được thương thảo. Sử dụng lại là có thể, nhưng có thể còn khó khăn.

5

Sử dụng lại là thực tế; phần mềm có thể được hầu hết người sử dụng sử dụng lại mà không có chi phí và rủi ro hợp lý nào.

Phần mềm ở mức độ khá về tính khả chuyển, module hóa, mở rộng được và có khả năng thiết lập cấu hình được, có sự tuân thủ các tiêu chuẩn độ trung thực thấp, có sách chỉ dẫn người sử dụng, và đã được kiểm thử trong phòng thí nghiệm. Cộng đồng người sử dụng tồn tại, nhưng có thẻ là cộng đồng nhỏ các chuyên gia. Các lập trình viên có thể có thể liên hệ được để yêu cầu các quyền sử dụng lại hạn chế.

6

Phần mềm có khả năng sử dụng lại được; phần mềm có thể được hầu hết người sử dụng sử dụng lại dù có thể có một số chi phí và rủi ro.

Phần mềm từng được thiết kế cho khả năng mở rộng, theo module và tính khả chuyển, nhưng phần mềm và tài liệu có thể vẫn có khả năng ứng dụng hạn chế. Các sách chỉ dẫn là có sẵn, và phần mềm từng được trình bày trong một ngữ cảnh phù hợp. Các lập trình viên có thể liên hệ được để có được các tuyên bố chính thức về các quyền bị hạn chế hoặc để thương lượng về các quyền bổ sung thêm.

7

Phần mềm sử dụng lại được cao độ; phần mềm có thể được hầu hết người sử dụng sử dụng lại với chi phí và rủi ro tối thiểu.

Phần mềm là khả chuyển và module hóa cao độ, có sự tuân thủ các tiêu chuẩn độ trung thực cao, đưa ra sự cài đặt tự động được xây sẵn, và đã được kiểm thử trong ngữ cảnh phù hợp. Hỗ trợ được các lập trình viên tổ chức, và một chỉ dẫn giao diện là sẵn sàng. Phần mềm và tài liệu là áp dụng được cho hầu hết các hệ thống. Các tuyên bố ngắn gọn là sẵn sàng, mô tả các quyền sử dụng hạn chế và các lập trình viên có thể liên hệ được để thương lượng về các quyền bổ sung thêm.

8

Khả năng sử dụng lại cục bộ được trình bày; phần mềm được nhiều người sử dụng sử dụng lại.

Phần mềm từng được trình bày sẽ mở rộng được, và được định lượng thông qua kiểm thử và trình bày. Chỉ dẫn mở rộng và hỗ trợ được các tổ chức cung cấp là sẵn sàng. Các tuyên bố ngắn goạn là có sẵn, mô tả các quyền sử dụng không bị hạn chế và các lập trình viên có thể liên hệ được để có được các tuyên bố về các quyền chính thức.

9

Khả năng sử dụng lại mở rộng được thể hiện; phần mềm đang được nhiều lớp người sử dụng qua một dải rộng các hệ thống sử dụng lại.

Phần mềm khả chuyển và module hóa đầy đủ, với tất cả sự tuân thủ các tiêu chuẩn và tài liệu thỏa đáng, việc đóng gói được bao bọc, một trình cài đặt GUI, và một cộng đồng hỗ trợ lớn cung cấp các bản vá. Phần mềm từng được kiểm thử và kiểm tra hợp lệ thông qua sử dụng đầu ra ứng dụng thành công. Nhiều tuyên bố mô tả các quyền sử dụng không hạn chế và trích dẫn được khuyến cáo được nhúng vào trong sản phẩm.

Các mức chủ đề

Một thành phần được đánh gía xuyên khắp một số mức chủ đề, mỗi mức đó đưa ra chỉ dẫn về những gì một người có thể mong đợi ở từng mức sử dụng lại. Các mức chủ đề được xác định là:

  • Tài liệu

  • Khả năng mở rộng

  • Các vấn đề về sở hữu trí tuệ

  • Khả năng module hóa

  • Việc đóng gói

  • Tính khả chuyển

  • Tuân thủ các tiêu chuẩn

  • Hỗ trợ

  • Kiểm tra và kiểm thử

Một khi từng chủ đề được đánh giá, có khả năng đi tới được một mức độ sử dụng lại tổng thể cho thành phần phần mềm như là một tổng thể. Ví dụ, chúng ta có thể quyết định rằng mức thấp nhất đạt được xuyên khắp tất cả các chủ đề là mức của thành phần đó như là một tổng thể, hoặc chúng ta có thể bổ sung thêm một trọng số tới một hoặc nhiều mức chủ đề hơn.

Như một ví dụ về các mức chủ đề, một tóm tắt các mức Vấn đề Sở hữu Trí tuệ được đưa ra bên dưới:

Các mức của vấn đề về sở hữu trí tuệ

Mức

Tóm tắt

1

Các lập trình viên từng được nhận diện, nhưng không quyền nào được xác định.

2

Các lập trình viên đang thảo luận các quyền tuân thủ với các chính sách tổ chức của họ.

3

Các thỏa thuận các quyền đã được đề xuất cho các lập trình viên.

4

Các lập trình viên đã thương thảo về các thỏa thuận các quyền.

5

Thỏa thuận về quyền sở hữu, các quyền sử dụng lại hạn chế, và trích đoạn được khuyến cáo

6

Danh sách lập trình viên, trích đoạn được khuyến cáo và các tuyên bố quyền được phác thảo

7

Danh sách lập trình viên và tuyên bố các quyền hạn chế được đưa vào trong mẫu sản phẩm

8

Tuyên bố các quyền sở hữu trí tuệ và trích dẫn được khuyến cáo được đưa vào sản phẩm

9

Các tuyên bố mô tả các quyền không hạn chế, trich dẫn được khuyến cáo và các lập trình viên được nhúng vào trong sản phẩm

Kết luận

Sử dụng lại các thành phần phần mềm có thể cho phép tiết kiệm đáng kể trong sự phát triển các hệ thống mới. Tuy nhiên, đánh giá các thành phần để sử dụng lại có thể là khó khi xem xét các vấn đề phi kỹ thuật. Các Mức độ Sẵn sàng Sử dụng lại – RRL (Reuse Readiness Levels) đưa ra một cách thức có cấu trúc để đánh giá một thành phần để sử dụng lại. Có một cấu trúc như vậy sẽ giúp đảm bảo rằng tất cả các khía cạnh sử dụng lại được xem xét và cho phép người sử dụng thực hiện những lựa chọn có nhiều thông tin hơn, trong khi các lập trình viên có thể thiết lập các mục tiêu ưu tiên cho việc cải thiện khả năng sử dụng lại của thành phần đó. RRL có những ưu điểm hơn các hệ thống đánh giá khác theo đó chúng cho phép sự so sánh các thành phần phần mềm, bất kể phương pháp luận pháp triển nào được áp dụng. Đối với sử dụng lại hộp đen, điều này làm cho RRL áp dụng được rộng rãi. Tuy nhiên, ở những nơi sử dụng lại hộp trắng (đòi hỏi những sửa đổi đối với thành phần đó) sẽ phải được xem xét, thì RRL không đánh giá được tính phù hợp phương pháp luận phát triển của dự án cho sự sử dụng như vậy. Trong các trường hợp đó RRL nên được bổ sung với các công cụ độ chín nguồn mở đang tồn tại. Để có sự khai thác các vấn đề rộng lớn hơn trong mua sắm phần mềm, OSS Watch đã phát hành một chỉ dẫn cho Các yếu tố quyết định để sử dụng lại phần mềm nguồn mở.

By Ross Gardler, Published: 14 July 2009, Reviewed: 09 July 2012

Theo: http://www.oss-watch.ac.uk/resources/reuseReadinessRating

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ập149
  • Máy chủ tìm kiếm5
  • Khách viếng thăm144
  • Hôm nay18,510
  • Tháng hiện tại342,761
  • Tổng lượt truy cập31,821,087
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