Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh

Các hoạt động phát triển phần mềm

 Phân tích tính khả thi

 Phân tích và đặc tả yêu cầu

 Thiết kế

 Mã hóa

 Kiểm thử

 Bảo trì

pdf 45 trang yennguyen 5380
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh

Bài giảng Công nghệ phần mềm - Chương 2: Mô hình phát triển phần mềm - Lê Thị Mỹ Hạnh
Mô hình phát triển phần mềm(2)
Lê Thị Mỹ Hạnh
Khoa Công nghệ Thông tin
Trường Đại hoc Bách khoa
Đại học Đà Nẵng
Lê Thị Mỹ Hạnh - Khoa CNTT 2
Nội dung
 Các hoạt động phát triển phần mềm
 Các mô hình phát triển phần mềm
Lê Thị Mỹ Hạnh - Khoa CNTT 3
Các hoạt động phát triển phần mềm
 Phân tích tính khả thi
 Phân tích và đặc tả yêu cầu
 Thiết kế
 Mã hóa
 Kiểm thử
 Bảo trì
Lê Thị Mỹ Hạnh - Khoa CNTT 4
Các hoạt động phát triển phần mềm
 Phân tích tính khả thi
 Xác định những vấn đề cần giải quyết,
 Xem xét các giải pháp và kỹ thuật khác 
nhau
 Thuận lợi
 Bất lợi
 Đánh giá về thời gian, giá thành, nguồn tài 
nguyên cần thiết
 Sản phẩm: tài liệu phát triển
Lê Thị Mỹ Hạnh - Khoa CNTT 5
Các hoạt động phát triển phần mềm
 Phân tích và đặc tả yêu cầu (1)
 Xác định nhu cầu của khách hàng/người sử 
dụng
 Xác định bài tóan, chứ không phải là giải pháp
 Khó khăn
 Khách hàng không biết cái họ cần
 Khách hàng không biết bày tỏ cái mình muốn
 Các thay đổi
 Sản phẩm: tài liệu đặc tả yêu cầu
Lê Thị Mỹ Hạnh - Khoa CNTT 6
Các hoạt động phát triển phần mềm
 Phân tích và đặc tả yêu cầu (2)
 các bước
 Khảo sát, tổng hợp yêu cầu
 Phân tích yêu cầu
 Đặc tả yêu cầu
 Hợp thức hóa yêu cầu
Lê Thị Mỹ Hạnh - Khoa CNTT 7
Các hoạt động phát triển phần mềm
 Phân tích và đặc tả yêu cầu (2)
Lê Thị Mỹ Hạnh - Khoa CNTT 8
Các hoạt động phát triển phần mềm
 Thiết kế (1)
 Chuyển từ tài liệu các yêu cầu thành cấu trúc logic 
có thể cài đặt được
 Giải pháp cho vấn đề đã được đặt tả
 Thiết kế kiến trúc
 Các mô-đun và giao diện các mô đun
 Thiết kế giao diện
 Thiết kế các mô-đun
 Cấu trúc dữ liêu
 Thuật tóan
 Sản phẩm: tài liệu thiết kế
Lê Thị Mỹ Hạnh - Khoa CNTT 9
Các hoạt động phát triển phần mềm
 Thiết kế (2)
Lê Thị Mỹ Hạnh - Khoa CNTT 10
Các hoạt động phát triển phần mềm
 Thiết kế (3)
 Các phương pháp thiết kế
 Thiết kế hướng chức năng
 Thiết kế hướng đối tượng
Lê Thị Mỹ Hạnh - Khoa CNTT 11
Các hoạt động phát triển phần mềm
 Mã hóa và gỡ rối
 mã hóa
 Cài đặt các thiết kế bằng ngôn ngữ lập trình
 Không đơn thuần chr là lập trình
 Viết tài liệu
 insertions/invariants
 Chuẩn lập trình (coding standards)
 Lập trình theo cặp (pair programming)
 Công cụ
 Quản lý phiên bản
 Gỡ rối
 Phát hiện các lỗi trong quá trình lập trình
 Sản phẩm: chương trình
