Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 4: Các tác vụ yêu cầu bảo trì - Nguyễn Thị Thanh Trúc

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  
KHOA CÔNG NGHỆ PHẦN MỀM  
PHÁT TRIỂN VẬN HÀNH BẢO  
TRÌ PHẦN MỀM  
ThS. NGUYỄN THỊ THANH TRÚC  
1
UIT-VNUHCM 2009  
Nội dung (Chương 4)  
HIỂU CHƯƠNG TRÌNH  
NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THÔNG TIN  
MÔ HÌNH QUI TRÌNH NẮM BẮT THÔNG TIN  
REVERSE ENGINEERING  
Thảo luận và làm bài tập  
2
Company Logo  
UIT-VNUHCM 2009  
Chương 4:  
CÁC TÁC VỤ YÊU CẦU BẢO TRÌ  
4.1 HIỂU CHƯƠNG TRÌNH  
4.2 NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THÔNG TIN  
4.3 MÔ HÌNH QUI TRÌNH NẮM BẮT THÔNG TIN  
4.4 REVERSE ENGINEERING  
3
UIT-VNUHCM 2009  
Chương 3: CÁC TÁC VỤ YÊU CẦU BẢO TRÌ  
1. HIỂU CHƯƠNG TRÌNH  
o Mục tiêu của nắm bắt chương trình  
Phạm vi vấn đề  
Hiệu quả thực thi  
Mối liên hệ Nhân – Quả (Cause-Effect)  
Mối liên hệ sản phẩm – Môi trường  
Đặc trưng Quyết định – Hỗ trợ  
2. NGƯỜI BẢO TRÌ VÀ CÁC NHU CẦU THÔNG TIN  
o Managers  
o Analysts  
o Designers  
o Programmers  
3. MÔ HÌNH QUI TRÌNH NẮM BẮT THÔNG TIN  
o Chiến lược nắm bắt chương trình  
Top-Down Model Ill  
Bottom-Up / Chunking Model  
Opportunistic Model  
4. REVERSE ENGINE
o Định nghĩa  
o Mục đích và mục tiêu của reverse engineering  
o Các mức của reverse engineering  
o Kỹ thuật hỗ trợ  
o Các lợi điểm  
4
UIT-VNUHCM 2009  
4.1 HIỂU CHƯƠNG TRÌNH  
Mục tiêu của nắm bắt chương trình  
oPhạm vi vấn đề  
oHiệu quả thực thi  
oMối liên hệ Nhân – Quả (Cause-Effect)  
oMối liên hệ sản phẩm – Môi trường  
oĐặc trưng Quyết định – Hỗ trợ  
5
UIT-VNUHCM 2009  
Phạm vi vấn đề  
Nắm bắt được kiến thức phạm vi khá quan trọng. Tác động đến  
vấn đề vùng phạm vi chuyên biệt, cụ thể.  
o Vd: môi trường điều trị bệnh nhân …  
Trong hệ thống lớn  
o Ví dụ chăm sóc sức khoẻ, viễn thông, tài chính được phân nhỏ  
thành vấn đề nhỏ, thành phần nhỏ hơn, được quản lý thành đơn vị  
chương trình như mô đun, thủ tục, hàm.  
o Ví dụ Trình biêser, phân tích, phát  
sinh code, mỗi thành phần được phân rà thành phần nhỏ hơn .  
Tác động đến sự thay đổi, ước tính nguồn tài nguyên đòi hỏi  
cho tác vụ bảo trì, kiến thức phạm vi vấn đề nói chung và vấn  
đề nhỏ cụ thể là cần thiết tác động trực tiếp nhân sự bảo trị  
trong việc chọn lựa thuật toán phù hợp, phương pháp luận, và  
công cụ.  
Việc chọn lựa nhân sự với mức độ chuyên gia và kỹ năng phù  
hợp là khía cạnh khác. Thông tin bao gồm từ nguồn khác nhau  
– tài liệu hệ thống, end-users, và chương trình nguồn  
6
UIT-VNUHCM 2009  
Hiệu quả thực thi  
Ở mức cao trừu tượng, nhân sự bảo trì cần phải nắm (dự  
đoán) kết quả chương trình sẽ được phát sinh kết quả gì từ  
đầu vào được cho mà không cần biết đơn vị chương trình  
được xây dựng để có kết quả tổng thể và kết quả được cho  
như thế nào.  
Ở mức thấp, họ cần biết kết quả mỗi đơn vị chương trình sẽ  
được tạo và thự
Kiến thức data flow, control flow, và thuật toán có thể thuận  
tiện hoàn thành thực thi mục tiêu này.  
Ví dụ người lập trình muốn biết ở mức trù tượng, đầu ra của  
qui trình hoàn tất biên dịch và ở mức thấp, đầu ra từ parser.  
Trong khi, thông ảo trì xác định  
những thay đổi đã thực thi có đạt hiệu quả như mong đợi hay  
không  
7
UIT-VNUHCM 2009  
Mối liên hệ Cause-Effect  
Trong chương trình lớn và phức tạp,kiến thức của mối  
liên hệ này là quan trọng:  
Cho phép nhân sự bảo trì đưa ra lý do làm thế nào  
thành phần của sản phẩm phần mềm tương tác trong  
khi thực thi.  
Cho phép người lập trình dự đoán phạm vi một thay  
đổi và bất kỳ hệ quả phát sinh từ thay đổi.  
Mối liên hệ cause-effect có thể được sử dụng để lưu  
vết luồng thông tin qua chương trình. Tại điểm mà nơi  
có những sự gián đoạn bất thường của luồng thông  
tin này mang dấu hiệu nguồn phát sinh bug chương  
trình  
8
UIT-VNUHCM 2009  
Ví dụ: A string reversing program  
MODULE StringReversing:  
FROM InOut IMPORT WriteString, Write, Read, EOL,WriteLn;  
FROM StacksLibrary IMPORT StackType, Create, IsEmpty,  
Pop, Push;  
VAR  
Stack: StackType;  
Char, Response: CHAR;  
BEGIN  
REPEAT  
Create (Stack);  
WriteString ("Enter string to be reversed");  
WriteLn;  
9
UIT-VNUHCM 2009  
Ví dụ: A string reversing program (tt)  
Read (Char);  
<--Segment A  
WHILE Char # EOL DO 4  
Push (Stack, Char);  
Read (Char);  
END (* While *)  
WriteLn;  
WriteString ("R
WHILE NOT IsEmpty (Stack) DO <---Segment B  
Pop (Stack, Char); 4  
Write (Char);  
END (* While *)  
WriteLn;  
WriteString ("P");  
Read (Response);  
UNTIL CAP (Response) # 'Y'  
END StringReversing.  
10  
UIT-VNUHCM 2009  
Mối liên hệ sản phẩm và môi trường  
Sản phẩm là hệ thống phần mềm. Môi trường là  
toàn bộ tất cả điều kiện và ảnh hưởng mà hành  
động từ bên ngoài sản phẩm.  
o Ví dụ: qui định nghiệp vụ, qui định chính phủ, mẫu công  
việc, platform điều hành của phần mềm và phần cứng  
Nó cần thiết cho nhân sự bảo trì để biết không chỉ  
mở rộng mối liên hệ.  
Kiến thức này dùng để dự đoán những thay đổi  
trong những thành phần này sẽ tác động như thế  
nào với sản phẩm nói chung và dưới chương trình  
cụ thể nói riêng  
11  
UIT-VNUHCM 2009  
Đặc trưng Quyết định – Hỗ trợ  
Thuộc tính của sản phẩm phần mềm như độ phức tạp  
và khả năng dễ bảo trì là  
o ví dụ hướng dẫn trong kỹ thuật và qui trình ra quyết định  
như phân tích, ra quyết định ngân sách, cấp phát nhân lực.  
Đo độ phức tạp của hệ thống xác định thành phần hệ  
thống đòi hỏi nhiều tài nguyên cho kiểm thử  
Reverse engineering được dùng để nghiên cứu hiểu  
để trích chọn các loại thông tin.  
Có nhiều yếu tố tác động mở rộng mà nhân sự bảo trì  
có thể yêu cầu danh mục kiến thức đã nêu về hệ  
thống.  
o Bao gồm chiến lược nắm bắt thông tin, sự thông thạo  
phạm vi, chất lượng sưu liệu, báo cáo thuyết trình và tổ  
chức, thực nghiệm chương trình, và vấn đề thực thi, công  
cụ hỗ trợ  
12  
UIT-VNUHCM 2009  
Một tiếp cận phân tích chương trình mới dựa  
trên trên thông tin bổ trợ  
Theo kinh nghiệm phát triển,với các hệ thống lớn  
được sự hỗ trợ bởi luồng hệ thống, sơ đồ cấu trúc  
mô đun, luồng dữ liệu và tham chiếu, ngoài công  
cụ tự động còn cần bởi bảo trì bằng tay và kỹ năng  
của người bảo trì:  
o Nắm bắt thủ tục, biến toàn cục, mối liên hệ lỗi và mở  
rộng chức năng cục bộ, môđun  
o Độ phức tạp của chương trình  
o Ngữ nghĩa các vòng lặp, mối liên hệ input/output  
o Vấn đề gì lương trình  
o What-How-Why cho một đối tượng (object) của  
chương trình cho việc hiểu chương trình  
13  
UIT-VNUHCM 2009  
(WHAT) Đối tượng trong chương trình là gì?  
Trước khi cố gắng phân tích được chương trình theo  
tiếp cận W-H-W (What, How, Why), chúng ta nên suy  
nghĩa các đối tượng (object):  
o Lớp dữ liệu, cấu trúc, bảng, cờ, chuỗi và các biến thể hiện kiến  
thức phạm vi  
o Tên của các chức năng hay chu trình (routines) hay qui trình  
cho chúng ta g  
o Thành phần liên quan được cung cấp bởi thư viện và môi  
trường chương trình  
Rõ ràng WHW(What,How,Why) sẽ giúp người bảo trì  
phần mềm hiểu một cách hiệu quả. Hiển nhiên mô tả  
hình thức là kg là không thể.  
Hiểu chương trình sẽ thực hiện tiếp diễn cùng với kiến  
thức phạm vi tốt của người bảo trì  
14  
UIT-VNUHCM 2009  
Ví dụ 1  
static void print_url(String spec) {  
try {  
System.out.println(spec);  
URL url = new URL(spec);  
String proto = url.getProtocol();  
String host = url.getHost();  
String file = u
String ref = url.getRef();  
System.out.println(‘ ‘,  
proto=’ ’+proto+’ ’,host=’ ’+host+’ ’,  
file=’ ’+file+’ ’,ref=’ ’+ref);  
} catch (Exception e) {  
System.out.println(e);  
}
}
15  
UIT-VNUHCM 2009  
Ví dụ 1 this following is a php program array01.php3  
. /* --Create an associate array based on data of file */  
$fname = "report" ;  
$MAXLN = 256 ;  
/*--- Check file ---------*/  
if (file_exists($fname)) {  
$fd = fopen($fname,"r");  
} else {  
print "Cann’t open file $fname";  
return;  
}
$i = 0;  
$assAry = "";  
while ($buf=fgets($fd,$MAXL
$element = explode("\t",$buf);  
$esize = count($element);  
$valstr[] = "" ;  
$j = 0 ;  
while ($j < $esize -1 ) {  
$valstr[$j++] = $element[$j];  
}
$assAry[$element[0]] = $vals
}
fclose($fd);  
while (list($key,$vall)=each($assAry)){  
echo "-------";  
echo "$key => $vall[0]<br> ";  
}
16  
UIT-VNUHCM 2009  
17  
UIT-VNUHCM 2009  
18  
UIT-VNUHCM 2009  
Các bước thực hiện: Thuật toán chung(GA)  
GA1. Liệt kê tất cả các đối tượng với mức khác  
nhau  
GA2. Sắp xếp đối tượng quan trọng dựa trên tài  
liệu khác nhau và kiến thức của người bảo trì .  
o Câu Trả lời: đối tượng là gì (WHAT)  
GA3. Nếu đối tượng được chọn làm bùng nổ đối  
tượng khác thì được bỏ vào danh sách.  
o Câu trả lời: mối liên hệ Chuồng bồ câu của các đối  
tượng được chọn  
GA4. Nếu có ối tượng  
khác, tạo mối liên hệ đến đối tượng mới sau đó  
lặp lại từ GA1  
19  
UIT-VNUHCM 2009  
Bài tập đọc thêm  
nghìn dòng? Nội dung sau chính xác ko? Đề xuất  
theo kinh nghiệm riêng của bạn?  
1. Kinh nghiệm: Viết nhiều code, sử dụng nhiều loại phần mềm  
2. Kiến thức nền tảng và phải phong phú (sẽ là điểm chính)  
3. Hiểu được 'chuẩn viết code của thế giới'  
4. Khả năng về ti
Đọc thêm tài liệu tham khảo trên course  
o Kinh nghiệm đọc code của lập trình viên  
o Khi bạn đọc hiểu code chính là lúc bạn đang  
rewriting co
o Bảo mật nhập môn (bảo mật cơ bản cho developer)  
o Code dạo ký sự  
20  
UIT-VNUHCM 2009  
Tải về để xem bản đầy đủ
pdf 66 trang yennguyen 18660 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 4: Các tác vụ yêu cầu bảo trì - Nguyễn Thị Thanh Trúc", để 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_phat_trien_van_hanh_bao_tri_phan_mem_chuong_4_cac.pdf