1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiểm chứng chương trình Java tuân thủ đặc tả UML bằng lập trình hướng khía cạnh

36 543 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 12,71 MB

Nội dung

Tôn% quan các vân đẽ nghiên cửu Trong dề tài này chúng tôi dã nghiên cứu về một sổ vấn dề sau: - Ngữ nghĩa chuẩn cùa các biếu đồ tuần tự trong UML - Phương pháp phân tích và dọc định dạn

Trang 1

ĐẠI HỌC Q D Ỏ C GIA HÀ NỘI

C h ủ nhi ệm để tài: T r u o n g Anh Hoàng

ĐA! HỌC Q UOC GIA HA NỌI

TRUNG ÍÃM.IHÒNG TIN THƯ VIỀN

Q ồ Q 6 0 0 0 0 0 J ~ d

Hà N ội - 2009

1

Trang 2

MỤC LỤC

I Danh sách những người tham gia thực hiện đề t à i 3

II SU M M A RY 4

lil Báo cáo tổng k ế t 5

1 Đặt vấn đ ề 5

2 Tổng quan các vấn đề nghiên c ử u 5

3 Mục tiêu và nội dung nghiên c ứ u 5

4 Dịa điểm, thời gian và phương pháp nghiên c ứ u 6

5 Kết quá nghiên c ứ u 6

Phần 1 Tổng quan về phương p h á p 6

Phần 2 Trích thông tin của biểu đồ tuần tự trong U M L 7

Phần 3 Xây dựng máy trạng thái hữu hạn đơn định 8

Phần 4 Kiểm tra lỗi dựa trên A O P 9

Phần 5 Thử nghiệm và đánh g i á 9

Phàn 6 Kết l u ậ n 9

6 Ke t q u à d à o t ạ o 10

7 Kết quả ứng d ụ n g 10

8 Thào luận, kết luận và kiến n g h ị 10

9 Tài liệu tham k h ả o 10

