1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiến trúc hướng mô hình (model driven) trong xây dựng phần mềm nhúng trên hệ điều hành android – đánh giá độ tin cậy và tính đáp ứng của kiến trúc phần mềm

75 360 0

Đ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

Định dạng
Số trang 75
Dung lượng 1,84 MB

Nội dung

Hình 6 Biểu đồ DFD tiến trình đào tạo của một trung tâm giáo dục Hình 7 Biểu đồ usecase sinh ra từ DFD Hình 8 Biểu đồ Activity sinh ra từ DFD Hình 9 Biểu đồ trình tự sinh ra từ DFD Hình

Trang 1

MỤC LỤC

MỤC LỤC 1

LỜI CÁM ƠN 3

DANH MỤC HÌNH ẢNH 4

DANH MỤC BẢNG BIỂU 5

DANH SÁCH CÁC TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ 5

CHƯƠNG I: MỞ ĐẦU 6

I ĐẶT VẤN ĐỀ 7

II LÝ DO LỰA CHỌN ĐỀ TÀI VÀ CÁC KẾT QUẢ CẦN ĐẠT ĐƯỢC 7

CHƯƠNG II: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID VÀ CƠ SỞ LÝ THUYẾT VỀ KIẾN TRÚC HƯỚNG MÔ HÌNH MDA 9

I TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID 10

1 Hoàn cảnh ra đời 11

2 Các phiên bản Android 12

3 Kiến trúc Android 14

4 Hệ thống tập tin trên hệ điều hành Android 18

5 So sánh giữa các hệ điều hành 21

II CƠ SỞ LÝ THUYẾT VỀ KIẾN TRÚC HƯỚNG MÔ HÌNH MDA 25

1 Tổng quan 25

2 Một số khái niệm cơ bản 25

3 Quy trình phát triển phần mềm hướng MDA 26

4 Chuyển đổi giữa các mô hình trong tiến trình MDA 28

5 MDA với lập trình C 38

6 Sự phù hợp áp dụng MDA với hệ thống nhúng 46

CHƯƠNG III: ÁP DỤNG XÂY DỰNG TRÌNH ĐIỀU KHIỂN TRÊN HỆ ĐIỀU HÀNH ANDROID VỚI HƯỚNG TIẾP CẬN MDA – CÀI ĐẶT TRÊN SMART BOX CỦA VNPT-TECHNOLOGY 49

I KIẾN TRÚC GIAO TIẾP USB 3G TRONG ANDROID 50

II ÁP DỤNG HƯỚNG TIẾP CẬN MDA 51

III CÀI ĐẶT ỨNG DỤNG TRÊN SMART BOX CỦA VNPT TECHNOLOGY 60

1 Cấu hình 3G cho kernel 60

2 Cấu hình 3G trong source code aosp 62

CHƯƠNG IV: ÁP DỤNG ĐÁNH GIÁ ĐỘ TIN CẬY VÀ TÍNH ĐÁP ỨNG CỦA TRÌNH ĐIỀU KHIỂN USB 3G CÀI ĐẶT TRÊN SET - TOP - BOX CỦA VNPT TECHNOLOGY 65

Trang 2

I MÔ HÌNH ĐÁNH GIÁ ĐỘ TIN CẬY 66

II ÁP DỤNG ĐÁNH GIÁ ĐỘ TIN CẬY TRÌNH ĐIỀU KHIỂN USB 3G CÀI ĐẶT TRÊN SMART BOX CỦA VNPT-TECHNOLOGY 67

III KẾT LUẬN VÀ KIẾN NGHỊ 70

1 Kết luận 70

2 Kiến nghị 72

3 Hướng phát triển của đề tài 73

TÀI LIỆU THAM KHẢO 74

Trang 3

LỜI CÁM ƠN

Lời đầu tiên, em xin gửi lời cám ơn đến các thầy, cô giáo và toàn thể cán bộ nhân viên trường Đại học Bách Khoa Hà Nội, Viện đào tạo sau Đại học và đặc biệt

là Viện Công nghệ thông tin và Truyền thông đã hướng dẫn, giảng dạy và giúp đỡ

em trong suốt thời gian học tập tại Viện Công nghệ thông tin và Truyền thông trong thời gian qua

Em xin gửi lời cám ơn đặc biệt tới PGS.TS Huỳnh Quyết Thắng, người đã trực tiếp định hướng, hướng dẫn, và có những góp ý quan trọng trong suốt quá trình

em thực hiện luận văn này

Xin cám ơn các bạn trong lớp Cao học CNTT2 – Khóa 2013 đã cùng chia sẻ khó khăn trong quá trình học tập tại Viện Công nghệ thông tin và truyền thông

Tôi xin được các ơn các bạn bè, đồng nghiệp tại VNPT Technology đã hợp tác, giúp đỡ, chia sẻ công việc và kinh nghiệm trong thời gian tôi thực hiện luận văn

Và cuối cùng xin đặc biệt cảm ơn các thành viên trong gia đình nhỏ của tôi

đã làm chỗ dựa vững chắc, động viên, khích lệ tôi vượt qua mọi khó khăn để hoàn thành luận văn

Do kiến thức, thời gian cũng như khả năng làm việc có hạn, quyển luận văn này không tránh khỏi những thiếu sót, những điều chưa tối ưu, kính mong các thầy

cô giáo và các bạn giúp đỡ và chỉ bảo thêm để sau này em có thể tiếp tục hoàn thiện

Xin trân trọng cám ơn!

Hà Nội tháng 12 năm 2014

Trang 4

Hình 6 Biểu đồ DFD tiến trình đào tạo của một trung tâm giáo dục

Hình 7 Biểu đồ usecase sinh ra từ DFD

Hình 8 Biểu đồ Activity sinh ra từ DFD

Hình 9 Biểu đồ trình tự sinh ra từ DFD

Hình 10 Biểu đồ miền sinh ra từ DFD

Hình 11 Các lớp của PSM

Hình 12 Chuyển đổi của loại đ ối tượng

Hình 13 chuyển đổi của thuộc tính

Hình 14 Chuyển đổi liên kết

Hình 15 chuyển đổi máy trạng thái

Hình 16 chuyển đổi các sự kiện

Hình 17 mẫu collaboration chuẩn cho sự kiện sinh handle_event() (bước 1

và 2) Hình 18 mẫu collaboration chuẩn cho sự kiện sinh handle_event() (bước 3

và 4) Hình 19 Sinh tầng persistence

HÌnh 28 Kiến trúc giao tiếp usb 3G trong Android

Hình 29 Tiến trình làm việc với usb 3G

Hình 30 Biểu đồ luồng dữ liệu khi plug in usb 3G

Hình 36 Biểu đồ trạng thái của thiết bị 3G

Hình 37 Biểu đồ trạng thái của Ril

Hình 38 Biểu đồ trạng th ái c ủa PPP

Hình 39 Biểu đồ Flowchart của hàm kết nối dữ liệu

Hình 40 Biểu đồ Flowchart của hàm huỷ kết nối dữ liệu

Trang 5

lập trình hướng đối tượng và lập trình C

DANH SÁCH CÁC TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ

1 MDA Model Driven Architecture

2 OMG Object Model Group

3 RIL Radio Interface Layer

Là lớp cầu nối giữa Android Phone framework

và hardware

4 RILD Radio Interface Layer Daemon

Một tiến trình chạy trong khi Android khởi động

5 USB Universal Serial Bus Chuẩn giao tiếp USB

9 PIM Platfom Independent Model Mô hình độc lập nền

10 PSM Platfom Specific Model Mô hình phụ thuộc nền

