Cho đến tận bây giờ phương pháp phổ biến là: o Tích hợp theo sau tích hợp
Đây là phương pháp tồi Tốt hơn:
o Kết hợp giữa cài đặt và tích Sản phẩm phần mềm với 13 mô đun
Cài đặt sau đó tích hợp
o Viết mã và kiểm thử tài liệu viết mã là tách biệt
o Liên kết 13 tài liệu với nhau, kiểm thử toàn bộ phần mềm
Driver và stub
o Để kiểm thử tài liệu a, các tài liệu b,c,d phải trở thành những stub Một tài liệu trống hoặc
In ra một thông báo ("Procedure radarCalc called"), hoặc
Trả lại một phần giá trị từ các trường hợp kiểm thửu đã được lập kế hoạch PTIT
Chương 10: Pha cài đặt và tích hợp
o Để kiểm thử tài liệu h thì yêu cầu một bộ điều khiển (driver) mà sẽ gọi mô đun h Một lần, hoặc
Một vài lần, hoặc
Nhiều lần, mỗi lần kiểm tra giá trị được trả lại o Để kiểm thử tài liệu d yêu cầu một bộ điều khiển và 2 stubs Vấn đề 1
o Stubs và drivers phải được viết sau đó phải được kiểm thử đơn vị hoàn thiện mới được sử dụng
Vấn đề 2
o Thiếu sự cô lập lỗi
o Mội lỗi có thể nằm ở bất cứ chỗ nào của 13 mô đun ( artifact )được tạo ra hoặc 13 giao diện (interface)
o Với một phần mềm lớn, có 103 mô đun (artifact) và 108 giao diện (interface), thì phải có 211 chỗ lỗi có thể xảy ra
Giải pháp cho cả hai vấn đề
o Kết hợp giữa kiểm thử đơn vị và tích hợp
10.1.2.1Tích hợp trên xuống
Nếu mô đun mAbove gửi một thông điệp tới mô đun mBelow, thì mAbove phải được cài đạt và tích hợp trước mBelow Thứ tự từ trên xuống có thể là o a,b,c,d,e,f,g,h,i,j,k,l,m Một thứ tự khác từ trên xuống a [a] b,e,h [a] c,d,f,i [a,d] g,j,k,l,m Thuận lợi 1: Cô lập lỗi
o Trường hợp kiểm thử thành công trước đó bị lỗi khi mô đun mNew được thêm vào những cái đã được kiểm thử cho đến lúc này
Chương 10: Pha cài đặt và tích hợp
Lỗi phải nằm trong mô đun mNew hoặc giao diện giữa mNew và phần còn lại của phần mềm
Thuận lợi 2: Stubs không bị lãng phí
o Mỗi stub được sử dụng vào mô đun hoàn thiện tương ứng ở mỗi bước thích hợp Thuận lợi 3: Những thiếu sót thiết kế chính được đưa ra từ sớm
Các mô đun lô gic bao gồm luồng điều khiển đưa ra quyết định (Logic artifacts include the decision-making flow of control)
o Trong ví dụ, các mô đun a,b,c,d,g,j
Các mô đun hoạt động thực hiện những thao tác thực sự của phần mềm o Trong ví dụ, các mô đun e,f,h,i,k,l,m
Các mô đun lô gic được xây dựng trước các mô đun hoạt động Vấn đề 1
o Các mô đun có thể sử dụng lại không được kiểm thử một cách thích đáng
o Các mô đun mức thấp hơn (mức hành động) không được kiểm thử thường xuyên o Vấn đề càng trở nên trầm trọng nếu sản phẩm phần mềm thiết kế tốt (The situation
is aggravated if the product is well designed) Defensive programming (fault shielding)
o Ví dụ:
if (x >= 0)
y = computeSquareRoot (x, errorFlag);
o computeSquareRoot không bao giờ kiểm thử với x < 0 o Điều này ngụ ý để sử dụng lại
10.1.2.2Tích hợp dưới lên
Nếu mô đun mAbove gọi mô đun mBelow, thì mBelow được cài đặt và tích hợp trước mAbove
Thứ tự tích hợp từ dưới lên có thể là : l,m,h,i,j,k,e,f,g,b,c,d,a Một thứ tự tích hợp từ dưới lên khác có thể là h,e,b i,f,c,d l,m,j,k,g [d] a [b,c,d] Thuận lợi 1
o Các mô đun hoạt động được kiểm thử kỹ lưỡng Thuận lợi 2
o Các mô đun hoạt động được kiểm thử với các bộ điều khiển (driver), không có tấm chắn lỗi, các mô đun được lập trình một cách ….(Operational artifacts are tested with drivers, not by fault shielding, defensively programmed artifacts) o Thuận lợi
Chương 10: Pha cài đặt và tích hợp
o Cô lập lỗi Khó khăn 1
o Các lỗi thiết kế được phát hiện muộn Giải pháp
o Kết hợp chiến lược tích hợp dưới lên và trên xuống để tận dụng điểm mạnh của cả hai chiến lược và cực tiểu điểm yếu của chúng
10.1.2.3 Tích hợp Sanwich
Các mô đun lô gic được tích hợp trên xuống (Logic artifact) Các mô đun hoạt động tích hợp dưới lên (Operational artifacts) Cuối cùng, các giao diện của hai nhóm mô đun trên được kiểm thử
Thuận lợi 1
o Các lỗi thiết kế chính được tìm thấy sớm Thuận lợi 2
o Các mô đun hoạt động được kiểm thử kỹ lưỡng o Chúng có thể được sử dụng lại một cách tin tưởng Thuận lợi 3
o Luôn luôn có sự cô lập lỗi
Tổng kết:
Chương 10: Pha cài đặt và tích hợp
10.1.2.4Tích hợp các phần mềm hướng đối tượng
Cài đặt và tích hợp hướng đối tượng
o Hầu hết các phần mềm đều cài đặt và tích hợp sandwich o Các đối tượng được tích hợp dưới lên
o Các mô đun khác được tích hợp trên xuống
10.1.2.5Quản lý tích hợp
Ví dụ:
o Tài liệu thiết kế được sử dụng bởi người lập trình P1 (người đã viết mã đối tượng o1) chỉ ra đối tượng o1 gửi thông điệp tới đối tượng o2 với bốn tham số
o Tài liệu thiết kế được sử dụng bởi người lập trình P2 (người đã viết mã đối tượng o2) chỉ ra rõ ràng rằng chỉ 3 đối số được truyền tới đối tượng o2
Giải pháp:
o Tiến trình tích hợp phải được quản lý bởi nhóm SQA