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

PHÁT TRIỂN PHẦN mềm NGUỒN lực CỘNG ĐỒNG

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 (267.72 KB, 11 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
.......................

ĐẶNG KỲ DUN

BÁO CÁO CUỐI KÌ
MƠN: CƠNG NGHỆ PHẦN MỀM
“PHÁT TRIỂN PHẦN MỀM NGUỒN LỰC CỘNG ĐỒNG”

Chuyên ngành

: Khoa học máy tính

Mã số

:

Khóa

: 23

Bình Định – 2022


1.

MỤC LỤC
Phát triển phần mềm nguồn lực cộng đồng là gì?......................................1

2.



Lợi ích mang lại.........................................................................................1

3.

Hệ sinh thái................................................................................................2
3.1. Hỗ trợ kiến trúc............................................................................................2
3.2. Mạng xã hội.................................................................................................2
3.3. Quy trình......................................................................................................2
3.4. Nền tảng.......................................................................................................3

4.

Quy trình mẫu............................................................................................4

5. Kiến trúc tham chiếu.....................................................................................5
6. Các khía cạnh và chỉ số.................................................................................7
TÀI LIỆU THAM KHẢO.................................................................................9


1

1. Phát triển phần mềm nguồn lực cộng đồng là gì?
Phát triển phần mềm nguồn lực cộng đồng hay nguồn cung ứng cộng
đồng phần mềm là một lĩnh vực mới nổi của kỹ thuật phần mềm . Nó là một
lời kêu gọi mở để tham gia vào bất kỳ nhiệm vụ nào của phát triển phần
mềm , bao gồm tài liệu , thiết kế , mã hóa và thử nghiệm . Các nhiệm vụ này
thường được tiến hành bởi các thành viên của doanh nghiệp phần mềm hoặc
những người được doanh nghiệp ký hợp đồng. Nhưng trong nguồn cung ứng
cộng đồng phần mềm , tất cả các nhiệm vụ có thể được giao cho hoặc được

giải quyết bởi các thành viên của cơng chúng. Các cá nhân và nhóm cũng có
thể tham gia các cuộc thi tìm kiếm nguồn lực cộng đồng
2. Lợi ích mang lại
Phát triển phần mềm nguồn lực cộng đồng có thể có nhiều mục tiêu:
Phần mềm chất lượng: Các nhà tổ chức nguồn cung ứng cộng đồng cần
xác định các mục tiêu chất lượng phần mềm cụ thể và các tiêu chí đánh giá
của họ. Phần mềm chất lượng thường đến từ những thí sinh có năng lực,
những người có thể gửi các giải pháp tốt để được đánh giá nghiêm ngặt.
Tiếp thu nhanh chóng: Thay vì chờ đợi phần mềm được phát triển, các
nhà tổ chức nguồn cung ứng cộng đồng có thể đăng một cuộc thi với hy vọng
rằng một cái gì đó giống hệt hoặc tương tự đã được phát triển. Điều này là để
giảm thời gian mua lại phần mềm.
Xác định tài năng: Một nhà tổ chức tìm nguồn cung ứng cộng đồng có
thể chủ yếu quan tâm đến việc xác định các tài năng được thể hiện qua kết
quả hoạt động của họ trong cuộc thi.
Giảm chi phí: Một nhà tổ chức nguồn cung ứng cộng đồng có thể mua
phần mềm với chi phí thấp bằng cách trả một phần nhỏ chi phí phát triển vì
giá cho giải thưởng có thể bao gồm các giải thưởng được cơng nhận.
Tính đa dạng của giải pháp: Vì các nhóm sẽ đưa ra các giải pháp khác
nhau cho cùng một vấn đề, sự đa dạng trong các giải pháp này sẽ hữu ích cho
tính toán chịu lỗi.
Tạo ý tưởng: Một mục tiêu là lấy ý tưởng mới từ các thí sinh và những ý
tưởng này có thể dẫn đến những hướng đi mới.


2

Mở rộng sự tham gia: Một mục tiêu là tuyển dụng càng nhiều người
tham gia càng tốt để có được giải pháp tốt nhất hoặc để truyền bá kiến thức
có liên quan.

Giáo dục người tham gia: Các nhà tổ chức quan tâm đến việc giáo dục
những người tham gia kiến thức mới. Một ví dụ là nonamesite.com
được DARPA tài trợ để dạy STEM Khoa học, Công nghệ, Kỹ thuật và Tốn học.
Địn bẩy quỹ: Mục đích là để kích thích các tổ chức khác tài trợ cho các
dự án tương tự để tạo đòn bẩy cho quỹ.
Tiếp thị: Các dự án nguồn lực cộng đồng có thể được sử dụng để nhận
diện thương hiệu giữa những người tham gia.
3. Hệ sinh thái
3.1.Hỗ trợ kiến trúc
Hệ thống hỗ trợ nguồn cung ứng cộng đồng cần bao gồm 1) Công cụ
phát triển phần mềm: công cụ yêu cầu, công cụ thiết kế, cơng cụ mã hóa, trình
biên dịch, trình gỡ lỗi, IDE, cơng cụ phân tích hiệu suất, cơng cụ kiểm tra và
cơng cụ bảo trì. 2) Các cơng cụ quản lý dự án: hệ thống xếp hạng, danh tiếng
và giải thưởng cho các sản phẩm và người tham gia. 3) Các công cụ mạng xã
hội: cho phép những người tham gia giao tiếp và hỗ trợ lẫn nhau. 4) Các công
cụ hợp tác: Ví dụ, một nền tảng bảng đen nơi những người tham gia có thể
nhìn thấy một khu vực chung và đề xuất ý tưởng để cải thiện các giải pháp
được trình bày trong khu vực chung.
3.2.Mạng xã hội
Mạng xã hội có thể cung cấp thơng tin liên lạc, tài liệu, blog, twitters,
wiki, nhận xét, phản hồi và lập chỉ mục.
3.3.Quy trình
Bất kỳ giai đoạn phát triển phần mềm nào cũng có thể được nguồn lực từ
cộng đồng và giai đoạn đó có thể là các yêu cầu (chức năng, giao diện người
dùng, hiệu suất), thiết kế (thuật toán, kiến trúc), mã hóa (mơ-đun và thành
phần), thử nghiệm (bao gồm thử nghiệm bảo mật, thử nghiệm giao diện người
dùng, trải nghiệm người dùng thử nghiệm), bảo trì, trải nghiệm người dùng
hoặc bất kỳ sự kết hợp nào của những điều này.



3

Các quy trình phát triển phần mềm hiện tại có thể được sửa đổi để bao
gồm nguồn cung ứng cộng đồng: 1) Mơ hình thác nước; 2) Các quy trình
nhanh nhẹn; 3) Cách tiếp cận theo hướng mơ hình; 4) Phương pháp tiếp cận
nguồn mở; 5) Phương pháp tiếp cận phần mềm như một dịch vụ (SaaS) trong
đó các thành phần dịch vụ có thể được xuất bản, phát hiện, soạn thảo, tùy
chỉnh, mô phỏng và thử nghiệm; 6) các phương pháp chính thức: các phương
pháp chính thức có thể được sử dụng nguồn lực từ cộng đồng.
Nguồn cung ứng cộng đồng có thể cạnh tranh hoặc khơng cạnh
tranh. Trong nguồn cung ứng cộng đồng cạnh tranh, chỉ những người tham
gia được lựa chọn mới giành chiến thắng, và trong các dự án có tính cạnh
tranh cao, nhiều thí sinh sẽ cạnh tranh nhưng ít người giành chiến thắng. Theo
cách thức không cạnh tranh, một trong hai cá nhân sẽ tham gia vào nguồn
cung ứng cộng đồng hoặc nhiều cá nhân có thể hợp tác để tạo ra phần
mềm. Các sản phẩm được sản xuất có thể được đánh giá chéo để đảm bảo tính
nhất quán và chất lượng của sản phẩm cũng như để xác định nhân tài, và việc
đánh giá chéo có thể được đánh giá bằng nguồn cung ứng cộng đồng.
Các hạng mục do nguồn cung ứng cộng đồng phát triển có thể được đánh
giá bằng nguồn lực cộng đồng để xác định sản phẩm được sản xuất và việc
đánh giá đánh giá có thể được nguồn lực cộng đồng phát triển để xác định
chất lượng đánh giá.
Các quy trình tìm nguồn cung ứng cộng đồng đáng chú ý bao gồm các
quy trình AppStori và Topcoder.
Việc lựa chọn trước những người tham gia là rất quan trọng đối với
nguồn cung ứng phần mềm chất lượng từ đám đông. Trong nguồn cung ứng
cộng đồng cạnh tranh, một người tham gia được xếp hạng thấp không nên
cạnh tranh với một người tham gia có thứ hạng cao.
3.4.Nền tảng
Các nền tảng cung cấp phần mềm cộng đồng bao gồm App

Store , Topcoder và uTest của Apple Inc. cho thấy lợi thế của nguồn cung ứng
cộng đồng về việc mở rộng hệ sinh thái phần mềm và cải thiện chất lượng
sản phẩm . App Store của Apple là một iOS trực tuyếnchợ ứng dụng, nơi các
nhà phát triển có thể trực tiếp cung cấp các thiết kế và sản phẩm sáng tạo của
họ cho khách hàng sử dụng điện thoại thông minh. Các nhà phát triển này có
động lực đóng góp các thiết kế sáng tạo cho cả danh tiếng và thanh toán bằng


4

cơ chế thanh tốn vi mơ của App Store. Trong vòng chưa đầy bốn năm, App
Store của Apple đã trở thành một hệ sinh thái ứng dụng di động khổng lồ với
150.000 nhà xuất bản đang hoạt động và tạo ra hơn 700.000 ứng dụng
IOS. Xung quanh App Store, có nhiều nền tảng cộng tác dựa trên cộng đồng
dành cho các vườn ươm ứng dụng điện thoại thơng minh. Ví dụ: AppStori
giới thiệu cách tiếp cận tài trợ từ đám đông để xây dựng một cộng đồng trực
tuyến nhằm phát triển các ý tưởng đầy hứa hẹn về các ứng dụng iPhone
mới. IdeaScale là một nền tảng khác cho nguồn cung ứng phần mềm cộng
đồng.
Một ví dụ khác về nguồn cung ứng cộng đồng— Topcoder — tạo ra một
mơ hình cuộc thi phần mềm trong đó các nhiệm vụ lập trình được đăng dưới
dạng cuộc thi và nhà phát triển của giải pháp tốt nhất sẽ giành được giải
thưởng cao nhất. Theo mơ hình này, Topcoder đã thiết lập một nền tảng trực
tuyến để hỗ trợ hệ sinh thái của mình và tập hợp lực lượng lao động ảo tồn
cầu với hơn 1 triệu thành viên đã đăng ký và gần 50.000 người tham gia tích
cực. Tất cả các thành viên Topcoder này cạnh tranh với nhau trong các nhiệm
vụ phát triển phần mềm như phân tích yêu cầu, thiết kế thuật tốn, mã hóa và
thử nghiệm.
4. Quy trình mẫu
Q trình phát triển phần mềm Topcoder bao gồm một số giai đoạn khác nhau

và trong mỗi giai đoạn có thể có các loại cạnh tranh khác nhau:
1. Ngành kiến trúc;
2. Sản xuất thành phần;
3. Hội ứng dụng;

Các loại và giai đoạn cạnh tranh Topcoder
Mỗi bước có thể là một cuộc cạnh tranh về nguồn nhân lực cộng đồng.


5

Quy trình kiểm tra BugFinders:
- Bước 1: Tham gia BugFinders;
- Bước 2: Xác định dự án;
- Bước 3: Được quản lý bởi BugFinders;
- Bước 4: Đánh giá lỗi;
- Bước 5: Sửa lỗi;
- Bước 6: Phát hành phần mềm.
5. Kiến trúc tham chiếu
Việc phát triển phần mềm nguồn lực cộng đồng có thể tuân theo các
phương pháp luận kỹ thuật phần mềm khác nhau bằng cách sử dụng các mơ
hình quy trình, kỹ thuật và cơng cụ khác nhau. Nó cũng có các quy trình
nguồn lực cộng đồng cụ thể liên quan đến các hoạt động độc đáo như nhiệm
vụ đấu thầu, phân bổ chuyên gia, đánh giá chất lượng và tích hợp phần
mềm. Để hỗ trợ q trình th ngồi và tạo điều kiện cho cộng đồng cộng tác,
một nền tảng thường được xây dựng để cung cấp các nguồn lực và dịch vụ
cần thiết. Ví dụ: Topcoder tuân theo quy trình phát triển phần mềm truyền
thống với các quy tắc cạnh tranh được nhúng và AppStori cho phép các quy
trình linh hoạt và đám đơng có thể tham gia vào hầu hết các khía cạnh của
phát triển phần mềm bao gồm tài trợ, khái niệm dự án, thiết kế, mã hóa, thử