11 DFD Data Follow Diagrams Biểu đồ luồng dữ liệu

Trang 7

I ĐẶT VẤN ĐỀ

Trong những năm gần đây, các thiết bị di động đặc biệt là các thiết bị di động thông minh phát triển rất mạnh mẽ Các hãng công nghệ di động như SamSung, Nokia, LG, Sony liên tục cải tiến và đưa ra nhiều mẫu sản phẩm mới, trong đó các thiết bị sử dụng hệ điều hành Androi của Google chiếm tỷ lệ áp đảo Số lượng lập trình viên di động ngày càng tăng cao cũng như các ứng dụng di động nói chung và các ứng dụng di động trên nền Android ngày càng nhiều, các ứng dụng ngày càng phong phú cả về nội dung và được áp dụng trên nhiều nền tảng phần cứng khác nhau

Nhu cầu phát triển ứng dụng là rất nhiều, tuy nhiên đi kèm với nó là nhu cầu đảm bảo chất lượng, độ tin cậy của phần mềm.Phần mềm xây dựng ra cần phải có chất lượng cao, đồng nghĩa với việc hạn chế lỗi phát sinh trong quá trình sử dụng Hay nói cách khác, phần mềm ít nhất phải đảm bảo chạy đúng theo ý tưởng thiết kế Câu hỏi đặt ra làm cách nào có được một thiết kế phần mềm tốt? Khi có đã có được thiết kế tốt, làm sao để kiểm tra, đánh giá được độ tin cậy và tính đáp ứng của kiến trúc phần mềm và áp dụng để đưa ra được phần mềm có chất lượng cao, đúng với nhu cầu và mục tiêu đặt ra

Kiến trúc hướng mô hình (Model Driven) được OMG (Object Management Group) công bố năm 2001 [1] cung cấp các tiện ích giúp người lập trình xây dựng thiết kế phần mềm dựa trên việc xây dựng và chuyển đổi giữa các mô hình Việc áp dụng kiến trúc hướng mô hình (Model Driven) trong xây dựng phần mềm nhúng trên hệ điều hành Androi và xây dựng phương án đánh giá độ tin cậy và tính đáp ứng của kiến trúc phần mềm góp thêm một biện pháp nhằm nâng cao chất lượng phần mềm nói chung và phần mềm cho thiết bị thông minh chạy hệ điều hành Android nói riêng.Trong luận văn này, tác giả sẽ tập trung trả lời câu hỏi nêu trên và nêu ví dụ cụ thể đã và đang được áp dụng trong quá trình sản xuất thiết bị Smart Box và điện thoại thông minh Smart Phone Vivas Lotus tại công ty VNPT Technology

II LÝ DO LỰA CHỌN ĐỀ TÀI VÀ CÁC KẾT QUẢ CẦN ĐẠT ĐƯỢC

Như đã trình bày ở phần trên nhu cầu phát triển phần mềm nói chung và phần mềm cho thiết bị di dộng trên nền Android nói riêng ngày càng tăng cao, kèm theo

đó là nhu cầu xây dựng phần mềm có chất lượng cao, đáp ứng đầy đủ chính xác các yêu cầu đặt ra Việc áp dụng kiến trúc hướng mô hình (Model Driven) trong xây dựng phần mềm nhúng trên hệ điều hành Android và xây dựng phương án đánh giá

Trang 8

độ tin cậy và tính đáp ứng của kiến trúc phần mềm góp thêm một biện pháp nhằm nâng cao chất lượng phần mềm nói chung và phần mềm cho thiết bị thông minh chạy hệ điều hành Android nói riêng

Luận văn này sẽ tập trung giải quyết vấn đề trên được thể hiện qua các phần sau: CHƯƠNG I: MỞ ĐẦU

CHƯƠNG II: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID VÀ CƠ SỞ LÝ THUYẾT VỀ KIẾN TRÚC HƯỚNG MÔ HÌNH MDA

Bao gồm hai phần, phần I ―TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID‖ Giới thiệu tổng quan về hệ điều hành Android Trong phần này sẽ giới thiệu một các tổng quan về lịch sử ra đời, quá trình phát triển và các nét đặc trưng cơ bản về hệ điều hành Android, các phiên bản Android và một vài so sánh giữa Android với các hệ điều hành khác;

Phần II ―CƠ SỞ LÝ THUYẾT VỀ KIẾN TRÚC HƯỚNG MÔ HÌNH MDA‖ giới thiệu các khái niệm cơ bản, các quy trình và chuyển đổi giữa các mô hình trong MDA, liên hệ mô hình MDA trong ngôn ngữ lập trình C

CHƯƠNG III: ÁP DỤNG XÂY DỰNG TRÌNH ĐIỀU KHIỂN TRÊN HỆ ĐIỀU HÀNH ANDROID VỚI HƯỚNG TIẾP CẬN MDA – CÀI ĐẶT TRÊN SMART BOX CỦA VNPT-TECHNOLOGY

Phần này trình bày về kiến trúc giao tiếp với USB 3G trên hệ điều hành Android

và cách tiếp cận theo phương pháp MDA để xây dựng phần mềm nhúng áp dụng xây dựng driver cho USB 3G trên nền Android và trình bày chi tiết cách cài đặt phần mềm đã xây dựng trên thiết bị Smart Box của VNPT Technology

CHƯƠNG IV: ÁP DỤNG ĐÁNH GIÁ ĐỘ TIN CẬY TRÌNH ĐIỀU KHIỂN USB 3G CÀI ĐẶT TRÊN SMART BOX CỦA VNPT-TECHNOLOGY

Đề xuất mô hình đánh giá độ tin cậy và tính đáp ứng của kiến trúc phần mềm

và trình bày việc áp dụng thực tế trong quá trình sản xuất Smart Box của VNPT Technology.Phần cuối cùng ghi nhận các kết quả và nêu lên các nhận xét của tác giả

về các kết quả đạt được

Trang 9

CHƯƠNG II: TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID VÀ CƠ SỞ LÝ THUYẾT VỀ KIẾN TRÚC HƯỚNG MÔ HÌNH MDA

Nội dung chính:

 Tổng quan hệ điều hành Android

 Cơ sở lý thuyết về kiến trúc hướng mô hình MDA

Trang 10

I TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID

Android là hệ điều hành di động dựa trên nền tảng linux dành cho các thiết bị

di động như điện thoại SmartPhone, máy tính bảng, set-top-box Đầu tiên được ra đời bởi công ty liên hợp Android, sau đó được google mua lại và phát triển từ năm

2005 và trở thành một hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao trên thế giới

Hệ điều hành Androidlà hệ điều hành có bảo mật cao, hỗ trợ nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi tương thích với nhiều nền tảng phần cứng, hỗ trợ nhiều bộ nhập dữ liệu như keyboard, touch và trackball Android có khả năng kết nối các mạng không dây,hỗ trợ công nghệ OpenGL, hỗ trợ đa phương tiện multi media, khả năng đồ họa cực tốt, là tiền đề để phát triển các ứng dụng có giao diện phức tạp chẳng hạn như là các trò chơi

Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần Android được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới Chẳng hạn như theo AndroidGuys thì Android phiên bản 2.2 hoạt