Lê Thị Mỹ Hạnh - Khoa CNTT 12
Các hoạt động phát triển phần mềm
 Kiểm thử (1)
 Phát hiện lỗi trong chương trình
 Lập kế hoạch thực hiện kiểm thử
 Tạo các trường hợp kiểm thử
 Tiêu chuẩn kiểm thử
 Nguồn tài nguyên kiểm thử
 Mã nguồn được kiểm thử theo tài liệu thiết 
kế
 Sản phẩm: báo cáo kiểm thử
Lê Thị Mỹ Hạnh - Khoa CNTT 13
Các hoạt động phát triển phần mềm
 Kiểm thử (2)
 các hoạt động kiểm thử
 Kiểm thử đơn vị
 Kiểm thử tích hợp
 Kiểm thử hệ thống
 Kiểm thử chấp nhận
 Các phương pháp kiểm thử
 Kiểm thử tĩnh
 Kiểm thử động
 Kiểm thử hộp trắng
 Kiểm thử hộp đen
Lê Thị Mỹ Hạnh - Khoa CNTT 14
Các hoạt động phát triển phần mềm
 Bảo trì
 Bảo đảm các chương trình vận hành tốt
 Cài đặt các thay đổi
 Cài đặt các yêu cầu mới
 Xử lý lỗi khi vận hành
 Sản phẩm: chương trình
Lê Thị Mỹ Hạnh - Khoa CNTT 15
Các mô hình phát triển phần mềm
 Sự tổ chức các hoạt động phát triển phần mềm
 Mô hình phát triển phần mềm hay tiến trình phát triển 
phần mềm
 Có nhiều mô hình phát triển phần mềm
 Mô hình thác nước
 Mô hình nguyên mẫu
 Mô hình chữ V
 Mô hình tiến hóa
 Mô hình xoắn ốc
 Mô hình hợp nhất
Lê Thị Mỹ Hạnh - Khoa CNTT 16
Các mô hình phát triển phần mềm
 Mô hình thác nước
Lê Thị Mỹ Hạnh - Khoa CNTT 17
Các mô hình phát triển phần mềm
 Mô hình thác nước
 Mô hình thác nước:
 Có sớm nhất và được sử dụng 
rộng rãi
 Thích hợp khi yêu cầu hiểu tốt
 Bảo trì thuận lợi
 Tách biệt giữa các pha, tiến hành tuần 
tự
 Chậm có phiên bản thực hiện được
 Đặc tả kỹ, phân công chuyên trách –
hướng tài liệu
Lê Thị Mỹ Hạnh - Khoa CNTT 18
Các mô hình phát triển phần mềm
 Mô hình nguyên mẫu
Lê Thị Mỹ Hạnh - Khoa CNTT 19
Các mô hình phát triển phần mềm
 Mô hình nguyên mẫu (2)
 Ưu điểm
 phát hiện yêu cầu
 Hợp thức hóa yêu cầu
 Thiết kế giao diện
 Giao diện trên giấy
 Giao diện “thật”
 Hệ thông rủi ro cao
 Yêu câu không chắc chắn
 Giao diên chưa rõ ràng
 Chiến lược cài đặt chưa rõ ràng
Lê Thị Mỹ Hạnh - Khoa CNTT 20
Các mô hình phát triển phần mềm
 Mô hình nguyên mẫu (3)
 Hạn chế
 Khách hàng có thể cho rằng nguyên mẫu là hệ thống thực
 Mong đợi không thực tế về tiến triển của dự án
 Người phát triển có sự lựa chọn không tốt
 Phù hợp cho nguyên mẫu nhưng không phù hợp cho hệ thống 
thực
 Xây dựng hệ thống thực như xây dựng nguyên mẫu
 Nguyên mẫu không giống hoàn toàn hệ thống cuối 
cùng
 Khách hàng sẽ có các phản ứng khác nhau
Lê Thị Mỹ Hạnh - Khoa CNTT 21
Các mô hình phát triển phần mềm
 Mô hình chữ V
 Nhấn mạnh vai trò kiểm thử
