Professional Documents
Culture Documents
Dựa trên 6 kinh nghiệm thực tiễn của công nghệ phần mềm hiện đại:
1) Phát triển lặp với “rủi ro” là nhân tố dẫn dắt chính.
2) Quản lý yêu cầu
3) Sử dụng kiến trúc thành phần (component)
4) Mô hình phần mềm một cách trực quan
5) Kiểm tra chất lượng liên tục
6) Kiểm soát sự thay đổi
Các Giai đoạn và các vòng lặp trong vòng đời phát triển (Phases and
Iterations)
Mỗi vòng đời phần mềm được chia thành nhiều vòng (cycles), mỗi vòng
(cycle) làm việc trên một phiên bản mới của sản phẩm. RUP chia 1 vòng
phát triền (development cycle) thành 4 giai đoạn (phase) liên tiếp: Inception
phase, Elaboration phase, Construction phase, Transition phase.
a) Worker định nghĩa các hành vi, trách nhiệm của một cá nhân hoặc một
nhóm làm việc với nhau còn gọi là team.
b) Activity của một worker là một đơn vị công việc được giao cho một cá
nhân thực hiện. Activity có mục đích rõ ràng, thường là yêu cầu tạo mới
hoặc update một số artifacts như là model, class, hoặc plan. Mỗi một activity
được phân công cho một workder rõ ràng.
c) Artifact là một mẫu thông tin được tạo, chỉnh sửa hoặc được sử dụng bởi
qui trình. Artifact là những sản phẩm hữu hình của dự án, là vật mà dự án
tạo ra hoặc sử dụng để đạt đến sản phẩm cuối cùng. Artifact thường được
nhập bởi worker để thực hiện một activity, hoặc là kết quả của các activities.
d) Workflow :Chỉ là một bản liệt kê các workers, activities và artifact thì
không thể tạo thành qui trình. Chúng ta cần một cách mô tả tuần tự đầy ý
nghĩa các activities để tạo ra kết quả có giá trị và chỉ rõ sự tương tác giữa
các worker.
Workflow là một chuỗi các hành động diễn ra liên tiếp nhằm tạo ra kết quả
có giá trị rõ ràng.
Trong UML, workflow có thể diễn đạt bằng sequence diagram, collaboraion
diagram hoặc activity diagram.
Mô hình chữ V
Trong mô hình Waterfall, kiểm thử được thực hiện trong một giai đoạn riêng biệt. Còn
với mô hình chữ V, toàn bộ qui trình được chia thành hai nhóm giai đoạn tương ứng
nhau: phát triển và kiểm thử. Mỗi giai đoạn phát triển sẽ kết hợp với một giai đoạn kiểm
thử tương ứng như được minh họa trong hình sau:
Tinh thần chủ đạo của V-model là các hoạt độngkiểm thử phải được tiến hành song song
(theo khả năng có thể) ngay từ đầu chu trình cùng với các hoạt động phát triển. Ví dụ, các
hoạt động cho việc lập kế hoạch kiểm thử toàn hệ thống có thể được thực hiện song song
với các hoạt động phân tích và thiết kế hệ thống.
Ưu điểm:
• Các hoạt động kiểm thử được chú trọng và thực hiện song song với các hoạt động
liên quan đến đặc tả yêu cầu và thiết kế. Hay nói cách khác, mô hình này khuyến
khích các hoạt động liên quan đến kế hoạch kiểm thử được tiến hành sớm trong
chu kỳ phát triển, không phải đợi đến lúc kết thúc giai đoạn hiện thực.
Nhược điểm:
• Đòi hỏi tất cả yêu cầu phần mềm phải được xác định rõ ràng ngay từ đầu dự án.
Nhưng đa số dự án thực tế cho thấy yêu cầu phần mềm thường ẩn chứa không
nhiềuthì ít những điểm không chắc chắn.
• Một thực tế là các dự án hiếm khi được thực hiện đầy đủ các bước trong suốt chu
kỳ dự án. Đặc biệt là giai đoạn kiểm thử khi gần đến ngày giao hàng chẳng hạn,
nếu có trục trặc xảy ra doyêu cầu phần mềm không rõ ràng hay thiết kế có lỗi, xu
hướng là mã nguồn được sửa đổi trực tiếp mà không qua các bước bổ sung theo
đúng mô hình, nên dẫn đến bản đặc tả phần mềm cũng như một số sản phẩm trung
gian khác như bản thiết kế,cho dù có được cập nhật sau này cũng có thể không
phản ánh đầy đủ những gì đã được sửa đổi trong mã nguồn.
• Người sử dụng không có cơ hội tham gia trong suốt thời gian của các giai đoạn
trung gian từ thiết kế cho đến kiểm thử. Đặc biệt với những dự án lớn, người sử
dụng chỉ có thể nhận ra rằng hệ thống phần mềm không phù hợp cho nhu cầu của
họ vào thời điểm cuối dự án.
• Nói chung, mô hình này thườngẩn chứa nhiều rủi ro mà chỉ có thể phát hiện ở giai
đoạn cuối cùng và chi phí để sửa chữa có thể rất cao.
Ứng dụng:
• Yêu cầu được định nghĩa rất rõ ràng, chi tiết và hầu như không thay đổi, thường
xuất phát từ sản phẩm đã đạt mức ổn định.
• Yêu cầu mới bổ sung (nếu có) cũng sớm được xác định rõ ràng, đầy đủ từ đầu dự
án.
• Đội ngũ thực hiện quen thuộc và hiểu rõ tất cả yêu cầu của dự án, và có nhiều
kinh nghiệm với các công nghệ được dùng để phát triển sản phẩm.
• Dự án được xác định hầu như không có rủi ro.
Mô hình này thực sự cũng là một dạng dựa trên mô hình mẫu, tuy nhiên có sự khác biệt:
• mô hình tiến hóa xây dựng nhiều phiên bản prototype liên tiếp nhau.
• những phiên bản prototype trước sẽ được xây dựng với mục tiêu có thể tái sử dụng
trong những phiên bản sau.
Hình 4 minh họa mô hình tiến hóa, cho thấy một số phần của hệ thống phần mềm có thể
đuợc xây dựng sớm ngay từ giai đoạn thực hiện phân tích yêu cầu và thiết kế.
Ưu điểm:
Chú trọng việc tái sử dụng mẫu. Một phần của hệ thống có thể được phát triển ngay trong
các giai đoạn phân tích phát triển yêu cầu và thiết kế.
Cho phép thay đổi yêu cầu và khuyến khích người sử dụng tham gia trong suốt chu kỳ
của dự án.
Nhược điểm:
Làm chậm quá trình phát triển yêu cầu và có thể ảnh hưởng sự chú ý đến các công việc
trung gian như kiểm tra mã nguồn, thực hiện kiểm thử cấp thấp...
Thường thì với mô hình này, tính chặt chẽ, minh bạch của qui trình kém.
Ứng dụng:
Hệ thống tương tác nhỏ và vừa; phần GUI của những hệ thống lớn; những hệ thống cần
chu kỳ phát triển ngắn.
Đội ngũ phát triển không quen thuộc với lĩnh vực của dự án.