450%[http://www.androidguys.com/2010/05/12/benchmarks-put-android-22-wicked-fastlike-450-faster-21/] Hiện nay, phiên bản mới nhất Android L, phát hành

ngày 26/06/2014 và đang tiếp tục được cập nhật

Năm 2008, hệ điều hành Android đã chính thức mở toàn bộ mã nguồn, điều

đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát triển hệ điều hành Những điều đó là cực kỳ tốt không chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả với những hãng lớn như Samsung, HTC

Với Google, vì Android hoàn toàn miễn phí, Google không thu tiền từ những hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ Android nhưng bù lại, những dịch vụ của hãng như Google Search, Google Maps, nhờ có Android mà có thể dễ dàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc điện thoại được sản xuất ra đều được tích hợp hàng loạt dịch vụ của Google Từ đó hãng có thể kiếm bội, chủ yếu là từ các nguồn quảng cáo trên các dịch vụ đó

Với các nhà phát triển ứng dụng (developers), việc hệ điều hành Android được sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nền Android với sự tin tưởng là ứng dụng đó sẽ có thể chạy được ngay trên nhiều dòng điện thoại của các hãng khác nhau Họ ít phải quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu vì nền tảng Android là chung cho

Trang 11

nhiều dòng máy, máy ảo Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại mà nó đang chạy Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kết hợp với XML nên có khả năng khả chuyển cao

1 Hoàn cảnh ra đời

Khi nghành công nghiệp điện thoại di động sang một trang mới, một hệ

điều hành mở có thể dùng chung cho nhiều hãng điện thoại với những tùy chọn riêng biệt là một miếng mồi béo bở mà Google nhìn thấy đầu tiên Dưới đây là những cột mốc đáng nhớ trong quá trình hình thành và phát triển của hệ điều hành Android

– Tháng 10/2003, Android (inc) ra đời như một hãng phần mềm, với mục tiêu tạo ra những thiết bị thông minh, đáp ứng nhu cầu của người dung

– Tháng 8/2005, Google mua lại Android với toàn bộ nhân viên

– Tháng 11/2007, Open Handset Alliance – Liên minh thiết bị cầm tay mở rộng ra đời với các thành viên Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile

– Tháng 10/2008, hệ điều hành Android đã chính thức trở thành phần mềm

mã nguồn mở

– Tháng 11/2008, Liên minh OHA ra mắt gói phát triển phần mềm Android SDK cho nhà lập trình Theo đó, các công ty thứ ba được phép thêm những ứng dụng của riêng của họ vào Android và bán chúng mà không cần phải hỏi ý kiến

Trang 12

Google

– Tháng 12/2008, có thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm có ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, và Vodafone Group Plc

2 Các phiên bản Android

Phiên bản đầu tiên của hệ điều hành Android ra đời vào tháng 9/2008 và tháng 2/2009 không có tên gọi chính thức, sau này, những phiên bản tiếp theo ra đời với tên gọi là những món tráng miệng với vần đầu của bảng Anphabet C-D-E-F-G-H-I…

– Android Cupcake 1.5, 4/2009: Phiên bản này có một số tính năng đáng chú

ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị Bluetooth trong một khoảng cách nhất định, các widget và thư mục mới có thể cài đặt linh động trên màn hình chủ

– Android Donut 1.6, 9/2009: Phiên bản này giúp Nâng cao trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu hỗ trợ màn hình

độ phân giải WVGA

– Android Eclair 2.0 + 2.1, 10/2009 Phiên bản này có sự cải thiện rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth 2.1

Trang 13

– 2.2 Android Froyo 5/2010: Phiên bản này chú trọng nâng cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi Một tính năng đáng chú ý khác hỗ trợ chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ.Một trong những smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là LG Optimus One

– Android Gingerbread 2.3, 12/2010: Phiên bản này đã nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video WebM và nâng cao tính năng copy–paste Cùng với phiên bản Gingerbread, Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng này là Google Nexus S

– Android Honeycomb 3.0, 2/2011: Đây là phiên bản hệ điều hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail ) Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều màn hình home khác nhau, cho phép người dùng dễ dàng tùy biến giao diện nếu muốn

– Android 4.0 Ice Cream Sandwich, cuối 2011 Đây cũng là lần đầu tiên Google hợp nhất hệ điều hành dành cho smartphone và cho máy tính bảng vào làm một Android 4.0 cũng nhắm đến việc duyệt web nhanh hơn, tối ưu hóa hiệu suất hoạt động của thiết bị, kéo dài thời gian dùng pin…

– Android Jelly Bean 4.1 +4.2, 2012: quan trọng hơn hết của Jelly Bean không phải là về giao diện hay ứng dụng mới mà về Project Butter giúp mang lại độ

Trang 14

mượt chưa từng có cho Android Theo như giải thích của Google, độ mượt này có được là nhờ vào dự án Butter

– Android 4.3 Jelly Bean 4.3, 24/4/2013: đi kèm những tính năng mới như hỗ trợ kết nối Bluetooth Smart, bộ API OpenGL ES 3.0, bổ sung tính năng sử dụng Wi-Fi để định vị ngay cả khi người dùng tắt kết nối này đi cùng nhiều thay đổi lớn nhỏ khác

– Android 4.4 KitKat, 15/10/2013 với các cải tiến mới Chế độ toàn màn hình – Immersive Mode, Hiệu ứng chuyển cảnh màn hình -Transition Manager, Storage Access Framework, Chromium WebView, NFC,Cổng hồng ngoại – Infrared Blasters …

– Android L, 26/06/2014 với những cải tiến về chất lượng pin, giao diện thanh thoát nhẹ nhàng theo thiết kế Material Design, Android Runtime (ART) đã được sử dụng mặc định

3 Kiến trúc Android

Hệ điều hành Android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux, tầng Tầng Libraries & Android runtime, Tầng Application Framework và trên cùng là tầng Application

Hinh 1: Kiến trúc tổng quan Android [13]

Trang 15

a) Tầng hạt nhân Linux (Linux Kernel layer)

Hệ điều hành Android được phát triển dựa trên hạt nhân linux, điều đó được thể hiệnở lớp dưới cùng này.Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp, ởlớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process)

Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối mạng không dây

Tầng này có các thành phần chủ yếu:[13]

 Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )

 Camera Driver: Điều kiển hoạt động của camera, nhận luồng dữ liệu

từ camera trả về

 Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth

 USB driver: Quản lý hoạt động của các cổng giao tiếp USB

 Keypad driver: Điều khiển bàn phím

 Wifi Driver: Chịu trách nhiệm về việc thu phát sóng wifi

 Audio Driver: điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng audio thành tín hiệu số và ngược lại

 Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện

 M-System Driver: Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ

SD, flash

 Power Madagement: Giám sát việc tiêu thụ điện năng

b) Tầng Library và Android runtime

Phần này có 2 thành phần là phần Library và Android Runtime [13]

Trang 16

được sử dụng chỉ bởi hệ điều hành

 Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát

và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng

 Thư viện web (LibWebCore): Đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX…

 Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng

 Phần Android runtime

Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường

 Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như JAVA

IO, Collections, File Access

 Thứ hai là một máy ảo java (Dalvik Virtual Machine - DVM)

Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành Android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển

c) Tầng Application Framework

Tầng này xây dựng bộ công cụ- các phần tử ở mức cao để các lập trình viên

có thể nhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khả năng sử

dụng chung để tiết kiệm tài nguyên.[13]

Đây là một nền tảng mở, điều đó có 2 điều lợi:

 Với các hãng sản xuất điện thoại: Có thểtùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style hợp thị hiếu người dùng Vì thế nên tuy cùng chung nền tảng Android mà điện thoại của Google có thể khác hẳn với Motorola, HTC, T-Mobile, Samsung

 Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc Một tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định

vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao

Trang 17

diện cấp cao

Giới thiệu một số thành phần của tầng này:

 Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung cấp công cụ điều khiển các Activity

 Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi điện thoại

 XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực

 Location Manager: Cho phép xác định vị trí của điện thoại thoại dựa vào hệ thống định vị toàn cầu GPS và Google Maps

 Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

 Notication Manager: Quản lý việc hiển thị các thông báo (như báo có tin nhắn, có e-mail mới…)

 Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file hình ảnh, âm thanh, layout, string (Những thành phần không được viết bởi ngôn ngữ lập trình)

 Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi (Game), từ điển

Các chương trình có các đặc điểm là:

 Viết bằng Java, phần mở rộng là apk

 Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng lên để phục vụ cho nó Nó có thể là một Active Program: Chương trình có giao diện với người sử dụng hoặc là một background: chương trình chạy nền hay là dịch vụ

 Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên,

Trang 18

giúp hệ thống hoạt động tốt hơn

 Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống

 Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành

di động khác, Android cho phép một ứng dụng của bên thứ ba được phép chạy nền Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá 5~10% công suất CPU, điều đó nhằn

để tránh độc quyền trong việc sử dụng CPU

 Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu

4 Hệ thống tập tin trên hệ điều hành Android

Trong phần này tác giả chỉ xin tìm hiểu rõ một số vấn đềquản lý hệ thống tập tin của Android,vìAndroid được phát triển từ nhân linux nên hệ thống tập tin trên Android cực kỳ giống hệ thống tập tin trên linux như là về cách tổ chức, những quyền hạn của người sử dụng lên file

a) Tổng quan về hệ thống file trên Android:

Trong Android, các file được tổ chức thành các thư mục, theo mô hình phân cấp Tham chiếu đến một file bằng tên và đường dẫn Các câu lệnh thao tác file cho phép thực hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục cùng với các thư mục con chứa trong nó…

Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phẩy để đặt tên file,không được bắt đầu một tên file bằng dấu chấm hay chữ số.Những ký tự khác như ‗/‘, ‗?‘, ‗*‘, là ký tự đặc biệt được dành riêng cho hệ thống Chiều dài của tên file có thể tới 256 ký tự Trong hệ điều hành Android có sự phân biệt tên file chữ hoa và chữ thường, điều đó có nghĩa là trong cùng 1 thư mục có thể tồn tại những file có tên là File, FILE, file và chúng là những file khác nhau

Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte (byte stream) Cấu trúc thống nhất này cho phép Android áp dụng khái niệm file cho mọi thành phần dữliệu trong hệ thống Thư mục cũng như các thiết bị được xem như file Chính việc xem mọi thứ như các file cho phép Android quản lý và chuyển đổi

dữ liệu một cách dễ dàng Một thư mục chứa các thông tin về thư mục, được tổ chức theo một định dạng đặc biệt Các thành phần được xem như các file, chúng được phân biệt dựa trên kiểu file: ordinary file, directory file, character device file,

và block device file

b) Các kiểu file trên Android:

Trong nhiều hệ điều hành như window, người ta phân biệt rõ file (tập tin) và

Trang 19

folder (hay directory: thư mục) là 2 thành phần khác hẳn nhau Tuy nhiên trên hệ điều hành Android(cũng như linux) thì coi directory cũng là file và nó là một loại file đặc biệt Thực tế còn một số loại file nữa có thể liệt kê theo bảng sau:

Chữ cái biểu diễn Kiểu file

b File kiểu khối (block-type special file)

c File kiểu ký tự (character-type special

file)

l Liên kết tượng trưng (symbolic link)

Bảng 1: Bảng phân loại các loại file trên Android

c) Tổ chức quyền sở hữu và quyền hạn trên file:

Tương tự trên hệ thống linux, trên hệ điều hành Android, một file có thể liên kết với một người sử dụng và một nhóm người sử dụng Sự liên kết đó là một tập hợp các quyền hạn truy cập bao gồm quyền được phép đọc (read), được phép ghi (write) và được phép thực thi (execute)

Cụ thể như sau: Một file sẻ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau: Với ký tự r w x nghĩa là có quyền tương ứng với ký tự viết tắt đó, - nghĩa

là không có quyền hạn đó

r/- w/- x/- r/- w/- x/- r/- w/- x/-

3 ký tự đầu tiên là quyền hạn chủ nhân file

3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu file

3 ký tự cuối là quyền hạn của những người không thuộc nhóm sở hữu file

Ví dụ: Một file có dãy ký tự biểu diễn quyền hạn là rwxr-xr—thì điều đó có nghĩa:

3 ký tự đầu là rwx: Chủ nhân có thể đọc, ghi và thực thi file

3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu file có quyền đọc và thực thi filechứ không có quyền ghi, chỉnh sửa file

3 ký tự cuối là r nghĩa là những người không sở hữu file chỉ được phép đọc mà không thể chỉnh sửa hay thực thi file

Trang 20

Trên hệ thống Android, để biết xem được quyền hạn đó, ta có thể sử dụng câu lệnh

ls –l –d

Ví dụ: ls –l-d /mnt/sdcard/HongQuyet để xem quyền hạn của file /mnt/sdcard/HongQuyet thì có thể trả về kết quả như sau d -rwxr-x system sdcard_rw 2014-11-18 21:00 HongQuyet Thì những thông tin có thể lấy về là:

o Ký tự đầu tiên là chữ d: vậy file đó có kiểu là thư mục hay là file bao hàm

o Chuỗi ghi quyền hạn là -rwxr-x thì có nghĩa

-)Người sở hữu không được phép đọc, ghi, thực thi file

ản sử hữu được phép đọc, ghi, thực thi file -x : Những người không sở hữu file được phép đọc và thực thi file nhưng không được phép chỉnh sửa hay ghi lên file

o Chuỗi miêu tả file : sdcard_rw nghĩa là đây thuộc thiết bị thẻ nhớ sd, đọc và ghiđược

o 2010-12-29 21:00 Thời gian chỉnh sửa lần cuối

o HongQuyet : tên của file

Ngoài ra có 2 lệnh khác cũng hữu dụng là lệnh chown để thay đổi quyền sở hữu file, lệnh chmod để thay đổi quyền hạn liên quan đến file và lệnh chgrp đểthay đổi nhóm người sở hữu file

d) Cây thư mục trên hệ điều hành Android:

Thư mục (hay có thể gọi là file) root là thư mục gốc của tất cả các file thư mục còn lại Dưới nó có chứa một số file thư mục hệ thống Mỗi thư mục (trừ thư mục root) đều có một thư mục cha chứa nó, bản thân nó cũng có thể có nhiều file thư mục con Cấu trúc đó có thể mô tả bằng một cây thư mục có dạng như sau:

Hinh 2: Cây thư mục Android

Trang 21

Giới thiệu một vài thư mục tiêu biểu:

o /(root): Là thư mục gốc Là thư mục duy nhất không có thư mục cha

o / mnt: thư mục chứa thiết bị lưu động (removeable)

o /system: chứa những thành phần cơ bản nhất của hệ thống

o /ect: chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạt động của hệ thống đều bị chi phối ở những file cấu hình này

o /system/lost+found: chứa những tập tin bị mất lúc khởi động máy

o /system/font: chứa những font chữ hiển thị được

o /system/lib: chứa các thư viện để các phần mềm hoạt động (các phần mềm viết bằng ngôn ngữ java)

o /system/app: chứa các file apk của phần mềm (Các file cài đặt ứng dụng, kiểu như MSI trong window hay dev trong Linux)

o /system/bin: Chứa các chương trình nội trú của hệ thống

5 So sánh giữa các hệ điều hành

a) So sánh giữa hệ điều hành di động và hệ điều hành trên desktop

 Giống nhau về bản chất hệ điều hành, những thành phần lõi hệ điều hành

 Khác nhau:

 Hệ điều hành di động hoạt động trên các thiết bị nhỏ gọn, hạn chế nhất là

về vấn đề năng lượng Pin thì có hạn, vì thế tất cả các thành phần trên thiết bị đều phải tối ưu để tiết kiệm pin, điều đó nảy sinh nhiều mâu thuẩn với nhu cầu sử dụng của người dùng

Trang 22

của mình để tiết kiệm năng lượng một cách tối đa

ải quản lý các ứng dụng không để các ứng dụng chạy chiếm quá nhiều tài nguyên, tránh sự độc quyền, xung đột, tranh chấp tài nguyên giữa các ứng dụng trong khi các hệ điều hành chạy desktop thì ít chú ý hơn Hệ điều hành di động luôn có bộ công cụ quản lý điện năng sử dụng trong máy, trong những tình huống cần thiết thì hệthống sẻ tự tắt những ứng dụng không cần thiết để duy trì các chương trình cần thiết hơn hoạt động

ố các hệ điều hành trên desktop đều cho phép nhiều ứng dụng chạy đồng thời (đa nhiệm) và khá tự do Trong khi đó, các hệ điều hành chạy trên

di động thường không cho phép chạy đa nhiệm, hoặc có đa nhiệm thì các ứng dụng bị giới hạn khá nhiều

 Việc hiển thị giao diện trên một khung hình nhỏ cũng điều khó khăn hơn

so với hệ điều hành chạy trên desktop, thường thì trên hệ điều hành di động gần như không có giao diện cửa sổ cho phép nhiều ứng dụng cùng hiển thị một lúc mà chỉ là một giao diện mà trên đó mỗi thời điểm chỉ hiển thị một giaodiện của một ứng dụng mà thôi

 Hệ điều hành di động phải có khả năng hoạt động liên tục không ngừng nghĩ để đảm bảo liên lạc, đảm bảo kết nối của thiết bị tới mạng không dây cần kết nối trong khi vẫn di chuyển Vì thế cần được thiết kế đặc biệt hơn so với hệ điều hành trên desktop

b) So sánh hệ điều hành Android với các hệ điều hành di động khác

 Giống nhau: Đều là hệ điều hành di động nên mang đầy đủ bản chất của hệ điều hành di động nói chung(Đã đề cập ở trên)

 Các ứng dụng chạy trên Android được viết bằng Java trong khi đó, ứng dụng trên các hệ điều hành khác chủ yếu là viết bằng C/C++/Object C Ngay cả symbian có hỗ trợ Java thì cũng khác so với Android, trong khi

hệ điều hành Android sử dụng máy ảo Java là DVM do chính Google phát triển thì Symbian lại sử dụng máy ảo Java là J2ME của Sun

Trang 23

c) Nhận xét

Với đặc điểm là hệ điều hành mã nguồn mở, miễn phí, khả năng bảo mật cao,

hỗ trợ nhiều công nghệ tiên tiến, tương thích với nhiều nền tảng phần cứng, khả năng kết nối không dây và hỗ trợ đa phương tiện Hệ điều hành Android ngày càng được sử dụng rộng rãi trên toàn thế giới, số lượng người sử dụng Android ngày cảng phát triển mạnh mẽ

Các công ty công nghệ có lợi trong việc sử dụng mã nguồn mở của Android

mà Google cung cấp để tùy biến và phát triển, cài đặt vào thiết bị của mình, qua đó vừa có thể tận dụng được các tiến bộ công nghệ có sẵn trong Android vừa có thể tạo

ra các đặc thù riêng trong sản phẩm của mình qua việc phát triển thêm các tính năng, ứng dụng mới Chính vì vậy kho ứng dụng của Google (Google Play Store) đã

và đang phát triển bùng nổ với rất nhiều ứng dụng khác nhau trong mọi lĩnh vực

Theo báo cáo từ hãng nghiên cứu thị trường Gartner, đã có tới 210 triệu chiếc smartphone được tiêu thụ trong khoảng 3 tháng đầu năm 2013 trên toàn thế giới, tăng tới 63 triệu sản phẩm cho với cùng kỳ năm ngoái Còn theo Gfk

(Gesellschaft für Konsumforschung), một tổ chức nghiên cứu thị trường nổi tiếng

thế giới của Đức, Android đang là hệ điều hành điện thoại di động phổ biến nhất thế giới hiện nay Theo báo cáo của Gartner ở thị trường toàn cầu, cứ 4 smartphone bán

ra trong ba tháng đầu năm 2013 thì có tới 3 chiếc là chạy Android, phần còn lại là các sản phẩm chạy iOS, Windows Phone hay BlackBerry

Bảng thống kê số lượng smartphone bán ra ở Đông Nam Á - Quý 1/2013 của GfK:

Đông Nam Á Việt Nam Indonesia Singapore Malaysia Philipines Thái Lan

Android 8.753.000 1.102.000 2.285.000 500.000 1.669.000 1.464.000 1.600.000 Khác 4.065.000 544.000 2.192.000 153.000 386.000 166.000 535.000

(Nguồn: Báo cáo thị trường Quý I – 2013 của GFK)

Các số liệu nêu trên cho thấy xu hướng phát triển mạnh mẽ của hệ điều hành Android và theo đó là sự phát triển, nở rộ các ứng dụng chạy trên Android Các thiết

bị dùng hệ điều hành Android ngày càng nhiều và đa dạng, đặc biệt là các thiết bị di động thông minh như: Điện thoại Smart Phone, máy tính bảng, set-top-box… Việc nghiên cứu, nắm bắt, làm chủ hệ điều hành Android để tiếp tục phát triển thêm nhiều các ứng dụng là điều rất quan trọng và cần thiết với các lập trình viên nói chung và đặc biệt đối với các lập trình viên di động nói riêng

Đối với các công ty công nghệ tại Việt Nam, việc nghiên cứu, sử dụng Android mở ra cơ hội mới để có thể tự mình làm chủ công nghệ Họ có thể sử dụng

mã nguồn mở của Android để tùy biến, cài đặt trên thiết bị của mình, qua đó vừa tận

Trang 24

dụng đƣợc các tiến bộ công nghệ có sẵn trên Android vừa có thể tạo đƣợc sự khác biệt cho sản phẩm bởi các tính năng, các ứng dụng mới với chi phí đầu tƣ thấp

Trang 25

II CƠ SỞ LÝ THUYẾT VỀ KIẾN TRÚC HƯỚNG MÔ HÌNH MDA

1 Tổng quan

MDA do OMG đề xuất vào năm 2000.MDA là một hướng tiếp cận sử dụng

mô hình để phát triển phần mềm.MDA bắt đầu từ ý tưởng nổi tiếng tồn tại từ rất lâu là: làm rõ và đặc tả các tác vụ hệ thống-cái nào phụ thuộc nền (platform),cái nào không phụ thuộc nền, đồng thời chia ra các mức phụ thuộc.MDA định hướng các công cụ hỗ trợ:

 Xác định phần độc lập giữa hệ thống và nền

 Xác định phần phụ thuộc nền

 Chọn một nền chuyên biệt mà hệ thống phụ thuộc

 Chuyển đổi hệ thống từ đặc tả nền này sang đặc tả nền khác

Một số lợi ích mà MDA hướng tới cho người dùng:

 Tính di động: Tăng khả năng tái sử dụng, giảm chi phí và độ phức tạp của việc phát triển và quản lý ứng dụng cho hiện tại và cả trong tương lai

 Khả năng cộng tác giữa các nền tảng: Việc sử dụng nghiêm ngặt các phương thức để đảm bảo rằng các tiêu chuẩn dựa trên nhiều công nghệ thực thi độc lập nhau nhưng vẫn cho kết quả giống nhau

 Độc lập nền: Giảm thời gian,chi phí và sự phức tạp liên quan

 Năng suất: Bằng sự cho phép của những người lập trình,người thiết kế

