LUẬN VĂN: KIỂM CHỨNG CÀI ĐẶT BIỂU ĐỒ TƯƠNG TÁC VỚI UML 2.0 pdf

56 478 0
LUẬN VĂN: KIỂM CHỨNG CÀI ĐẶT BIỂU ĐỒ TƯƠNG TÁC VỚI UML 2.0 pdf

Đ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

ĐẠ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 ĐẠ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 bộ hướng dẫn: TS Trương Anh Hoàng Cán bộ đồng hướng dẫn: ThS Phạm Thị Kim Dung HÀ NỘI - 2010 Lời cảm ơn Trước tiên tôi xin gửi lời cảm ơn chân thành tới TS.Trương Anh Hoà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 và tận tình hướng dẫn chỉ bảo tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp này. Tôi cũng 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 và chỉ bảo tôi trong quá trình thực hiện khóa luận của này. Tôi cũng xin trân trọng cảm ơn quý thầy cô trong 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 trong suốt bốn năm học làm nền tảng cho tôi thực hiện khóa luận tốt nghiệp này. Con xin cảm ơn cha mẹ và gia đình đã sinh ra và nuôi dạy con khôn lớn, luôn cạnh động viên và ủng hộ con trên con đường mà con đã yêu thích và lựa chọn. Cảm ơn các bạn sinh viên Khoa Công nghệ thông tin khóa 2006 – 2010. Các bạn giúp đỡ và ủng hộ tôi rất nhiều cũng như đóng góp nhiều ý kiến quý báu, qua đó, tôi hoàn thiện khóa luận tốt hơn. Mặc dù đã rất nỗ lực, cố gắng nhưng chắc hẳn khóa luận của tôi vẫn còn nhiều sót. Tôi rất mong nhận được nhiều những ý kiến đánh giá, phê bình của quý thầy của các anh chị và các bạn. Một lần nữa, tôi xin chân thành cảm ơn. Hà Nội, tháng 5 năm 2010 Vương Văn Trường Tóm tắt Phần mềm ngày càng được xây dựng và phát triển mạnh mẽ. Phần mềm được tạo ra phải đảm bảo chất lượng. Kiểm chứng phần mềm là một trong những giai đoạn quan trọng trong quy trình sản xuất phần mềm. Kiểm chứng động phần mềm nhằm phát hiện và tìm lỗi trong 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) cùng với công nghệ AspectJ ra đời tạo ra hướng phát triển mới cho kiểm chứng phần mềm, nâng cao khả năng tìm và sửa lỗi phần mềm mà không ảnh hưởng đến mã nguồn hệ thống. Từ yêu cầu thực tế, khi mô hình UML đang là sự 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 các ràng buộc giữa các tương tác trong biểu đồ trình tự UML là rất cần thiết. Cùng với yêu cầu thực tế đề ra và lựa chọn AOP là giải pháp giải quyết vấn đề, trong 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ụ là plugin Create Aspect tự động sinh mã AspectJ dựa trên phương pháp này. Nội dung chính của phương pháp này dựa trên các kiến thức về AOP, UML, XML, ANNOTATIONS để chuyển đổi các 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 là việc sinh ra mã aspect sẽ đan xen vào chương chình thực hiện việc kiểm chứng các ràng buộc giữa các đối tượng trong thời gian chạy. Mục lục Chương 1. Mở đầu 1 1.1. Đặt vấn đề 1 1.2. Nội dung bài toán 2 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” 2 1.4 . Cấu trúc khóa luận 4 Chương 2. Annotaions , Aspects và UML 2.0 5 2.1. Annotations 5 2.1.1. Khái niệm annotaions 5 2.1.2. Ưu điểm của annotations 5 2.1.3. Cấu trúc annotaions 6 2.1.4. Target annotions 6 2.2. Aspect 7 2.2.1. Lập trình hướng khía cạnh AOP 7 2.2.2. AspectJ 9 2.3. UML 2.0 10 2.3.1. khai niệm về 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 dữ 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 3 . 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ự và các đ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 4. Thực nghiệm 24 4.1. Xây dựng công cụ 24 4.2. Kiểm chứng một số giao thức thực tế 27 4.2.1. Kiểm chứng biểu đồ truy cập thông tin cơ bản của một 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 Chương 5. 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 Danh mục các ký hiệu, từ viết tắt Từ viết tắc Diễn giải AOP Aspect-Oriented Programming FSM Finie State Machine OOP Object Oriented Programming XML eXtensible Markup Language XMI XML Metadata Interchange UML Unified Modeling language 1 Chương 1. Mở đầu 1.1. Đặt vấn đề Ngày nay công nghệ thông tin đã được ứng dụng vào tất cả các lĩnh vực trong đời sống xã hội, từ những ứng dụng đơn giản nhất đến các ứng dụng phức tạp, từ những ứng dụng gia đình đến các ứng dụng cho các tổ chức lớn đều có mặt các sản phẩm công nghệ thông tin. Có thể nói nó đã làm thay đổi diện mạo xã hội, đưa nền văn minh nhân loại lên một tầng cao mới. Một phần quan trọng của Công nghệ thông tin là Công nghệ phần mềm… Cùng với sự phát triển vượt bậc của cá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 được coi là sản phẩm chính của công nghệ thông tin, quá trình làm phần mềm thông thường được trải qua quy trình nghiêm ngặt. Quy trình này được chia ra 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 và bảo trì phần mềm. Đối với phần mềm, việc đảm bảo chất lưng của phần mềm là vô cùng quan trọng. Do đó, vấn đề đặt ra là phải kiểm tra, xác định và sửa được các lỗi phát sinh trong quá trình sản xuất phần mềm, đó là công việc của giai đoạn kiểm tra. Việc phát hiện lỗi phần mềm càng muộn thì gây hậu quả càng lớn, tốn nhiều thời gian và công sức sửa lỗi, thậm chí có thể phải xây dựng lại toàn bộ hệ thống từ đầu, có khi gây thất bại cho toàn dự án phần mềm. Chính vì vậy các phương pháp phát hiện lỗi sớm để giảm thiểu công sức để sửa chúng ra đời. Để phát hiện hiện những lỗi phần mềm, phần mềm phải được kiểm chứng(Verification) và thẩm định(Valication)[5]. Kiểm chứng phần mềm là kiểm tra xem phần mếm có thiết kế đúng và thực thi đúng như đặc tả không yêu cầu không. Thẩm định phần mềm là giai đoạn có sự hỗ trợ của khách hàng nhằm kiểm tra xem phần mềm có đáp ứng được yêu cầu của họ không. Mục đính chính của kiểm chứng phần mềm là làm giảm thiểu số lỗi mà phần mềm có thể gặp đến mức thấp nhất có thể chấp nhận được. Chính vì vậy, nó có vai trò vô cùng quan trọng trong toàn bộ quy trình phát triển phần mềm cũng như trong ngành phát triển phần mềm hiện nay. Nó thu hút được mối quan tâm của nhiều nhà nghiên cứu. 2 Giai đoạn kiểm thử có mục đích kiểm tra tính đúng đắn của sản phầm phần mềm, kiểm tra xem có đáp ứng được nhu cầu bài toán đặt ra không. Trong thực tế, các thao tác kiểm thử đơn vị thông thường dựa vào một tập các ca kiểm thử đầu vào và các đầu ra tương ứng. Do vậy, chỉ kiểm tra được tính đúng sai của đầu vào và đầu ra của chương trình, không kiểm tra được quá trình hoạt động cuả chương trình có theo đúng đặ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 bài toán Kiểm chứng phần mềm là một phần vô cùng quan trọng trong quá trình phát triển phần mềm. Vì vậy có rất nhiều phương pháp kiểm chứng phần mềm được xây dựng như giả lập hay kiểm chứng mô hình. Trong giới hạn khóa luận này, tôi muốn đề cập đến phương pháp kiểm chứng phần mền dựa trên phương pháp lập trình hướng khía cạnh(AOP). Cụ thể trong phạm vi bài toán là kiểm chứng đặc tả hoạt động của các đối tượng trong Java và kiểm tra các tác tử trong thời gian chạy. Trong cách tiếp cận này, một ứng dụng hướng đối tượng được đặc tả bằng mô hình UML và được cài đặt bằng ngôn ngữ Java: Sau khi Aspect được sinh ra, chúng sẽ được đan xen vào mã Java để kiểm tra trong thời gian chạy. Bài toán có nhiệm vụ tạ ra các Aspect từ biều đồ tuần tự , và dùng AspectJ để đan các Aspect này vào khung chương trình chính. Khi chạy chương trình, các Aspect này sẽ tự động kiểm tra các đặc tả giao thức và đưa ra các thông báo lỗi nếu có bất kỳ sự vi phạm nào. Nhiệm vụ chính của bài toán là xây dựng phương pháp tạo ra các đoạn mã Aspect để kiểm chứng và xây dựng công cụ Plugin Protocol Verification Generator tự động sinh ra Aspect kiểm chứng đặc tả giao thức bằng biểu đồ tuần tự 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 ra phương pháp pháp phân tích và kiểm chứng cho một số giao thức (AB) n và [A*B] n .Nhưng trong khóa luận đó, chưa giải quyết được một số vấn đề như: - Mới chỉ dừng ở kiểm tra một số giao thức đơn giản. - Chỉ có thể kiểm tra cho các biểu đồ thường, hoặc biểu đồ theo Agent UML. Đối với, các giao thức được mô tả bằng UML 2 trở lên thì công cụ không thể thực hiện được. 3 - Việc tự động sinh Aspect chưa thực sự hoàn thiện. Aspect được sinh ra sau đó được lưu lại. Để sử dụng Aspect này thì phải đưa nó vào trong project cần thiết. - Aspect sinh ra có phạm vi trong toàn project. Tức là, bất kỳ lớp nào có một phương thức được mô tả như ở trong pointcut thì đều chịu tác dụng của Aspect. Điều này, nhiều khi gây nên lỗi. - Tài liệu XMI đầu vào của công cụ đã được thu gọn chỉ chứa các thành phần cần thiết. Phát triển từ khóa luận trên, tôi đã giải quyết được các vấn đề trên. Aspect được sinh ra trực tiếp gắn vào project cùng tên với file xmi. Giao thức đượ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 như đoạn gộp alt, loop. Aspect sinh ra có thể đảm bảo sự kiểm tra cho một phương thức được người dùng đánh dấu. Do sự khác nhau giữa cách mô tả UML 2.0 và trước đây, nên cấu trúc để lưu giữ cũng như Aspect sinh ra cũng khác nhiều so với ở công cụ PVG. Phát triển từ công cụ PVG nhưng tôi đã thay đổi nhiều để phù hợp với đặc tả giao thức bằng UML2.0. Bài toán bắt đầu với đầu vào là một biểu đổ tuần tự UML 2.0, các biểu đồ này được tạo ra bằng công cụ Altova Umodel 2010 hoặc Altova Umodel 2010 plugin, các biểu đồ này sẽ được xuất ra dưới dạng XMI. Sau đó, lấy các thông tin cần thiết về các đối tượng của biểu đồ và chuyển thành một máy trạng thái (FSM). Lập trình viên sẽ phát triển các mô-đun nghiệp vụ chính từ biểu đồ này và các biểu đồ còn lại. Song song với nó là quá 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ài báo này tôi xây dựng công cụ tự động sinh Aspect với đầu vào là tài liệu XMI mô tả biểu đồ tuần tự UML 2.0. Phương pháp xây dựng công cụ Plugin Protocol Verification Generator(PPVG của tôi gồm hai bước.  Bước 1 : 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 2 : Xây dựng bộ tự động sinh Aspect từ FSM : Sử dụng FSM vừa được sinh ra từ trên, duyệt từng trạng thái trong FSM, áp dụng phương pháp cài đặt Aspect trong bài báo nói trên, tôi tạo ra các join-point, pointcut và advice từ các trạng thái đó để hình thành nên mô-đun Aspect. [...]... nhất UML 2.0 với nhiều thay đổi trong việc mô tả các thành phần trong biểu đồ Với sự mở rộng trong mô tả các thành phần như đoạn gộp alt,opt, loop … mang lại nhiều tiện lợi cho người sử dụng Dưới đây, tôi sẽ mô tả về một số thành phần trong biểu đồ trình tự UML 2.0 2.3.2 Biểu đồ trình tự UML Một biểu đồ trình tự chỉ ra một cộng tác động giữa một loạt các đối tượng Khía cạnh quan trọng của biểu đồ này... liền với mũi tên (biểu thị thông điệp) nối liền giữa những đường thẳng đứng thể hiện đối tượng Trục thời gian cùng những lời nhận xét khác thường sẽ được đưa vào phần lề của biểu đồ Dưới đây là một ví dụ về biểu đồ tuần tự 11 Hình 2.3.2a: Quá trình đăng nhập ATM Tiếp theo đây, tôi sẽ giới thiệu về các dạng của biểu đồ tuần tự trong UML 2.0 Uml 2.0 đã có sự thay đổi đáng kể vể cách thức biểu diễn biểu đồ. .. Bước 1 : Tạo ra cấu trúc dữ liệu lưu các thông tin về biểu đồ trình tự - Bước 2 : Cài đặt thuật toán sinh ra máy trạng thái (FSM) Bước 3 : Cài đặt thuật toán sinh tự động Aspect Hoàn tất quá trình cài đặt trên, tôi thu được công cụ tự động sinh mã kiểm chứng Về công cụ của tôi, sau khi cài đặt như trên, tôi cài đặt dưới dạng một plugin dành cho eclipse Với tên “org.eclipse.adj.creattoxmi”, để hoạt động... Hình 2.3.2.2 biểu đồ dùng opt 2.3.2.3 Loop Đôi khi bạn sẽ cần một trình tự lặp đi lặp lại Trong UML 2.0 mô hình hóa một biểu đồ lặp đi lặp lại đã được cải tiến cùng với điều kiện của mảng kết hợp vòng lặp 14 Hình 2.3.2.3 biểu đồ sử dụng loop 2.3.2.4 Break Các khung break được dùng thông dụng để mô hình hóa ngoại trừ sự kiểm soát Hình 2.3.2.4 Biểu đồ sử dụng break 15 Với ví dụ trên, khi kiểm tra điều... annotations, AspectJ, annotaions trong AspectJ, UML, biểu đồ trình tự UML 2 Đây là các nền tảng trong khóa luận của tôi Để xây dụng công cụ sinh Aspect tự động Đồng thời tôi cũng trình bày thuật toán xây dựng máy trạng thái cơ bản 19 Chương 3 Xây dựng cộng cụ tự động sinh Aspect từ máy trạng thái 3.1 Biểu đồ trình tự và các đoạn gộp Trong một biểu đồ trình tự UML2 .0, các đoạn gộp là một trong các thành phần... theo đặc tả của biểu đồ trình tự tương ứng 23 Chương 4 Thực nghiệm Để minh hoạ cho phương pháp xây dựng công cụ sinh Aspect được giới thiệu trong chương trước, chương này sẽ mô tả chi tiết các bước cài đặt mà tôi đã thực hiện và kết quả kiểm chứng trên một số giao thức thực tế 4.1 Xây dựng công cụ Sau khi đặc tả giao thức kiểm chứng bằng UML, công cụ altova Umodel2 hỗ trợ xuất biểu đồ ra dạng XMI và... biểu đồ tuần tự Đầu tiên là chú thích trong biểu đồ, đặt tên thành thành phần chú thích trong một khung, thành phần khung được sử dụng như một nền tảng cho UML 2.0[ 1] Một thành phần khung cung cấp một ranh giới cho biểu đồ, xác định vị trí và mối quan hệ của các thành phần trong biểu đồ Dưới đây, là mô tả cho khung Hình 2.3.2b mô tả một khung cơ bản Với biểu đồ tuần tự, có tất cả 12 loại đoạn gộp được... hiện nữa 2.4 Xây dựng máy trạng thái từ biểu đồ trình tự 2.4.1 Cấu trúc dữ liệu mô tả biểu đồ trình tự Một biểu đồ trình tự gồm nhiều thành phần, trong đó có các thành phần quan trọng như đường sống, các thông điệp được trao đổi giữa các đường sống, các đoạn gộp,… khi miêu tả biểu đồ trình tự ta mô tả như sau:  Tên lớp trong mã nguồn chương trình tương ứng với tên một đường sống  Các thông điệp trao... cũng chỉ ra trình tự tương tác giữa các đối tượng, điều sẽ xảy ra tại một thời điểm cụ thể nào đó trong trình tự thực thi của hệ thống Các biểu đồ trình tự chứa một loạt các đối tượng được biểu diễn bằng các đường thẳng đứng Trục thời gian có hướng từ trên xuống dưới trong biểu đồ, và biểu đồ chỉ ra sự trao đổi thông điệp giữa các đối tượng khi thời gian trôi qua Các thông điệp được biểu diễn bằng các...1.4 Cấu trúc khóa luận Các phần còn lại của khóa luận được cấu trúc như sau: Chương 2 giới thiệu về annotations, AspectJ, AOP , UML 2, xây dựng máy trạng thái Trong chương này tôi trình bày các kiến thức cơ bản sử dụng trong khóa luận của tôi và cách xây dựng máy trạng thái cơ bản Chương 3 xây dựng công cụ sinh Aspect từ máy trạng thái mô tả biểu đồ trình tự UML Chương 4 cài đặt công cụ tự động sinh . AOP 7 2. 2 .2. AspectJ 9 2. 3. UML 2. 0 10 2. 3.1. khai niệm về 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 dữ liệu mô tả biểu đồ trình. Aspect kiểm chứng đặc tả giao thức bằng biểu đồ tuần tự 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Ử. 1.1. Đặt vấn đề 1 1 .2. Nội dung bài toán 2 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 2 1.4 . Cấu trúc khóa luận 4 Chương 2. Annotaions , Aspects và UML 2. 0

Ngày đăng: 28/06/2014, 00:20

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan