Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Phát triển phần mềm linh hoạt

Nội dung

! Các phương pháp linh hoạt

! Phát triển hoạch định sẵn và linh hoạt

! Extreme programming

! Quản trịdựán linh hoạt

! Mởrộng quy mô các phương pháp linh

hoạt

pdf53 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1844 | Lượt tải: 2download
Tóm tắt nội dung Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Phát triển phần mềm linh hoạt, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
2 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mô tả test case cho Dose checking 
Input:
1. A number in mg representing a single dose of the drug.
2. A number representing the number of single doses per day.
Tests:
1. Test for inputs where the single dose is correct but the frequency is too
high.
2. Test for inputs where the single dose is too high and too low.
3. Test for inputs where the single dose * frequency is too high and too low.
4. Test for inputs where single dose * frequency is in the permitted range.
Output:
OK or error message indicating that the dose is outside the safe range.
Test 4: Dose checking
33 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Test tự động 
v Test tự động nghĩa là các test được viết dưới 
dạng các component chạy được trước khi tác 
vụ được cài đặt 
§  Các component này nên đứng độc lập, mô phỏng đầu vào được 
test và nên kiểm tra rằng đầu ra thỏa mãn đặc tả. Một framework 
tự động (JUnit) là một hệ thống làm cho việc viết các test chạy 
được dễ dàng hơn. 
v Vì test tự động nên các test được thực thi dễ 
dàng và nhanh chóng 
§  Mỗi khi một chức năng được thêm vào hệ thống, các test phải 
được chạy và vấn đề xảy ra thường là do mã nguồn mới gây ra. 
34 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Khó khăn của kiểm thử trong XP 
v  Người lập trình thích lập trình hơn là kiểm thử 
§  Do đó thường đi tắt trong việc viết test 
§  Ví dụ, nó có thể viết các test không hoàn chỉnh hoặc không kiểm tra 
tất cả các ngoại lệ. 
v  Một số test khó có thể viết theo kiểu tăng dần. 
§  Ví dụ, trong một giao diện người dùng phức tạp, thường khó viết 
các unit test cho mã nguồn để cài đặt ‘display logic’ và các luồng 
chuyển tiếp giữa các màn hình. 
v  Khó đánh giá được tính đầy đủ của bộ test 
§  Bộ test cũng không thể bao phủ hết được tất cả. 
35 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Lập trình cặp 
v Trong XP, người lập trình làm việc theo cặp, 
ngồi cùng nhau tại một nơi để phát triển mã 
nguồn. 
§  Điều này giúp cho việc phát triển mã nguồn chung và 
mở rộng kiến thức của cả đội. 
§  Được dùng như là một quy trình duyệt không hình thức 
vì mỗi dòng mã nguồn được xem xét bởi nhiều hơn 1 
người. 
v Khuyến khích cải tiến vì toàn bộ nhóm có thể 
hưởng lợi từ việc này. 
v Việc đo đạt cho thấy năng suất của việc lập 
trình cặp tương đương với năng suất của hai 
người làm việc độc lập. 
36 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Lập trình cặp 
v Các cặp được tạo ra một cách linh động sao 
cho tất cả các thành viên đều có thể làm việc 
với nhau trong suốt quy trình phát triển. 
v Việc chia sẻ kiến thức xảy ra khi làm việc cặp 
là quan trọng vì nó giảm đi các nguy cơ cho dự 
án khi có thành viên rời khỏi nhóm. 
37 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Lợi ích của lập trình cặp 
v Nó hỗ trợ ý tưởng sở hữu nhóm và trách nhiệm 
chung đối với hệ thống. 
§  Các cá nhân không phải chịu trách nhiệm cho các vấn đề về mã 
nguồn. Thay vào đó, cả nhóm chịu trách nhiệm giải quyết các vấn 
đề này. 
v Nó hoạt động như một quy trình review không 
chính thức vì mỗi dòng lệnh được xem xét bởi 
ít nhất 2 người. 
v Hỗ trợ cải tiến mã nguồn 
§  Khi áp dụng lập trình cặp và sở hữu tập thể, những người khác có 
lợi trực tiếp từ việc cải tiến vì vậy họ sẽ dễ hỗ trợ quá trình này. 
38 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
v Các phương pháp linh hoạt 
v Phát triển hoạch định sẵn và linh hoạt 
v Extreme programming 
v Quản trị dự án linh hoạt 
v Mở rộng quy mô các phương pháp linh 
hoạt 
39 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Scrum 
v Là phương pháp tổng quát. 
v Tập trung vào quản lý việc phát triển 
vòng lặp hơn là các nguyên lý về 
phương pháp linh hoạt. 
40 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Quy trình Scrum 
Outline planning
and architectural
design
Project closure
Assess Select
Review Develop
Sprint cycle
41 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Chu trình Sprint 
v Độ dài Sprint cố định, thường từ 2-4 
tuần. 
§  Tương ứng với sự phát triển của một bản 
release của hệ thống. 
v Điểm bắt đầu cho kế hoạch là product 
backlog, là danh sách các công việc phải 
làm trong dự án. 
v Pha chọn gồm cả nhóm phát triển dự án 
làm việc với khách hàng để chọn ra các 
đặc tính và chức năng được cài đặt 
trong sprint. 
42 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Chu trình Sprint 
v Một khi các chức năng được lựa chọn, nhóm tự 
tổ chức để phát triển phần mềm. 
§  Trong suốt giai đoạn này, người khách hàng bị tách ra 
khỏi nhóm và tất cả các liên lạc đều thông qua ‘Scrum 
master’. 
v Vai trò của Scrum master là để bảo vệ nhóm 
phát triển khỏi sự phân tán bên ngoài. 
v  Vào cuối sprint, công việc đã thực hiện được 
duyệt lại và giới thiệu cho stakeholder. Chu 
trình sprint tiếp theo lại bắt đầu. 
43 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nhóm làm việc trong Scrum 
v ‘Scrum master’ là người tổ chức họp hàng 
ngày, theo dõi tiến độ công việc, giao tiếp với 
khách hàng và quản lý bên ngoài nhóm. 
v Toàn đội tham dự một cuộc họp ngắn hàng 
ngày trong đó các thành viên chia sẻ thông tin, 
mô tả tiến độ của họ, các vấn đề phát sinh và 
lên kế hoạch cho ngày tiếp theo. 
§  Nghĩa là mọi người biết cái gì đang diễn ra, vấn đề phát sinh và lên 
kế hoạch ngắn hạn để đáp ứng sự thay đổi. 
44 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Lợi ích của Scrum 
v Sản phẩm được chia thành cách phần nhỏ dễ 
hiểu và dễ quản lý. 
v Các yêu cầu không ổn định sẽ không làm chậm 
trễ tiến độ. 
v Toàn đội thấy được mọi thứ và vì vậy giao tiếp 
nhóm được cải thiện. 
v Khách hàng nhận từng phần đúng hạn và gởi 
phản hồi về sản phẩm. 
v Niềm tin giữa khách hàng và đội phát triển 
tăng lên và một văn hóa tích cực được tạo ra 
trong đó mỗi người đều mong muốn dự án 
thành công. 
45 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Nội dung 
v Các phương pháp linh hoạt 
v Phát triển hoạch định sẵn và linh hoạt 
v Extreme programming 
v Quản trị dự án linh hoạt 
v Mở rộng quy mô các phương pháp linh 
hoạt 
46 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Mở rộng quy mô 
v Các phương pháp linh hoạt được chứng minh là 
một phương pháp thành công cho các dự án 
vừa và nhỏ được phát triển bởi nhóm nhỏ làm 
việc tại cùng một nơi. 
v Sự thành công của các phương pháp này do 
việc cải thiện giao tiếp giữa các thành viên khi 
mọi người làm việc cùng nhau. 
v Việc mở rộng quy mô các phương pháp linh 
hoạt gồm 
§  thay đổi các phương pháp này để phù hợp với những 
dự án lớn hơn, 
§  các tổ chức lớn sử dụng phương pháp này để phát triển 
ứng dụng. 
 47 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Việc phát triển các hệ thống lớn 
