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

Luận văn kiểm chứng các thành phần java tương tranh

143 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Kiểm chứng các thành phần Java tương tranh
Tác giả Trịnh Thanh Bình
Trường học Trường đại học Cơng nghệ, Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ thuật phần mềm
Thể loại Luận văn tiến sĩ công nghệ thông tin
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 143
Dung lượng 5,56 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 2.5 Ngôn ngữ mô hình hóa UML (31)
  • 95.1 Biểu đồ tuần tự (0)
    • 2.5.2 Máy trạng thái giao thức . 22 (32)
  • 25.3 Biểu đồ thời gian (33)
  • 2.6 Lập trình hướng khía cạnh (35)
    • 2.6.1 Thực thí cất ngang (0)
    • 2.6.2 Diễm nối 3 9/63 Hướng cất 27 (0)
  • 2.64 Mã hành vị (38)
  • 26.5 Khía cạnh... arate sean BD (0)
  • 3.1 Giới thiệu . 31 3⁄2 Dae tả và kiểm chứng ràng buộc thứ tứ giữa các (41)
    • 3.2.1 Mô tả phương pháp (43)
    • 3.2.2 Vùng xungđột (44)
    • 3.2.3 Cung cấp và tiêu thụ (46)
  • 3.24 Vấn đề đọc-ghi (51)
    • 3.2.5 Kết quả chứng mình (52)
  • 3.3 Kết luận... Sự đồng thuận của hệ thống đa thành phần 46 "ơ"....%NÁUỆỆẶNNN HN. 46 4/2 Một số định nghĩa và bổ đè 4⁄3. Phương pháp đặc tả và Mộ thẳng đauthánh ĐHẨN: ¿ sua. c b0 v22 2 Ban so bead @ a8 (55)
    • 4.3.1 Đặc tả kiến trúc hệ thống (60)
    • 4.3.2 Giao thức tuần tự (61)
    • 4.3.3 Giao thức song song, (63)
    • 43.4.1 Mô tả hệ thống 54 (64)
      • 4.3.4.2 Dac tả hệ thống với Event-B Loe 55 43.43. Kết quả chứng minh (0)
  • B.1 Dae ta phép dịch bịt (0)
    • B.1.1 Ngữ cảnh của phép dịch bịt 116 (126)
  • B.12 Máy thực thi của phép dịch bit (0)
  • B.22 Máy thực thi của phép nhân xâu nhị phân với một bit „118 (0)
    • B.3.1 Ngữ cảnh của phép cộng xâu nhị phan „119 (129)
  • B.32 Máy thực thi của phép cộng hai xâu nhị phân (0)
  • B.42 Máy thực thì của hệ thống đa thành phần thực hiện phép 121 nhân hai xâu nhị phân (0)

Nội dung

Jin [58] dé xuất một phương pháp hình thức để kiểm chứng tĩnh sự tuân thủ giữa cài đất mã nguồn và đặc tả thứ tự thực hiện của các phương thức method call sequenee - WC8 trong các chươ

Ngôn ngữ mô hình hóa UML

Ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) là một sản phẩm của tổ chức OMG (Object Management Group) UML cung cấp một tập hợp các ký pháp đồ họa thống nhất, được sử dụng rộng rãi và hiệu quả trong việc đặc tả và thiết kế các hệ thống phần mềm theo phương pháp hướng đối tượng.

Mẫu lệnh hứa hệ thống bằng UML mang lại tính trực quan, giúp dễ dàng xác định các thành phần chính, cấu trúc tĩnh và các hành vi động của hệ thống.

UML 2.0 bao gồm mười ba biểu đồ để mô tả các khía cạnh khác nhau của hệ thống Trong chương này, chúng tôi sẽ giới thiệu một số biểu đồ liên quan được sử dụng trong các Chương 5 và 6 của luận án.

Biểu đồ tuần tự (Sequence Diagram - SD) là một loại biểu đồ phổ biến trong UML, được sử dụng để thể hiện các phần tử logic của hệ thống Biểu đồ này bao gồm hai phần chính: các trục đọc biểu diễn các đối tượng hoặc tiến trình, và các mũi tên nằm ngang thể hiện thứ tự trao đổi thông điệp giữa các đối tượng một cách tuần tự Hình 3.6 minh họa một biểu đồ tuần tự cho giao thức rút tiền của hệ thống.

ATM Một số quy ước khi biểu diễn bằng biểu đồ tuần tự như sau

1 Cúc thông điệp song song được mô tả trong khung Par,

3 Các biểu thức tiền và hậu điều kiện phải được biểu diễn trong cặp dầu ngoặc

Biểu đồ tuần tự

Máy trạng thái giao thức 22

Biểu đồ máy trạng thái giao tiếp (Protocol State Machine - PSM) là một dạng đặc biệt của biểu đồ SD được bổ sung vào UML 2.0 PSM được sử dụng để mô tả giao thức tương tác và thứ tự thực hiện của các phương thức giữa các đối tượng, chẳng hạn như giao thức truy cập cơ sở dữ liệu với các phương thức như open( ) và close( ).

Các phương thức như Query( ), fetch( ), cancel( ), create( ) và ki11( ) được thể hiện qua biểu đồ PSM trong Hình 2.7 Thứ tự thực hiện của các phương thức được minh họa bằng các cung trong biểu đồ Khi mô tả một giao thức tương tác bằng PSM, cần tuân thủ các nguyên tắc nhất định.

1 Các trạng thái có thể được biểu diễn bằng tên của các sự kiên, nhưng không thể biểu diễn các hành động vào, ra và các hành động bên trong hoặc sư thực thi của các hành động,

Chương 9 Kiến thức cơ sở: 23 everett eal que / emnAvee xi

HÌNH 2.7 ~ Máy trạng thái biểu diễn giao thức tương tác truy cập cơ sở dữ liệu

9 Các phép chuyển trạng thái chí thể hiện các phép toán, không biểu diễn các hành động hoặc sự kiện,

3 Các biển thức tiền và hậu điều kiên phải được biểu diễn trong cập dấu ngoặc

[I ví du [queryStatement null] query / [comArea set] (Hinh 2.7),

4 Các biểu tiền điều kiện phải được thỏa mãn trước khi đối tượng chuyển tiếp từ trạng thái này sang trạng thái khác Ví dụ trong Hình 2.7 khi tiền điều kiện queryStatementnu11 thỏa mãn và đối tượng ở trạng thái 0pened thì sẽ chuyển sang trạng thái queried

Biểu thức hậu điều kiện phải được thỏa mãn khi đối tượng kết thúc và chuyển trạng thái mới.

Biểu đồ thời gian

Biểu đồ thời gian (Timing Diagram - TD) là một loại biểu đồ mới được giới thiệu trong UML 9.0, nhằm mô hình hóa hành vi của các đối tượng cùng với các ràng buộc thời gian liên quan TD thường được áp dụng để đặc tả ràng buộc thời gian trong các hệ thống thời gian thực và hệ thống nhúng, nhưng cũng có thể được sử dụng để mô hình hóa các hệ thống nghiệp vụ khác.

Bid đỗ thời gian L diễn tả sự thay đổi trạng thái hoặc giá trị của các sự kiện theo thời gian, đồng thời thể hiện sự tương tác giữa các sự kiện này Có ba dạng biểu đồ thời gian: biểu đồ giá trị (value lifeline), biểu đồ trạng thái (state lifeline) và dạng kết hợp giữa biểu đồ giá trị và biểu đồ trạng thái.

Biểu đồ trạng thái thể hiện sự biến đổi của các sự kiện theo thời gian, trong đó trục x đại diện cho các đơn vị thời gian và trục y thể hiện danh sách các trạng thái.

Biểu đồ giá trị thể hiện sự biến động của các sự kiện theo thời gian, với trục x đại diện cho các đơn vị thời gian Giá trị của các sự kiện được hiển thị giữa hai đường thẳng song song nằm ngang Sự thay đổi của cặp đường thẳng này phản ánh sự thay đổi giá trị của các sự kiện.

Biểu đồ kết hợp giữa biểu đồ trạng thái và biểu đồ giá trị thể hiện các đơn vị thời gian trên trục x, cho phép truyền tải thông điệp giữa hai loại biểu đồ Mỗi phép chuyển trạng thái hoặc sự kiện đều có thể được định nghĩa với một ràng buộc thời gian và một khoảng thời gian xác định cho từng sự kiện.

5 state2 ee Ễ state Time Constraint)

HÌNH 9.8 — Dạng trạng thái của biểu đồ thời gian

Chương 9 Niến thức cơ sở td Value Liteline ; tPraienrenarang af

HINH 3.9 - Dạng giá trị của biểu đỗ thời gian td Timing Diagam Ệ pe = g le

HINH 2.10 ~ Biểu đồ thời gian dạng kết hợp.

Lập trình hướng khía cạnh

Diễm nối 3 9/63 Hướng cất 27

là định nghĩa hướng cất c lệnh)

(): pointcut_definition;

DANH SácH 3.4 - Cấu trúc cơ bản của hướng cất.

