Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 2: Các pha trong phát triển phần mềm - Phần 1: Đặt vấn đề
Kꢀ thuꢁt phꢂn mꢃm
ꢄng dꢅng
Chương 2
Cꢀc pha trong phꢀt triꢁn phꢂn mꢃm
(Phꢀn 1)
Đꢄt vꢅn đê
̀
9/5/2017
Nội dung
. 2.1 Đặt vấn đề
– 2.1.1Đặc điểm của phꢀn mềm
– 2.1.2Các vấn đề của phát triển phꢀn mềm
– 2.1.3Các mô hình phát triển phꢀn mềm
. 2.2 Các pha trong phát triển phꢀn mềm
– 2.2.1Nghiên cứu yêu cꢀu (Requirements and
Specifications)
– 2.2.2Phân tích và thiết kế (System Analysis and
Design)
– 2.2.3Triển khai (Coding and Unit Test)
– 2.2.4Thử nghiệm (Test)
– 2.2.5Cài đặt và bảo trì (Deployment and Maintenance)
2
2.1.1. Đặc điểm của phꢂn mꢃm
. Đặc tính chung của phꢀn mềm:
– Là hàng hóa vô hình
– Chất lượng phꢀn mềm không giảm đi theo thời gian
– Phꢀn mềm vốn chứa lỗi tiềm tàng
– Lỗi phꢀn mềm dễ được phát hiện bởi người ngoài
– Chức năng của phꢀn mềm thường biến hóa, thay đổi
theo thời gian
– Hiệu ứng làn sóng trong thay đổi phꢀn mềm
– Phꢀn mềm vốn chứa ý tưởng và sáng tạo của tác
giả/nhóm làm ra nó
– Có thể sao chép rất đơn giản
3
2.1.1. Đặc điểm của phꢂn mꢃm
. Phꢀn mềm tốt
Đặc
trưng
gần
Yếu
tố
Hiệu suất xử lý
khái
niệm
phần
mềm
tốt
đây
Tính dễ hiểu
Các chỉ tiêu cơ bản
Thời gian
(Phần cứng phát triển)
4
Các chỉ tiêu cơ bản để đánh giá phꢂn mꢃm tốt
– Phản ánh đúng yêu cꢀu người dùng (tính hiệu quả)
– Chứa ít lỗi tiềm tàng
– Giá thành không vượt quá giá ước lượng ban đꢀu
– Dễ vận hành, sử dụng
– Tính an toàn và độ tin cậy cao
5
2.1.1. Đặc điểm của phꢂn mꢃm
Cấu trúc phần mềm là cấu trúc phân cấp
System
Job unit
Subsystem
Subsystem
Master files
Program
Program
Jobstep unit
Member unit
Temporary
files
Module
Module
Subroutine
Arguments
Arguments
Common Module
Các khái niệm (Software concepts)
. Khái niệm tính môđun (modularity concept)
. Khái niệm chi tiết hóa dꢀn từng bước (stepwise
refinement concept)
. Khái niệm trừu tượng hóa (abstraction concept):
về thủ tục, điều khiển, dữ liệu
. Khái niệm che giấu thông tin (information hiding
concept)
7
Tính môđun (Modularity)
. Là khả năng phân chia phꢀn mềm thành các
môđun ứng với các chức năng, đồng thời cho phép
quản lý tổng thể
. Hai phương pháp phân chia môđun:
– Theo chiều sâu (depth, thẳng đứng)?
– Theo chiều rộng (width, nằm ngang)?
. Quan hệ giữa các môđun: qua các đối số
(arguments)
8
Khái niệm Che giấu thông tin
. “các môđun nên được đặc trưng bởi những quyết định
thiết kế sao cho mỗi môđun ẩn kín đối với các môđun
khác” [Parnas1972]
9
Khái niệm Trừu tượng hóa
. Trừu tượng hóa cho phép tập trung vấn đề ở mức
tổng quát, gạt đi những chi tiết mức thấp ít liên quan
. 3 mức trừu tượng
– Trừu tượng thủ tục
– Trừu tượng dữ liệu
– Trừu tượng điều khiển
10
Chi tiết hóa dꢂn từng bước
Cách tiếp cận từ trên xuống (top-down
approach)
Trừu tượng hóa mức cao:
Thế giới bên ngoài,
Thế giới bên ngoài
trạng thái chưa rõ ràng
Chi
tiết
hóa
Trừu tượng hóa mức trung gian:
``
Xác định yêu cầu và đặc tả
những định nghĩa yêu cầu
Đặc tả yêu cầu
từng
bước
Trừu tượng hóa mức thấp:
Từng lệnh của chương trình được
viết bởi ngôn ngữ thủ tục nào đó
Ngôn ngữ
chương trình
11
Ví dꢅ: Trình tự giải quyết vấn đꢃ từ mꢄc thiết kế chương trình đến mꢄc lꢁp
trình
. Bài toán: từ một nhóm N số khác nhau tăng dꢀn, hãy
tìm số có giá trị bằng K (nhập từ ngoài vào) và in ra
vị trí của nó
. Giải từng bước từ khái niệm đến chi tiết hóa từng câu
lệnh bởi ngôn ngữ lập trình nào đó
. Chọn giải thuật tìm kiếm nhị phân (pp nhị phân)
12
Cꢅ thể hóa thủ tꢅc qua các chꢄc năng
Bài toán đã cho
Nhập giá trị K
Nhận giá trị nhóm N số
Tìm kiếm giá trị (pp nhị phân)
In ra vị trí (nếu có)
13
Cꢅ thể hóa bước tiếp theo
Tìm kiếm giá trị
(pp nhị phân)
Xác lập phạm vi mảng số
Lặp lại xử lý tìm kiếm giá trị K trong
phạm vi tìm kiếm
Lặp lại tìm kiếm K
trong phạm vi tìmkiếm
Tìm vị trí giữa phân đôi mảng
So sánh K với giá trị giữa
Đặt lại phạm vi tìm kiếm
14
2.1.1. Đặc điểm của phꢂn mꢃm
. Ngày càng phức tạp.
. Yêu cầu triển khai nhanh.
. Yêu cầu chất lượng cao
. Nhưng có nhiều phần mềm không được hoàn thành. Tại sao?
15
So sánh chi phí cho Phꢂn cꢄng và Phꢂn mꢃm
%
100
-
-
80
60
40
20
0
Phần cứng
Phát triển
Bảo trì
Phần
mềm
-
-
+
+
+
+
1955
1970
1985
2000
16
So sánh chi phí cho các pha
X¸c ®Þnh yªu cÇu 3%
8
7
7
§Æc t¶ 3%
5
3
ThiÕt kÕ 5%
3
LËp tr×nh 7%
KiÓm thö m«®un 8%
KiÓm thö tÝch hîp 7%
B¶o tr× 67%
67
17
2.1.2. Các vấn đꢃ của phát triển phꢂn mꢃm
. Hiểu sai yêu cꢀu của người dùng
. Không có khả năng đáp ứng tốc độ thay đổi
nhanh chóng của yêu cꢀu
. Các modules không ghép được với nhau
. Phꢀn mềm làm ra khó bảo trì và nâng cấp
. Phát hiện muộn các sai lꢀm trong dự án
. Chất lượng phꢀn mềm thấp
. Các thành viên trong nhóm không cùng nỗ lực
. Quá trình xây dựng và phát hành không tin cậy
18
Vòng đời phꢂn mꢃm (Software life-cycle)
. Vòng đời phꢀn mềm là thời kỳ tính từ khi phꢀn mềm
được sinh (tạo) ra cho đến khi chết đi (từ lúc hình
thành đáp ứng yêu cꢀu, vận hành, bảo dưỡng cho đến
khi loại bỏ không đâu dùng)
. Quy trình phꢀn mềm (vòng đời phần mềm) được
phân chia thành các pha chính: phân tích, thiết kế,
triển khai , kiểm thử, bảo trì. Biểu diễn các pha có
khác nhau theo từng người
19
Vòng đời phꢂn mꢃm (Software life-cycle)
. Mô hình vòng đời phꢀn mềm của Boehm
Xác định yêu
cầu hệ thống
Kiểm chứng
Xác định yêu
cầu phần mềm
Kiểm chứng
Thiết kế
căn bản
Kiểm chứng
Thiết kế
chi tiết
Kiểm chứng
Lập trình
Gỡ lỗi
Kiểm thử
Chạy thử
Vận hành
Bảo trì
Kiểm chứng lại
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 2: Các pha trong phát triển phần mềm - Phần 1: Đặt vấn đề", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_ky_thuat_phan_mem_ung_dung_chuong_2_cac_pha_trong.pdf

