Cơ sở lý thuyết 1 Tổng quát về bi ể u đồ PSM

Một phần của tài liệu TÓM TẮT KHÓA LUẬN TỐT NGHIỆP CHUYÊN NGÀNH COOG NGHỆ PHẦN MỀM (Trang 79)

- Quản lý khách hàng

2. Cơ sở lý thuyết 1 Tổng quát về bi ể u đồ PSM

Chúng ta thường sử dụng ký pháp UML để tạo ra những biểu đồ trạng thái hành vi để hiển thị chuỗi những sự kiện của đối tượng. Những biểu đồ trạng thái như vậy có những cặp sự kiện/hành động, những hành động vào, hành động kết thúc,..Hầu hết các biểu đồ trạng thái, chúng ta đều sử dụng những tính năng này . Trên thực tế chúng là các máy hành vi. Tuy nhiên, đôi khi chúng ta chỉ muốn hiển thị một chuỗi các sự kiện cụ thể mà đối tượng đáp ứng và khi nó có thểđáp ứng mà không cần phải chỉ

ra hành vi của nó. Một chuỗi cụ thể như vậy

được gọi là môt giao thức sự kiện. Trong UML 2.0, chúng ta có thể hiển thị các giao thức sự

kiện bởi biểu đồ “Protocol State Machine”.

Thông thường, chúng ta sẽ sử dụng những biểu đồ trạng thái bình thường để hiển thị những chuỗi hành vi bên trong cho tất cả các đối tượng của một lớp. Tuy nhiên, đôi khi chúng ta muốn hiển thị một giao thức phức tạp (thiết lập những quy tắc điều khiển truyền thông) khi sử dụng một giao diện cho một lớp. Ví dụ, khi chúng ta

đang thiết kế các lớp mà truy cập một database cho ứng dụng của chúng ta, chúng ta cần sử

dụng những thao tác chung như: Open, Close và Query một Database. Nhưng những thao tác này phải được gọi theo đúng thứ tự. Chúng ta không thể truy vấn Database nếu như bạn chưa mở nó.

2.2. Nhng ch th mà JVM gi phương thc trong Java thc trong Java

Cũng giống như các ngôn ngữ lập trình khác thì Java cũng có hai kiểu phương thức cơ

bản đó là phương thức của đối tượng (instance methods) và các phương thức chung của một lớp (class method), hay còn được gọi là phương thức tĩnh.

• Để gọi được các phương thức của đối tượng thì trước hết bạn phải tạo ra được một đối tượng cụ thể. Còn đối với các phương thức của lớp thì không cần tạo ra đối tượng. • Các phương thức của đối tượng sử dụng sự liên kết động (dynamic binding), còn các phương thức của lớp sử dụng sử dụng sự liên kết tĩnh.Khi máy ảo Java gọi một phương thức của lớp (class method), nó lựa chọn phương thức được gọi dựa vào kiểu của đối tượng tham chiếu, kiểu này luôn luôn

được biết tại thời gian biên dịch. Khi JVM gọi một phương thức của đối tượng (instance method), nó lựa chọn phương thức được gọi dựa vào lớp thực sự của đối tượng, mà chỉ có thể biết vào thời gian chạy (run-time).

JVM (Java virtual machine) sử dụng 4 chỉ

lệnh khác nhau để gọi những kiểu phương thức khác nhau ở trong Java. Những chỉ lệnh đó là:

Invokevirtual: Sử dụng để gọi các

phương thức của đối tượng. Trước khi phương thức được gọi thì đối tượng phải được tạo. Chỉ lệnh này sử dụng liên kết động, chỉ biết được tại thời

điểm chạy.

Invokestatic: Sử dụng để gọi các phương thức của lớp. Các phương thức này được gọi mà không cần tạo đối tượng. Chỉ lệnh này sử dụng liên kết tĩnh, chúng ta chỉ biết được tại thời điểm biên dịch. • Invokespecial: Sử dụng để gọi một số phương thức đặc biệt như: Phương thức khởi tạo, phương thức riêng, và phương thức của lớp cha. • Invokeinterface: Sử dụng để các phương thức thực thi các giao diện (interface).

3. Gii pháp

Từ chương trình gồm các lớp (tương ứng với các thành phần khi đặc tả) sẽ sinh ra mã “Java bytecode” tương ứng. Bằng việc sử dụng các chỉ lệnh “invokestatic, invokevirtual, invokespecial, invokeinterface” trong máy ảo Java ta sẽ xác định được chuỗi các lời gọi phương thức trong thành phần được sinh ra bởi chương trình. Từđặc tả PSM sẽ sinh ra file lưu trữ thông tin về biểu đồ PSM. Từ đó, chương trình kiểm tra mà đầu vào là chuỗi các lời gọi phương thức do mã Java bytecode sinh ra và file lưu trữ cấu trúc thông tin cho biểu đồ PSM thì sẽ thu được “Kết quả” là dãy các phương thức

được sinh ra từ mã Java bytecode có đúng theo

đặc tả PSM hay không. Đối với việc kiểm tra PSM thì chương trình sẽ kiểm tra xem các điều kiện của trạng thái có được thỏa mãn hay không. Nếu điều kiện được thỏa mãn lời gọi hàm đó sẽ hợp lệ và giá trị của các biến trạng thái sẽ được cập nhật phục vụ cho lời gọi hàm sau. Nếu không hợp lệ thì chương trình sẽ báo lỗi và chúng ta xác định được chính xác phương thức nào gây ra lỗi.

4. Kết lun

Trong khóa luận này, tôi đã tìm hiểu về

mã Java bytecode, biểu đồ PSM , các chỉ lệnh trong Java bytecode và ý nghĩa của chúng. Từ