Mã hành vị

Mã hành vi (ađuiee) là đoạn mã xác định hành vi, được tích hợp vào mã nguồn tại điểm nối Mã hành vi được thực thi trước (before advice) và sau (after advice) khi có yêu cầu.

Mã hành vi có thể được sử dụng để thông báo trước khi đoạn mã tại điểm nối được thực thi, giúp lưu vết hoặc kiểm tra lỗi Trong AspeetJ, có ba loại mã hành vi được định nghĩa.

1 Mã hành vi trước là loại mã được thực thi trước các điểm nối,

3 Mã hành vì sau là loại mã được thực thi ngay sau các điểm nối,

Mã hành vi xung quanh là loại mã mạnh nhất, bao gồm cả mã hành vi trước và sau Nó có khả năng chỉnh sửa đoạn mã tại điểm nối, thay thế hoặc bỏ qua sự thực thi của điểm nối đó Để hoạt động hiệu quả, mã hành vi xung quanh cần khai báo giá trị trả về cùng kiểu với kiểu trả về của điểm nối Sự thực thi của điểm nối trong mã hành vi xung quanh được thể hiện thông qua preceedQ; nếu không gọi preceedQ, sự thực thi của điểm nối sẽ bị bỏ qua.

Danh sách 9.6 thể hiện mối liên hệ giữa mã hành vi trước và sau Điểm nối và mã hành vi kết hợp để hình thành quy tắc thực thi cắt ngang động, trong đó hướng cất xác định các điểm cắt cần thiết, còn mã hành vi cung cấp các hành động sẽ diễn ra tại những điểm đó.

Chương 9 Kiến thức cơ sở 29

Trong AspectJ, khía cạnh (aspect) đóng vai trò trung tâm tương tự như lớp trong Java Nó bao gồm sự kết hợp của hướng cắt, mã hành vi, điểm nối, cùng với các dữ liệu và phương thức khác Một khía cạnh thông thường có những đặc điểm đặc trưng riêng.

Các định danh phạm vi truy cập như public, private, và protected có thể được áp dụng cho các khía cạnh Bên cạnh đó, còn có định danh "privileged", cho phép khía cạnh truy cập đến các thành viên riêng của các lớp mà chúng cắt ngang.

9 Có thể khai báo khía cạnh trừu tượng bằng từ khóa abstract,

3 Khía cạnh không thể được thể hiện hóa trực tiếp,

Các khía cạnh có khả năng kế thừa từ các lớp và các khía cạnh trừu tượng khác, đồng thời có thể thực thi các giao diện, nhưng không thể kế thừa từ các khía cạnh eu thể.

5, Khía cạnh có thể nằm trong các lớp và các giao diện

Cầu trúc cơ bản của khía cạnh như trong Danh sách 3.5 [61]

(privilege] [static] aspect

DANH SÁCH 3.5 ~ Cấu trúc cơ bản của một khía cạnh