[V Phụ lụ c ; : l l V Tóm tắt các kết quả nghiên cứu chỉnh của đề t à i 12

2

Trang 3

I Danh sách n h ũ n g nguôi t h a m gia thực hiện đề tài

• Chu nhiệm: Trương Anh Hoàng

o 1 lọc vị: Tiến SV, Chuyên ngành đào tạo: Công nghệ thông tin.

o Dơn vị: Khoa CNTT, trường ĐHCN, DI IQG Hà nội.

o l.iên hệ: email: hoangtatá'V11 u c d u vn tcl: 0915539368.

• N hững người tham gia

ngành

Co quan công tác

3

Trang 4

II S U M M A R Y

Project Title: Specifying and Cheeking Interface Interaction Protocols Using Aspect- oriented Programming

C od e n u m b e r: ỌC.09.06

C o o rd in a to r: Trương Anh Hoàng

Implementing Institution: University o f Engineering and Technology - VNU, Hanoi

Cooperating Institution: University o f Engineering, and Technology - VNIJ Hanoi

3 Results obtained:

We published one paper in the International Conference on Advanced Computing and

(http://www.cse.hcmut.edu.vn/A C O M l’2 0 10) In the paper, we present an approach to check UML sequence diagrams using aspect-oriented programming.

We arc submitting another paper on using JPF to explore a software module lo dctccl any inconsistencies between the module and its ỤML sequence diagrams as specification.

4

Trang 5

III B á o Clio t ổ n g kết

/ Đặt vân đẻ

Bài toán dặc tà và kiểm chứng sự nhất quán giữa cài dặt và đặc tà là hài toán chính trong trong kiềm chứng phần mèm Tuy nhiên các phương pháp dặc là cũ và kiểm chứng thường khó khăn dể úp dụng do chủng gắn vào chương trình phần niềm do người lập trình thường phủi học và viết lại các dặc là dưới dạng hình thức hơn Từ việc UML dang được sử dụng rộn tỉ rãi trong mô tà ihicl kế phần mềm, chủng tôi sử dụng chúng dể kiểm chứng sự đúng đan cua một module phần mèm cài dặt các đặc tủ này Cách tiếp cận này dõi hỏi ít công sức phái làm thêm trong dự án vì 11Ó không đòi hỏi đặc tả lại các dặc tả không hình thức thường đã có dưới dạng các biểu dồ UML Đề xuất của chúng tôi cũng đang dược phát triển liếp sử dụng Java Pathi’inder (JPI*') cic tự xác dinh các lỗi (nếu có và trong khả năng của JPF) mà không cần bộ kiếm Ihĩr hay kiềm thử viên thực thi chương trình mới tìm ra lồi.

2 Tôn% quan các vân đẽ nghiên cửu

Trong dề tài này chúng tôi dã nghiên cứu về một sổ vấn dề sau:

- Ngữ nghĩa chuẩn cùa các biếu đồ tuần tự trong UML

- Phương pháp phân tích và dọc định dạng XMI của các biểu dồ UM1- này để trích

ra các thỏnụ tin ngữ nghĩa và biến chúng thành cấu trúc dử liệu thuận tiện cho việc kiềm tra sự tuân thù.

- Nghiên cứu JPF và cài đặt chức năng kiểm chứng tự dộng các dãy lời gụi xem chúng có tuân thù đặc tả hay không.

- Nghiên cứu khả năng kiểm tra các đường còn lại trong chương trình mà JPF chưa

t h ăm d ò (lược.

3 Mục tiêu và nội (lung nglìiên cửu

ĐÒ tài hướni> tới mục tiều áp dụng dược vào thực tể, nôn chúng tôi dà chọn hướng thuận'lợi cho người phái irién nhất, không đòi hỏi thêm nhiều công sức do chúng lôi hướng den sứ dụng những gì dã có trong các dự án phát triển phần mềm: dặc tà, cài đặt, và bộ kiếm thử Nội dung nghiên cứu tlico các mục đã chỉ ra trong phần trên:

- Ngữ nghĩa chuẩn của các biểu đồ tuần lự trong ƯML Chúng tôi tập trung vào thông tin trực quan, hình học của các phần từ trong biểu đồ tie phân tích, lấy thông lin ngữ nghĩa của chúng.

- Phương pháp phân tích và dọc định dạng XMI của các biều dồ ƯML này để trích

IU c á c th ô n g tin n g ữ n g h ĩa và b iến c h ú n g thành c á c m á y trạng thái x á c địn h để

kiểm chứng dược thuận tiện trong birớc tiếp theo.

- Nghicn cứu lập trình hướng khía cạnh và cài dặt chức năng kiểm chứng tự dộng các dãy lời gọi xem chúng có tuân thù đặc tà hay không Chúng tôi theo dõi

5

Trang 6

chương trình khi chúng được thực hiện và phát hiện các lỗi khi chủng không tuân thu máy trạne thái dã xây dựng ờ bước trên.

-Ị Dịa diêm, thời gian và p h ư ơ n g pháp nghiên củv

Nghiên cứu dược thực hiện tại bộ môn Công nghệ Phần mèm, trường Đ11CN, ĐHQGHN, sử dụng các trang bị hiện cỏ và phần mềm miễn phí trên Internet: Sun lỉclipse Các tài liệu tham kháo phần lớn dược tìm trên Internet.

5 Kèl quà nglĩién cứu

Kcl quà nghiên cứu chính của dề tài là

1 Thư viện dọc file XM1 chứa các biểu đồ tuần tự theo chuẩn UML 2.0.

2 Chương trinh phát hiện các lỗi không tuân thù đặc tà biểu dồ tuần tự ƯML 2.0 cùa

c l u r ơ ng trình.

3 Cài dặt plurime pháp kiếm tra động dựa trên A 0 1 \

Kct quả dã dược thổ hiện trong 01 hài báo với tiêu đề "Checking implementation o f UML 2 sequence diagram", do các tác già: Trương Anh Iloàng và Nguyễn Dinh Phúc và Lưu Trung Tuyển viết và dã dược dăng tại hội nghị A C OM P 2010 (International Conference on Advanced Computing and Applications) tồ chức tại thành phố Hồ Chi Minh Việt Nam từ ngày 3-5 tháng 03 năm 2010 Bán sao cùa bài báo cỏ trong Phụ lục.

Nội dung nghiên cửu cụ thể cùa đề tài được báo cáo chi tiết trong các phần sau đây Phần I kháo sál các nghiên cứu liên quan Phần 2 mô tả cách phân tích và trích thông tin của biểu dồ tuần lự trong IJ M L Phần 3 mô tả cách xây dựng máy trạng Ihái từ đặc tà UML để sinh mã kiểm chứng Phần 4 mô là việc sử dụng A OP clể kiểm tra tính đúng dan cùa chương trình khi

nó dược Ihựe thi Phần 5 nêu một số thực nghiệm và thảo luận đánh giá Phần 6 nêu một số két luận chính.

Phần I Tổnj» quan về phương pháp

I lộ thốim dược mô tá chi tiết trong hình sau Đầu vào là các tệp XMI mô tá các biểu dồ tuần

tự Chúng tu sẽ phân tích tệp này và biểu diễn chúng dưới dạng một máy trạng thái hữu hạn dơn tlịnh trong Java T ừ dó chúng ta cỏ ihể sinh mà kiếm chứng trên ngôn ngữ AspectJ và dùng mà này theo dõi chương trình cài đặt biểu đồ tuần tự dó và phát hiện lồi nếu chướng trình này không luân thủ đặc tả chi ra trong biểu dồ tuần tự Hệ thống sỗ cần bộ kiểm thừ tốt,

có độ bao phú các dường di trong chương trình cao, dổ phát hiện dược các lồi có thể có trong

6

Trang 7

Compile

Application

w / runtim e checking

Phần 2 Trích thông tin của biểu đồ tuần tự trong UML

Trong tệp XMI mà ta xử lý có hai phần tử chính là <Diagrams> và <uml:Package> chứa các thông tin về các thành phần trong biểu đồ tuần tự.

Truy xuất các đườngg đời (lifeline)

Một dường dời cỏ thẻ là <lifeline> trong đó.chứa hai thuộc tính chúng la cần quan tâm là id

và name, '['rong name ta chi quan tâm tới tên lứp (nhớ lại quy tắc tên một lifeline là objeclNamc:ClassName ) tức là sau dấu hai chắm còn bò di tên đối tượng Vi trong một biểu

dồ có thể có nhiều lifeline có cùng tên lớp nhưng khác nhau tên đối Urợng do vậy, mỗi khi ta Iruy xuất thêm một lifeline mới ta lại phải kiểm tra xem trước dó dã có lifeline nào cùng lớp với I1Ó hay chưa nếu có rồi thi tên dối tưựng sỗ dược đặt theo quy tắc sau: object 1, object2, v.v Sau khi lưu hết các phần tử này, kết quà ta sẽ có dược một vector các đường đời vẽ trên

s a dồ.

Truy xuất các thông điệp (messagej

Một thông điệp có thè là <message> trong dó ta quan tâm lới thuộc tính id, name, sendEvent, recciveEvent và messageSort Tên của Ihuộc tính ta sẽ chi lấy lại tên của method còn bỏ di phần tham số Từ hai thuộc tính scndEvent và receiveEvent, thông qua Element <fragment> inà có ihuộc tính xmi:type= uuml:MessageOccurrenccSpecification ta sê tỉm ra lifeline nguồn và đích cùa thông diệp đấy Từ thuộc tính messageSort ta sẽ biết dược thông điệp đấy thuộc loại nào trong bày loại thông diệp dã nêu trcn.

Kct quà ta sẽ thu được một vector các thôiig diệp Tuy nhiên có một vấn dề là Ihứ tự các thông điệp sẽ là thông điệp nào dược vẽ trước sẽ có thứ tụ trước chứ không theo thứ tự thông điệp bên trên sè có thứ tự trước Do vậy ta phủi dựa vào tọa độ của các thông diệp đẻ sáp xếp lại danh sách các thông điệp theo dúng trình tự của chủng trên biểu đồ Thù tục thực hiện là

ta phái tìm trong Element có thó <guiDiagramLink> id cùa thông diệp sau đó tính tọa dộ rồi

7

Trang 8

sắp xếp lại t heo t hử t ự các t ọa độ C uối c ù n g ta SC c ó một v e c to r các t h ô n g d i ệ p llieo d ủ n g thú lự mong muốn.

Truy xuất cóc đoạn gộp (com bined fragm ent)

Các đoạn gộp được truy xual như sau Giả sừ đoạn gộp cỏ Interaction Operator là loop thì trong tệp XMI sẽ nam trong Element có thè <fragment> mà có thuộc tinh

\m i:typ c= ‘'uml:CombinedFragmcnt'’ và thuộc tính interactionOperator= “ loop" Từ Element này ta sẽ lấy ra thuộc tinh id và tìm trong phần diagrams element <guiDiagramGuiLink> nào

có thuộc tính g u iL in k íỉle m e n t trùng với id cùa loop Qua đó loop sè có các tọa cỉộ về vị trí, chiều cao, chiều rộng Rồi ta sẽ tìm xem các thông diệp nào có tọa độ nam trong loop thì sẽ Ill'Ll lại dánh dấu thông điệp dầu liên và cuối cùng hên trong loop Ta cần lưu thêm thông diệp ngay sau loop mà không phải là một thông diệp trả lời vi cần thiết cho việc xây dựng máy trạng thái sau này.

Những (loạn gộp khác như Option và Break ta cũng làm tương tự như với loop chi khác là ở thuộc tính interactionOperator bây giờ sẽ là "opt" hay “ break" Dổi với những Combined Fragment có nhiều Interaction Operand như Alternative thì bước đầu tiên ta cũng làm tương

tự nhu với bên trên với thuộc tính interactionOper.'Uor=“a lt'\ Sau dó khi lấy các tọa độ về kích líurớc thì ta phải lấy thêm tọa dộ cùa các dường thẳng phân cách giữa các Interaction Operand Từ dấy ta sẽ xác định các thông diệp bôn trong đoạn gộp thuộc về Operand nào, thông điệp nào là mở đầu và thông diệp nào là kết thúc Operand đó Ngoài ra ta phải xác dịnh thêm thông điộp đầu liên không phải thông diệp trà lời sau đoạn gộp này.

Phần 3 Xây dựng máy trạng thái hữu hạn đon định

Từ việc lấy các thông tin trong file XMI ờ phần trên ta có thể xây dựng máy trạng thái hữu

h ạ n t rong Java t h eo c á c b ư ớ c sau Ta gọi t ập h ợ p c á c t rạ ng thái (State) là s = {s0, S|, s2,

s„}, tập các thồng điệp {không tính thông điệp trù lời) là M = {nio, nil, ni2, n ij mn} Đâu

tiên ta l ạo ra t rạ ng thái S(), dặt n ó là t r ạ n g thái khởi dầu Với mỗi t h ô n g diệp t h ứ niị, ta t ạo ra Slate s, I I và tạo ra Transition (Sj, irtj, Sj+|) nối từ State thứ i tới State thứ i + 1 có Event tương ứng với thông diệp thứ i riếp đó la lưu tên các State Sj và Sj + 1 vào trong thông diệp m, như là trạng thái nguồn và đích cùa thông diệp thứ i dê sau này làm việc với các Combined Fragment ncu có Cuỏi cùng ta dặt trạng thái cuôi cùng tạo ra là trạng thái kct thúc Ncu không có các Combined Fragment thì coi như công \ iệc dà hoàn thành.

Nếu có đoạn gộp loop, alt, hoặc opt, ta biến I1Ó thành các đoạn tuần tự bang cách thêm các cạnh lằn lượt như hình dưới dây Khi các đoạn gộp lồng nhau, ta sẽ tháo các cấu trúc này từ trong ra ngoài Cuôi cùng máy trạng thái nhận dược có thê không đơn định Va có thỏ dê dàng chuyển chúng về dạng đ an dịnh nhờ ihuật loán trong [12].

r ±

I loop

8

Trang 9

Phần 4 Kiềm tra lỗi dựa trên AOP

Phân kiêm chứng chúng tôi vân dựa trên lặp trinh hướng khia cạnh như trong dà trình bày

i r o n s ị 1 4 Ị V t ư ơ n g c h í n h c ủa p h ư ơ n g p h á p v ầ n là d ự a trên m ột m á y t r ạ n e thái h ữ u hạn (FSM) chúne ta tìm các phưưng thức cần theo dõi trong quá trình chạy, và dùnu một biến lúc dầu ứ trạng thái bat dầu cùa FSM và nó sẽ di chuvển Iron tỉ máv trạng thái mồi khi một phươna thức hạp lệ dược gọi Nếu phương ihức được gọi không hợp lệ phần mã kiểm chứng

sẽ ihông báo lỗi.

T r o n g bài háo Ị 14 ị c h ú n u tôi bắt d ầu từ m ột dặ c tả r i êng , b a n g n g ữ p há p d ơ n giàn Illume cũng chuyến về máy trạng thái hữu hạn trước khi thực hiện các cône, lioạn sinh mã aspect, ờ bài toán này dữ liệu dầu vào là các tài liệu phần mềm cụ thẻ thường tlã cỏ san nên người phát Iricn không can phái viết thêm các dặc tà.

Phương pháp này cũng cho phép kiểm tra các biểu đồ tuần tự có nhiều đối lượng của cùng một lớp trôn mộl hiểu dồ cũng như việc cỏ nhiều các luồng chương trình chạy song song Bàn chất của clìất lượng kiếm chứng tuy nhiên phụ thuộc vào chat lượng cua bộ dữ liệu kiếm thư có hao phú dược nhiều khá năng chạy cùa chương trình hay không Nhưng việc kiềm thừ với độ bao phú cao là yêu cầu vốn cần có của mọi chương trình phần mêm, nên phương pháp

c ùa c h ú n g tôi rất c ó ý ng h ĩa thực tể ờ đ i ề m n ó tận d ụ n g n h ữ n g gì c á c d ự án p h ầ n m ỏ m d ã c ó

và vần dang làm Công cụ chỉ tham gia và không gây ảnh lurởng gì dến cấu trúc qui trình phát triển vốn có nhưng lại có thẻ phát hiện các lỗi mà con người vẫn phải lùm hang tay vói chất lượng không cao và ton còng sức thủ còng.

Một trong những iru diếin cùa phương pháp dựa trên A OP là ta có the kiềm tra mà không cần dên mà nguôn cùa chương trình Diều này cũng có nghTa người phút triên không cẩn phài sửa dồi gì đốn chương trình dỏ áp dụng phương, pháp này.

Phần 5 Thử nghiệm và đánh giá

Chúng lôi (lã cài dặt và tliir nghiệm chương trình với một số ví dụ tliển hình Tính dúng dan của plurơng pháp này khá rõ ràng vì phương pháp dựa trên việc kiểm tra dộng - cách kiểm tra luôn mang lại kết quà chính xác và phán ánh đúng lỗi thật, không phái các cảnh háo như phần lớn các phương pháp tình thường gặp phải.

v ề ánh hưởng của mã aspect den tóc độ chương trình không phái lủ yếu lố quan trọng, vì ờ

dây chúng la kiềm tra trong giai đoạn kiểm thử dơn vị hoặc kiếm thứ tích hợp Ilưn nữa các doạn mã aspect dược sinh ra khá ngan và dơn giản nên ánh hường của cluing không phái là vấn đề lớn.

Xuất phát từ bài toán rất thực tế và dựa trên những đặc tà bán hình llúrc (UM1.) đang dược sử đụng rộng rãi trong các dự án phần mềm chúng tôi dã dề xuất và cài dặt plurưng pháp kiểm chửng dặc tả biểu dồ tuần lự UML 2.0 cùa chương trình phần mèm Cách tiếp cận tuy dồi hỏi phái thực thi chương trinh để tim ra lỗi nhưng vẫn mang tính thực liền cao và các lồi phát hiện dêu chính xác Các phần mềm đều phải trải qua công, doạn kiêm thử kỳ lưỡng nên việc kiêm thử tỉộim này không đòi hỏi thêm công sức của người phát triển huy dội kiểm tliir.

9

Trang 10

Chúng tôi cũng dang nghiên cứu việc áp dụng kiềm chứng mô hình, dựa trên Java Path Finder dể tự động kiểm chứng với chất lượng bao phủ cao.

6 Kết quả đào tạo

Học viên Vương Văn Trường đang thực hiện khóa luận tốt nghiệp theo hướng nghiên cửu này.

7 Kết quả ứng dụng

Công cụ có thể sử dụng đê tìm lỗi trong các phần mềm viết trên Java và có đặc tả bằng các biểu dồ tuần tự chi tiết cùa U M L

8 Thảo luận, kết luận và kiến nghị

Chúng tôi thấy đà hoàn thành các mục tiêu đã dặt ra và thay dề tài cỏ khả năne mở rộng cho các biểu đồ khác trong UML.

9 Tài liệu tham khảo

! Chris Allan, Pavel Avgustinov, Askc Simon Christensen, Laurie Hendren, Sascha Kuzins, OncTej Lhot'k, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibbie Adding trace matching with free variables to AspectJ In O O PSL A ’05: Proceedings o f the 20th annual ACM SIGPLAN conference on Objcct oriented programming, systems, languages, and applications, pages 345-364, N ew York, NY,

2 M.A Ameedeen and B Bordbar A model driven approach to represent sequence diagrams as free choice petri nets In Enterprise Distributed Object Computing Conference, 2008 EDOC ’08 12th International IEEE, pages 213-221, Sept 2008.

3 Aritra Bandyopadhyay and Sudipto Ghosh, l e s t input generation using uml sequence and slate machines models Software Testing, Verification, and Validation, 2008 international Conference on, 0:121-130, 2009.

4 Lilian I ill rely, Yoonsik Cheon, David Cok, Michael D Ernst, Joe Kiniry, Gary T Leavens, K Rustan M Leino, and Erik Poll An overview o f JML tools and applications Software Tools for Technology Transfer, 7 (3):212-232, June 2005,

5 Yoonsik Cheon and Ashaveena Perumandla Specifying and checking method call sequences in JML In Hamid R Arabnia and Hassan Reza, editors, Software Engineering Research and Practice, pages 511-516 CSREA Press, 2005 '

6 R D e L i n e a n d M Fa hn dr ic h T h e f u g u e p r o to c o l c he ck e r: Is y o u r s o f t w a r e b a ro q ue ,

7 Ying Jin Formal verification o f protocol properties o f sequential Java programs In Proceedings o f the 31st Annual International Computer Software and Applications Conference - Vol 1, pages 475-482, Washington, DC, USA, 2007 IEEE Computer Society.

10

Trang 11

8 G Kiczales Aspcct-oricntcd programming ACM C’omput Surv page 154, 2001 9 Gregor Kiczales, Lỉrik Hilsdale, Jim llugunin, Mik Kersten, Jeffrey Palm, and William

G Griswold An overview o f aspectj in ECOOP '01: Proceedings o f the 15th European Conference on Object-Oriented Programming, pas.es 327-353, London, UK,

2001 Springer-Verlag.

10 Xiaoshan Li, Zhiming Liu, and He J if eng A formal semantics o f UML sequence diagrams In Proc o f Australian Software Engineering Conference (A SW E C ’2004), 13-16 April 2004, Melbourne, Australia, 2004 IEEE Computer Society.

superstructure, v2.2 http://www.ome.org/docs/fonnal/09-02-02.pdf, February 2009.

12 M 0 Rabin and D Scott Finite automata and their decision problems IBM Journal o f Research and Development, April 1959.

13 Hui Shen, Aliya Virani, and Jianwei Niu Formalize uml 2 sequence diagrams, 2008.

14 Anh-Hoang Truong, Thanh-Binh Trinh, Dang Van Hung, Viet-Ha Nguyen, Nguyen '['hi Thu Trang, and Pham Dinh Hung Checking interface interaction protocols using aspect-oriented programming In SKFM ’08: Proceedings o f the 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods, pages 382­

386, Washington, DC, USA, 2008 IEEE Computer Society.

15 M uhamm ad Usman, Aainer Nadeem, and Tai hoon Kim Ujector: A tool for executable code generation from uml models Advanced Software Engineering and Its Applications, 0:165-170, 2008.

16 M uhammad Usman, Aamer Nadeem, Tai boon Kim, and Eun suk Cho A survey o f consistency checking techniques for uml models Advanced Software Engineering and Its Applications, 0 :5 7 -6 2 ,2 0 0 8 •

IV P h ụ lục

2 Bài báo dăng tại A COM P 2010 (bìa, mục lục, và nội durig bài báo).

3 Dĩa CD chửa công cụ phần mềm.

4 Bản sao Đe cương và Iĩợp đồng thực hiện đề tài nghiên cứu đã được phê duyệt.

Trang 12

V T ó m tắt các kết q u ả nghiên cứu chính của đề tài

- Kct quả về khoa học: Đề tài dã khai thác dặc tả UML và các phương pháp phát hiện lồi không làm đúng đặc lả của chương trình Kết quả nghiên cửu đã dược đăng trên 01 bài báo tại hội thào quốc tc “ International Conference on Advanced Computing and Applications” to chức tháng 3 năm 2010 tại TP Hồ Chí Minh.

- Ket quà phục vụ thực tế: Sản phẩm (chương trình phần mềm) có thể dùng để phát hiện lồi sai đặc tả biểu đồ tuần tự ƯML của chương trình Java.

- Kết quả đào tạo: 02 sinh viên nghiên cứu khoa học theo hướng của đề tài 01 sinh viên đang làm khóa luận theo hướng của đề tài.

- Kết quả nâng cao tiềm lực khoa học: Đe tài đã giúp nâng cao kiển thức của sinh viên

và nghiên cứu sinh tham gia trực tiếp vào đề tài và kiến thức chung cho các cán bộ tại

Bộ môn Công nghệ Phần mềm Kết quả đang dự định sẽ được sủ dụng thử trên thực tế tại công ty Mitani Sangyo Co Ltd., Nhật bản.

SA! HỌC ỠUỔC GIA HA NÓI tftUN© TẦM THÔNG TIN THƯ VIÊN

0 0 0 6 0 0 0 0 0 2 %

12

Trang 13

inK ^ncH ional C u n f e r u ' c t - •

A d v a n c e d C o m p u t i n g a n d A p p lic a tio

Ho Chi Minh City University ofTechnology

Ho Chi Minh Gtv, Vietnam March 3-5-2010

Trang 14

I t 1

lỉuynlì Bao Trong, Nguyen Cao Dal, and Nguyen Thanh S on 289

Extensible G rid Information Service in Ĩ N -G nd

1 Anh-Hoang Truong Dinh-Phuo Nguyen, and Chung-Tuycn L.UU 299

Checking implementation o f I 'ML 2 sequence diagram

Ĩ

I ran ( ’ông Tu and Thoai Nam 309

Scheduling Parameter Sweep Apphcatmns on Grid

Ngu> on Duy Anh Tuãn, Bui Trung I lieu, anil Tran Ngoc Thinh .'18

BB1‘ A Bloom-Htoomier Filter f o r Pattern A tatchtn% in ( ’lam Antivirus

Phitong Vo-Tan Khoi I’han-Dinh ami Anh-Vn lim h-D uc ?28 :

l,an;e scale Automatic Vehicic Location System using ZigRee fj

I

Wai Will Zin, Them Than Thwiti, Aye Myal Nyo, Hnin Wint Khaing, Thandnr Su

Ngc Hlwe, and Than Naing S o e .338

Secure Aiiillipcirlies Computation based on DSA digital signature and RSA

cryptosystem

Cam Nguyen Tan, Son Dang Truong, and Tan Cao Dang , 348

Earlv Abnormal Overload Detection And The Solution On Content

I

Nguyen Thanh Son and Angelika Ounse-Gcrstncr .358’

Cubic Spline Interpolation Based Parametric AioJcl O rder Reduction

Thanh Tran Nguyen, Thai Hoang 1,0, and Bac Honi L c 368!

keystroke Dynamics Extraction bv Independent Component Analysts and

ỉ3io-itiarnx for th e r Atifhenticnficn

Trang 15

In fo rm a tio n S e rv ic e 1 1 1 G rid S y ste m In P ro c e e d in g s o f (he 31*1 A n n u a l international

C o m p u te r S o ftw a re a n d A p p lic a tio n s C o n fc rc n c c - V o lu m e 01 (Ju ly 24 - 27, 2007)

C O M P S AC* IE E E C o m p u te r S o c ie ty W a s h in g to n , DC* 613 * 6 1 8

7 S u n H Z h a n g , Y H u c \ a n d H u ai J 2 0 0 4 A N e w A rc h ite c tu re fo r O G S A -b asc d Grid

ỉn in rm u h o n S e rv jc c In P ro c e e d in g s o f th e 2 004 IE E E in te rn a tio n a l C o n fe re n c e on Service*

C o m p u tin g (S c p ic m b c i 15 - 18, 20Ơ 4) IE E E C o m p u te r S o c ie ty W a s h in g to n , D C , 575-578

ii P c le i D iiitiu a n d D o n g L u F a sl C o m p o s itio n a l Q u e rie s in a R e la tio n a l G rid lnfonnation

S e n I C C J Jo u rn a l o f G rid C o m p u tin g Ỉ -2 (Ju n e 2 0 0 5 ), 1 3 1 -1 5 0

9 C lo lm s T o o lk itfM 4 http./W W W g lo b u s orgy

ỈỨ K ciii Toil 14 K a Iok D e v e lo p in g W e b S e rv ic e s w ilh A p a c h c A x is 1 4 1 1 6 7 0 3 2 9 Lulu Prwj (Ju n e 2 0 0 <>)

Trang 16

rtfS p o m iin g iu u d n ltA Tli*i J»1 u g m u i m el'S u s u a lly hiiv*i t o m n n u a lly 'íii.suI*:

t h a t t h e i r im p le m e n ta tio n follow s t h e s p e c ific a tio n e x p re s s e d in t h e d ia ­

g ra m s T h e m a n u a l ta s k is la b o r io u s a n d d iffic u lt fo r c o m p le x d ia g r a m s ,

especially with the inUoducGion o f cojnbmtid fragment* 1.0 ƯML 2.0 se­

q u e n c e d i a g r a m s r e c e n t l y T h t a t j f o r e c u i t o i i i d t i i i g t h i s c h « c k i i : g p io C B S N is

w ssential w * p ro p o s e a m e th o d t h a t firs t t r a n s f o r m s Ư M L 2 0 Siscjueni.'*

diagrams to deterministic finite state machines and then generate aspect

types of diagram s is sequence diagram s T h ey sp eciiy how n m odu le or som etim es

a function should be im plem ented to carry out th e tasks In particular, they usually describe th e sequence of m essages or m ethod calls am ong a group of objects W hen im plem enting the m odule, th e program m ers need to make surt- that tli«* r.oiie they ar<j w riting follows tilt* sem antics o f till' sttqui'iiw diagram s However sin ce th is is a m anual task , it is not easy for th e program m ers to make sure th a t their im plem entation is correct w ith resp ect to a sequence dia­ gram Errors may be introduced when the program m ers sim p ly forget a m essage ill the sequence diagram or send the m essage to a wrong ob ject o f th e sam e class When th e sequence diagram is com plex, the program m ers may have to create several functions or extra classes to im plem ent th e specification and th is m akes checking th e correct oilier ut m essages in th e sequence diagram harder Further­ more, a m odule may need to follow m ore than one sequence diagram (e.g from different view p oin ts), th e task IS th u s more challenging since It is difficult to com bine ail th e relevant v iew s and loliow them ail a t the sam e tim e Therefore ones used to a u tom ate this checking task.

1 http://w w w unil.org/

Trang 17

•oacii overview

i 'Á

uposc a m ethod tu chvck ttt liiutim e if tt m odule follow a specification

l>y som e sequence diagram s The approach is based on aspect oriented 4 ■

ling |8j, 111 particular Asp**ctJ [9|, aw l we assum e th at the software is

Java I In* umili idna is t.lirtt w>- an alyzf n giv»*n ƯML w-fjUHiicH diagram

to its sem antics and generate checking aspect, code T ile »euerated

Uluru tor only the m ethod calls or m essages specified ill the diagram

li the sequence o f m ethod calls file valid US specifier! in the sequence

Wt* lep o rt errors when th e sequence of m ethod calls dues not match

lice specified by th e diagram.

-ork advances our previous work on interaction protocol conformance

14i wlit'it* We check tile correct usage of interfaces auioug a uumber

Many works on checking protocol usage or m ethod call sequences

41 are also relevant to th is work However, our main contributions

[OIII Hi hsj u-rt .since* UML ill gt*ipral find sHqitfiic** (iingrtiin ill

alt? widely used as Softwure design docum ents Our approach works

general protocol as in ih e related work and detail ƯML sequence

Sequence diagram s can be viewer! a.s tt S[>ecmliz«< 1, refined version of

MlJ they HU- applied ill specific places while protocol should U- obeyed

c*.

som e ndvniitiigtf.s o f directly using UML diagram s to check the cor-

th f soltWiirt First, tlitsrtj is alm ost no extra Wolk required since Wf

WML specification and Its im plem entation Second, our approach also

solidatiiiR the UML docu m ents if th ey are not up-to late or not really

LliH ( I11T(-Iit hiipl«iufutHti«iit It <«11 rtl» UII.'OVHI tl, finws in lỈMiigu

when the sequence diagram s have conflicts ox inconsistencies Tills

b e c a u s e M l i m p l e m e n t a t i o n c a n b e v i e w e d a s a m e r g i n g o f a l l o f i t s

it of th is paper is organized as follows Section ‘2 presents the "eueral

o f our approach- Section 3 explains how we build a sta te machine

tL sequence diagram Section 4 discusses our m ethod to m onitor and

im plem entation of sequence liiagi suns auU som e experim ent results

rized in Section 5 R elated Works are com pared in Section 6 Section 7

Hid ou tlines our future directions.

project or a test su ite ill software development projects, we only need all the test cases to Gild problems in the im plem entation.

escrilte* I lie architecture of the system T he top left box is a set of

?nce dirtgi’ftms which ur« the specification of the Java classes ill the

Ix.x - the impi<*meiit.rtiion Wi- t,<> verity Hint Mu- impli'iut-lltrttir.u

sppoifioal H>u

architecture, our main work deals with analyzing the U M L sequence

lil t.lir-n Ui-nriat.ing As|>(‘< ( ) <:i>i1h Till- ivst is lifiegrtfail til Aspect,!

Innlij a version of soft w an • lh at includes rhecking C l i d e Lu d etect any

»i lilt* sp<?i ihculion Si net? It I S very coiỉiíTKTt nowadays t o have a ti*5t

Ũ

Sequence dia&r&jn*

huplcm-nn r " ~

Generate

Checking ttsgcci

Compile Application

« joutmie chcck.11 IS

Report

.FSguil J iSerview

Note th at our approach requires very little additional cost to the s velopment process because UML specification and its implementation

a test p roject or a te st su ite already exist ill m ost software developme:

We only require the programmer to specify the link between a sequen and its im plem entation T h at is the programmer need to provide wh implements wliicli specification It uo link is specified, then the spe< applied everywhere, ju st like general interaction protocols [14].

A major difference between general protocols and ƯML sequence that the protocols are respected everywhere, for exam ple a file should before any re a d /w iit* and closed in the end, w ilik the ƯML sequent are applied case by case, for exam ple in one m odule, say A, a fi!*i opened, then a nuniher ol reads only (no write operation), and the: allot her m odule, say B, the file should b e opened for w riting only, specify th a t m odule A and B im plem ent the corresponding spe.JiJii they still b oth obey th e general protocol

Using asjx-ct orifiit**'! programming «u<i Aspwt.J ill J>arti( u!«r »i proacli additional advantages First, we emi weave the asp ect cod time, com pile tim e, or runtime (load tim e), so our approach does nut source code ot the im plem entation T h at m eans the Java code ill tl bo\ iu Figure 1 call be replaced by a release/com piled application Fi Aspect.] allows us to get the exact location (file name and line nun statement under execu tion As a result, we can report th e exact fill line number ill tljrt.1 file when- the *»rrnr is iỉ<-tM:t.wỉ.

The next section explains the main contribution of this Wurk VVỈ1

lyze a UML 2.0 sequence diagram and then convert it to a finite sta After th at we follow a similar approach of Truong [14] to geneva aspect.

Sequence diagram s contain three basic types OÍ elem ents: lifelines,

changes, and com b in ed fragm ents T h e lifelin es are o b jects th a t CO

Trang 18

u ĩ \ .'111 t i:t- V.«.slv I h i - / l i t s s a i / e s K jH ’i ' i l y til* * t e m p o r a l I t n i f r u i ỉ i i H t ỉ i o d r t ỉ ỉ L s t l i d ỉ

(if f u.g imiiK-fs Itmst !■ 1ÍOK Sequence diagrams in ƯML 2.0 may coutaitt so

• ilie.) i-t' 1 'ibitirii fragm en ts, which are regions on th e diagram s and they specify

cue hehrtvii.ur of the: raeftriuges in th e regions A m ong eleven ty p e s of combined iiogu u -id s, I II: cumm-'Uiy list'd uues w«* a.lteru «tiw , op tion a.nd loop Fraguifuts

• bin ftfc; 1 <• li-.-stud hi th is paper w e focus on th e th ree ty p e s o f fragments Other

n.igiii I T Villi b*> haihlle-i in a similar wav and this is our future work.

St-qm.'ix r- diagram s iiavc staudarij sem a n tics described iu Ị ll) Accordiug to

t !:•- seniani i.:s, tin? sim p le exam p le ill Figure 2 sp ecifies that after queryBalanceO

>j>ei->ri.ni |) ' User ob ject is called , the getA ccou n tsO op eration o f an Account i.> OlHeti itii'i i Ilfli tilt* g e tB a la n c e O o p e r a tio n of th e s a m e Account object can be Ciillud i* mnnber '."I timiw After that the lo g ( ) op eration o f the Us«r

>lijr»i-t is < „ n « i

T h e hcigm<-u! sa y s th a t we lep f& t th e g o tB a la n c e C) for e v e r y account of

t f f u.-sei T i l" Ị>1 Ig ia iu m e rs w ill u u d erstan d that g e tB a la n co O sho uld be called n

tim es will-IV II IS cIk' ivtm ner! value o f tile p revious call gatAccountsC) However

■ II,s I » i * I : t.y C' n il I i t s e x d i a i i g e d m e s s a g e s tiy M A n o b j e c t o h a s t h e form

wi.i-1 < i> ; tie fUentKv tti the o l‘i*ci, whi«"h call h i o m itte d , and c is the

.i.i.s-, / i!i AI lifts the loi III O ' , sir/ , O rt w here O ’ O'* are source

ill I í.ii.-ii »t>(«.••:«Si, r e s p e c t i v e l y a n d f-iy is I I lf s i g n a t u r e OÍ t h e o p e r a t i o n of

.‘ 11 ;1U |'ieiiìtínLaUuli ó í D lỉ d enoted l>v Ỉ

s - I " , l i r t g u u ; : D > Mit.niiis /.••!.• .1 111**!*-* Irugiitf'Ut.s Eii< h il rigMi'-'llt, f’OD-

lain: AU op eration specificttUun such as loop, alt, opt and a list of

UR\s'.:agi:-s v.'tiii/li i a n li * e m p t y N o t e th a t H m e s s a g e is ill a f r a g m e n t, if t h e w hole

Ngày đăng: 19/03/2015, 10:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w