và người quản lý hệ thống để sử dụng các ngôn ngữ và các khái niệm

họ thấy thoải mái,trong khi đó điều này làm cho sự giao tiếp,trao đổi giữa các nhóm và các cá nhân trong nhóm sẽ dễ dàng hơn rất nhiều Điều này mang đến giảm chi phí thông qua kéo dài vòng đời ứng dụng,giảm thời gian phát triển cho các ứng dụng mới,cải thiện chất lượng ứng dụng,tăng giá trị đầu tư công nghệ và nhanh chóng có được các lợi ích công nghệ bên trong các hệ thống có sẵn.Nhưng không phải trong tất cả các trường hợp đều như vậy

2 Một số khái niệm cơ bản

Trang 26

trường của nó cho một vài mục đích cụ thể.Một mô hình thường được thể hiện kết hợp giữa hình vẽ và text

c) Kiến trúc

Kiến trúc của một hệ thống là một đặc điểm kỹ thuật của các bộ phận và các kết nối của hệ thống và các quy tắc cho các tương tác của các bộ phận bằng cách sử dụng kết nối.Trong phạm vi của các phần MDA này,các kết nối và các quy luật được thể hiện thông qua một tập các mô hình có liên quan với nhau

d) Điểm nhìn

Một điểm nhìn là một kỹ thuật trừu tượng tập trung vào một tập hợp các mối quan tâm trong hệ thống trong khi đó bỏ qua tất cả các chi tiết không liên quan.Một điểm nhìn có thể được biểu diễn thông qua một hoặc nhiều mô hình

e) Khung nhìn

Một khung nhìn mô hình hoặc khung nhìn của một hệ thống là một đại diện cho hệ thống từ quan điểm của một điểm nhìn đã chọn

f) Nền tảng

Một nền tảng là một tập các hệ thống con và các công nghệ cung cấp một tập

rõ ràng các chức năng thông qua các giao diện và các mẫu sử dụng riêng biệt.Bất kỳ ứng dụng nào đã hỗ trợ bởi nền tảng đó có thể sử dụng mà không cần liên quan chi tiết đến việc các chức năng được cung cấp sẽ được thực thi như thế nào trong nền

tảng đó

3 Quy trình phát triển phần mềm hướng MDA

Trong phương pháp phát triển phần mềm hướng tiếp cận MDA thì có 3 mức nhìn khác nhau:

+ Computation Independent Model(CIM): Mô hình độc lập tính toán;

+ Platfom Independent Model (PIM): Mô hình độc lập nền;

+ Platfom Specific Model (PSM): Mô hình phụ thuộc nền;

và tiến trình MDA là:

Trang 27

Hình 3:Tiến trình MDA [7]

Vòng đời phát triển của MDA như sau:

Hình 4: vòng đời phát triển phần mềm truyền thống và vòng đời MDA

 Computation Independent Model(CIM)

CIM là mức độ không hiển thị chi tiết về kiến trúc của hệ thống,nhưng nó vẫn phải làm rõ được các hành động được xử lý trong hệ thống.Nói cách khác thì CIM đại diện cho tiến trình nghiệp vụ của tổ chức sẽ được xây dựng.CIM là trung gian để phân tích ở mức trên như phân tích nghiệp vụ,các chuyên gia hay người sử dụng miền của hệ thống.Vì thế CIM đôi khi cũng được gọi là mô hình miền.CIM không có thông tin về các mô hình hoặc cái mà hệ thống sẽ thực thi.Nó chỉ miêu tả môi trường mà hệ thống thực thi và nó hỗ trợ chúng ta hình dung ra được cái hệ thống đích mà chúng ta muốn từ các yêu cầu ban đầu.Nó không chỉ hữu dụng cho việc trợ giúp để hiểu biết về các vấn đề thiết kế hệ thống mà còn hữu dụng như là tài liệu sử dụng cho việc sử dụng hệ thống này trong các hệ thống khác.CIM cũng đóng vai trò quan trọng trong việc thu hẹp khoảng cách giữa người sử dụng miền và các chuyên gia trong lĩnh vực thiết kế và phát triển hệ thống.Trong phát triển phần mềm sử dụng hướng tiếp cận MDA thì các yêu cầu cụ thể trong CIM có mối liên hệ

chặt chẽ với cấu trúc PIM và PSM.[3]

 Platform Independent Model(PIM)

Một PIM là một khung nhìn của hệ thống từ một điểm nhìn độc lập nền tảng.Điểm nhìn độc lập nền tảng này chỉ chú trọng vào các thao tác của hệ thống,ẩn

đi chi tiết cụ thể về nền tảng.Tức là ta không quan tâm đến nền tảng nào sẽ được sử dụng để phát triển hệ thống.Một PIM cần thể hiện được sự không phụ thuộc nền tảng và nó thích hợp cho việc sử dụng với nhiều nền tảng khác nhau hoặc tương tự

Trang 28

nhau.[3]

 Platform Specific Model (PSM)

Một PSM là một khung nhìn của hệ thông từ điểm nhìn của một nền tảng cụ thể.PSM kết nối cụ thể từ PIM với các chi tiết cụ thể của một nền tảng sẽ được sử dụng để phát triển.PSM có thể yêu cầu chi tiết hơn hay ít chi tiết hơn về công nghệ

cụ thể phụ thuộc vào mục đích của nó.PSM sẽ được thực hiện bằng sự chuyển đổi vào trong một mô hình thực thi – code, cái mà định nghĩa tất cả các thông tin cho hệ thống được xây dựng và thực hiện nó.Một PSM có thể xuất hiện như là PIM trong các PSM khác.Cấp độ này được tạo bởi những người phát triển.Ý tưởng cơ bản của

PSM là để thu được sự chuyển đổi từ các mô hình PIM sang mô hình PSM.[3]

4 Chuyển đổi giữa các mô hình trong tiến trình MDA

Nền tảng của kiến trúc MDA là tạo ra các mô hình.Tuy nhiên,có một vấn đề quan trọng là việc chuyển đổi giữa các mô hình này.Khái niệm của MDA nói rằng trong tiến trình MDA, ý tưởng chính là để chuyển đổi các mức cao hơn(CIM,PIM) vào trong các mô hình mức thấp hơn(PSM) để tạo ra các mã thực thi.Sự chuyển đổi của một mô hình là một tiến trình khi một mô hình là mô hình nguồn,được chuyển đổi vào trong các mô hình khácbằng việc sử dụng các quy luật chuyển đổi cụ thể.Có nhiều phương pháp khác nhau được sử dụng như các quy luật chuyển đổi.Tiến trình chuyển đổi được minh họa bằng hình bên dưới:

Hình 5: tiến trình chuyển đổi giữa hai mô hình [7]

Các quy luật chuyển đổi miêu tả thực hiện việc chuyển đổi từ mô hình nguồn sang mô hình đích được thực hiện như thế nào?Quy luật chuyển đổi có hai đầu,đầu bên trái chỉ mô hình nguồn và các thông tin bổ xung cho việc tạo ra và bên phải mởi rộng nó tới mô hình đích.Cả hai đầu để có thể được miêu tả bởi các biến,các mẫu,các luật logic,…

Các biểu đồ được sử dụng trong các mô hình CIM,PIM và PSM thường là các biểu đồ UML(có thể sử dụng các biểu đồ khác để biểu diễn như MOF,… đều do OMG đề xuất,nhưng trong phạm vi báo cáo này tác giả chọn biểu đồ UML vì biểu

đồ UML phổ biến.Đối với các loại biểu đồ khác nhau của UML thì chúng sẽ thích hợp với các loại mức nhìn khác nhau trong tiến trình MDA như sau:

Trang 29

+ Các biểu đồ trong CIM: thường là biểu đồ luồng dữ liệu

+ Các biểu đồ trong PIM: thường là biểu đồ ca sử dụng,biểu đồ luồng,biểu đồ tuàn tự,biểu đồ máy trạng thái,…

Chuyển đổi từ mô hình CIM sang mô hình PIM

Có nhiều cách khác nhau để thực hiện việc chuyển đổi này.Như đã đề cập từ trước,biểu đồ thường được sử dụng đầu tiên là biểu đồ DFD (Data follow diagrams).Nó thích hợp cho việc miêu tả cở bản về tổ chức của một hệ thống bởi vì

nó có thể miêu tả hiệu quả bằng 4 loại biểu đồ là: Current physical,current logical,new physical and new logical.Từ biểu đồ DFD đã được miêu tả này chúng ta

có thể bắt đầu khi tạo ra nhiều loại biểu đồ khác nếu cần thiết cho việc thiết kế hệ thống và miêu tả nó.Theo truyền thống sử dụng DFD và tính đơn giản của nó.Chúng ta sẽ sử dụng biểu đồ DFD như là thể hiện của tiến trình nghiệp vụ cho miêu tả mức nhìn CIM.Với mức nhìn PIM,chúng ta cân nhắc sử dụng các biểu đồ UML.Khi chuyển từ CIM tới PIM,có nghĩa rằng chúng ta đang đi từ phân tích nghiệp vụ tới thiết kế hệ thống,do đó chúng ta bắt đầu từ DFD và chúng ta sẽ định nghĩa các quy tắc cơ bản cho một số biểu đồ UML sẽ được sinh ra

Ví dụ dưới đây là biểu đồ DFD thể hiện tiến trình đào tạo chính của một trung tâm giáo dục.Nó là tiến trình tạo và lưu một e-Content.Hai tiến trình này là một trong số những hình thức hỗ trợ điện tử của trung tâm giáo dục.Theo như DFD của tiến trình này thì chúng ta sẽ phát triển một phần của hệ thống được gọi là E-Repository

Hình 6: Biểu đồ DFD tiến trình đào tạo của một trung tâm giáo dục

Trang 30

 Sinh biểu đồ use case

Từ DFD chúng ta có thể xác định rõ thực thể,cái mà sẽ đại diện cho các tác nhân trong biểu đồ ca sử dụng.Các tiến trình này là mức đầu tiên của DFD, được thực thi bởi các thực thể bên ngoài,chúng ta sẽ chuyển vào bên trong các chức năng trong biểu đồ ca sử dụng.Trước hết,chúng ta tạo ra các mối quan hệ giữa các thực thể bên ngoài và các tiến trình.Các mối quan hệ được tạo ra dựa vào nhiệm vụ của các thực thể bên ngoài của các activity trong biểu đồ ca sử dụng.Hình dưới minh họa tiến trình chuyển đồi DFD tới biểu đồ ca sử dụng UML

Hình 7: Biểu đồ use case sinh ra từ DFD

Trong biểu đồ ca sử dụng ở trên thì thực thể bên ngoài ―Student‖ từ biểu đồ DFD không được minh hoạ bởi vì thực thể này sẽ sử dụng E-content bằng các phương

Trang 31

tiện của hệ thông.Biểu đồ DFD miêu tả chân thực,mỗi luồng dữ liệu và mỗi thực thể tồn tại trong tổ chức.Nhưng trong biểu đồ ca sử dụng chúng ta phải có các chức năng cần thiết cho các ca sử dụng cụ thể trong hệ thống

 Sinh biểu đồ activity

Một biểu đồ khác là biểu đồ hoạt động, khi tạo các biểu đồ này,chúng ta thường bắt đầu từ DFD của các mức nhìn thấp hơn của các tiến trình.Mỗi tiến trình con trên mức nhìn thấp hơn của DFD chúng ta phải tìm bên ngoài các đầu vào và đầu ra của nó,và các thực thể bên ngoài liên quan đến nó.Dựa trên các thực thể bên ngoài từ DFD,các hoạt động được tạo ra và họ đinh nghĩa trách nhiệm cho các hoạt động trong tiến trình.Các đầu vào và các tiến trình con cụ thể từ biểu đồ DFD sẽ giúp cho chúng ta định nghĩa logic mỗi tiến trình con trong các giải quyết và bằng cách thêm các hoạt động cần thiếtđể xác định tiến trình chi tiết hơn

Hình 8: Biểu đồ activity sinh ra từ DFD

 Sinh biểu đồ tuần tự

Biểu đồ tuần tự được sử dụng để biểu thị mối quan hệ giữa các đối tượng theo thứ tự nơi mà các mối quan hệ này đang xuất hiện.Một phần từ tài liệu của tổ chức,biểu đồ này có thể được sử dụng như tài liệu cần thiết cho các yêu cầu giao tiếp của sự thực thi trong hệ thống.Họ hành động như miêu tả bổ sung của các biểu

đồ ca sử dụng.Khi thiết kế các biểu đồ tuần tự nó cần thiết phải tìm kiếm các thực

Trang 32

thể bên ngoài đi vào các tiến trình con.Xa hơn,chúng ta cần thiết để nghĩ về các thực thể của các hệ thống trong sự cộng tác với các thực thể bên ngoài.Hầu hết,nó là

hệ thống của chính nó hoặc là một ứng dụng phần mềm khác và cơ sở dữ liệu của nó.Trình tự thực thi của các hoạt động đang được bắt đầu vẽ từ các tiến trình con vào trong các biểu đồ tuần tự

Hình 9: Biểu đồ trình tự sinh ra từ DFD

 Sinh biểu đồ miền

Biểu đồ miền làm giảm bớt sự khác nhau giữa việc phân tích yêu cầu và sinh ra các thiết kế cụ thể.Nó đại diện cho việc hiểu tổng quan về khái niệm quan trọng trong hệ thống.Nó được tạo ra cho sự hiểu biết tốt hơn về các sơ đồ lớp và không chỉ nhằm mục đích các chuyên gia CNTT.Nó hiển thị các đối tượng sẽ ở trong cấu trúc chương trình và mối quan hệ giữa chúng.Từ biểu đồ miền chúng ta có thể tạo biểu đồ lớp và biểu đồ cơ sở sữ liệu.Khi tạo mô hình miền chúng ta cần phải hiển thị tất cả các thực thể bên ngoài và các yếu tố (hệ thống,cơ sở dữ liệu,…) cộng tác

từ biểu đồ DFD.Từ các biểu đồ DFD họ được kế hoặc vào trong biểu đồ miền.Cuối cùng nó cần thiết phải phản ánh các mối quan hệ giữa các hoạt động khác nhau của các yếu tố không được điều khiển từ DFD hoặc các tiến trình.Chúng có thể có các mối quan hệ như 1:1,1:n và m:n

Trang 33

Hình 10: Biểu đồ miền sinh ra từ DFD

Chuyển đổi từ các biểu đồ PIM sang PSM

Hình 11: Các lớp của PSM [8]

 Các quy luật chuyển đổi

Bây giờchúng ta sẽ thảo luận chi tiết về kiến trúc mục tiêu của chúng ta bằng việc trọng tâm vào các chuyển đổi PIM – PSM.Đại diện cho các luật chuyển đổi,chúng ta sử dụng hộp trắng cho các khái niệm PIM,hộp xám đen cho các khái niệm PSM và các mũi tên xám trắng cho sự chuyển đổi

 Tầng Persistence

Tầng này là cơ sở của kiến trúc đích của chúng ta.Tất cả các lớp khác trong kiến trúc của chúng ta sẽ sử dụng các dịch vụ đƣợc cung cấp bởi tầng này.Sự sinh ra của tầng này có thể đƣợc thực hiện bằng cách chuyển đổi 3 yếu tố PIM,cụ thể là biểu đồ lớp,các cột của bảng sự kiện đối tƣợng và các trạng thái máy hữu hạn

Việc chuyển đổi biểu đồ lớp và các thao tác(các cột của bảng sự kiện đối tượng):

Việc chuyển đổi biểu đồ lớp và các thao tác chúng ta đã định nghĩa theo các quy tắc chuyển đổi nhƣ sau:

Mỗi loại đối tƣợng trong PIM đƣợc chuyển đổi vào trong:

Trang 34

Một lớp trừu tượng và lớp thực thi trong PSM của chúng ta.Bằng việc tạo ra một phân biệt riêng giữa một lớp trừu tượng và một lớp thực thi nó sẽ dễ dàng hơn

để nhìn ra sự khác nhau giữa các yếu tố PSM sinh ra và các thành phần PSM được thêm vào bằng tay sau khi chuyển đổi PIM tới PSM Điều này dẫn đến một truy xuất nguồn gốc tốt hơn có thể được quan trọng để quản lý sự phức tạp của MDA.Hơn nữa,chúng ta sử dụng công nghệ ánh xạ quan hệ đối tượng của Hibernate

để làm cho loại đối tượng này liên tục

Một factory làm cho nó dễ dàng hơn cho việc tạo ra và sưu tập các đối tượng cùng loại

Một phương thức cho mỗi sự kiện,cái mà đối tượng thực thi và một phương thức cho việc kiểm tra điều kiện tiên quyết trả về.Các cột của bảng sự kiện đối tượng chứa thông tin cần thiết cho quy tắc chuyển đổi này

Ví dụ: phương thức cho sự kiện và kiểm tra điều kiện tiên quyết cho sự kiện

Hình 12: Chuyển đổi của loại đối tượng [8]

Mỗi thuộc tính của một loại đối tượng được chuyển đổi vào trong 1 thuộc tính của lớp được ánh xạ

Hình 13:Chuyển đổi của thuộc tính

Mỗi một liên kết 1-n trong biểu đồ lớp của chúng ta được chuyển đổi vào trong một liên kết thuộc tính trong các lớp được ánh xạ

Trang 35

Hình 14:Chuyển đổi liên kết

Việc chuyển đổi máy hữu hạn trạng thái

Để chuyển đổi máy hữu hạn các trạng thái chúng ta sẽ làm theo quy tắc chuyển đổi dưới đây:

Một máy trạng thái hữu hạn của một loại đối tượng được chuyển đổi vào trong: Một lớp trạng thái trừu tượng với các lớp trừu tượng con cho mỗi trọng thái trong FSM:Đây là dựa trên các trạng thái mẫu

Các phương thức trong các lớp con trạng thái cho việc kiểm tra trạng thái điều kiện cho mỗi sự kiện mà các loại đối tượng tham gia

Hình 15: Chuyển đổi máy trạng thái.(Finite State machines)[8]

 Lớp xử lý sự kiện

Lớp sử lý sự kiện có thể được xem như trái tim của kiến trúc mục tiêu hướng sự kiện của chúng ta.Cơ cấu được tổ chức tốt cơ chế tổ chức để xử lý sự kiện đóng một vai trò trung tâm trong một PSM dựa trên sự kiện.Để đạt được mục đích này,cách làm ở đây đưa ra là sử dụng một phiên bó tất cả các xử lý sự kiện cần thiết lại,ví dụ: bằng việc sử dụng một lớp PSM với mỗi sự kiện.Điều này tất nhiên là sẽ hướng tới một sự chuyển đổi khác và một PSM khác

Việc chuyển đổi các sự kiện(các hàng của bảng sự kiện đối tượng)

Lớp sự kiện được miêu tả trong báo cáo này chứa chỉ một phiên xử lý các sự

Trang 36

kiện.Quy tắc chuyển đổi dưới đây là có căn cứ vững chắc cho PSM của chúng ta:Với mỗi sự kiện(đã tìm như các hàng của bảng sự kiện đối tượng) có một hành vi (một xử lý sự kiện)được gọi là EventHandlerBean(hình dưới).Các sự chuyển đổi của các xử lý sự kiện cũng được sinh ra.Cuối cùng sinh ra một mẫu collaboration chuẩn.Bây giờ chúng ta sẽ bàn chi tiết hơn về cái mẫu này

Hình 16: Chuyển đổi các sự kiện[8 PIM to PSM transformations for an event driven architecture in an educational tool - Geert Monsieur, Monique Snoeck,

Rafhaesen, Wilfried Lemahieu, Fig 8, pages 9]

Mẫu collaboration chuẩn cho sự sinh các xử lý sự kiện:

Chúng ta tổng kết mẫu trong bốn bước.Bước một và hai được trình bày trong hình dưới,bước ba và bốn được thể hiện trong hình 17

Hình 17:Mẫu collaboration chuẩn cho sự sinh sự kiện handle_event()(Bước 1 và

bước 2)[8]

+Bước 1:Sự kiện xử lý ―hỏi‖ mỗi khi tham gia vào đối tượng(một đối tượng được gọi trng tiến trình của một sự kiện nghiệp vụ) không chắc tập tất cả các điều kiện tiên quyết bởi đối tượng gặp phải.Các điều kiện tiên quyết này có thể đượcđịnh nghĩa bằng phân tích,nhưng cũng bao gồm các điều kiện có thể được điều khiển từ các phần khác của model.Ví dụ,các liên kết giữa các lớp sẽ hướng tới các điều kiện tiên quyết để duy trì tính toàn vẹn liên quan

+Bước 2:Tương tự như bước 1,sự kiện xủa lý phục hồi từ mỗi đối tượng tham gia vào trạng thái hiện tại của nó(hoặc tham chiếu tới sự trả về trạng thái của đối tượng)

và kiểm tra các trạng thái cho phép xử lý sâu hơn của sự kiện

Trang 37

+Bước 3: Nếu tất cả các kết quả cảu các nhiệm vụ trong bước 1 và bước 2 là có thể (điều này nghĩa là không có các ngoại lệ xảy ra),sự kiện xử lý sẽ gọi các phương thức trong việc thực thi đối tượng,trả về với sự kiện đã sẵn sàng thực hiện

+Bước 4:Tiếp theo,(Nếu tất cả các kết quả của các nhiệm vụ ở bước 1 và bước 2 là

có thể) sự kiện sử lý sẽ thực thi tất cả các trạng thái đối tượng đã được phục hồi trong bước 2

Hình 18: Mẫu collaboration chuẩn cho sự sinh sự kiện handle_event()(Bước 3 và

bước 4)[8]

Trong trường hợp các kết quả của bước 1 và/hoặc 2 không thỏa mãn một ngoại lệ.Trong ứng dụng đầu tiên,người dùng sẽ xem các ảnh báo ngoại lệ này như là một thông điệp báo rằng có cái gì đó đã sai và tại sao tiến trình xử lý sự kiện lại không cho phép

Ngày đăng: 26/07/2017, 21:00

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w