Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
1,38 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Vương Văn Trường KIỂM CHỨNG CÀI ĐẶT BIỂU ĐỒ TƯƠNG TÁC VỚI UML 2.0 KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ phần mềm HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Vương Văn Trường KIỂM CHỨNG CÀI ĐẶT BIỂU ĐỒ TƯƠNG TÁC VỚI UML 2.0 KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ phần mềm Cán hướng dẫn: TS Trương Anh Hoàng Cán đồng hướng dẫn: ThS Phạm Thị Kim Dung HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lời cảm ơn Trước tiên xin gửi lời cảm ơn chân thành tới TS.Trương Anh Hồng, Bộ mơn Cơng nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ, Đại học Quốc Gia Hà Nôi – người định hướng đề tài tận tình hướng dẫn bảo tơi suốt q trình thực khóa luận tốt nghiệp Tơi xin chân thành cảm ơn ThS Phạm Thị Kim Dung, Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội – Người đồng hướng dẫn bảo trình thực khóa luận Tơi xin trân trọng cảm ơn quý thầy cô Khoa Công nghệ thông tin, Trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội tận tình giảng dạy, truyền đạt kiến thức quý báu suốt bốn năm học làm tảng cho tơi thực khóa luận tốt nghiệp Con xin cảm ơn cha mẹ gia đình sinh ni dạy khơn lớn, cạnh động viên ủng hộ đường mà yêu thích lựa chọn Cảm ơn bạn sinh viên Khoa Công nghệ thông tin khóa 2006 – 2010 Các bạn giúp đỡ ủng hộ tơi nhiều đóng góp nhiều ý kiến q báu, qua đó, tơi hồn thiện khóa luận tốt Mặc dù nỗ lực, cố gắng hẳn khóa luận tơi cịn nhiều sót Tơi mong nhận nhiều ý kiến đánh giá, phê bình quý thầy anh chị bạn Một lần nữa, xin chân thành cảm ơn Hà Nội, tháng năm 2010 Vương Văn Trường LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tóm tắt Phần mềm ngày xây dựng phát triển mạnh mẽ Phần mềm tạo phải đảm bảo chất lượng Kiểm chứng phần mềm giai đoạn quan trọng quy trình sản xuất phần mềm Kiểm chứng động phần mềm nhằm phát tìm lỗi giai đoạn kiểm thử phần mềm Phương pháp lập trình hướng khía cạnh ( Aspect Oriented programming - AOP) với công nghệ AspectJ đời tạo hướng phát triển cho kiểm chứng phần mềm, nâng cao khả tìm sửa lỗi phần mềm mà không ảnh hưởng đến mã nguồn hệ thống Từ u cầu thực tế, mơ hình UML lựa chọn phổ biến cho mơ hình hóa hệ thống phần mềm giai đoạn thiết kế, việc kiểm chứng ràng buộc tương tác biểu đồ trình tự UML cần thiết Cùng với yêu cầu thực tế đề lựa chọn AOP giải pháp giải vấn đề, phạm vi khóa luận, tơi xin trình bày phương pháp sinh mã AspectJ tự động phục vụ cho việc kiểm chứng phần mềm với công cụ plugin Create Aspect tự động sinh mã AspectJ dựa phương pháp Nội dung phương pháp dựa kiến thức AOP, UML, XML, ANNOTATIONS để chuyển đổi giao thức ràng buộc đối tượng đặc tả bời biểu đồ UML sang modun aspect phục vụ cho việc kiểm chứng Ý nghĩa thực tiễn việc sinh mã aspect đan xen vào chương chình thực việc kiểm chứng ràng buộc đối tượng thời gian chạy LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục lục Chương Mở đầu 1.1 Đặt vấn đề 1.2 Nội dung toán 1.3 Tổng quan phương pháp “kiểm chứng cài đặt biểu đồ tương tác với UML 2.0” 1.4 Cấu trúc khóa luận Chương Annotaions , Aspects UML 2.0 2.1 Annotations 2.1.1 Khái niệm annotaions 2.1.2 Ưu điểm annotations 2.1.3 Cấu trúc annotaions 2.1.4 Target annotions 2.2 Aspect 2.2.1 Lập trình hướng khía cạnh AOP 2.2.2 AspectJ 2.3 UML 2.0 10 2.3.1 khai niệm UML .10 2.3.2 Biểu đồ trình tự UML 11 2.4 Xây dựng máy trạng thái từ biểu đồ trình tự 16 2.4.1 Cấu trúc liệu mô tả biểu đồ trình tự 16 2.4.2 Xây dựng máy trạng thái(FSM) 18 2.5 Tổng kết chương 19 Chương Xây dựng cộng cụ tự động sinh Aspect từ máy trạng thái 20 3.1 Biểu đồ trình tự đoạn gộp 20 3.2 Sinh Aspect từ biêu đồ trình tự 21 3.3 Kết luận 23 Chương Thực nghiệm .24 4.1 Xây dựng công cụ .24 4.2 Kiểm chứng số giao thức thực tế 27 4.2.1 Kiểm chứng biểu đồ truy cập thông tin máy ATM 27 4.2.2 Kiểm chứng biểu đồ loop .32 4.2.3 Kiểm chứng biểu đồ tổng quát .36 4.3 Kết luận 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết luận 45 Phụ lục .47 Phụ lục A : Tài liệu XMI mô tả biểu đồ trình tự 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh mục ký hiệu, từ viết tắt Từ viết tắc Diễn giải Aspect-Oriented Programming AOP Finie State Machine FSM Object Oriented Programming OOP eXtensible Markup Language XML XML Metadata Interchange XMI Unified Modeling language UML LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Mở đầu 1.1 Đặt vấn đề Ngày công nghệ thông tin ứng dụng vào tất lĩnh vực đời sống xã hội, từ ứng dụng đơn giản đến ứng dụng phức tạp, từ ứng dụng gia đình đến ứng dụng cho tổ chức lớn có mặt sản phẩm cơng nghệ thơng tin Có thể nói làm thay đổi diện mạo xã hội, đưa văn minh nhân loại lên tầng cao Một phần quan trọng Công nghệ thông tin Công nghệ phần mềm… Cùng với phát triển vượt bậc công nghệ phần cứng hỗ trợ cho Công nghệ phần mềm phát triển mạnh mẽ Hiện nay, phần mềm coi sản phẩm cơng nghệ thơng tin, q trình làm phần mềm thơng thường trải qua quy trình nghiêm ngặt Quy trình chia làm nhiều giai đoạn : thu thập yêu cầu, phân tích, thiết kế, xây dựng, kiểm tra., triển khai bảo trì phần mềm Đối với phần mềm, việc đảm bảo chất lưng phần mềm vô quan trọng Do đó, vấn đề đặt phải kiểm tra, xác định sửa lỗi phát sinh trình sản xuất phần mềm, cơng việc giai đoạn kiểm tra Việc phát lỗi phần mềm muộn gây hậu lớn, tốn nhiều thời gian cơng sức sửa lỗi, chí phải xây dựng lại toàn hệ thống từ đầu, có gây thất bại cho tồn dự án phần mềm Chính phương pháp phát lỗi sớm để giảm thiểu công sức để sửa chúng đời Để phát hiện lỗi phần mềm, phần mềm phải kiểm chứng(Verification) thẩm định(Valication)[5] Kiểm chứng phần mềm kiểm tra xem phần mếm có thiết kế thực thi đặc tả không yêu cầu không Thẩm định phần mềm giai đoạn có hỗ trợ khách hàng nhằm kiểm tra xem phần mềm có đáp ứng yêu cầu họ khơng Mục đính kiểm chứng phần mềm làm giảm thiểu số lỗi mà phần mềm gặp đến mức thấp chấp nhận Chính vậy, có vai trị vơ quan trọng tồn quy trình phát triển phần mềm ngành phát triển phần mềm Nó thu hút mối quan tâm nhiều nhà nghiên cứu LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Giai đoạn kiểm thử có mục đích kiểm tra tính đắn sản phầm phần mềm, kiểm tra xem có đáp ứng nhu cầu tốn đặt khơng Trong thực tế, thao tác kiểm thử đơn vị thông thường dựa vào tập ca kiểm thử đầu vào đầu tương ứng Do vậy, kiểm tra tính sai đầu vào đầu chương trình, khơng kiểm tra q trình hoạt động cuả chương trình có theo đặc tả ban đầu hay khơng Việc khơng kiểm hợp chúng thành chương trình lớn 1.2 Nội dung toán Kiểm chứng phần mềm phần vơ quan trọng q trình phát triển phần mềm Vì có nhiều phương pháp kiểm chứng phần mềm xây dựng giả lập hay kiểm chứng mơ hình Trong giới hạn khóa luận này, muốn đề cập đến phương pháp kiểm chứng phần mền dựa phương pháp lập trình hướng khía cạnh(AOP) Cụ thể phạm vi toán kiểm chứng đặc tả hoạt động đối tượng Java kiểm tra tác tử thời gian chạy Trong cách tiếp cận này, ứng dụng hướng đối tượng đặc tả mơ hình UML cài đặt ngôn ngữ Java: Sau Aspect sinh ra, chúng đan xen vào mã Java để kiểm tra thời gian chạy Bài tốn có nhiệm vụ tạ Aspect từ biều đồ , dùng AspectJ để đan Aspect vào khung chương trình Khi chạy chương trình, Aspect tự động kiểm tra đặc tả giao thức đưa thông báo lỗi có vi phạm Nhiệm vụ toán xây dựng phương pháp tạo đoạn mã Aspect để kiểm chứng xây dựng công cụ Plugin Protocol Verification Generator tự động sinh Aspect kiểm chứng đặc tả giao thức biểu đồ UML 1.3 Tổng quan phương pháp “kiểm chứng cài đặt biểu đồ tương tác với UML 2.0” Trong khóa luận “KIỂM CHỨNG ĐẶC TẢ UML CHO TÁC TỬ PHẦM MỀM”[2] trình bày phương pháp kiểm chứng đặc tả UML cho tác tử phần mềm, khóa luận đưa phương pháp pháp phân tích kiểm chứng cho số giao thức (AB)n [A*B]n Nhưng khóa luận đó, chưa giải số vấn đề như: - Mới dừng kiểm tra số giao thức đơn giản - Chỉ kiểm tra cho biểu đồ thường, biểu đồ theo Agent UML Đối với, giao thức mô tả UML trở lên cơng cụ khơng thể thực LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Việc tự động sinh Aspect chưa thực hồn thiện Aspect sinh sau lưu lại Để sử dụng Aspect phải đưa vào project cần thiết - Aspect sinh có phạm vi tồn project Tức là, lớp có phương thức mơ tả pointcut chịu tác dụng Aspect Điều này, nhiều gây nên lỗi - Tài liệu XMI đầu vào công cụ thu gọn chứa thành phần cần thiết Phát triển từ khóa luận trên, tơi giải vấn đề Aspect sinh trực tiếp gắn vào project tên với file xmi Giao thức kiểm chứng đa dạng Được thiết kế theo UML 2.0, Các điều kiện lặp, lựa chọn sử dụng mô tả đoạn gộp đoạn gộp alt, loop Aspect sinh đảm bảo kiểm tra cho phương thức người dùng đánh dấu Do khác cách mô tả UML 2.0 trước đây, nên cấu trúc để lưu giữ Aspect sinh khác nhiều so với công cụ PVG Phát triển từ công cụ PVG thay đổi nhiều để phù hợp với đặc tả giao thức UML2.0 Bài toán bắt đầu với đầu vào biểu đổ UML 2.0, biểu đồ tạo công cụ Altova Umodel 2010 Altova Umodel 2010 plugin, biểu đồ xuất dạng XMI Sau đó, lấy thơng tin cần thiết đối tượng biểu đồ chuyển thành máy trạng thái (FSM) Lập trình viên phát triển mơ-đun nghiệp vụ từ biểu đồ biểu đồ lại Song song với q trình xây dựng Aspect từ máy trạng thái Bài báo “Checking Interface Interaction Protocols Using Aspect-Oriented Programming”[3] xây dựng phương pháp kiểm chứng giao thức sử dụng AOP Dựa vào báo xây dựng công cụ tự động sinh Aspect với đầu vào tài liệu XMI mô tả biểu đồ UML 2.0 Phương pháp xây dựng công cụ Plugin Protocol Verification Generator(PPVG gồm hai bước Bước : Phân tích tài liệu XMI, lấy thơng tin cần thiết để xây dựng máy trạng thái Bước : Xây dựng tự động sinh Aspect từ FSM : Sử dụng FSM vừa sinh từ trên, duyệt trạng thái FSM, áp dụng phương pháp cài đặt Aspect báo nói trên, tơi tạo join-point, pointcut advice từ trạng thái để hình thành nên mơ-đun Aspect LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com for(int i = 0; i < listEnd.size(); i ++) if(Id.lastIndexOf(listEnd.get(i)) >=0){ System.out.println("vong loop thu 1bat dau bang phuong thuc* m1() duong goi "+loop2+ "lan"); if(numError > 0) System.out.println("so loi hien tai : " + numError); } } } Tiếp theo đưa số test để kiểm tra gia thức Test1 : o Đầu vào : m() -> m2() o Kết Hình 4.2.2.2a : kết test1 o Nhận xét : Đoạn gộp loop không sử dụng, gọi lần, giao thức đặc tả đúng, khơng có lỗi Kết Test2 o Đầu vào : m() -> m1() -> m1() -> m2() o Kết : Hình 4.2.2.2b: kết test2 o Nhận xét : Trong test này, đoạn gộp loop kích hoạt, gọi lần, giao thức miêu tả đúng, khơng có lỗi Kết Test3 o Đầu vào : 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com m1() -> m2() -> m1() -> m1() ->m2() o Kết : Hình 4.2.2.2c: Kết test3 o Nhận xét : Do phương thức đầu tên m() không gọi mà gọi phương thức m1() sai, m1() gọi sau m2() sai, có lỗi Vịng lặp kích hoạt phương thức m1() , phương thức gọi lần Như kết Tương tự loop, kiểm thử với alt, break, opt cho kết kiểm tra với đặc tả 4.2.3 Kiểm chứng biểu đồ tổng quát 4.2.3.1 Đặc tả giao thức 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 4.2.3.1: Biểu đồ trình tự sử dụng nhiều đoạn gộp Giao thức chứa đoạn gộp alt, opt, loop, break 4.2.3.2 Kiểm chứng giao thức Aspect sinh : public aspect All{ int loop2 = ; private boolean isError = false ; private int numError = 0; private ArrayList Id = new ArrayList(); ArrayList listEnd = new ArrayList(); 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com pointcut AllChecked() :call(@Implement * m9())||call(@Implement * m8())||call(@Implement * m6())||call(@Implement * m7())||call(@Implement * m5())||call(@Implement * m4())||call(@Implement * m3())||call(@Implement * m2())||call(@Implement * m1||call(@Implement * m0()); before() : AllChecked(){ String nameThisAspect = this.getClass().toString(); nameThisAspect=nameThisAspect.substring( nameThisAspect.lastIndexOf(".") + 1, nameThisAspect.length()); String CallMethod = getNameMethod(thisJoin-pointStaticPart); String AnnotationOfMethod= getAnnotationOfMethod(thisJoin-pointStaticPart); if(isPart(nameThisAspect,AnnotationOfMethod) == false) return; if(Id.isEmpty()) Id.add("0"); if(listEnd.isEmpty()){ listEnd.add("6"); listEnd.add("10"); } isError = true; ArrayList l = new ArrayList(); ArrayList target = new ArrayList(); if( CallMethod.equals("* m9()")){ l.add("9"); target.add("10"); } else if( CallMethod.equals("* m8()")){ l.add("8"); target.add("9"); } else if( CallMethod.equals("* m6()")){ l.add("6"); target.add("9"); l.add("5"); target.add("7"); } else if( CallMethod.equals("* m7()")){ l.add("6"); target.add("8"); 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com } else if( CallMethod.equals("* m5()")){ l.add("5"); target.add("6"); } else if( CallMethod.equals("* m4()")){ l.add("4"); target.add("5"); l.add("3"); target.add("5"); } else if( CallMethod.equals("* m3()")){ l.add("3"); target.add("4"); } else if( CallMethod.equals("* m2()")){ l.add("2"); target.add("3"); l.add("1"); target.add("3"); } else if( CallMethod.equals("* m1()")){ l.add("2"); target.add("2"); l.add("1"); target.add("2"); } else if( CallMethod.equals("* m0()")){ l.add("0"); target.add("1"); } setIdIfTrue(l,target); if(isError == true){ numError ++; System.out.println("goi sai o dong phuong thuc "+ CallMethod +" o dong thu "+thisJoin-pointStaticPart.getSourceLocation().getLine()); 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Id.clear(); Id = target ; } } after():AllChecked(){ if(Id.lastIndexOf("2")>=0) loop2++; /*neu trang thai hien tai la trang thai opt thi thong bao*/ if(Id.lastIndexOf("4")>=0) System.out.println("khoi opt thu bat dau bang * m3() duoc su dung "+" o dong thu : "+thisJoin-pointStaticPart.getSourceLocation().getLine()); /*Neu trang thai hien tai la trang thai break thi thong bao*/ if(Id.lastIndexOf("6")>=0) System.out.println("khoi break thu bat dau bang * m5() duoc su dung "+" o dong thu : "+thisJoin-pointStaticPart.getSourceLocation().getLine()); /*thong bao viec khoi alt duoc kich hoat neu trang thai hien tai la trang thai alt*/ if(Id.lastIndexOf("6")>=0){ System.out.println("khoi alt thu bat dau bang * m5() duoc su dung "+" o dong thu : "+thisJoin-pointStaticPart.getSourceLocation().getLine()); } for(int i = 0; i < listEnd.size(); i ++) if(Id.lastIndexOf(listEnd.get(i)) >=0){ System.out.println("vong loop thu 1bat dau bang phuong thuc* m1() duong goi "+loop2+ "lan"); if(numError > 0) System.out.println("so loi hien tai : " + numError); } } } Tiếp theo đây, xây dựng số kiểm tra để minh chứng hoạt động aspect sinh - Test1 o Chuỗi gọi hàm m1() -> m2() -> m3() -> m4 -> m5() o Kết 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 4.2.3.2a: Kết test1 o Nhận xét Chuỗi gọi hàm kết thúc gọi đoạn gộp break.Khối loop kích hoạt lần, khối opt kích hoạt Chuỗi thứ tự thông điệp đặc tả Kết mô tả xác - Test2 o Chuỗi gọi hàm m1() -> m2() -> m3() -> m4 -> m6() -> m7() -> m8() o Kết Hình 4.2.3.2b: Kết test2 o Nhận xét Chuỗi gọi hàm kết thúc khối alt, với lựa chọn thứ Trong ví dụ này, đoạn gộp loop, alt, opt sử dụng Đoạn gộp break không sử dụng Chuỗi gọi hàm với đặc tả Kết - Test3 o Chuỗi gọi hàm 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com m1() -> m2() -> m3() -> m4 -> m6() -> m9() -> m10() -> m11() o Kết Hình 4.2.3.2c: Kết test3 o Nhận xét Tương tự ví dụ trên, khối alt theo nhánh thứ hai Kết mô tả - Test4 o Chuỗi gọi hàm m2()-> m4() -> m5() o Kết Hình 4.2.3.2d: Kết test4 o Nhận xét Đoạn gộp loop, alt, opt không sử dụng Chuỗi gọi hàm với đặc tả Như vậy, kết mô tả - Test5 o Chuỗi gọi hàm m1() -> m2() -> m3 -> m4() -> m7() -> m8() 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com o Kết Hình 4.2.3.2e: Kết test5 o Nhận xét Chuỗi gọi hàm gọi thiếu hàm m6() so với đặc tả Kết thông báo - Test6 o Chuỗi gọi hàm m1() -> m2() -> m3 -> m10() -> m4() -> m6()-> m7() -> m8() o Kết Hình 4.2.3.2f: Kết test6 o Nhận xét Chuỗi gọi hàm sai điểm : Thứ nhất: gọi sai hàm m10() Sau hàm m3() lẽ phải gọi hàm m4() 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Thứ hai: Sau hàm m10() lẽ phải gọi hàm m11() lại gọi hàm m4() Như vậy, kết mô tả 4.3 Kết luận Trong chương nay, trình bày cách cài đặt cơng cụ tơi dựa vào phương pháp “Kiểm chứng đặc tả UML” Mã Aspect sinh từ công cụ đan xen vào chương trình thời gian chạy Bước kiểm chứng số giao thức, thấy công cụ sinh Aspect phù hợp cho việc kiểm chứng 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết luận Trong q trình thực khóa luận này, tơi tìm hiểu kiến thức kiểm chứng phần mềm Từ tơi phát triển phương pháp kiểm chứng dựa AOP xây dựng công cụ tự động sinh Aspect Với phát triển từ công cụ PVG(Protocol Verification Generator), với mục tiêu kiểm chứng đặc tả cho UML Tơi thay đổi để kiểm chứng đặc tả dùng cho UML 2, khả tự động sinh Aspect nói hồn thiện, Ở cơng cụ PVG giải giao thức đơn giản Ở khóa luận tôi, giải trường hợp đa giạng, với biểu đồ thiết kế UML Agent UML công cụ PVG Trong phương pháp này, Aspect sinh se cắt ngang hệ thống để kiểm tra trình hoạt động Từ biểu đồ trình tự UML xuất dạng tài liệu XMI Tiếp đó, tiến hành phân tích tài liệu XMI để xây dựng máy trạng thái (FSM), FSM sinh xử lý để tạo lên Aspect cuối phục vụ cho việc kiểm chứng Áp dụng phương pháp này, xây dựng cơng cụ có khả kiểm chứng cho đoạn gộp bàn biểu đồ trình tự đoạn gộp alt, opt, loop, break Tuy nhiên, vấp phải số khó khăn q trình thực khóa luận như: Đối với đoạn gộp trọng biểu đồ trình tự có điều kiện kích hoạt khác Để xử lý cần phải biết thành phần điều kiện lấy đâu, phương thức trả lại Với đặc tả UML2 hạn chế tài liệu XMI chưa thể giúp giải vấn đề Hơn nữa, hệ thống nhiều thành phần tài liệu XMI phức tạp, với đoạn gộp không đan cơng cụ tơi kiểm chứng Nhưng khi, thành phần chứa nhiều đoạn gộp lồng đoạn gộp loop lồng đoạn gộp alt chưa giải 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Từ vấn đề tồn khóa luận này, tương lai tơi tiếp tục hướng nghiên cứu nhằm xây dựng hoàn thiện công cụ để đáp ứng yêu cầu Hướng phát triển gần phát triển công cụ để giải vấn đề ràng buộc đoạn gộp lồng biểu đồ UML Bên cạnh đó, tơi nghiên cứu tìm phương pháp sinh mã Aspect không phụ thuộc vào tài liệu XMI mà phụ thuộc vào ràng buộc điều kiện mô tả dạng liệu khác nhằm tăng tính ứng dụng cơng cụ tơi công cụ sản xuất phần mềm 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phụ lục Phụ lục A : Tài liệu XMI mô tả biểu đồ trình tự 99713c9e-7097-4599-bc9d-3dc0f6bcf849 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các tài liệu tham khảo [1] Nguyễn Văn Ba Phát triển hệ thống hướng đối tượng với UML 2.0 C++.2008,tr.33 [2]Vũ Sỹ Vương KIỂM CHỨNG ĐẶC TẢ UML CHO TÁC TỬ PHẦN MỀM Khóa luận tốt nghiệp.Hà Nội,2009 [3] Anh-Hoang Truong, Thanh-Binh Trinh, Dang Van Hung, Viet-Ha Nguyen Nguyen Thi Thu Trang, and Pham Dinh Hung “Checking Interface Interaction Protocols Using Aspect-Oriented Programming” SEFM' 08, Cape Town, South Africa, November 10-14, 2008 [4] R Laddad AspectJ in Action Practical Aspect-Oriented Programming Manning Publications Co., 2003 [5] R S Pressman Software Engineering, A Practitioner’s Approach, 5th edition Thomas Casson, 2001 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... .24 4 .2 Kiểm chứng số giao thức thực tế 27 4 .2. 1 Kiểm chứng biểu đồ truy cập thông tin máy ATM 27 4 .2. 2 Kiểm chứng biểu đồ loop . 32 4 .2. 3 Kiểm chứng biểu đồ tổng... Aspect kiểm chứng đặc tả giao thức biểu đồ UML 1.3 Tổng quan phương pháp ? ?kiểm chứng cài đặt biểu đồ tương tác với UML 2. 0? ?? Trong khóa luận “KIỂM CHỨNG ĐẶC TẢ UML CHO TÁC TỬ PHẦM MỀM” [2] trình... 2. 2 Aspect 2. 2.1 Lập trình hướng khía cạnh AOP 2. 2 .2 AspectJ 2. 3 UML 2. 0 10 2. 3.1 khai niệm UML . 10 2. 3 .2 Biểu đồ trình