v  Các hệ thống lớn thường là tập hợp các hệ thống rời rạc, 
tương tác với nhau. 
v  Có các nhóm phát triển riêng cho từng hệ thống con. 
Các nhóm này thường được phân tán ở nhiều địa điểm 
khác nhau. 
v  Các hệ thống lớn này thường là ‘brownfield systems’ 
§  Gồm có một số các hệ thống con đang tồn tại và tương tác với các 
hệ thống này. 
§  Nhiều yêu cầu hệ thống liên quan đến tương tác và vì vậy không 
thật sự cần tính linh động và phát triển tăng dần. 
v  Vài hệ thống con được tích hợp để tạo ra một hệ thống 
lớn, do đó việc phát triển liên quan nhiều đến cấu hình 
hệ thống hơn là phát triển mã nguồn mới. 
48 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Việc phát triển các hệ thống lớn 
v Các hệ thống lớn và quy trình phát triển của 
chúng thường ràng buộc bởi các yếu tố và quy 
định bên ngoài làm hạn chế cách chúng được 
phát triển. 
v Các hệ thống lớn có thời gian phát triển và sử 
dụng dài. 
§  Khó có thể duy trì các nhóm phát triển trong một thời 
gian dài vì tất nhiên các thành viên có thể thay đổi công 
việc và dự án. 
v Các hệ thống lớn thường có một tập đa dạng 
các stakeholder. Sẽ không thực tế nếu đưa tất 
cả các stakeholder này vào trong quy trình 
phát triển. 
49 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Scaling out và scaling up 
v ‘Scaling up’ liên quan đến việc sử dụng các 
phương pháp linh hoạt để phát triển các hệ 
thống phần mềm lớn mà nó không thể được 
phát triển bởi các nhóm nhỏ. 
v ‘Scaling out’ liên quan đến cách các phương 
pháp linh hoạt được giới thiệu đến các tổ chức 
đã có nhiều năm kinh nghiệm về sản xuất phần 
mềm. 
v Khi mở rộng quy mô các phương pháp linh 
hoạt cần giữ lại các nền tảng linh hoạt 
§  Kế hoạch linh động, các bản release ra thường xuyên, tích hợp liên 
tục, phát triển theo hướng kiểm thử và giao tiếp nhóm tốt. 
50 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Scaling up cho các hệ thống lớn 
v Đối với việc phát triển các hệ thống lớn, không thể 
chỉ tập trung vào mã nguồn của hệ thống. Ta cần 
thêm nhiều thiết kế và tài liệu hệ thống. 
v  Cơ chế giao tiếp giữa các nhóm phải được thiết kế 
và sử dụng. 
§  Có thể sử dụng liên lạc qua điện thoại hoặc video conference 
thường xuyên giữa các nhóm và các cuộc họp “điện tử” ngắn, 
thường xuyên trong đó các nhóm cập nhật tiến độ của mình. 
v  Tích hợp thường xuyên, trong đó toàn bộ hệ thống 
được build lại mỗi khi người phát triển kiểm tra 
một thay đổi, trên thực tế thì khó thực hiện. 
§  Tuy nhiên, việc build hệ thống thường xuyên và tạo ra các 
bản release thường xuyên là cần thiết. 
51 
Nguyễn Thị Minh Tuyền Nhập môn CNPM 
Scaling out cho các công ty lớn 
v  Người quản trị dự án không có kinh nghiệm với 
phương pháp linh hoạt có thể sẽ miễn cưỡng chấp 
nhận phương pháp mới. 
v  Các tổ chức lớn thường có các thủ tục và chuẩn về 
chất lượng cần phải tuân theo. Vì bản chất này, 
các tổ chức thường khó tương thích với các 
phương pháp linh hoạt. 
v  Các phương pháp linh hoạt được xem là hiệu quả 
khi các thành viên có kỹ năng tương đối cao. Tuy 
nhiên, trong các tổ chức lớn, kỹ năng và khả năng 
thường không đồng đều. 
v  Có thể văn hóa của công ty sẽ cản trở việc sử 
dụng phương pháp linh hoạt, đặc biệt là những tổ 
chức có một thời gian dài sử dụng các quy trình 
công nghệ truyền thống. 
52 

File đính kèm:

  • pdfNhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Phát triển phần mềm linh hoạt.pdf