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 đủ
pdf 35 trang yennguyen 19580 Free
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:

  • pdfbai_giang_ky_thuat_phan_mem_ung_dung_chuong_2_cac_pha_trong.pdf