MỞ ĐẦU 1.1 Lý do chọn đề tài Hiện nay với sự phát triển như vũ bão của công nghệ thông tin tạo ra diện mạo mới cho xã hội hiện đại và được ứng dụng vào tất cả lĩnh vực đời sống xã hội. Công nghệ phần mềm là phần không thể thiếu và tách rời khỏi công nghệ thông tin. Phần mềm được xem như sản phẩm của ngành công nghệ phần mềm được phát triển theo quy trình theo các mô hình hiện đại. Quy trình phát triển phần mềm bao gồm: nhận yêu cầu, phân tích, thiết kế, xây dựng, kiểm tra, khai thác và bảo trì phần mềm.
Trong đó giao diện người dùng đóng vai trò phi chức năng (tính thân thiện và tính khả dụng) của phần mềm. Hệ thống phần mềm đòi hỏi tính tương tác cao, công sức và thời gian bỏ ra cho việc thiết kế và hiện thực giao diện người dùng chiếm một phần khá lớn của dự án. Đa số các môi trường phát triển ứng dụng (IDE) như Eclipse, NetBean có đi kèm các hỗ trợ cho việc xây dựng giao diện người dùng trực quan nhưng không có tính tự động hóa. Người dùng vẫn phải gõ vào từng đối tượng và thao tác trên các đối tượng này khi xử lý kiện trên giao diện.
Do đó tự động hóa xây dựng giao diện người dùng trở thành một nhu cầu tất yếu, giúp giảm thời gian và công sức phát triển đồng thời đưa ra cái nhìn tổng quan hệ thống. Một số nghiên cứu liên quan đến tự động hóa xây dựng giao diện như: Automa [6] định nghĩa ra ngôn ngữ thao tác các đối tượng giao diện người dùng trên window, OpenXava [7] là một bộ khung tự động xây dựng các ứng dụng web ở dạng quản lý (quản lý môn học, quản lý đăng ký môn học) dựa trên các đối tượng nghiệp vụ, bài nghiên cứu khoa học [1] là một hướng tiếp cận xây dựng giao diện người dùng bán tự động từ thiết kế chi tiết (sơ đồ lớp).2 Mục tiêu của đề tài Trong bài nghiên cứu khoa học [1] đã xây dựng được giao diện giao diện người dùng từ sơ đồ lớp (Class diagram). Tuy nhiên kết quả mới dừng ở mức bán tự động, chưa hỗ trợ xử lý các sự kiện trên giao diện. 1 Đề tài luận văn này là sự phát triển của bài nghiên cứu khoa học [1] nghiên cứu mô tả các mẫu sự kiện trên sơ đồ hoạt động (Activity diagram) để giải quyết những hạn chế trên.
Như vậy mục tiêu của đề tài luận văn là tập trung nghiên cứu, xây dựng hệ thống sinh mã nguồn cho giao diện người dùng trên Java một cách tự động từ thiết kế chi tiết (sơ đồ hoạt động, sơ đồ lớp).3 Đối tượng nghiên cứu Đối tượng nghiên cứu của luận văn là các sự kiện trên giao diện người dùng.4 Phạm vi nghiên cứu Giao diện người dùng là các giao diện trên các ứng dụng Desktop. Mã nguồn được sinh tự động từ các thiết kế trong luận văn là ngôn ngữ Java. 2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ mô hình hóa UML Giới thiệu sơ lược UML UML [1] - Unified Modeling Language là ngôn ngữ mô hình thống nhất giúp mô hình hóa các ứng dụng trên máy tính. Các tác giả chính là Jim Rumbaugh, Ivar Jacobson, Grady Booch ngoài ra còn có các tập đoàn lớn khác bảo trợ phát triển.
UML sử dụng một hệ thống ký hiệu thống nhất để biểu diễn các phần tử mô hình. Tập hợp các ký hiệu và phần tử mô hình tạo nên một mô hình UML.0 có hai loại sơ đồ cơ sở: sơ đồ cấu trúc và sơ đồ hành vi. Nhóm sơ đồ cấu trúc Sơ đồ lớp Sơ đồ đối tượng Sơ đồ thành phần Sơ đồ bố trí Sơ đồ đóng gói Sơ đồ cấu trúc phức hợp Nhóm sơ đồ hành vi Sơ đồ ca sử dụng Sơ đồ trình tự Sơ đồ giao tiếp Sơ đồ máy trạng thái Sơ đồ hoạt động Sơ đồ bao quát tương tác Mục đích của sơ đồ cấu trúc là để cho thấy cấu trúc tĩnh của hệ thống đang được mô hình hóa. Sơ đồ hành vi cho biết các hành vi động giữa các đối tượng trong hệ thống.
3 Trong đề tài luận văn này chỉ trình bày sơ đồ lớp và sơ đồ hoạt động được sử dụng làm đầu vào cho nghiên cứu. Sơ đồ lớp (Class diagram) Sơ đồ lớp thuộc nhóm sơ đồ cấu trúc dùng để miêu tả các thực thể khác nhau (người, các chủ đề và dữ liệu) và mối quan hệ giữa chúng. Trong sơ đồ lớp thành phần chính là class. Class mô tả về nhóm đối tượng có cùng tính chất hành động trong hệ thống.
Class gồm ba thành phần sau. Phần trên cùng là tên lớp. Phần giữa là các thuộc tính. Phần dưới cùng là các phương thức của lớp.
Một ví dụ lớp User được biểu diễn như sau : Hình 2.1: Ví dụ một lớp User. Tên của lớp thường là 1 danh từ. Ví dụ : User Thuộc tính của lớp được biểu diễn dưới dạng Tên : Kiểu của thuộc tính Ví dụ username : String, password : String Phương thức của lớp được biểu diễn dưới dạng Tên (Tham số) : Kiểu giá trị trả về 4 Ví dụ getUsername() : String, setUsername(String username) : void Trong sơ đồ lớp có 2 mối quan hệ chính Mối quan hệ thừa kế Mối quan hệ liên kết Mối quan hệ thừa kế Đối tượng cụ thể sẽ thừa kế các thuộc tính và phương thức của đối tượng tổng quát.2: Lớp B thừa kế lớp A Mối quan hệ liên kết Mối quan hệ liên kết là mối quan hệ ngữ nghĩa giữa hai hay nhiều lớp chỉ ra sự liên kết giữa các thể hiện của chúng. Mối quan hệ về mặt cấu trúc chỉ các đối tượng của lớp này có kết nối với các đối tượng của lớp khác.3: Mối quan hệ liên kết.
Bội số quan hệ là thể hiện của một lớp liên quan tới một thực thể của lớp khác. Với mỗi liên kết có hai bội số quan hệ cho hai đầu của liên kết.1 Có giá trị là 0 hoặc 1. 1 Có giá trị là 1.* Có giá trị là 0 hoặc nhiều hơn. * Có giá trị là 0 hoặc nhiều hơn.5 Có giá trị từ 2 đến 5.4: Bảng bội số trong quan hệ liên kết.
Sơ đồ hoạt động (Activity diagram) Sơ đồ hoạt động thuộc nhóm sơ đồ hành vi dùng để mô hình hóa các hoạt động trong một quy trình nghiệp vụ. Các thành phần của sơ đồ hoạt động Thành phần Ý nghĩa Ký hiệu Điểm bắt đầu Trạng thái bắt đầu của một sơ đồ hoạt động. Hoạt động Mô tả hành vi của đối tượng trong quy trình. Dòng điều khiển Mô tả sự chuyển đổi trạng thái của các hoạt động.
Điều kiện Mô tả điều kiện kích hoạt việc chuyển trạng thái. Thanh bar Mô tả các dòng điều khiển thực hiện song song. Điểm kết thúc Trạng thái kết thúc của một sơ đồ hoạt động. Luồng Chứa các phần tử của sơ đồ hoạt động.
Một sơ đồ hoạt động gồm một hoặc nhiều luồng.5: Các thành phần trong activity diagram.2 Ngôn ngữ đánh dấu mở rộng (Extensible Markup Language) Giới thiệu XML Ngôn ngữ đánh dấu mở rộng (XML): là một ngôn ngữ tổng quát dùng văn bản để mô tả thông tin trên cấu trúc cây. Mọi thông tin đều được biểu diễn dưới dạng văn bản, các thẻ đánh dấu được sử dụng để phân chia thông tin cũng như thứ bậc của thông tin dữ liệu được mô tả. Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với internet. Một số đặc trưng cơ bản của XML Cho phép tổ chức lưu trữ dữ liệu theo cấu trúc theo ngữ nghĩa dễ dàng giao tiếp hay trao đổi.
Cho phép người dùng định nghĩa các thẻ mới phù hợp với quy định về cú pháp (linh động trong định nghĩa tag mà không bị bó buộc theo các thẻ quy định sẵn). Nội dung được lưu trữ trong tập tin có phần mở rộng là XML. Dưới đây là một ví dụ về XML Hình 2. Cấu trúc XML Tài liệu xml gồm các thành phần sau Các chỉ thị (processing instructions) Thẻ đánh dấu (XML element) 7 Thuộc tính của thẻ Các ký tự đặc biệt CDATA Các chỉ thị Có cú pháp dạng: <?xml version="1.0" encoding="utf-8" ?> Các chỉ thị này cho các bộ phân tích tài liệu XML biết các thông tin: version (phiên bản XML), encoding (bộ mã mà tài liệu XML sử dụng).
Thẻ đánh dấu Thẻ đánh dấu gồm 2 loại o Thẻ có nội dung: <Tên>Nội dung</Tên> o Thẻ rỗng: <Tên /> Đặt tên thẻ như sau o Tên thẻ có thể chứa các ký tự, số,. o Tên thẻ không được bắt đầu bằng số hay ký tự đặc biệt. o Tên thẻ không được bắt đầu bằng chuỗi xml. o Tên thẻ có phân biệt chữ hoa, chữ thường.
Quan hệ lồng nhau giữa các thẻ có nội dung: nội dung bên trong thẻ có nội dung có thể là các thẻ khác (có nội dung hoặc rỗng). Khi thẻ A có nội dung là thẻ B ta gọi thẻ A là thẻ cha của B, thẻ B là thẻ con của A. Thẻ đánh dấu gốc: tài liệu xml phải có duy nhất (một và chỉ một) thẻ chứa (trực tiếp hay gián tiếp) tất cả các thẻ còn lại. Thuộc tính của thẻ Thuộc tính của thẻ có dạng: Ten_thuoc_tinh=”Gia_tri” Thẻ có thuộc tính: <Ten Ten_thuoc_tinh=”Gia_tri”> Các ký tự đặc biệt 8 Để biểu diễn các ký tự đặc biệt: >, <, &, ‘, ” ta phải dùng chuỗi các ký tự như sau Chuỗi ký tự Kết quả > > < < & & ' ‘ " “ Hình 2.7: Bảng ký tự đặc biệt trong XML.
CDATA Để giữ nguyên định dạng cho nội dung của thẻ, ta dùng CDATA, cú pháp: <The> <![CDATA[ nội dung của thẻ ]]> </The> 2.3 Giao thức trao đổi dữ liệu trên XML (XML Metadata Interchange) Giới thiệu XMI Giao thức trao đổi dữ liệu trên XML (XMI) là giao thức cho phép trao đổi dữ liệu đặc tả giữa các công cụ mô hình hóa dựa trên UML. XMI được dùng rộng rãi trong định dạng trao đổi XML, XMI định nghĩa các vấn đề sau trong việc mô tả các đối tượng trong XML Biểu diễn các đối tượng dưới dạng các phần tử và các thuộc tính XML. Các cơ chế chuẩn cho các đối tượng trong cùng một tập tin hay nhiều tập tin. Truy xuất đối tượng XMI bằng cách sử dụng mô hình XML.
Xác định đối tượng, cho phép cac đối tượng được tham chiếu từ các đối tượng khác dưới dạng các định danh (identifier - ID).