các thành phần này tôi cũng đã xây dựng được biểu đồ PSM để đặc tả yêu cầu người dùng. Ngoài ra tôi đã xây dựng được công cụ cho

phép vẽ một biểu đồ PSM đơn giản, công cụ

cũng cho phép vừa vẽ biểu đồ vừa có thể sinh ra file lưu trữ cấu trúc thông tin cho biểu đồ PSM. Từ file đặc tả này và chuỗi lời gọi hàm được sinh ra từ mã Java bytecode tôi có thể kiểm tra

được một thành phần, chương trình có viết đúng

đặc tả so với biểu đồ PSM hay không. Công cụ

của tôi đã kiểm tra được tính chính xác thứ tự

thực thi của những phương thức trong một thành phần có thỏa mãn đặc tả PSM hay không.

Tuy nhiên, kết quả nghiên cứu vẫn chưa giải quyết được vấn đề kiểm tra chương trình có các câu lệnh rẽ nhánh và việc thực thi song song giữa các luồng. Đây là các vấn đề rất khó bởi vì chúng ta sử dụng phương thức kiểm tra ởđây là kiểm tra tĩnh mã Java bytecode, trong khi các

điều kiện rẽ nhánh thì lại diễn ra một cách động. Mặc dù nghiên cứu vẫn còn nhiều điểm hạn chế chưa khắc phục nhưng nó vẫn có những

ứng dụng nhất định. Tôi nhận thấy mã MSIL của ngôn ngữ .NET tương đối giống với mã Java bytecode của ngôn ngữ lập trình Java, do

đó tôi nghĩ rằng phương pháp của mình có thể

áp dụng cho việc kiểm chứng mã MSIL so với

đặc tả UCM. Việc phát triển và mở rộng đề tài với các ngông ngữ khác nhau sẽ góp phần tăng khả năng phát hiện lỗi và năng cao chất lượng phần mềm.

Tài liu tham kho

[1] Bill Venners. “Inside the Java Virtual Machine”. In Chapter Nineteen: Method Invocation and Return and Chapter V: The Java Virtual Machine and Chapter Eight:

The Linking Model and Chapter VII: The Lifetime of a Class. Inc, 1997.

[2] R.J.A. Buhr and R.S. “Casselman Use Case Maps for Object-Oriented Systems”, Inc, 1995.

[3] Michael Jesse Chonoles, James A. Schardt . “UML 2.0 for Dummies”. In Chapter18 of Part V: Avoid States of Confusion. Inc, 2003.

[4] Tom Pender, Wiley Publishing. UML 2.0 Bible.In Chapter 11 of Part III: Modeling an Object’s Lifecycle in UML 2.0. Inc, 2003.

[5] Sun Microsystems, JavaBeans 1.01 Specification,

http://java.sun.com/beans. [6] http://www.omg.org.

NGHIÊN CỨU VỀ WEB SERVICE VÀ ỨNG DỤNG

Họ tên: Vũ Minh Tuấn Cán bộ hướng dẫn: TS. Nguyễn Việt Hà

Mã số sinh viên: 04020443 Cán bộđồng hướng dẫn: ThS. Trần Vũ Việt Anh

1. Giới thiệu

Cùng với sự phát triển ngày càng lớn mạnh của mạng máy tính toàn cầu Internet, là sự ra đời và phát triển của các ứng dụng, hệ thống phân tán. Rất nhiều công nghệ đã được phát triển để phục vụ cho các ứng dụng này như RMI, DCOM, CORBA, ... Tuy nhiên các công nghệ trên đều gặp khó khăn khi đối mặt với sự khác biệt phần cứng, phần mềm hay ngôn ngữ lập trình khi xây dựng các ứng dụng phân tán. Một yêu cầu đặt ra là làm sao để các ứng dụng, các hệ thống phân tán, có thể giao tiếp được với nhau một cách dễ

dàng ngay cả khi chúng được xây dựng và phát triển trên những hệ thống phần cứng, phần mềm và ngôn ngữ lập trình khác nhau. Chính yêu cầu

đó đã thúc đNy việc nghiên cứu và cho ra đời công nghệ Web Service. Một công nghệ mang tính cách mạng, cho phép xây dựng và phát triển các

ứng dụng phân tán độc lập cả về phần cứng, phần mềm, hệđiều hành cũng như ngôn ngữ lập.

Với mục đích mang lại những hiểu biết sâu sắc hơn về công nghệ Web Service, luận văn này sẽ trình bày từ những cái nhìn tổng quan cho đến tìm hiểu, nghiên cứu chi tiết các khái niệm, cấu trúc và các công nghệ thành phần, cấu thành nên Web Service. Cuối cùng sẽ là phân tích và phát triển một ứng dụng cụ thể sử dụng công nghệ

Web Service.

2. Công nghệ Web Service

Web Service tạm dịch là dịch vụ trên web, là một hệ thống phần mềm được thiết kế để hỗ trợ

khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua môi trường mạng Internet. Điểm khác biệt của Web Service so với các công nghệ khác là Web Service kết hợp sử

dụng những công nghệ đã có như XML, SOAP, WSDL, UDDI để tạo ra các dịch vụ trên nền web cho phép các ứng dụng có thể tương tác với nhau qua môi trường mạng Internet mà không phụ

thuộc vào ngôn ngữ lập trình hay môi trường hệ điều hành chạy các ứng dụng đó. Điểm này làm nổi bật vai trò và khả năng vượt trội của Web Service

Một phần của tài liệu TÓM TẮT KHÓA LUẬN TỐT NGHIỆP CHUYÊN NGÀNH COOG NGHỆ PHẦN MỀM (Trang 79)

Tải bản đầy đủ (PDF)

(86 trang)