Đặc tả yêu cầu
Thiết kế kiến trúc
Thiết kế chi tiết
Mã hóa
Kiểm thử hệ thống
Kiểm thử tích hợp
Kiểm thử đơn vị
Lê Thị Mỹ Hạnh - Khoa CNTT 22
Các mô hình phát triển phần mềm
 Mô hình tiến hóa (evolutionary model)
Lê Thị Mỹ Hạnh - Khoa CNTT 23
Các mô hình phát triển phần mềm
 Mô hình tiến hóa
 Ưu điểm
 Dự án vừa và nhỏ
 Các phần của dự án phức tạp
 Các hệ thống có thời gian sống ngắn
 Hạn chế
 Cấu trúc của hệ thống tồi
 Tiến trình không rõ ràng
Lê Thị Mỹ Hạnh - Khoa CNTT 24
Các mô hình phát triển phần mềm
 Mô hình phát triển lặp lại, tăng thêm
 Mô hình này được đề xuất dựa trên ý tưởng thay vì phải xây 
dựng và chuyển giao hệ thống một lần thì sẽ được chia thành 
nhiều vòng, tăng dần. Mỗi vòng là một phần kết quả của một 
chức năng được yêu cầu.
 Các yêu cầu của người sử dụng được đánh thứ tự ưu tiên. Yêu 
cầu nào có thứ tự ưu tiên càng cao thì càng ở trong những 
vòng phát triển sớm hơn.
Lê Thị Mỹ Hạnh - Khoa CNTT 25
Các mô hình phát triển phần mềm
 Mô hình phát triển lặp lại, tăng thêm
 ưu điểm 
 Sau mỗi lần tăng vòng thì có thể chuyển giao kết quả thực 
hiện được cho khách hàng nên các chức năng của hệ thống 
có thể nhìn thấy sớm hơn. 
 Các vòng trước đóng vai trò là mẫu thử để giúp tìm hiểu 
thêm các yêu cầu ở những vòng tiếp theo. 
 Những chức năng của hệ thống có thứ tự ưu tiên càng cao thì 
sẽ được kiểm thử càng kỹ.
Lê Thị Mỹ Hạnh - Khoa CNTT 26
Các mô hình phát triển phần mềm
 Mô hình xoắn ốc (Spiral Model)
Lê Thị Mỹ Hạnh - Khoa CNTT 27
Các mô hình phát triển phần mềm
 Mô hình xoắn ốc (Spiral Model)
 Nhấn mạnh việc đánh giá rủi ro
 Phần mềm được xây dựng theo nhiều chu kì
 Mỗi chu kì tương ứng với một sản phẩm của một giai đoạn phát 
triển phần mềm
 Xác định các mục tiêu, giải pháp, ràng buộc
 Đánh giá các giải pháp, xác định các nguy cơ và tìm cách giải 
quyết chúng
 Phát triển và kiểm thử sản phẩm của chu kì này
 Lập kế hoạch cho chu kì tiếp theo
Lê Thị Mỹ Hạnh - Khoa CNTT 28
Các mô hình phát triển phần mềm
 Mô hình xoắn ốc
 Rủi ro và giải pháp cho rủi ro
 Thất bại về nhân sự
 Tuyển dụng nhân sự cao cấp, đào tạo lẫn nhau, có đầy đủ nhân sự với các chức năng khác 
nhau.
 Thời gian biểu và ngân sách không thực tế
 Đánh giá thật chi tiết và phát triển dần dần, tái sử dụng, loại bỏ bớt các yêu cầu thật không 
cần thiết,
 Phát triển các chức năng không phù hợp
 Trao đổi thường xuyên với người sử dụng có tài liệu hướng dẫn sử dụng sớm,..
 Phát triển giao diện người dùng không thích hợp
 Cần phân tích các công việc, xây dựng các hình mẫu trước,..
 Thiếu yêu cầu đặt ra
 Phát triển các phần ổn định trước
 Vần đề về hiệu quả
 Cần phải mô phỏng, đo lường và thử nghiệm,..
 Đòi hỏi vượt quá sự đáp ứng của công nghệ hiện hành
Lê Thị Mỹ Hạnh - Khoa CNTT 29
Các mô hình phát triển phần mềm
 Mô hình xoắn ốc
 Ưu điểm
 Hạn chế rủi ro sớm
 Nhận được feedbacks từ khách hàng sớm
 Dự án lớn, phức tạp
 Hệ thống cần phát triển nhiều phiên bản
 Nhược điểm
 Yêu cầu chưa xác định rỏ ràng.
Lê Thị Mỹ Hạnh - Khoa CNTT 30
Các mô hình phát triển phần mềm
 Mô hình xoắn ốc WINWIN 
 Nhằm thỏa hiệp giữa người phát triển và khách hàng, 
cả hai cùng “Thắng” (win-win) 
 Khách thì có phần mềm thỏa mãn yêu cầu chính
 Người phát triển thì có kinh phí thỏa đáng và thời gian hợp lý
 Các hoạt động chính trong xác định hệ thống:
 Xác định cổ đông (stakeholders)
 Xác định điều kiện thắng của cổ đông
 Thỏa hiệp điều kiện thắng của các bên liên quan
Lê Thị Mỹ Hạnh - Khoa CNTT 31
Các mô hình phát triển phần mềm
Mô hình xoắn ốc WINWIN
1. Xác định mức
tiếp của cổ đông
2. Xác định điều kiện
thắng của cổ đông
3a. Hòa hợp điều kiện thắng
3b. Thiết lập mục tiêu mức tiếp
và các ràng buộc, dự kiến
4. Đánh giá tiến trình và
dự kiến sản phẩm,
giải quyết rủi ro
5. Xác định mức tiếp của
sản phâm và quy trình,
kể cả phân chia nhỏ
7. Xét duyệt và đánh giá
6. Kiểm định sản phẩm
và quy trình
Lê Thị Mỹ Hạnh - Khoa CNTT 32
Các mô hình phát triển phần mềm
 Mô hình phát triển đồng thời
(The concurrent development model)
 Xác định mạng lưới những hoạt động đồng thời
(Network of concurrent activities)
 Các sự kiện (events) xuất hiện theo điều kiện vận
động trạng thái trong từng hoạt động
 Dùng cho mọi loại ứng dụng và cho hình ảnh khá
chính xác về trạng thái hiện trạng của dự án
 Thường dùng trong phát triển các ứng dụng
khách/chủ (client/server applications): system and
componets are developed concurrently
Lê Thị Mỹ Hạnh - Khoa CNTT 33
Các mô hình phát triển phần mềm
 Công nghệ phần mềm dựa thành phần
 Mô hình này dựa trên kỹ thuật tái sử dụng một cách 
có hệ thống
 hệ thống được tích hợp từ nhiều thành phần đang 
tồn tại hoặc các thành phần thương mại COTS 
(Commercial-Off-The-Shelf).
Lê Thị Mỹ Hạnh - Khoa CNTT 34
Các mô hình phát triển phần mềm
 Công nghệ phần mềm dựa thành phần
 Các trạng thái chính của quy trình bao gồm: 
 Phân tích thành phần sẵn có
 Điều chỉnh yêu cầu
 Thiết kế hệ thống với kỹ thuật tái sử dụng
 Xây dựng và tích hợp hệ thống
Lê Thị Mỹ Hạnh - Khoa CNTT 35
Các mô hình phát triển phần mềm
 Mô hình theo thành phần(Component-based model)
 Gắn với những công nghệ hướng đối tượng (Object-
oriented technologies) qua việc tạo các lớp (classes) có
chứa cả dữ liệu và giải thuật xử lý dữ liệu
 Có nhiều tương đồng với mô hình xoắn ốc
 Với ưu điểm tái sử dụng các thành phần qua Thư viện / 
kho các lớp: tiết kiệm 70% thời gian, 80% giá thành, chỉ
số sản xuất 26.2/16.9
 Với UML như chuẩn công nghiệp đang triển khai
Lê Thị Mỹ Hạnh - Khoa CNTT 36
Các mô hình phát triển phần mềm
Mô hình theo thành phần
Giao tiếp
khách hàng
Lập kế hoạch
Phân tích rủi ro
Kỹ nghệ
Xây dựng & 
Xuất xưởng
Khách hàng
đánh giá
Xác định
thành phần
ứng viên
Tìm
thành phần
từ thư viện
Lấy
thành phần
nếu có
Xây dựng
thành phần
nếu kh.có
Đặt
thành phần
vào thư viện
Xây dựng
bước lặp thứ n
của hệ thống
Lê Thị Mỹ Hạnh - Khoa CNTT 37
Các mô hình phát triển phần mềm
 Mô hình hình thức (Formal model)
 Còn gọi là CNHPM phòng sạch (Cleanroom SE)
 Tập hợp các công cụ nhằm đặc tả toán học phần mềm
máy tính từ khâu định nghĩa, phát triển đến kiểm chứng
 Giúp kỹ sư phần mềm phát hiện và sửa các lỗi khó
 Thường dùng trong phát triển SW cần độ an toàn rất cao
(y tế, hàng không, . . .)
Lê Thị Mỹ Hạnh - Khoa CNTT 38
Các mô hình phát triển phần mềm
 Mô hình hình thức: Điểm yếu ?
 Cần nhiều thời gian và công sức để phát triển
 Phí đào tạo cao vì ít người có nền căn bản cho
áp dụng mô hình hình thức
 Khó sử dụng rộng rãi vì cần kiến thức toán và
kỹ năng của khách hàng
Lê Thị Mỹ Hạnh - Khoa CNTT 39
Các mô hình phát triển phần mềm
 Mô hình hợp nhất
 Tiến trình hợp nhất có thể được nhìn dưới hai 
góc nhìn khác nhau
 Góc nhìn quản lý:quan tâm đến lĩnh vực kinh tế, 
chiến thuật, con người
 Tiền trình gồm 4 giai đoạn
 Góc nhìn kỹ thuật: quan tâm đến công nghệ, kiểm 
tra chất lượng, phương pháp
 Tiến trình gồm nhiều bước lặp
Lê Thị Mỹ Hạnh - Khoa CNTT 40
Các mô hình phát triển phần mềm
 Mô hình hợp nhất
 Góc nhìn quản lý
Lê Thị Mỹ Hạnh - Khoa CNTT 41
Các mô hình phát triển phần mềm
 Mô hình hợp nhất
 Góc nhìn kỹ thuật: các bước lặp
 Đặc tả
 Phân tích
 Thiết kế
 Mã hóa
 Kiểm thử
 Cài đặt
 Mỗi bước lặp là một tiến trình thác đổ
Lê Thị Mỹ Hạnh - Khoa CNTT 42
Các mô hình phát triển phần mềm
 Mô hình hợp nhất
 Góc nhìn kỹ thuật
T
h
ờ
i 
g
ia
n
Lê Thị Mỹ Hạnh - Khoa CNTT 43
Các mô hình phát triển phần mềm
 Mô hình hợp nhất
 Kết hợp hai góc nhìn
Lê Thị Mỹ Hạnh - Khoa CNTT 44
Các mô hình phát triển phần mềm
 Mô hình hợp nhất và UML
Lê Thị Mỹ Hạnh - Khoa CNTT 45
Các mô hình phát triển phần mềm
 Kết luận
 Có nhiều mô hình phát triển phần mềm
 Kết hợp nhiều mô hình cho một dự án
 Hệ thống phức tạp, chia dự án thành các hệ thống con
 Mô hình xoắn ốc hay mô hình hợp nhất cho toàn bộ dự án
 Mỗi hệ thống con có thể áp dụng một mô hình khác nhau
 Mô hình nguyên mẫu cho các hệ thống con phức tạp
 Mô hình thác nước cho các hệ thống con khác

File đính kèm:

  • pdfbai_giang_mo_hinh_phat_trien_phan_mem_le_thi_my_hanh.pdf