TÍCH HỢP - xaydungphanmem

Download Report

Transcript TÍCH HỢP - xaydungphanmem

TÍCH HỢP
Nhóm 10
1
Nội dung
1
• Tích hợp là gì
2
• Lý do phải tích hợp?
3
• Các phương pháp tích hợp
4
• Tích hợp liên tục
5
• Các công cụ hỗ trợ
2
Tích hợp

Tích hợp là một kỹ thuật phần mềm, khi
source code có thay đổi thì tự động
compile lại project, rebuild cơ sở dữ liệu,
thực hiện test và báo cáo.
3
Lý do cần tích hợp







Commit code thường xuyên: commit code đến
công cụ quản lý phiên bản ít nhất 1 lần 1 ngày.
Khi commit sẽ hạn chế làm lỗi code.
Tự động build và sửa lỗi build ngay lập tức
Tự động thực hiện các bộ test.
Tất cả bộ test và thanh tra cần được thông qua
Run private builds: ngăn chặn tích hợp lỗi, lấy
sự thay đổi cuối cùng từ thùng chứa và chạy
tích hợp build đầy đủ
Tránh được trường hợp lấy code lỗi.
4
Lý do cần tích hợp






Giảm thiểu rủi ro.
Giảm thiểu sự lập lại cho quá trình.
Triển khai phần mềm mọi lúc mọi nơi.
Cho phép project hiển thị tốt hơn.
Thiết lập sự tự tin trong sản phẩm phần mềm từ
đội phát triển phần mềm.
Cải thiện chất lượng phần mềm.
5
Các phương pháp tích hợp
Phased integration.
 Incremental integration.
 Top-down integration.
 Bottom-up integration.
 Sandwich integration.
 Risk – oriented integration.

6
Phased integration

Tất cả các giai đoạn phát triển của dự án sẽ được
tích hợp tại cùng 1 thời điểm và gồm các bước sau:
 Thiết
kế, code, test và debug các class trong chương
trình
 Kết hợp các class mã nguồn thành 1 hệ thống lớn
(tích hợp)
 Kiểm thử và debug hệ thống này.
Nhược điểm: Khi tích hợp nhiều class như vậy sẽ làm
cho chuơng trình phát sinh nhiều bug và phải mất nhiều
thời gian để sửa lỗi chương trình
7
Phased integration (tt)

Ưu điểm: dễ áp dụng và đặc biệt là tiết
kiệm nhiều thời gian cho các hệ thống nhỏ

Nhược điểm:Khi tích hợp cùng lúc nhiều class như

vậy sẽ làm cho chương trình phát sinh nhiều bug và phải
mất nhiều thời gian để sửa lỗi chương trình và vì thế
phased intergration được gọi là “Big bang intergration’’
Chỉ sử dụng cho các dự án nhỏ nhưng rất hạn chế
8
Incremental integration

Trong Incremental intergration bạn sẽ viết và test 1
phần chức năng của chương trình sau đó kết hợp
các chức năng nhỏ lại thành hệ thống hoàn chỉnh .
Thông qua các bước sau:
 Phát
triển 1 chức năng nhỏ của chương trình sau đó
test và là bộ khung cho chương trình ban đầu
 Thiết kế, code, test và debug các class
 Gắn class mới vào chương trình ban đầu. Test và
debug chương trình. Đảm bảo rằng chương trình vừa
mới tích hợp không còn lỗi thì mới gắn các class kế
tiếp vào cho đến khi hoàn thành các chức năng thành
1 chương trình hoàn chỉnh.
9
Incremental integration (tt)

Đây là phương pháp tích hợp được sử dụng
phổ biến ngày nay vì nó có nhiều ưu điểm:
 Dễ
phát hiện và sửa lỗi chương trình
 Tiết kiệm thời gian và chi phí cho việc kiểm thử
 Cái thiện và đạt hiệu quả cho quá trình kiểm tra.
 Từng phần của hệ thống được kiểm tra đầy đủ hơn
 Xây dựng chương trình sớm hơn kế hoạch dự kiến.
10
Tích hợp liên tục (Continuous
Integration)

Tích hợp liên tục là cung cấp phản hồi
nhanh chóng do đó nếu 1 lỗi được phát
hiện trong code, nó có thể được xác định
và sửa chửa càng sớm càng tốt có thể.
Tích hợp liên tục là các công cụ phần
mềm được dùng để tự động test và build.
11
Tích hợp liên tục (tt)










Maintain a Single Source Repository.
Automate the Build
Make Your Build Self-Testing
Everyone Commits To the Mainline Every Day
Every Commit Should Build the Mainline on an
Integration Machine
Keep the Build Fast
Test in a Clone of the Production Environment
Make it Easy for Anyone to Get the Latest Executable
Everyone can see what's happening
Automate Deployment
12
CÁC CÔNG CỤ HỖ TRỢ
AnthillPro
www.urbancode.com/products/anthillpro/
 Apache Continuum
http://maven.apache.org/continuum/
 Bamboo
www.atlassian.com/software/bamboo/
 BuildForge
http://www306.ibm.com/software/awdtools/buildforge/enterpris
e/
 Continuous Integration Server Matrix
http://damagecontrol.codehaus.org/Continuous+Integration+S
erver+Feature+Matrix
 CruiseControl
http://cruisecontrol.sourceforge.net
 Hudson
13
http://hudson-ci.org

CÁC CÔNG CỤ HỖ TRỢ
CruiseControl.NET
http://ccnet.thoughtworks.com
 Draco.NET
http://draconet.sourceforge.net/
 Gauntlet
www.borland.com/us/products/silk/gauntlet/
 Luntbuild
http://luntbuild.javaforge.com/
 ParaBuild
www.viewtier.com/products/parabuild/index.htm
 PMEase QuickBuild
www.pmease.com/
 Sin
http://sin.tigris.org/

14
Thank you!
15