In d6, the access_type defines the scope of access (public or private), and the privilege may or may not be present; if it exists, it allows access to specific elements of the class being intersected The aspect_name refers to the name of the aspect, while instantiation may also be optional, determining the instantiation type of the aspect (singleton, perthis, pertarget, percflow, perflowbelow) The public aspect ProtocolCheck includes a static integer for state management, with the initial state set to ST_START It defines a pointcut for the initialization of an Applet and logs the join point if the Applet's state is not ST_START before the initialization occurs.

} after(Applet o):pc-init(o) { o.state = §T init;

DANH SÁCH 2.6 — Khía cạnh với mã hành vi trước và sau để kiểm tra trang thái khởi tạo của phương thức init()

Trong chương này, chúng tôi trình bày tổng quan về kiến thức nền cho các đóng góp của luận án, bao gồm các phương pháp kiểm chứng hình thức và kiểm chứng tại thời điểm thực thi Các kết quả được trình bày theo hai hướng tiếp cận này Chúng tôi giới thiệu ngôn ngữ đặc tả hình thức Event-B, được sử dụng để đặc tả và kiểm chứng các bài toán trong các chương 3 và 4 Ngoài ra, chúng tôi cũng đề cập đến một số biểu đồ của ƯML và phương pháp lập trình hướng khía cạnh AOP, được áp dụng để kiểm chứng sự tuân thủ của chương trình so với đặc tả của nó, với kết quả được trình bày trong các chương 5 và 6 Cuối cùng, chúng tôi thảo luận về một số vấn đề trong các chương trình Java tương tranh và giới thiệu bộ công cụ JPF để kiểm chứng mã Java.

Ràng buộc thứ tự giữa các tiến trình tương tranh

Trong một hệ thống tương tranh, các tiến trình cần được đồng bộ hóa để hoạt động hiệu quả Sự đồng bộ hóa này được chia thành hai loại: cộng tác và cạnh tranh Một ví dụ điển hình về sự cộng tác giữa các tiến trình là bài toán cung cấp-tiêu thụ, trong đó tiến trình producer cung cấp dữ liệu và tiến trình consumer tiêu thụ dữ liệu đó.

Cấp phát tài nguyên cho các tiến trình phải giải quyết vấn đề xung đột khi nhiều

Khi sử dụng tài nguyên chia sẻ như dữ liệu, tệp, và máy móc, tính nhất quán của dữ liệu có thể bị phá vỡ nếu hai tiến trình đọc-ghi cập nhật cùng một tệp tại cùng một thời điểm Chương trình Java tương tranh được trình bày trong danh sách 3.1 giải quyết vấn đề tiêu thụ, trong đó các tiến trình không cộng tác với nhau, dẫn đến nguy cơ phát sinh lỗi tương tranh dữ liệu Do đó, cần thiết phải đặt ra các ràng buộc về thứ tự thực hiện để đảm bảo tính nhất quán.

[33, 67] (giao thức tương tác) giữa các tiến trình nhằm bảo đảm tính nhất quần của dữ liệu chia sẻ và dữ liệu đầu vào-đầu ra

31 class Producer implements Runnable { public void run() { while (true) {

} class Consumer implements Runnable { public void run() { while (true) {

DANH SÁCH 3.1 - Chương trình Java cho vấn đề cung cấp tiêu thụ

Để phát hiện lỗi ở mức thiết kế, luận án này đề xuất một phương pháp tiếp cận nhằm đặc tả và kiểm chứng giao thức tương tác giữa các tiến trình sử dụng phương pháp hình thức với Event-B Phương pháp này đã giải quyết các vấn đề như vùng xung đột, cung cấp-tiêu thụ và đọc-ghì dữ liệu Các đặc tả này sẽ được cài đặt để phát sinh mã cho các chương trình Java tương tranh hoặc tương đương Kết quả chính của phương pháp được trình bày trong [TT].

Chương 3, đồng buộc thứ tự giữa các tiến trình tương tranh, 3g

3.2 Đặc tả và kiểm chứng ràng buộc thứ tự giữa các tiến trình tương tranh

Chỳng tụi định nghĩa mất hệ thắng tương tranh với giaa thức tương tỏc ẽ như sau Định nghĩa 3.1 (Hệ thống tương tranh) 416£ bệ thống tương tronh (Concurrent

CS = (Po, Br,o,T), Trong đó : systcrI-OS)) là ruột bộ bi

~ PC : lập bữu hạn các liên trình,

~ Br : lập hữn hạn các hành ta a6 thể trong C8,

— &: Dr —t De hàm gần mỗi chức năng của CẾ mà tiễn trình thực biến hành sả đó,

TĂ giao thỳc tương tỏc đặc 1d thỳ tự thực hiển của cỏc tiến trỡnh, T % p | P,ứ |

T |p Voip © Pa, sán bi biện ”,^ tà || lẫn lượt biểu điễn các tiễn trình được thực hiến tuần tự tà sững song

Trong Fxeni~B, trạng thái của mô hình được xác định bởi một tập hợp các biến biển điển cha bất kỳ Đối tượng toán học này nằm trong lý thuyết tập hợp Ngoài các định nghĩa về biển, các bất biến được biểu diễn qua logic vị từ bậc một và lý thuyết tập hợp Sự kết hợp giữa các biển và bất biến tạo thành trạng thái, một trạng thái dũa rn6 hình là một tập trừu tượng.

Một sự kiện của Máy có thể được biểu diễn trừu tượng bằng một quan hệ nhị phân giữa các trạng thái Quan hệ này thể hiện sự kết nối giữa hai trạng thái trước và sau khi một sự kiện diễn ra Trong ký pháp của Event H, một sự kiện được chia thành hai phần: điều kiện và hành động Các hành động của một sự kiện được giả thiết là thực hiện đồng thời trên các biến khác nhau Nếu biến không được gán giá trị, nó sẽ không thay đổi.

Các điều kiện của sự kiện biểu diễn điều kiện cầu là cần thiết để kích hoạt một sự kiện Khi một sự kiện được kích hoạt, sự chuyển đổi trạng thái sẽ diễn ra Giả sử có hai sự kiện el và e2 được mô tả như sau: el = khi g1 thì al kết thúc, e2 = khi g2 thì a2 kết thúc.

Giới thiệu 31 3⁄2 Dae tả và kiểm chứng ràng buộc thứ tứ giữa các

Vấn đề đọc-ghi

Dae ta phép dịch bịt

Máy thực thi của phép nhân xâu nhị phân với một bit „118

Ngày đăng: 21/05/2025, 18:58

HÌNH ẢNH LIÊN QUAN

HÌNH  1.2  -  Cấu  trúc  luận  án. - Luận văn kiểm chứng các thành phần java tương tranh
1.2 - Cấu trúc luận án (Trang 18)
HÌNH  2,1  ~  Kiểm  chứng  chương  trình  Java  với  JPE. - Luận văn kiểm chứng các thành phần java tương tranh
2 1 ~ Kiểm chứng chương trình Java với JPE (Trang 25)
HÌNH  2.3  -  Cấu  trúc  tổng  quát  của  sự  kiện. - Luận văn kiểm chứng các thành phần java tương tranh
2.3 - Cấu trúc tổng quát của sự kiện (Trang 29)
HÌNH  2.6 -  Biểu  đồ  tuần  tự  biểu  diễn  giao  thức  rút  tiền  của  hệ  thống  ATM - Luận văn kiểm chứng các thành phần java tương tranh
2.6 Biểu đồ tuần tự biểu diễn giao thức rút tiền của hệ thống ATM (Trang 32)
HÌNH  2.7  ~  Máy  trạng  thái  biểu  diễn  giao  thức  tương  tác  truy  cập  cơ  sở  dữ  liệu - Luận văn kiểm chứng các thành phần java tương tranh
2.7 ~ Máy trạng thái biểu diễn giao thức tương tác truy cập cơ sở dữ liệu (Trang 33)
HÌNH  3.1  -  Kiến  trúc  tổng  quát  của  đặc  tả  tương  tranh  với  Event-B, - Luận văn kiểm chứng các thành phần java tương tranh
3.1 - Kiến trúc tổng quát của đặc tả tương tranh với Event-B, (Trang 45)
HÌNH  3.10  —  Đặc  tả  sự  kiện  produeer  trong  mô  hình  khởi  tạo  và  làm  mịn. - Luận văn kiểm chứng các thành phần java tương tranh
3.10 — Đặc tả sự kiện produeer trong mô hình khởi tạo và làm mịn (Trang 54)
HÌNH  4.1  -  Sự  kết  hợp  của  máy  trừu  tượng  và  ngữ  cảnh. - Luận văn kiểm chứng các thành phần java tương tranh
4.1 - Sự kết hợp của máy trừu tượng và ngữ cảnh (Trang 60)
HÌNH  4.2  -  Giao  thức  tuần  tự  được  biểu  diễn  bằng  ƯMIL. - Luận văn kiểm chứng các thành phần java tương tranh
4.2 - Giao thức tuần tự được biểu diễn bằng ƯMIL (Trang 62)
HÌNH  4.3  -  Giao  thức  song  song  được  biểu  diễn  bằng  ƯML. - Luận văn kiểm chứng các thành phần java tương tranh
4.3 - Giao thức song song được biểu diễn bằng ƯML (Trang 63)
HÌNH  4.8  ~  Kiểm  chứng  mã  nguồn  hệ  thống  cung  cắp-tiêu  thụ  với  JPE. - Luận văn kiểm chứng các thành phần java tương tranh
4.8 ~ Kiểm chứng mã nguồn hệ thống cung cắp-tiêu thụ với JPE (Trang 73)
HÌNH  5.2 -  Ví  dụ  các  chương  trình  được  cài  đặt  đúng  và  sai. - Luận văn kiểm chứng các thành phần java tương tranh
5.2 Ví dụ các chương trình được cài đặt đúng và sai (Trang 84)
HÌNH  C.2  -  Khởi  động  PVG  tit  NetBeans. - Luận văn kiểm chứng các thành phần java tương tranh
2 - Khởi động PVG tit NetBeans (Trang 137)
Hình  C.4  mô  tả  một  giao  thức  tương  tác  của  hàng  đợi  tương  tranh  và  mã  aspeet - Luận văn kiểm chứng các thành phần java tương tranh
nh C.4 mô tả một giao thức tương tác của hàng đợi tương tranh và mã aspeet (Trang 138)
HÌNH  C.6  ~  Đan  xen  mã  aspect  với  mã  Java  trong  Eclipse, - Luận văn kiểm chứng các thành phần java tương tranh
6 ~ Đan xen mã aspect với mã Java trong Eclipse, (Trang 141)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN