Thạc Sĩ Nghiên cứu xây dựng hệ thống giao diện người dùng trên điện thoại di động theo hướng tiếp cận mô hìn

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    MỤC LỤC
    
    THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT . .i
    MỤC LỤC . ii
    DANH SÁCH CÁC HÌNH . viii
    DANH SÁCH CÁC BẢNG . .x i
    Chương 1: Giới thiệu . 1
    1.1. Dẫn nhập . . 1
    1.2. Bài toán phát triển giao diện cho nhiều loại thiết bị . . 3
    1.2.1. Nhánh nghiên cứu Cross - platform user interfaces . 3
    a) Công nghệ Java . . 3
    b) Công nghệ .NET . 4
    c) Công nghệ lập trình QT & GTK . 4
    d) Tóm tắt các công nghệ Cross - platform . 5
    1.2.2. Nhánh nghiên cứu MUI . 5
    1.2.3. Nhận xét . . 6
    1.3. Mục tiêu nghiên cứu . . 7
    1.3.1. Đối tượng nghiên cứu . . 7
    1.3.2. Giới hạn đề tài . . 8
    a) Giới hạn platform . . 8
    b) Giới hạn hướng tiếp cận . 8




    iii
    c) Kết quả nghiên cứu dự kiến . . 9
    Chương 2: Cơ sở lý thuyết và các hướng tiếp cận . 10
    2.1. Hướng tiếp cận MDD . 10
    2.1.1. Các khái niệm cơ bản về mô hình . 10
    a) Model . 11
    b) DSL . 11
    c) Metamodel . 12
    2.1.2. Tư tưởng chính của hướng tiếp cận MDD . 13
    2.1.3. Các chuẩn hướng tiếp cận MDD . 14
    2.1.4. Hướng tiếp cận MDA . 15
    a) Kiến trúc Metadata MOF . 15
    b) Các góc nhìn trong MDA - MDA View Point . 16
    c) Phương pháp chuyển đổi mô hình . 17
    c.1. Chuyển đổi mô hình thủ công . 17
    c.2. Chuyển đổi mô hình tự động . 17
    c.3. Chuyển đổi mô hình dựa trên Transformation Model . 18
    d) Nhận xét . 19
    2.2. Hướng tiếp cận MBUID . 19
    2.2.1. Phân loại mô hình mô tả UI . 20
    a) Phân loại mô hình mô tả UI theo mức độ trừu tượng . 20
    a.1. Task model . 21
    a.2. AUI model . 21
    a.3. CUI model . 22
    a.4. FUI model . 23




    iv
    b) Phân loại mô hình mô tả UI theo chức năng . 23
    b.1. Data, domain, application model . 24
    b.2. Dialog, presentation model . 25
    c) Liên hệ với các góc nhìn trong MDA . 26
    d) Nhận xét . 27
    2.2.2. Quy trình phát triển MBUID . 27
    a) Quy trình phát triển tổng quát . 27
    b) Quy trình phát triển của CAMELEON Framework . 28
    c) Quy trình phát triển của TERESA XML . 29
    d) Quy trình phát triển của UsiXML . 30
    e) Quy trình phát triển của MANTRA . 32
    f) Nhận xét . 34
    2.2.3. Định nghĩa và chuyển đổi mô hình trong MBUID . 37
    a) Task metamodel . 37
    b) AUI metamodel . 41
    c) CUI metamodel . 45
    d) Transformation metamodel . 50
    e) Nhận xét . 53
    2.3. Nhận xét . 53
    Chương 3: Phương pháp luận DGUIMS . 54
    3.1. Giới thiệu DGUIMS . 54
    3.2. Hệ thống mô hình trong DGUIMS . 54
    3.2.1. Phân loại mô hình trong DGUIMS . 54
    3.2.2. Kiến trúc MDD trong DGUIMS . 57




    v
    3.3. Quy trình DGUIMS . 59
    3.3.1. Quy trình DGUIMS đầy đủ . 59
    3.3.2. Quy trình DGUIMS thu gọn . 61
    3.4. Các metamodel được đề xuất trong DGUIMS . 62
    3.4.1. AAUI metamodel . 62
    3.4.2. CUI metamodel . 66
    3.4.3. Transformation AAUI2CUI metamodel . 70
    Chương 4: Xây dựng môi trường phát triển DGUIMSE . 74
    4.1. Giới thiệu . 74
    4.2. Các package trong DGUIMSE . 76
    4.2.1. Package mô hình hóa AAUI, CUI model . 76
    a) Package mô hình hóa AAUI model . 76
    b) Package mô hình hóa CUI model trên .NET CF 3.5 . 76
    c) Package mô hình hóa CUI model trên Android 7 . 77
    4.2.2. Package mô hình hóa transformation model . 77
    a) Package mô hình hóa transformation model sang CUI .NET CF 3.5 . 78
    b) Package mô hình hóa transformation model sang CUI Android 7 . 78
    4.2.3. Package chuyển đổi giữa các mô hình . 79
    a) Package chuyển đổi từ AAUI sang transformation model trên .NET CF
    3.5 . 79
    b) Package chuyển đổi từ AAUI sang transformation model trên Android 7
    80
    c) Package chuyển đổi từ transformation model sang CUI trên .NET CF 3.5
    80




    vi
    d) Package chuyển đổi từ transformation model sang CUI trên Android 7 . 81
    4.2.4. Package chuyển đổi mô hình sang mã nguồn . . 81
    a) Package chuyển đổi CUI model sang mã nguồn .NET CF 3.5 . . 82
    b) Package chuyển đổi CUI model sang mã nguồn Android 7 . 82
    Chương 5: Case Study . . 83
    5.1. Bước 01 mô hình hóa AAUI model . . 83
    5.1.1. Mô hình hóa AAUI model cho .NET CF 3.5 . . 83
    5.1.2. AAUI model cho Android 7 . 84
    5.2. Bước 02 chuyển đổi AAUI model sang transformation model tương ứng . 84
    5.3. Bước 03 cấu hình transformation model . 85
    5.4. Bước 04 thực thi transformation model chuyển sang CUI model tương ứng 85
    5.5. Bước 05 phát sinh source code giao diện FUI model từ CUI model . . 85
    5.6. Nhận xét . 85
    Chương 6: Kết luận và hướng phát triển . . 93
    6.1. Các kết quả đạt được . 93
    6.1.1. Lý thuyết . . 93
    a) Quy trình . 93
    b) Kiến trúc hướng mô hình và các mô hình . . 93
    c) Các luật chuyển đổi . . 94
    6.1.2. Ứng dụng . . 94
    6.2. Hướng phát triển . 95
    TÀI LIỆU THAM KHẢO . . 96
    PHỤ LỤC A: Luật chuyển đổi AAUI model sang transformation model . . 99
    Luật chuyển đổi AAUI model sang transformation model trên .NET CF . 99




    vii
    Luật chuyển đổi AAUI model sang transformation model trên Android . . 102
    PHỤ LỤC B: Luật chuyển đổi transformation model sang CUI model . . 105
    Luật chuyển đổi transformation model sang CUI model trên .NET CF . . 105
    Luật chuyển đổi transformation model sang CUI model trên Android . . 114
    PHỤ LỤC C: Luật chuyển đổi CUI model sang mã-nguồn . . 121
    Luật chuyển đổi CUI model trên .NET CF sang mã nguồn . . 121
    Luật chuyển đổi CUI model trên Android sang mã nguồn . . 125





    Chương 1: Giới thiệu
    1.1. Dẫn nhập
    Trong những năm gần đây, ngày càng xuất hiện nhiều loại thiết bị tính toán mới
    bên cạnh máy tính cá nhân PC (Personal Computer). Được giới công nghiệp đầu tư
    phát triển mạnh, điện thoại di động (mobile phone), thiết bị kỹ thuật số hỗ trợ cá
    nhân (personal digital assistant), và gần đây nhất là máy tính bảng (Tablet) đang
    dần tham gia cùng, thậm chí thay thế, thiết bị PC truyền thống trong đời sống hiện
    đại.
    Tuy nhiên khác với môi trường tương đối đồng nhất của họ PC, các thiết bị tính
    toán hiện đại kể trên thường có sự khác biệt đáng kể về cả phần cứng và phần mềm.
    Về phần cứng, các thiết bị có thể khác nhau về kích thước màn hình; về thiết bị
    nhập/xuất dữ liệu; về cổng giao tiếp với các thiết bị khác, v.v Đối với phần mềm,
    các thiết bị có thể khác nhau về hệ điều hành (OS - Operating System) hoặc phiên
    bản hệ điều hành; khác nhau về thư viện hỗ trợ lập trình (SDK - Software
    Development Toolkit) hay phiên bản thư viện hỗ trợ lập trình.
    Những khác biệt về phần mềm dẫn đến nhiều khó khăn trong việc phát triển cùng
    một ứng dụng trên các loại thiết bị khác nhau. Đặc biệt, nếu việc phát triển chỉ tập
    trung vào mã nguồn, thì khi thay đổi thiết bị, gần như ứng dụng phải được phát triển
    lại từ đầu do khó tận dụng lại các sưu liệu phân tích thiết kế trong các giai đoạn sớm
    của quá trình xây dựng ứng dụng. Ví dụ như phát triển ứng dụng “Quản lý chi tiêu
    cá nhân” trên các thiết bị di động sử dụng hệ điều hành Symbian, J2ME, Windows
    Mobile, Android, v.v sẽ rất khác nhau do khác nhau về thư viện hỗ trợ lập trình,
    cơ chế gọi màn hình, cách thức và định dạng lưu trữ dữ liệu, v.v Mặt khác, những
    thiết bị phần cứng khác nhau thì sẽ cung cấp những cách thức giao tiếp khác nhau
    giữa người và máy (HCI - human - computer interaction) làm cho việc phát triển




    2
    ứng dụng cho từng loại thiết bị, đặc biệt là phần giao diện, càng thêm phức tạp.
    Khái niệm giao tiếp được đề cập ở đây cần được hiểu rộng hơn khái niệm truyền
    thống WIMP (Window, Icon, Mouse, Pointer). Ví dụ một vài hình thức giao tiếp
    hiện đại là truyền hình internet - WebTV - Internet - enabled television; những
    thiết bị có platform giao tiếp 3D cùng với khả năng hỗ trợ giọng nói (3D -
    interactive platform with voice capability).
    (Hình 1.1) minh họa một ứng dụng được phát triển trên nhiều loại thiết bị khác
    nhau. Các mũi tên ngụ ý sự cần thiết phát triển các phiên bản riêng cho ứng dụng
    trên từng môi trường khác biệt ứng với mỗi loại thiết bị.
    Hình 1.1 Minh họa môi trường phát triển ứng dụng trên nhiều loại thiết bị khác nhau với Teresa XML [1]
    Như vậy, có thể thấy chính sự đa dạng về phần cứng và phần mềm của các
    loại thiết bị đã làm gia tăng độ biến thể của ứng dụng trên nhiều loại thiết bị, do
    vậy làm giảm khả năng tái sử dụng sưu liệu và sản phẩm của quá trình phát
    triển. Chi phí phát triển các ứng dụng đa thiết bị vì thế cũng gia tăng đáng kể.




    3
    Một trong những nỗ lực chính nhằm giảm thiểu chi phí của việc phát triển các
    ứng dụng cho các loại thiết bị khác nhau được tập trung vào việc tối ưu hóa quá
    trình phát triển giao diện cho nhiều loại thiết bị. Đây là bài toán được giải quyết
    trong hướng nghiên cứu phát triển phần mềm giao diện - UID - User Interface
    Development mà chúng tôi quan tâm trong luận văn này.
    1.2. Bài toán phát triển giao diện cho nhiều loại thiết bị
    Hướng nghiên cứu UID tập trung đề xuất các giải pháp để phát triển hiệu quả
    phần giao diện cho ứng dụng. Bài toán lớn UID có nhiều bài toán con nhưng trong
    luận văn này chúng tôi chỉ quan tâm đến vấn đề làm thế nào có thể tận dụng lại tối
    đa sưu liệu phân tích, thiết kế và mã nguồn khi phát triển giao diện của cùng một
    ứng dụng trên những loại thiết bị khác nhau nhằm giảm chi phí xây dựng ứng
    dụng. Trong phần này chúng tôi sẽ giới thiệu sơ lược các hướng tiếp cận chính đang
    được áp dụng để giải quyết bài toán giao diện nêu trên.
    1.2.1. Nhánh nghiên cứu Cross - platform user interfaces
    Nhánh nghiên cứu Cross - platform user interfaces [2] cho phép một ứng dụng có
    thể thực thi trên một số hệ điều hành như Window, Linux, Solaris, v.v . nhờ vào mã
    nguồn của giao diện người dùng có thể mang chuyển - portable. Trong Cross -
    platform user interfaces, cùng một đoạn mã nguồn, chạy trên những platform khác
    nhau thì sẽ có cùng đối tượng thể hiện nhưng phong cách thể hiện khác nhau. Hiện
    tại, các công nghệ ứng dụng tiêu biểu trong nhánh nghiên cứu này có thể kể đến
    công nghệ Java, .NET, lập trình QT & GTK.
    a) Công nghệ Java
    Công nghệ Java sử dụng máy ảo Java - JVM - Java Virtual Machine thông dịch
    mã nguồn Java byte code, qua đó cung cấp tính độc lập platform cho các ứng dụng




    4
    phát triển bằng Java. Về nguyên tắc, một đoạn mã bytecode có thể thực thi được
    trên bất kỳ thiết bị nào có hỗ trợ máy ảo Java.
    Ngày nay công nghệ này được ứng dụng rộng rãi trong việc phát triển các ứng
    dụng trên PC. Có thể nói bài toán phát triển giao diện cho nhiều platform đã được
    giải quyết trọn vẹn trên các máy PC.
    Tuy nhiên trên các loại thiết bị di động thì công nghệ này vẫn chưa thể cho phép
    giải quyết trọn vẹn bài toán khả chuyển giao diện. Nguyên nhân là muốn phát triển
    mã nguồn khả chuyển trên các loại thiết bị di động, các loại thiết bị này phải có
    chung một phần cấu hình phần cứng để các phiên bản CLDC và MIDP trong
    công nghệ Java có thể hỗ trợ. Đây chính là hạn chế của công nghệ Java trên thiết
    bị di động.
    b) Công nghệ .NET
    Công nghệ .NET sử dụng máy ảo trong framework .NET thông dịch mã nguồn
    MSIL - Microsoft Intermediate Language. Trên lý thuyết công nghệ .NET có thể
    mang đến tính khả chuyển cho nhiều loại thiết bị nhưng công nghệ .NET cũng hạn
    chế trong việc giải quyết bài toán phát triển cùng một mã nguồn cho tất cả các thiết
    bị di động do một số đòi hỏi về cấu hình của thiết bị.
    Cụ thể chỉ khả chuyển trên các PC sử dụng hệ điều hành Windows và các loại
    thiết bị di động phải cùng chung một phần cấu hình phần cứng và cần phải được cài
    đặt hệ điều hành Windows Mobile. Do đó cũng giống như công nghệ Java, công
    nghệ .NET vẫn chưa giải quyết được trọn vẹn bài toán giao diện cho nhiều loại
    thiết bị.
    c) Công nghệ lập trình QT & GTK
    Các nhà lập trình nguồn mở trên nền Linux đã cho ra đời các ngôn ngữ lập trình
    Cross - platform là QT và GTK. Hiện nay QT và GTK được minh họa trên các máy




    5
    PC sử dụng hệ điều hành Linux ít được minh họa trên các hệ điều hành khác. Riêng
    QT cũng đã được ứng dụng để lập trình trên các thiết bị diện thoại di động sử dụng
    hệ điều hành Symbian.
    Do được thể hiện trên ít loại thiết bị như vậy nên QT và GTK chưa được kiểm
    chứng đầy đủ trên các loại thiết bị di động.
    d) Tóm tắt các công nghệ Cross - platform
    Qua (Bảng 1.1) ta thấy, các công nghệ Cross - platform đã xem xét chưa giải quyết
    được trọn vẹn bài toán phát triển hiệu quả giao diện trên nhiều thiết bị vì các khống chế
    về cấu hình phần cứng hoặc phần mềm. Thiếu sự hỗ trợ của công nghệ khịến cho người
    phát triển phần mềm phải mất nhiều thời gian để phát triển lại cùng một ứng dụng trên
    các loại thiết bị khác biệt. Để khắc phục nhược điểm này, MUI - một nhánh nghiên cứu
    khác của UID - tập trung nghiên cứu các đối tượng giao diện ở mức trừu tượng hơn
    nhằm vượt qua giới hạn về cấu hình cụ thể của các thiết bị. Đây cũng chính là nhánh
    nghiên cứu mà luận văn quan tâm và sẽ được trình bày ở phần kế tiếp.
     

    Các file đính kèm:

Đang tải...