Nghiên cứu về phân tích chương trình và ứng dụng trong giảng dạy

61 407 0
Nghiên cứu về phân tích chương trình và ứng dụng trong giảng dạy

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THU HƯỜNG NGHIÊN CỨU VỀ PHÂN TÍCH CHƯƠNG TRÌNH VÀ ỨNG DỤNG TRONG GIẢNG DẠY Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS NGUYỄN VIỆT HÀ HÀ NỘI - 2014 LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm nghiên cứu, tìm hiểu riêng cá nhân Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tôi xin hoàn toàn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 28 tháng năm 2014 Người cam đoan Nguyễn Thu Hường MỤC LỤC LỜI CAM ĐOAN DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU Bối cảnh Nội dung nghiên cứu CHƯƠNG 1: KIẾN THỨC CƠ SỞ VỀ PHÂN TÍCH CHƯƠNG TRÌNH 1.1 Khái niệm phân loại Phân tích chương trình 1.2 Phân tích chương trình tĩnh 1.2.1 Phương pháp tiếp cận dựa tri thức 10 1.2.2 Sử dụng lý luận mờ việc hiểu chương trình dựa tri thức 11 1.2.3 Phương pháp đánh giá chương trình tương tự 13 1.3 Phân tích chương trình động 20 1.4 Các ứng dụng phân tích chương trình 22 1.4.1 Chính xác hóa chương trình 22 1.4.2 Tối ưu hóa chương trình 22 1.5 Kết luận 23 CHƯƠNG 2: CÂY CÚ PHÁP TRỪU TƯỢNG 24 2.1 Khái niệm 24 2.2 Đặc trưng cú pháp trừu tượng 24 2.3 Các công cụ sinh cú pháp trừu tượng từ mã nguồn 26 2.4 Các ứng dụng cú pháp trừu tượng 27 2.4.1 Nhắc mã nguồn 27 2.4.2 Phát lỗi mã nguồn thời gian thực 28 2.4.3 Cây phác thảo mã nguồn thời gian thực 28 2.4.4 Tìm kiếm mã nguồn 28 2.4.5 Tối ưu hóa mã nguồn 28 2.4.6 Sơ đồ lớp đối tượng 29 2.4.7 Tái cấu trúc mã nguồn 29 CHƯƠNG 3: CÁC ĐƠN VỊ ĐO PHẦN MỀM 30 3.1 Các khái niệm đơn vị đo phần mềm 30 3.1.1 Đơn vị đo phần mềm gì? 30 3.1.2 Phân loại software metrics 30 3.1.3 Giới hạn 34 3.2 Cyclomatic complexity 35 3.2.1 Biểu đồ luồng điều khiển (Control flow graph – CFG) 35 3.2.2 Định nghĩa Cyclomatic Complexity 37 3.2.3 Cyclomatic Complexity việc kiểm thử đường tuyến tính độc lập 38 3.2.4 Hạn chế Cyclomatic Complexity 39 CHƯƠNG 4: BÀI TOÁN ỨNG DỤNG TRONG GIẢNG DẠY 40 4.1 Mô tả toán 40 4.2 Cách giải toán 42 4.2.1 Phân tích đơn vị đo phần mềm 42 4.2.2 Phân tích tương tự cấu trúc 43 4.3 Ví dụ 46 CHƯƠNG 5: THỰC NGHIỆM 49 5.1 Các chức cài đặt 49 5.2 Công nghệ môi trường xây dựng mô hình thực nghiệm 49 5.2.1 JDK 49 5.2.2 Netbean IDE 49 5.2.3 ANTLR 49 5.3 Cài đặt hệ thống 50 5.3.1 Tạo cú pháp trừu tượng (AST) 50 5.3.2 Thuật toán so sánh hai cú pháp trừu tượng 56 5.4 Kết thực nghiệm 57 5.4.1 Tính Cyclomatic complexity (CC) 57 5.4.2 So sánh tương tự cấu trúc 58 5.5 Đánh giá kết thực nghiệm 59 KẾT LUẬN 60 TÀI LIỆU THAM KHẢO 61 DANH MỤC CÁC BẢNG Bảng 1.1 Các đặc trưng mã sử dụng Berghel and Sallach 12 Bảng 1.2 Các thông số Halstead 14 Bảng 2.1 Các công cụ chuyển đổi mã nguồn thành AST 27 Bảng 3.1 Ảnh hưởng kiểu định đến Cyclomatic complexity 38 Bảng 3.2 Một số phạm vi tiêu chuẩn Cyclomatic complexity 39 Bảng 4.1 Các cột bảng liệu BaiTap 45 Bảng 4.2 Các cột bảng liệu GiaiPhap 46 Bảng 4.3 Các cột bảng liệu tblKT_Dong 46 DANH MỤC CÁC HÌNH VẼ Hình 2.1 Hình ảnh cú pháp trừu tượng 24 Hình 2.2 AST mức độ biểu thức 25 Hình 2.3 AST thể phương thức java 25 Hình 2.4 AST thể lớp java 26 Hình 3.1 Sơ đồ phân loại đơn vị đo phần mềm 31 Hình 3.2 Một ví dụ CFG 35 Hình 3.3 Các cấu trúc CFG 35 Hình 3.4 Một CFG đại diện cho phương thức 37 Hình 3.5 Một ví dụ cho đường kiểm thử dựa vào CC 39 Hình 4.1 Cách vận hành hệ thống phân tích chương trình java sinh viên 40 Hình 4.2 Kiến trúc tổng thể hệ thống phân tích 41 Hình 4.3 Ví dụ AST sinh 44 Hình 4.4 Cấu trúc sở liệu hệ thống 45 Hình 5.1 Kết cài đặt ANTLR thành công 52 Hình 5.2 Kết thực nghiệm tính Cyclomatic complexity 57 Hình 5.3 Kết thực nghiệm chức so sánh cấu trúc trường hợp hai chương trình giống cấu trúc 58 Hình 5.4 Kết thực nghiệm chức so sánh cấu trúc trường hợp hai chương trình không giống cấu trúc 59 MỞ ĐẦU Bối cảnh Phần mềm ngày đóng vai trò quan trọng xã hội đại Tỷ trọng giá trị phần mềm hệ thống ngày lớn Tuy nhiên, nhiều hệ thống, lỗi phần mềm gây hậu đặc biệt nghiêm trọng, không thiệt hại mặt kinh tế mà làm tổn thất trực tiếp đến sinh mạng người Theo [4]: “Có khoảng 50% ngân sách dự án phần mềm chi cho hoạt động liên quan đến nâng cao chất lượng phần mềm Các nhà lãnh đạo ngành công nghiệp khẳng định quan tâm không đầy đủ đến chất lượng phần mềm giai đoạn phát triển.” Do việc trang bị kỹ lập trình cho lập trình viên vô quan trọng từ học đại học Lập trình hoạt động trí tuệ phức tạp kỹ cốt lõi sinh viên CNTT năm Các nghiên cứu hầu hết sinh viên viết chương trình Tuy nhiên, chương trình sinh viên thường không tối ưu, chúng thường cố gắng giải vấn đề nhanh tốt mà không xem xét giải pháp khác cho chương trình, không cần suy nghĩ chất lượng chương trình Cách tốt để nâng cao chất lượng chương trình sinh viên giảng viên bàn luận với sinh viên cách giải vấn đề cụ thể, từ thảo luận tập mà sinh viên làm Tuy nhiên, để nhận xét tất tập sinh viên giúp sinh viên suy nghĩ chất lượng chương trình nhiệm vụ khó khăn tốn nhiều thời gian Đặc biệt với quy mô lớp học Việt Nam (đông sinh viên) lại khó khăn Tự động phân tích chương trình sinh viên làm giảm khó khăn vấn đề Hơn tự động phân tích làm cho trình chấm điểm giảng viên nhanh Quan trọng hơn, giúp đưa mức độ đánh giá chi tiết chất lượng chương trình sinh viên, giúp sinh viên nâng cao kỹ lập trình Trong bối cảnh trên, đề tài nghiên cứu nghiên cứu “Phân tích chương trình” để ứng dụng vào kiểm tra chương trình java sinh viên Nội dung nghiên cứu Trong luận văn này, nội dung nghiên cứu bao gồm: Tìm hiểu khái niệm liên quan phân loại Phân tích chương trình Đồng thời tìm hiểu số cách tiếp cận hiểu chương trình tự động dựa vào Phân tích chương trình tĩnh Có nhiều cách tiếp cận Phân tích chương trình Tuy nhiên nghiên cứu hai cách tiếp cận là: Phân tích dựa vào đơn vị đo phần mềm (sofware metrics) dựa vào Phân tích cấu trúc chương trình để đánh giá hai chương trình tương tự Trên sở lý thuyết tìm hiểu, xây dựng chương trình để phân tích đánh giá chương trình java sinh viên bắt đầu học lập trình (sinh viên năm đầu tiên) Các phần lại luận văn có bố cục sau: Chương Kiến thức sở phân tích chương trình Chương này, giới thiệu khái quát phân tích chương trình, ứng dụng, kỹ thuật số công cụ phân tích chương trình có Chương hai Cây cú pháp trừu tượng (abstract syntax tree – AST) Chương này, trình bày cú pháp trừu tượng Tôi nêu lên ứng dụng cú pháp trừu tượng, đặc biệt việc mô tả mã nguồn java phục vụ cho việc so sánh hai chương trình tương tự Chương ba đơn vị đo phần mềm (Software metrics) Chương này, trình bày sơ lược đơn vị đo phần mềm sử dụng đánh giá phần mềm Tôi trình kỹ đơn vị đo phần mềm Cyclomatic complexity Chương bốn Bài toán ứng dụng giảng dạy Chương mô tả toán để ứng dụng giảng dạy phương pháp, công thức để giải toán Chương năm Thực nghiệm Chương trình bày cách thức cài đặt kết cài đặt hệ thống đánh giá chương trình sinh viên mà đặt chương bốn CHƯƠNG 1: KIẾN THỨC CƠ SỞ VỀ PHÂN TÍCH CHƯƠNG TRÌNH Trong chương này, trình bày khái niệm liên quan đến Phân tích chương trình, kỹ thuật khác ứng dụng Phân tích chương trình 1.1 Khái niệm phân loại Phân tích chương trình Theo [7]: “Trong khoa học máy tính, phân tích chương trình trình tự động phân tích hành vi chương trình máy tính.” Theo [3, tr 8], dựa vào việc chương trình có thực hay không, phân tích chương trình chia làm hai loại chính: + Phân tích chương trình tĩnh + Phân tích chương trình động Theo [4]: “Phân tích chương trình tĩnh trình kiểm tra mã nguồn mà không thực chương trình Nó sử dụng để xác định vị trí lỗi mã bao gồm lỗi tiềm ẩn, vùng phức tạp dài dòng không cần thiết.” Trong phân tích chương trình tĩnh, chương trình phân tích mà không cần phải thực thi với đầu vào cụ thể Phân tích chương trình tĩnh thường mô tả kết có cho tập yếu tố đầu vào (thường cho tất yếu tố đầu vào chương trình) Vì hành vi chương trình khác cho đầu vào khác phân tích tĩnh thường mang ý nghĩa gần Thay đưa kết xác, phân tích tĩnh thường đưa giới hạn giá trị Theo [4]: “Phân tích chương trình động việc phân tích phần mềm máy tính làm cách thực thi chương trình tập liệu đầu vào.” Để hiểu hành vi chương trình, thực chương trình số đầu vào, sau kiểm tra đầu Để hiểu chương trình tốt hơn, phải thực chương trình với việc sử dụng nhiều đầu vào khác Điều khiến việc phân tích chương trình động nhiều thời gian so với phân tích chương trình tĩnh Tuy nhiên, phân tích chương trình động xác phân tích chương trình tĩnh, đầu kết từ đầu vào cụ thể có kiểm chứng, tập hợp giả định đầu vào đầu 1.2 Phân tích chương trình tĩnh Trong phân tích chương trình tĩnh, chương trình phân tích phương pháp phân tích cấu trúc, mà không cần chạy mã lệnh Phân chương trình tĩnh dựa mã nguồn thực nhiều cách khác Ví dụ: phân tích tĩnh dựa việc kiểm tra luồng điều khiển chương trình, kiểm tra luồng 10 liệu chương trình, kiểm tra phức tạp chương trình cách sử dụng đơn vị (metrics) khác nhau, … Hầu hết nghiên cứu hiểu chương trình tự động dựa Phân tích chương trình tĩnh Các phương pháp tiếp cận việc hiểu chương trình tự động chia thành loại sau: + Phương pháp tiếp cận dựa tri thức + Sử dụng lý luận mờ việc hiểu chương trình + Phương pháp tiếp cận đánh giá chương trình tương tự +… 1.2.1 Phương pháp tiếp cận dựa tri thức Theo [3]: “Kỹ thuật dựa tri thức dựa sở tri thức lưu trữ định nghĩa trước Ý tưởng hiểu chương trình dựa tri thức đơn giản so sánh mã nguồn đầu vào với đoạn mã mẫu có thư viện Các đoạn mã thường gọi kế hoạch, mẫu, phân đoạn, … ” Nếu hiểu kế hoạch làm dễ dàng hiểu đoạn mã nguồn làm tìm thấy phù hợp đoạn mã nguồn kế hoạch Sự hiểu chương trình dựa tri thức trình tìm hiểu chương trình mục tiêu Trong khái niệm này, viết chương trình trình việc viết lại mục tiêu chương trình tập hợp mục tiêu sử dụng kế hoạch quy tắc cho trình viết lại Sự hiểu chương trình coi trình ngược lại, hiểu biết mục tiêu thông qua hiểu biết mục tiêu sử dụng kế hoạch Các kế hoạch riêng biệt đơn giản gộp lại thành hình thức phức tạp để tạo chương trình Các thuật toán coi hình thành từ kế hoạch Ví dụ, Letovsky Soloway mô tả thuật toán mergesort suy từ kết hợp số kế hoạch: kế hoạch đệ quy nhị phân, kế hoạch để tách chuỗi thành hai, kế hoạch phân loại cặp số, kế hoạch sát nhập danh sách xếp Vì vậy, kế hoạch không nên nhầm lẫn với thuật toán thủ tục chúng khái niệm khác Phương pháp tiếp cận dựa tri thức chia làm loại: Phương pháp tiếp cận từ xuống, từ lên kết hợp hai Phương pháp chủ yếu phương pháp tiếp cận từ lên, có nghĩa cố gắng để nhận dạng hiểu đoạn mã nhỏ (còn gọi kế hoạch bản) Sau hiểu kế hoạch bản, tiếp tục trình nhận hiểu kế hoạch cấp cao cách kết hợp ý nghĩa kế hoạch 47 Trong giải pháp mẫu có hai giải pháp cho tập Một giải pháp giống với giải pháp sinh viên với lời đánh giá là: “Giải pháp nên cải thiện tổ chức chức kiểm tra số nguyên tố thành hàm” Giải pháp thứ hai mẫu sau: package javaapplication4; import java.io.InputStreamReader; import java.util.Scanner; public class JavaApplication4 { static boolean SoNT(int n) { boolean snt; int dem,i; snt=false; dem=0; for (i=2;i ^(PACKAGE addPack) 54 ; addPack :'package' qualifiedName ';' ; importDeclaration : addImp -> ^(IMPORT addImp) ; addImp :'import' ('static' )? NAME '.' '*' ';' | 'import' ('static' )? NAME ('.' NAME )+ ('.' '*' )? ';' ; qualifiedName : NAME ('.' NAME )* ; classDeclaration : ; addClass -> ^(CLASS addClass) 55 addClass : modifiers 'class' NAME block | 'class' NAME block ; block : '{' (statement )* '}' | statement ; statement : varDeclaration | asigment | methodCall | methodDeclaration | condition | loop ; // -varDeclaration varDeclaration :addVar -> ^(VARDECLARATION addVar) ; addVar : modifiers (',' NAME)* ';' | type NAME (',' NAME)* ';' ; type NAME 56 type : 'boolean' | 'char' | 'byte' | 'short' | 'int' | 'long' | 'float' | 'double' | 'void' ; ……… Dùng ANTLR dịch tệp tin ASTDemo.g Để sử dụng tệp tin ASTDemo.g ta cần dùng ANTLR dich thành tệp tin ASTDemo.tokens, ASTDemoLexer.java ASTDemoParser.java Để làm điều này, ta vào cửa sổ cmd gõ vào dòng lệnh sau: Kết thư mục C (thư mục chứa tệp tin ASTDemo.g) xuất thêm tệp tin: ASTDemo.tokens, ASTDemoLexer.java ASTDemoParser.java Tạo AST từ mã nguồn Input: tệp tin mã nguồn Java Output: Cây AST Ở ta sử dụng thư viện ANTLR tệp tin có sau dịch tệp tin ASTDemo.g Cây AST sau sinh lưu file XML Ở hệ thống so sánh mặt cấu trúc nên cần lấy cấu trúc AST loại lệnh: lệnh gán, khai báo phương thức, gọi phương thức, vòng lặp, điều kiện,… 5.3.2 Thuật toán so sánh hai cú pháp trừu tượng Mục đích So sánh cấu trúc hai AST sinh viên AST mẫu để kết luận xem sinh viên có làm không Nếu hai có cấu trúc giống có thông báo chúc mừng phản hồi đến sinh viên, ngược lại đưa thông báo sinh viên làm sai 57 Cài đặt Input: Tệp tin chương trình sinh viên tệp tin chương trình mẫu Output: Trả phản hồi xem sinh viên có làm với cấu trúc mẫu không Quá trình so sánh làm theo bước sau: + Bước 1: Đọc tệp tin mã nguồn chương trình sinh viên sau sinh AST, cấu trúc AST lưu tệp tin XML (tạm gọi tệp tin Sinhvien.xml) + Bước 2: Đọc tệp tin mã nguồn chương trình mẫu sau sinh AST, cấu trúc AST lưu tệp tin XML (tạm gọi tệp tin Giaiphap.xml) + Bước 3: Duyệt tệp tin Sinhvien.xml Giaiphap.xml để lấy node tệp tin + Bước 4: So sánh node tệp tin Sinhvien.xml Giaiphap.xml Nếu kết thúc mà node giống kết luận cấu trúc, có nút khác kết luận không cấu trúc 5.4 Kết thực nghiệm 5.4.1 Tính Cyclomatic complexity (CC) Khi sinh viên làm tập từ hệ thống, tính tính CC thực tệp tin chương trình java sinh viên Ngoài việc tính CC hệ thống phản hồi cho sinh viên độ phức tạp toán dựa vào CC Hình 5.2 Kết thực nghiệm tính Cyclomatic complexity 58 Với ví dụ hình 5.2, chương trình có ba điểm định (một điều kiện k[...]... cận của việc hiểu chương trình tự động dựa trên phân tích tĩnh Đây là một lĩnh vực nghiên cứu khá rộng, tuy nhiên tôi không có tham vọng nghiên cứu tất cả các kỹ thuật cũng như phương pháp tiếp cận của Phân tích chương trình Tôi chỉ tập chung nghiên cứu về phân tích tĩnh mã nguồn dựa vào hai cách tiếp cận sau: Thứ nhất là đánh giá hai chương trình tương tự Chương trình mẫu và chương trình của sinh viên... chương trình sử dụng một số dữ liệu thử nghiệm và sau đó điều tra các tập tin đầu ra và sử dụng JUnit (khi câu hỏi yêu cầu sử dụng ngôn ngữ java) 1.4 Các ứng dụng chính của phân tích chương trình Theo [7]: “Các ứng dụng chính của phân tích chương trình là chính xác hóa chương trình và tối ưu hóa chương trình. ” 1.4.1 Chính xác hóa chương trình Theo [12]: Trong lý thuyết khoa học máy tính, sự chính xác... chương trình động Trong phân tích chương trình động, chương trình được thực hiện bởi một bộ kiểm thử đầu vào, và đầu ra sau đó được nghiên cứu để hiểu các chức năng của chương trình Để phân tích các chương trình kỹ lưỡng và hiểu các chức năng của nó một cách toàn diện, phải thực hiện rất nhiều bộ kiểm thử Phân tích chương trình động thường được sử dụng trong các hệ thống đánh giá tự động - sự chính xác... trình Nó sử dụng các kỹ thuật tối ưu hóa mã và các đơn vị đo phần mềm để phân tích chương trình ITPAD bao gồm ba giai đoạn: phân tích từ vựng, phân tích cấu trúc và phân tích các đặc trưng Trong phần sau đây, tôi sẽ trình bày từng giai đoạn: Phân tích từ vựng bao gồm thu thập dữ liệu để có thể đếm các đặc trưng mã Các đặc trưng được sử dụng bởi Robinson và Soffa như sau: 1 Tổng số các biến duy nhất... là hai chương trình là hoàn toàn tương tự Phương pháp này sử dụng một thuật toán nhanh hơn khi bắt đầu để đảm bảo rằng hai chương trình này không hoàn toàn khác nhau Tiếp tục điều tra chi tiết được thực hiện trừ khi hai chương trình xuất hiện một vài khu vực giống nhau Bằng cách này, số lượng so sánh được giảm dẫn đến cải thiện sự hiệu quả 1.3 Phân tích chương trình động Trong phân tích chương trình. .. viên và ngăn chặn các sinh viên sao chép của nhau Cách tiếp cận chương trình tương tự gồm nhiều phương pháp khác nhau Nhiều phương pháp thực hiện được quan tâm như các phương pháp phân tích tĩnh trên chương trình chủ đề như: phân tích cấu trúc, phân tích luồng điều khiển và phân tích luồng dữ liệu, … Ngoài ra, các phương pháp thuộc tính đếm có thể được coi là một thể loại con của việc nghiên cứu chương. .. của chương trình được lựa chọn như là yếu tố quan trọng trong phân biệt các chương trình Các đặc tính quan trọng nhất đã được sử dụng là bốn thông số của Halstead được đề cập trong bảng 1.2 Những đặc tính này được đếm từ mã chương trình, và kết quả được so sánh với kết quả tương ứng thu được từ một mã chương trình khác trên cùng một thủ tục Cuối cùng, một số thể hiện sự tương tự giữa hai chương trình. .. quả để sử dụng trực tiếp trong mục đích phân tích chương trình Điều này là do việc xóa các vòng lặp kế tiếp và các lệnh điều kiện để giảm số lượng của chúng sẽ dẫn đến kết quả không chính xác trong phân tích chương trình 17 Cách tiếp cận của Robinson và Soffa Robinson và Soffa có cách tiếp cận khác [1] Ngoài nhiệm vụ phát hiện sao chép, hệ thống họ phát triển được gọi là ITPAD (Công cụ giảng dạy cho... chép với cả mã chương trình và ngôn ngữ tự nhiên Trong phần sau đây, tôi trình bày một số nghiên cứu về lĩnh vực này mà tôi đã tìm hiểu được Tôi chia các nghiên cứu thành hai loại chính, đó là phương pháp dựa trên thuộc tính đếm và phương pháp dựa trên cấu trúc Những nghiên cứu có sử dụng cả hai phương pháp được mô tả trong thể loại thuộc tính đếm 1 Phương pháp dựa trên thuộc tính đếm Trong các phương... hơn.” Ta có thể tối ưu hóa chương trình ở các cấp độ khác nhau như: cấp độ thiết kế (liên quan đến tối ưu các thuật toán), cấp độ mã lệnh, … Các công cụ phân tích chương trình ngày nay dần dần đi đến chức năng đưa ra các phản hồi cho lập trình viên nhằm tối ưu hóa chương trình 1.5 Kết luận Chương này, tôi đã trình bày các khái niệm cơ bản của Phân tích chương trình Đặc biệt tôi đã trình bày một số hướng ... thiện hiệu 1.3 Phân tích chương trình động Trong phân tích chương trình động, chương trình thực kiểm thử đầu vào, đầu sau nghiên cứu để hiểu chức chương trình Để phân tích chương trình kỹ lưỡng... xác phân tích chương trình tĩnh, đầu kết từ đầu vào cụ thể có kiểm chứng, tập hợp giả định đầu vào đầu 1.2 Phân tích chương trình tĩnh Trong phân tích chương trình tĩnh, chương trình phân tích phương... cảnh trên, đề tài nghiên cứu nghiên cứu Phân tích chương trình để ứng dụng vào kiểm tra chương trình java sinh viên Nội dung nghiên cứu Trong luận văn này, nội dung nghiên cứu bao gồm: Tìm hiểu

Ngày đăng: 03/11/2015, 17:13

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan