Tổng quan về lập trình hướng khía cạnh

Một phần của tài liệu LUẬN VĂN:KIỂM CHỨNG CÁC GIAO THỨC BẰNG AOP pdf (Trang 30 - 31)

1. 4 Cấu trúc khóa luận

3.1 Tổng quan về lập trình hướng khía cạnh

[4] Những năm gần nay, với sự phát triển của phương pháp lập trình hướng đối tượng (OOP) đã mang lại nhiều bước tiến mới cho lập trình nói chung và đưa ngành Công nghệ phần mềm lên một bước phát triển mới. Sự ra đời của hướng phát triển phần mềm hướng đối tượng (OOSD: Object-Oriented Software Development) đã mang lại những hiệu quả đáng kể. Tuy nhiên, nó vẫn bộc lộ những hạn chế, chẳng hạn trong các ứng dụng cần có sự đồng bộ hóa hay các ứng dụng có sự đan nhau phức tạp giữa các thành phần bên trong thì các ứng dụng tiếp cận theo hướng đối tượng tỏ ra không phù hợp. Bên cạnh đó, tính tĩnh trong cách tiếp cận hướng đối tượng không cho phép phần mềm thích ứng với những thay đổi mới đáp ứng yêu cầu người dùng. Trong bài báo này, chúng tôi trình bày một hướng tiếp cận mới trong việc phát triển phần mềm - hướng khía cạnh (AO: Aspect- Oriented). Hướng tiếp cận này còn khá mới mẽ (được đưa ra vào những năm cuối thập niên 90) nhưng hứa hẹn những lợi điểm giải quyết được những yêu cầu có tính đan xen phức tạp, đồng thời mang lại cho phần mềm khả năng thay đổi và bổ sung yêu cầu mới sau khi đã hoàn chỉnh hay thậm chí đã đưa vào sử dụng.

Lập trình hướng khía cạnh được xây dựng trên các phương pháp lập trình hiện tại như lập trình hướng đối tượng, lập trình có cấu trúc, bổ sung thêm các khái niệm và cấu trúc để mô-đun hóa các chức năng cắt ngang hệ thống (crosscutting concern). Với AOP, các quan hệ cơ bản sử dụng các phương pháp cơ bản. Nếu sử dụng OOP, sẽ thực thi các quan hệ cơ bản dưới hình thức lớp (class). Các aspect trong hệ thống đóng gói các chức năng cắt ngang hệ thống lại với nhau. Chúng sẽ quy định cách các mô-đun khác nhau gắn kết với nhau để hình thành lên hệ thống cuối cùng.

Nền tảng cơ bản của AOP khác với OOP là cách quản lý các chức năng cắt ngang hệ thống. Việc thực thi của từng chức năng cắt ngang AOP bỏ qua các hành vi được tích hợp vào nó. AOP có thể xem là một sự bổ sung cho OOP, cho phép chúng ta giải quyết các bài toán phức tạp tốt hơn và hiệu quả hơn.

31

cách linh hoạt và kết hợp chúng lại để tạo nên hệ thống sau cùng. AOP bổ sung cho kỹ thuật lập trình hướng đối tượng bằng việc hỗ trợ một dạng mô đun khác, cho phép kéo thể hiện chung của vấn đề đan nhau vào một khối. Khối này được gọi là ‘aspect’ (tạm dịch là ‘lát’ – hàm ý lát cắt đi qua nhiều lớp đối tượng), từ chữ ‘aspect’ này chúng ta có tên của phương pháp phát triển phần mềm mới: aspect-oriented programming. Nhờ mã được tách riêng, vấn đề đan nhau trở nên dễ kiểm soát hơn. Các aspect của hệ thống có thể thay đổi, thêm hoặc xóa lúc biên dịch và có thể tái sử dụng. Một dạng biên dịch đặc biệt có tên là Aspect Weaver thực hiện kết hợp các thành phần riêng lẻ lại thành hệ thống hợp nhất.

AOP gồm ba bước phát triển:

- Phân tích các yêu cầu để xác định vấn đề chung và vấn đề đan nhau. - Xây dựng thể hiện từng vấn đề riêng biệt.

- Tổng hợp các thể hiện.

Giống như các phương pháp lập trình khác, việc thực hiện AOP gồm hai phần: đặc tả ngôn ngữ mô tả cú pháp và cấu trúc ngôn ngữ; biên dịch kiểm tra sự đúng đắn của mã lệnh theo đặc tả ngôn ngữ và chuyển đổi sang dạng mã máy có thể thực thi.

Đặc tả ngôn ngữ AOP: Xét ở mức cao, ngôn ngữ AOP gồm 2 thành phần :

- Thể hiện vấn đề : Ánh xạ yêu cầu riêng lẻ ở dạng mã đề trình dịch có thể chuyển đổi sang dạng thực thi. Thể hiện vấn đề có dạng thủ tục cụ thể, bạn có thể dùng ngôn ngữ truyền thông như C/C++ hay java.

- Đặc tả quy tắc đan kết : Xác định cách thức tổng hợp các vấn đề riêng lẻ. Muốn vậy, thẻ hiện cần sử dụng hoặc tạo ra một ngôn ngữ để xác định quy tắc đan kết có thể là sự mở rộng của ngôn ngữ thể hiện, hoặc một ngôn ngữ hoàn toàn khác.

Một phần của tài liệu LUẬN VĂN:KIỂM CHỨNG CÁC GIAO THỨC BẰNG AOP pdf (Trang 30 - 31)

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

(51 trang)