Giáo trình Kỹ nghệ phần mềm - Bài 2: Các qui trình phần mềm (Software Processes)

Giới thiệu một số mô hình qui trình phần

mềm

• Mô tả ba mô hình tổng quát

– Và khi nào nên áp dụng chúng

• Mô tả mô hình qui trình phác thảo cho RE •

(requirements engineering), phát triển, kiểm

thử, và tiến hóa phần mềm

• Giải thích mô hình RUP (Rational Unified

Process)

• Giới thiệu một số công cụ CASE

pdf50 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 2345 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình Kỹ nghệ phần mềm - Bài 2: Các qui trình phần mềm (Software Processes), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
)
• Đọc thêm Chương 17
Phát triển xoáy ốc
• Qui trình được thể hiện là một đường xoáy ốc 
– thay vì một dãy các hoạt động với quay lui
• Mỗi vòng xoáy là một pha của qui trình
• Không cố định số pha như đặc tả hay thiết kế
– Vòng xoáy được chọn tùy theo yêu cầu
• Rủi ro được đánh giá rõ ràng và giải quyết 
trong suốt qui trình
Mô hình xoáy ốc
Phân tích
rủi ro
Bản mẫu 1
ĐÁNH GIÁ
Xác định mục tiêu,
Các phương án, 
ràng buộc
Đánh giá các phương án,
Xác định và giải quyết rủi ro
Bản mẫu 2
Bản mẫu 3
Bản mẫu 
dùng được
Phân tích
rủi ro
Phân tích
rủi ro
Phân tích
rủi ro
Khái niệm về 
hoạt động
Mô phỏng, mô hình hóa, thử sơ bộ
Yêu cầu 
phần mềm
Kiểm định 
yêu cầu
Thiết kế kiểm thử
Thiết kế 
sản phẩm
Thiết kế 
chi tiết
Lâp trình
Kiểm thử 
đơn vị
Kiểm thử 
tích hợpKiểm thử 
chấp thuậnSử dụng
Kế hoạch tích hợp 
Và kiểm thử
Kế hoạch 
phát triển
Kế hoạch lấy yêu cầu
Kế hoạch các vòng xoáy
Phát triển, kiểm tra 
bản tiếp theo
Lập kế hoạch 
pha tiếp theo
Các phần của mô hình xoáy ốc
• Xác định mục tiêu
– Xác định mục tiêu cụ thể của mỗi pha
• Đánh giá và giảm rủi ro
• Phát triển và kiểm định
– Mô hình phát triển có thể chọn bất kỳ trong các mô hình tổng quát
• Kế hoạch
– Đánh giá dự án, và lập kế hoạch cho pha tiếp theo
Các hoạt động chính của qui trình
• Đặc tả
• Thiết kế và lập trình
• Kiểm định
• Tiến hóa
Đặc tả phần mềm
• Quá trình xác định dịch vụ nào cần xây dựng 
và các ràng buộc khi hệ thống hoạt động và 
trong quá trình phát triển
• Qui trình kỹ nghệ lấy yêu cầu (RE)
– Nghiên cứu tính khả thi
– Phân tích và làm rõ yêu cầu
– Đặc tả yêu cầu
– Kiểm định yêu cầu
Qui trình kỹ nghệ lấy yêu cầu
Nghiên cứu
tính khả thi
Phân tích và
làm rõ
yêu cầu
Đặc tả
yêu cầu
Báo cáo khả
Kiểm định
yêu cầu
thi
Mô hình hệ
thống
Yêu cầu
người dùng
và hệ thống
Tài liệu
yêu cầu
Thiết kế và lập trình
• Quá trình chuyển đặc tả hệ thống thành hệ thống
chạy được
• Thiết kế
– Thiết kế cấu trúc phần mềm để thực hiện được đặc tả đã
xác định
• Lập trình (implementation – cài đặt)
– Chuyển đổi cấu trúc thành chương trình chạy được
• Hoạt động thiết kế và lập trình có liên quan chặt chẽ
với nhau và đan xen nhau
Các hoạt động thiết kế
• Thiết kế kiến trúc
• Đặc tả trừu tượng
• Thiết kế giao diện
• Thiết kế thành phần
• Thiết kế cấu trúc dữ liệu
• Thiết kế thuận toán
Hoạt động thiết kế
Qui trình thiết kế phần mềm
Đặc tả
Thiết kế
kiến trúc
Đặc tả trừu
tượng
Thiết kế
giao diện
Thiết kế
thành phần
Thiết kế cấu
trúc dữ liệu
Thiết kế
thuật toán
Sản phẩm thiết kế
Design products
Kiến trúc
hệ thống
Đặc tả
phần mềm
Đặc tả
giao diện
Đặc tả
thành phần
Đặc tả cấu
trúc dữ
liệu
Đặc tả
thuật toán
Các phương pháp có cấu trúc
• Phương pháp hệ thống để thiết kế phần mềm
• Thiết kế thường được ghi lại là một tập các 
mô hình đồ họa
• Một số mô hình phổ biến
–Mô hình đối tượng
–Mô hình tuần tự
–Mô hình chuyển trạng thái
–Mô hình cấu trúc
–Mô hình luồng dữ liệu
Lập trình và gỡ lỗi
• Chuyển thiết kế thành chương trình và loại bỏ 
lỗi khỏi chương trình
• Lập trình là hoạt động cá nhân – không có qui 
trình lập trình tổng quát
• Lập trình viên tự kiểm thử để phát hiện lỗi và 
loại bỏ lỗi trong quá trình gỡ lỗi (debug)
Quá trình gỡ lỗi
Định vị lỗi
Sửa Sửa lỗi
Kiểm thử lại
lỗi thiết kế chương trình
Kiểm định
• Kiểm chứng và kiểm định để chứng tỏ rằng 
– hệ thống tuân thủ đặc tả của nó và 
– đáp ứng yêu cầu khách hàng
• Liên quan đến qui trình kiểm tra và đánh giá, 
và kiểm thử hệ thống
• Kiểm thử hệ thống là chạy hệ thống với các ca 
kiểm thử 
– Ca kiểm thử được xác định từ đặc tả dữ liệu thực 
tế sẽ được hệ thống xử lý
Quá trình kiểm thử
Kiểm thử hệ
thống
Kiểm thử
chấp thuận
Kiểm thử
thành phần
Các giai đoạn kiểm thử
• Kiểm thử đơn vị và kiểm thử thành phần
– Các thành phần được kiểm thử độc lập
– Thành phần có thể là các hàm, các đối tượng, hoặc
một nhóm liên quan của các thực thể này
• Kiểm thử hệ thống
– Kiểm thử toàn bộ hệ thống
– Kiểm thử các tính chất tổng hợp rất quan trọng
• Kiểm thử chấp nhận
– Kiểm thử với dữ liệu của khách hàng để kiểm tra xem
hệ thống có đáp ứng yêu cầu của khách hàng không
Các công đoạn của kiểm thử
Đặc tả yêu cầu Đặc tả hệ thống Thiết kế hệ thống Thiết kế chi tiết
Kế hoạch kiểm
Kế hoạch kiểm
thử tích hợp
Kế hoạch kiểm
thử tích hợp
Mã
chương
thử chấp thuận
hệ thống hệ thống con
Kiểm thử chấp
thuận
Kiểm thử tích hợp
hệ thống
Kiểm thử tích hợp
hệ thống con
Phục vụ
trình và
kiểm thử
đơn vị
Tiến hóa phần mềm
• Thuộc tính cố hữu của phần mềm là mềm dẻo
và dễ thay đổi
• Vì yêu cầu thay đổi khi hoàn cảnh nghiệp vụ
thay đổi, phần mềm hỗ trợ nghiệp vụ phải
tiến hóa theo thay đổi đó
• Mặc dù có sự tách biệt giữa phát triển và tiến
hóa (bảo trì), tách biệt này ngày càng mờ
• vì càng ngày càng có ít hệ thống được phát triển
mới hoàn toàn
Tiến hóa hệ thống
Xác định yêu
cầu hệ thống
Đánh giá hệ
thống hiện tại
Đề xuất thay
đổi hệ thống
Sửa đổi
hệ thống
Hệ thống
hiện tại
Hệ thống
mới
Qui trình thống nhất (RUP)
• Một mô hình qui trình hiện đại rút ra từ việc 
xây dựng UML (Unified Modeling Language)
• Thường được mô tả từ 3 góc độ
– Góc độ động, thể hiện các pha theo thời gian
– Góc độ tĩnh, thể hiện các hoạt động của qui trình
– Góc độ thực tiễn, gồm các kinh nghiệm quí
Mô hình tổng quát của RUP
Các pha của RUP
• Khởi động (Inception)
– Xác lập ca nghiệp vụ (biz case) cho hệ thống
• Phác thảo (Elaboration)
– Hiểu phạm vi bài toán và kiến trúc hệ thống
• Xây dựng (Construction)
– Thiết kế, lập trình và kiểm thử hệ thống
• Chuyển giao (Transition)
– Triển khai trong môi trường vận hành
Kinh nghiệm quí của RUP
• Phát triển lặp
• Quản lý yêu cầu
• Sử dụng kiến trúc dựa trên thành phần
• Mô hình hóa một cách trực quan
• Kiểm định chất lượng
• Kiểm soát thay đổi
Luồng công việc tĩnh
Luồng công việc Mô tả
Mô hình hóa nghiệp vụ
(business modeling)
mô tả cấu trúc và quy trình nghiệp vụ.
Xác định yêu cầu
(requirement)
mô tả nghiệp vụ bằng phương pháp “tình huống sử
dụng” (use case base method)
Phân tích và thiết kế
(analysis & design)
mô tả kiến trúc hệ thống thông qua các sơ đồ phân tích
thiết kế.
Lập trình (implementation) thực hiện các việc xây dựng chương trình bằng ngôn ngữ
lập trình.
Thử nghiệm mô tả các tình huống và kịch bản thử nghiệm, tiến hành
thử nghiệm hệ thống phần mềm.
Triển khai đưa hệ thống phần mềm vào sử dụng
Quản trị cấu hình, thay đổi kiểm soát các thay đổi và duy trì sự hợp nhất của các
thành phần dự án.
Quản trị dự án quản lý toàn bộ quá trình làm việc của dự án.
Môi trường đảm bảo các hạ tầng cần thiết để có thể phát triển được
hệ thống.
Công cụ CASE
• Công cụ CASE
– Phần mềm hỗ trợ các qui trình phát triển và tiến hóa phần
mềm
• Tự động hóa các hoạt động
– Trình soạn thảo đồ họa để phát triển mô hình hệ thống
– Từ điển dữ liệu để quản lý các thực thể thiết kế
– Công cụ đồ họa để xây dựng giao diện người sử dụng
– Công cụ gỡ lỗi để hỗ trợ việc tìm lỗi chương trình
– Dịch tự động để tạo ra các phiên bản mới của chương
trình
Công nghệ CASE
• Công nghệ CASE đã cải tiến đáng các qui trình 
phần mềm, tuy nhiên không quá lớn như 
được tiên đoán trước đó
– CNPM đòi hỏi suy nghĩ sáng tạo – điều này không 
tự động hóa được
– CNPM là hoạt động nhóm và 
• Mất rất nhiều thời gian thảo luận nhóm với các dự án 
lớn và CASE chưa thực sự hỗ trợ nhiều ở đây.
Phân loại công cụ CASE
• Phân loại giúp ta hiểu các loại công cụ CASE khác
nhau và tính năng hỗ trợ của chúng trong các
hoạt động qui trình
• Góc độ chức năng
Phân loại theo chức năng cụ thể của chúng–
• Góc độ qui trình
– Phân loại theo các hoạt động qui trình chúng hỗ trợ
• Góc độ tích hợp
– Phân loại theo tổ chức của chúng trong các đợn vị tích
hợp.
Công cụ tích hợp
• Công cụ
– Hỗ trợ từng loại công việc, như kiểm tra tính nhất
quán, soạn thảo văn bản, v.v.
• Bàn làm việc (workbench)
Hỗ trợ một công đoạn, vd đặc tả, thiết kế–
– Thường kết hợp một số công cụ
• Môi trường
– Hỗ trợ tất cả hoặc phần lớn toan bộ qui trình phần
mềm
– Thường kết hợp một số bàn làm việc
Phân loại công cụ CASE 
Công cụ
Soạn thảo
Dịch
So sánh tệp
Bàn làm việc đa năng
CASE
Bàn làm việc
Phân tích thiết kế
Bàn làm việc đơn năng
Lập trình
Bàn làm việc tổng tổng hợp
Bàn làm việc chuyên dụng
Kiểm thử
Môi trường
Môi trường tích hợp
Môi trường hướng
qui trình
Các điểm chính
• Các qui trình phần mềm là các hoạt động liên quan đến việc tạo 
ra và tiến hóa một hệ thống phần mềm
• Mô hình tiến trình phần mềm là biễu diễn trừu tượng của các 
qui trình này
• Các hoạt động chính là đặc tả, thiết kế, lập trình, kiểm định và 
tiến hóa
• Mô hình tiến trình tổng quát mô tả tổ chức của qui trình phần 
mềm. Vd như mô hình thác nước, phát triển tiến hóa, và CBSE
• Mô hình qui trình lặp mô tả qui trình phần mềm là một vòng lặp 
của các hoạt động
Các điểm chính
• RE là qui trình phát triển đặc tả phần mềm
• Qui trình thiết kế và lập trình chuyển đặc tả thành chương trình 
chạy được
• Kiểm thử liên quan đến việc kiểm tra chương trình có đáp ứng 
đặc tả và nhu cầu của người sử dụng không.
• Tiến hóa liên quan đến việc sửa đổi hệ thống sau khi nó đã được 
đưa vào sử dụng
• RUP là mô hình qui trình tổng quát trong đó các hoạt động và 
các pha được tách ra
• Công nghệ CASE hỗ trợ các hoạt động qui trình phần mềm 
Bài tập về nhà
• Đọc thêm Wikipedia 
– Mô hình qui trình hiện đại: Agile, XP, Scrum, Test Driven Development
– CMMI, ISO 9000, 
• Chọn qui trình phù hợp với dự án bài tập lớn của nhóm. Nêu 
lý do.
• Với mỗi hoạt động trong qui trình phần mềm tìm một số công 
cụ CASE hỗ trợ để thực hiện hoạt động đó và một số công cụ 
hỗ trợ nhiều hoạt động.
Câu hỏi
• Phân biệt các mô hình tiến trình khác nhau?
• Khi có yêu cầu phát triển một hệ thống:
– Cần lưu ý gì trong việc lựa chọn mô hình tiến trình?
– Lựa chọn mô hình phù hợp bằng cách nào?
– Có những chỉ dẫn gì trong việc lựa chọn mô hình?

File đính kèm:

  • pdfGiáo trình Kỹ nghệ phần mềm - Bài 2 Các qui trình phần mềm (Software Processes).pdf