nghiệm và đánh giá.
Do đó, kiến trúc tham chiếu xác định các hoạt động và cấu trúc ô để phát
triển phần mềm dựa trên đám đông bằng cách thống nhất các phương pháp
hay nhất và thành tựu nghiên cứu. Nói chung, kiến trúc tham chiếu sẽ giải
quyết các nhu cầu sau:
1. Có thể tùy chỉnh để hỗ trợ các mơ hình quy trình điển hình;
2. Có thể cấu hình để soạn các thành phần chức năng khác nhau;
3. Có thể mở rộng để tạo điều kiện cho giải pháp vấn đề có kích thước
khác nhau.
Đặc biệt, nguồn cung ứng cộng đồng được sử dụng để phát triển phần
mềm lớn và phức tạp theo cách ảo hóa, phi tập trung. Điện tốn đám mây là
một cụm từ thơng tục được sử dụng để mô tả nhiều loại khái niệm tính tốn
khác nhau liên quan đến một số lượng lớn máy tính được kết nối thơng qua


6

mạng truyền thơng thời gian thực (điển hình là Internet). Có nhiều lợi thế
được tìm thấy khi chuyển các ứng dụng nguồn cung ứng cộng đồng sang đám
mây: tập trung vào phát triển dự án hơn là vào cơ sở hạ tầng hỗ trợ quá trình
này, thúc đẩy sự hợp tác giữa các nhóm được phân bổ theo địa lý, quy mô tài
nguyên theo quy mô của dự án, làm việc trong một mơi trường ảo hóa, mơi
trường phân phối và cộng tác.

Kiến trúc tham chiếu cho nguồn cung ứng cộng đồng phần mềm
Các nhu cầu về hệ thống cung cấp phần mềm cộng đồng đang ngày càng
phát triển khi các triết lý và công nghệ phát triển mới được ưu ái. Kiến trúc
tham chiếu được trình bày ở trên được thiết kế để bao gồm tính tổng quát theo
nhiều khía cạnh, bao gồm, ví dụ như các phương pháp luận phát triển phần
mềm khác nhau, các kế hoạch khuyến khích và các phương pháp tiếp cận

cạnh tranh / hợp tác. Có một số hướng nghiên cứu rõ ràng có thể được nghiên
cứu để nâng cao kiến trúc, chẳng hạn như phân tích dữ liệu, phân phối dựa
trên dịch vụ và tổng quát hóa khung. Khi các hệ thống phát triển, việc sử dụng
nền tảng là một vấn đề cần cân nhắc quan trọng, tất cả dữ liệu liên quan đến
người dùng, dự án và sự tương tác giữa hai nền tảng này đều có thể được
khám phá để điều tra hiệu suất. Những dữ liệu này cũng có thể cung cấp
thơng tin chi tiết hữu ích khi phát triển nhiệm vụ hoặc lựa chọn người tham
gia. Nhiều thành phần được thiết kế trong kiến trúc là mục đích chung và có
thể được phân phối dưới dạng các dịch vụ được lưu trữ. Bằng cách lưu trữ các
dịch vụ này, các rào cản gia nhập sẽ giảm đáng kể. Cuối cùng, thơng qua việc
triển khai kiến trúc này, có khả năng tạo ra một khn khổ mục đích chung có
thể được sử dụng cho các dự án nguồn cung ứng cộng đồng phát triển phần
mềm khác nhau hoặc rộng rãi hơn cho các ứng dụng nguồn cung ứng cộng
đồng khác. Việc tạo ra các khn khổ như vậy đã có tác động biến đổi trong


7

