III. So sánh các phương pháp phát triển phần mềm linh hoạt 1 Giới thiệu
2 .Những đặc điểm chung
Trạng thái Mô tả Phương pháp
“mới sinh”
(nascent)
Phương pháp mới được đưa ra một vài năm, chưa có những nghiên cứu cụ thể , và chưa có báo cáo thực nghiệm
AM
“Đang xây dựng”
(building up)
Phương pháp và những cách tiếp cận đã được công bố rộng rãi,báo cáo thực
FDD ,Crystal
nghiệm đã được đưa ra,có cộng đồng phát triển năng động,đã có những nghiên cứu về phương pháp
“hoạt động”
(active)
Phương pháp đã được áp dụng ở nhiều nơi , có báo cáo thực nghiệm, có những nghiên cứu và có cộng đồng người dùng đang hoạt động
XP
,RUP,OSS,DSDM
Các đặc điểm chính và các đặc điểm quan trọng của các phương pháp được tóm tắt trong bẳng sau :
Tên phương pháp
Đặc điểm chính Đặc điểm quan trọng Hạn chế
ASD Tương thích với văn
hóa,hợp tác trong công việc, các thành phần hướng nhiệm vụ dựa trên sự phát triển lặp lại. Được tổ chức như một hệ thống tương thích. Tạo ra một trật tự nghiêm ngặt nằm ngoài mạng lưới các cá nhân liên kết với nhau
ASD thiên về khái niệm và văn hóa hơn là thực hành phần mềm
AM Áp dụng các nguyên tắc
linh hoạt để mô hình hóa : sự đa dạng, linh hoạt trong văn hóa,cách tổ chức công việc để hỗ trợ việc truyền thông đơn giản hơn Cách suy nghĩ linh hoạt cũng được áp dụng để thiết kế mẫu Đây là một nguyên lí bổ sung rất tốt cho việc mô hình hóa chuyên nghiệp, tuy nhiên nó chỉ áp dụng
được với những
phương pháp khác
Crystal Là tập hợp của các
phương pháp, mỗi cái có cùng một giá trị ban đầu và nguyên tắc cơ bản về kĩ thuật, vai trò, công cụ và tiêu chuẩn thì có thể khác nhau
Thiết kế phương pháp theo nguyên tắc. Có thể chọn phương pháp thích hợp nhât dựa vào quy mô và giới hạn của dự án
Quá sớm để cho rằng chỉ có 2 trong số 4
phương pháp được
khuyến cáo đang được dùng
khiển vào RAD, sử dụng timeboxing, các nhóm DSDM có quyền hay các tập đoàn tài chính để chỉ đạo việc phát triển phương pháp
triển phần mềm linh
hoạt thực sự đầu
tiên,sử dụng việc chế thử, một vài vai trò của người dùng như: đại sứ, nhà tiên tri hay cố vấn
pháp này áp dụng thì chỉ có những tập đoàn tài chính thành viên mới có quyền truy nhập vào các giao dịch giấy tờ với thực tế sử dụng phương pháp .
XP Phát triển hướng người
dùng, các nhóm nhỏ, xây dựng thường xuyên
Liên tục thiết kế lại hệ thống để nâng cao hiệu suất và đáp ứng các thay đổi Trong khi những phần việc cá nhân có vẻ phù hợp trong nhiều tình huống thì cái nhìn tổng quan và việc quản lí lại ít được quan tâm.
FDD Là quá trình gồm 5
bước, phát triển dựa trên
thành phần hướng đối
tượng, bước lặp lại rất ngắn (từ vài tiếng cho đên 2 tuần)
Sự đơn giản trong
phương pháp, thiết kế và thực hiện hệ thống bằng cách mô hình hóa đối tượng và đặc điểm
Trọng tâm của FDD nhằm vào thiết kế và thực hiện, cần thêm những cách thức hỗ trợ khác
OSS Dựa trên sự tự nguyện,
phát triển phân
tán,những khó khăn
thường là về trách nhiệm với đòi hỏi, yêu cầu hơn là trách nhiệm thương mại
Mã nguồn luôn sẵn sàng miễn phí cho mọi người
Bản thân OSS không phải là 1 phương pháp, có thể chuyển các nguyên tắc OSS sang phát triển phần mềm thương mại PP Nhấn mạnh vào tính thực dụng, lí thuyết lập trình không it quan trọng, tự động hóa ở cấp độ cao trong các khâu của lập trình Các thủ thuật, gợi ý cụ thể có tính kinh nghiệm…tiếp cận thực tế đến phát triển phần mềm Trọng tâm của PP là các phần việc cá nhân, tuy nhiên nó không phải là phương pháp mà ở đó hệ thống có thể phát triển
RUP Hoàn thành mô hình phát triển SW bao gồm hỗ trợ công cụ, phân công vai trò hướng đến hoạt động Là mô hình kinh doanh, hỗ trợ công cụ RUP không hạn chế phạm vi sử dụng, nhưng một mô tả làm thế nào để đáp ứng thay đổi mà cụ thể là thay đổi nhu cầu thì lại bị bỏ qua. Scrum Độc lập, nhỏ, các nhóm phát triển có thể tự sắp xếp,quay vòng trong 30 ngày Thực hiện mô hình chuyển đổi từ “định nghĩa và có thể lặp lại” sang “tầm nhìn phát triển sản phẩm mới của Scrum”
Trong khi Scrum rất chi tiết việc làm thế nào để quản lí quay vòng trong 30 ngày thì việc lặp lại và kiểm thử lại không chi tiết.
Bảng trên đã trình bày những điểm khác nhau cơ bản của những phương pháp mà ta đang nghiên cứu. ASD là phương pháp trừu tượng nhất từ quan điểm phát triển phần mềm .Mặc dù nghe khá hấp dẫn, nhưng mục tiêu chính – tạo ra một trật tự nghiêm ngặt nằm ngoài mạng lưới các cá nhân liên kết, có thể sẽ khá khó khăn
đểđạt được. Đây cũng là hạn chế chính của nó kể từ khi những kĩ sư gặp khó khăn trong việc chuyển đổi những khái niệm mới sang những cái mà họ quen dùng .Mô hình linh hoạt (Agile modeling- AM), XP và lập trình thực tế, tất cả đều đại diện cho quan điểm hướng thực hành. Chúng bao gồm một số lượng các kinh nghiệm thực hành hữu dụng được rút ra bởi các kĩ sư. Vì vậy, chúng rất có giá trị. Họ các phương pháp Crystal chỉ là một nguyên tắc thiết kế phương pháp để có thể đáp
ứng thay đổi theo quy mô và giới hạn của dự án. Đây là khía cạnh khá quan trọng kể từ khi quy mô của phương pháp trở thành một trong những đề tài chính mà cộng đồng phát triển linh hoạt cần đề cập đến.
DSDM khác với các phương pháp khác ở việc sử dụng chế thử. DSDM cũng
đặt ra một số vai trò mà các phương pháp khác không nhắc đến như người dùng
đóng vai trò như một đại sứ, một nhà tiên tri hay một cố vấn. Những vai trò này của người dùng đại diện cho những quan điểm khác nhau của khách hàng. Mặt hạn chế của DSDM chính là sự phụ thuộc vào các tập đoàn tài chính DSDM nhằm ngăn chặn quyền tham gia các giao dịch giấy tờ. FDD không đặt mục tiêu cung cấp một giải pháp all-in-one cho phát triển phần mềm mà trọng tâm của nó là cách tiếp cận 5 bước đơn giản, cái mà dựa trên việc xác định, thiết kế, thực hiện các đặc
tính. FDD cũng tuyên bố rằng 1 số việc theo dự án này đã được làm , vì vậy mà nó sẽ không bao gồm những giai đoạn đầu của dự án.Scrum là một cách tiếp cận quản lí dự án dựa trên các nhóm phát triển độc lập tự quản, thực hiện các dự án phần mềm theo mỗi chu kì 30 ngày, gọi là các chặng nước rút. Tương tự như ASD , OSS thì giống các nguyên tắc phát triển hơn là phương pháp. Tuy nhiên, có khá nhiều những dự án thành công theo phương pháp này, một đặc điểm đặc biệt của OSS chính là vấn đề bản quyền trong thực hiện, cụ thểởđây là phải đảm bảo rằng mã ngưồn phải luôn mở với các nhóm và có thể đọc, sửa chữa, biên dịch mã nguồn. Cuối cùng là RUP, RUP không được cho là một phương pháp đặc biệt, nó khác với những phương pháp kia ở chỗ nó là 1 phương pháp phát triển đầy đủ được hỗ trợ bởi đa dạng các công cụ thương mại, đây là điểm khác biệt nhất của RUP so với các phương pháp khác. RUP cũng mở rộng phương pháp để bao gồm cả các mô hình thực hiện mang tính chất thương mại giống như DSDM, do đó, cũng có những sự hỗ trợ trong những bước đầu của dự án phát triển phần mềm.