các lĩnh vực khác, chẳng hạn như việc sử dụng BOINC chủ yếu trong tính
tốn tình nguyện. thơng qua việc triển khai kiến trúc này, có khả năng tạo ra
một khn khổ mục đích chung có thể được sử dụng cho các dự án nguồn
cung ứng cộng đồng phát triển phần mềm khác nhau hoặc rộng rãi hơn cho
các ứng dụng nguồn cung ứng cộng đồng khác. Việc tạo ra các khn khổ
như vậy đã có tác động biến đổi trong các lĩnh vực khác, chẳng hạn như việc
sử dụng BOINC chủ yếu trong tính tốn tình nguyện. thơng qua việc triển
khai kiến trúc này, có khả năng tạo ra một khn khổ mục đích chung có thể
được sử dụng cho các dự án nguồn cung ứng cộng đồng phát triển phần mềm
khác nhau hoặc rộng rãi hơn cho các ứng dụng nguồn cung ứng cộng đồng
khác. Việc tạo ra các khn khổ như vậy đã có tác động biến đổi trong các
lĩnh vực khác, chẳng hạn như việc sử dụng BOINC chủ yếu trong tính tốn

tình nguyện.
6. Các khía cạnh và chỉ số
Crowdsourcing nói chung là một chủ đề nghiên cứu đa phương
diện. Việc sử dụng nguồn cung ứng cộng đồng trong phát triển phần mềm có
liên quan đến một số điểm hoặc khía cạnh chính cần được xem xét (xem hình
bên dưới). Đồng thời, nghiên cứu có thể được tiến hành từ quan điểm của ba
nhân tố chính trong nguồn cung ứng cộng đồng: khách hàng, nhân viên và
nền tảng.

Khung nghiên cứu để phát triển phần mềm nguồn cung ứng cộng đồng
Phân rã nhiệm vụ:
Điều phối và giao tiếp:
Lập kế hoạch và lập lịch trình:
Đảm bảo chất lượng: Quy trình cung cấp phần mềm cộng đồng có thể
được mơ tả trong một quy trình trị chơi, trong đó một bên cố gắng giảm thiểu
một chức năng mục tiêu, nhưng bên kia cố gắng tối đa hóa chức năng mục
tiêu giống như thể cả hai bên cạnh tranh với nhau trong trị chơi. Ví dụ, một
nhóm đặc tả cần tạo ra các thông số kỹ thuật chất lượng cho nhóm mã hóa để


8

phát triển mã; nhóm đặc tả sẽ giảm thiểu các lỗi phần mềm trong thơng số kỹ
thuật, trong khi nhóm mã hóa sẽ xác định càng nhiều lỗi càng tốt trong thơng
số kỹ thuật trước khi mã hóa.
Q trình min-max rất quan trọng vì nó là một cơ chế đảm bảo chất
lượng và thường một nhóm cần thực hiện cả hai. Ví dụ: nhóm viết mã cần tối
đa hóa việc xác định các lỗi trong đặc tả, nhưng cũng cần giảm thiểu số lượng
lỗi trong mã mà nhóm tạo ra.
Bugcrowd cho thấy những người tham gia sẽ theo dõi tình huống tiến

thoái lưỡng nan của tù nhân để xác định lỗi để kiểm tra bảo mật.
Kiến thức và Sở hữu trí tuệ:
Động lực và thù lao:


9

TÀI LIỆU THAM KHẢO
1.

Riedl, Christoph; Woolley, Anita (December 2016). "Teams vs.
Crowds: A Field Test of the Relative Contribution of Incentives, Member
Ability, and Collaboration to Crowd-Based Problem Solving
Performance". Academy of Management Discoveries. in press (4): 382–
403. doi:10.5465/amd.2015.0097.

2.

^ Jump up to:a b Wu, Wenjun; W. T. Tsai; Wei Li (2013). "An
Evaluation Framework for Software Crowdsourcing". Frontiers of
Computer
Science. 7 (5):
694–709. doi:10.1007/s11704-013-23202. S2CID 3352701.

3.

^ Stol, Klaas-Jan; Fitzgerald, Brian (2014). Two's Company, Three's a
Crowd: A Case Study of Crowdsourcing Software Development. 36th
International Conference on Software Engineering. ACM. pp. 187–
198. doi:10.1145/2568225.2568249.


4.

^ Wu, Wenjun; W. T. Tsai; Wei Li (2013). "Creative Software
Crowdsourcing". International Journal of Creative Computing. 1:
57. doi:10.1504/IJCRC.2013.056925.

5.

^ "Crowdsourcing Software Gathers Stronger Ideas". IdeaScale.
Retrieved 2016-03-19.

6.

^ Bugfinders. "Software Testing in the Real World". Retrieved June
21, 2013.

Bình Định, ngày 10 tháng 03 năm 2022
Học viên thực hiện

Đặng Kỳ Duyên



×