ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ Quách Hồng Nam
VẬN DỤNG CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG PHAT TRIEN HE THONG QUAN LY, CAP
CHUNG MINH NHAN DAN DIEN TU
Chuyén nganh: CONG NGHE THONG TIN Ma so: 1.01.10
LUAN VAN THAC SI
Người hướng dẫn khoa học: PGS.TS Nguyễn Văn Vy
Nc N-LO/366
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ Quách Hồng Nam
VẬN DỤNG CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG PHAT TRIEN HE THONG QUAN LY, CAP
CHUNG MINH NHAN DAN DIEN TU
Chuyén nganh: CONG NGHE THONG TIN Ma so: 1.01.10
LUAN VAN THAC SI
Người hướng dẫn khoa học: PGS.TS Nguyễn Văn Vy
Nc N-LO/366
Trang 3MỤC LỤC
TRANG
TÔI GTCT THIẾU 7 a ca ca 1
CHUONG 1
PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG -22222+z+22vxrrsrrree 3
1.1 Quá trình chung để phát triển phần mềm hướng đối tượng 3 1.2 Các ưu điểm của tiếp cận hướng đối tượng - -: ++: 6 1 3 Những vấn đề đặt ra trong việc khai thác phân mềm hướng đối tượng 7
(CHUONG 2
CÁC CÔNG CỤ HỖ TRỢ PHÁT TRIỀN HƯỚNG ĐỐI TƯỢNG 8
2.1 Khái quát về ÚMT 2c aeoieerieresaemrdre §
2.2: Kiến trúc trone DMT ca cac ốc Ÿẽ nen cŸnôiiee 10
2.2.1 Mó hình khái niệm của Má 16c nceeGeeinoioioiieeeseede 11
222, Cac KG RAY GUNE ái 22726601067 210Á52416ieegL001514000 408062260233 10h 11 2.2.3, LÁC quản BỆ 2.2m inervorewtaieresarerenrase-ge sons cobtnendecsnsdeennsatvsnoches 19
7.2.1 Củc biểu AG trons NE ca co c0 cà co ro ng 25 1.4 Các quy tác của NỈ na eninseeeiaeennereeee 30 2,5 Cñu cơ chế chữHÐ 2222-12 ca 120 0nsirecnniesloi900S002000030005Đe- 31 2.6 Une ding cid UM occ ee ede ee te 32 (CHUONG 3
WAN DUNG CONG NGHE HUONG DOI TUGNG XAY DUNG MO HINH (CHO HE THONG QUAN LY CHUNG MINH NHAN DAN DIEN TU
Trang 433.PhintiEDcøsu d0nD con an eee 39-
8121: ( 1 1401H50:/08A HD LIONHD i ishing ee ie 39
3.5.2; Dany Sach Cac Ca SU QUIG c2 1a 260516 xã2 bia bế sec a2: ấp: lạil4t9 tên; BH 40
3.3.3 Mô hình ca sử dụng, mô tả các ca sử dụng, mô hình miền 42
333] (70icds/ dua Quan lý HeHtl HUẾ cv ae ề 43 3.3.3.2 Gói ca sử dụng quản lý nhập dữ liệu hồ sơ CMND 49
3.3.3.3 Mô tả ca sử dụng gói nhập ảnh của Công dân - - 57
3.3.3.4 Mô tả ca sử dụng gói nhập vân tay của Công dân 62
3.3.3.5 Mô tả ca sử dụng gói thiết lập in ấn CMND - 67
3.3.3.6 Mô tả ca sử dụng gói tra cứu thông tin CMND và kiểm tra CMND 7 I 3.3.3.7 Mô tả ca sử dụng gói thống kê báo cáo kết quả cấp CMND 74
CHƯƠNG 4 PHÂN TÍCH VÀ CÀI ĐẶT CHƯƠNG TRÌNH 76
4.1 Kiến trúc hệ thống quản lý, cấp chứng mỉnh nhân dân điện tử 76
§.1.1 Đặc tả kiến trúc Tiệ (HỐHG: sácccecociiceeeeeniisssssoosssiseenosgA066942g08ssaSe 76 4.1.2, Giải PháP (ông HHHÍ:, ecciacicebeCibaeieiicsaeiesllasaniidesssgzlasbsegeisseie 76 Ag Kite trite hệ thống - 7c c2 ccaoaadaaseei 71 M21 Cap Guan, Riel PA sis no es Ca 79 W.2.2 (án IHÌ (hành BHÀ acc bì c0 7210107 ee ces 79 B25 CAD WARE WONG 0 ai 06062 ee 80 4.3 Phân tích cài đặt hệ thống quản lý, cấp CMND điện tử 82
Trang 5LỜI NÓI ĐẦU
Trong những năm gần đây việc ứng dụng và phát triển công nghệ phần mềm là một phần quan trọng trong khâu sản xuất phân mềm Nhiều dự án,
nhiều chương trình phần mềm đã được thực hiện nhưng chưa kết thúc hoặc
xây dựng xong vẫn không thực hiện được hoặc còn nhiều lỗi không đáp ứng được yêu cầu của người sử dụng Vì vậy, để xây dựng một phần mềm tốt cần
phải chú ý tới các vấn đề chính như sau:
- Dữ liệu, đối tượng và cấu trúccủa hệ thống
- Những hành vi thể hiện các chức năng trong hệ thống - Điều khiển hành vi tổng thể của hệ thống
Trên thực tế, cấu trúc dữ liệu của hệ thống phải thường xuyên thay đổi
theo yêu cầu của người sử dụng Vì vậy, việc khảo sát, phân tích, thiết kế hệ thống là một công việc rất phức tạp và quan trọng trong quá trình xây dựng và
phát triển một phần mềm Phân tích bài toán, lựa chọn phương pháp phát triển hệ thống thích hợp để hệ thống có rính mở, dễ thích nghĩ, chất lượng cao, giúp
cho việc bảo trì hệ thống đỡ tốn kém
Trong các giải pháp phát triển phần mềm hiện nay, giải pháp phát triển
phần mềm hướng đối tượng là một giải pháp tốt cho những hệ thống phần
mềm, nó có nhiều ưu điểm so với phương pháp hướng chức năng truyền thống
Do đó, việc nghiên cứu và vận dụng phương pháp phân tích, thiết kế hướng đối tượng sử dụng UML (UML là ngôn ngữ mô hình hố, ngơn ngữ
chuẩn thống nhất để viết ra bản kế hoạch chỉ tiết phân mềm) để phát triển
phần mềm, giải quyết những bài toán lớn có dữ liệu phân tán là hết sức cần thiết Bài toán phát triển hệ thống quản lý, cấp Chứng minh nhân dân điện tử
là một trong những bài tốn ứng dụng cơng nghệ này Đây là một bài toán lớn,
có dữ liệu phân tán Tuy nhiên, hiện nay ở nước ta chưa có một hệ thống quản
Trang 6cầu đặt ra do đó việc ứng dụng công nghệ thông tin vào công tác quan lý, cấp chứng minh nhân dân đang trở nên cấp bách nhằm ngăn chặn tình trạng làm giả CMND, phát hiện những dấu hiệu nghi vấn thông qua việc sử dụng CMND Hiện nay, vấn đề này đã được Bộ Công an xây dựng dự án trình
Chính phủ phê duyệt để triển khai trong thời gian tới Với đề tài “Vận dụng công nghệ hướng đối tượng phát triển hệ thống quản lý, cấp Chứng mình
nhân dân điện tử ” gồm những nội dung sau:
CHƯƠNG 1: PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG
CHƯƠNG 2: CÁC CÔNG CỤ HỖ TRỢ PHÁT TRIỀN HƯỚNG ĐỐI TƯỢNG
CHƯƠNG 3: VẬN DỤNG CÔNG NGHỆ HƯỚNG ĐỐI TƯỢNG XÂY DỰNG MƠ HÌNH CHO HỆ THỐNG QUẢN LÝ CẤP CMND ĐIỆN TỦ
CHƯƠNG 4: PHÂN TÍCH VÀ CÀI ĐẶT CHƯƠNG TRÌNH QUẢN LÝ CMND
Nội dung đề tài giới thiệu phương pháp hướng đối tượng, các công cụ hỗ
trợ phát triển hướng đối tượng Đặc biệt, đề tài đã vận dụng các công cụ thiết kế hướng đối tượng sử dụng UML - một ngôn ngữ mơ hình hố thống nhất
đang được sử dụng phổ biến trên thế giới để ứng dụng vào việc phân tích, thiết kế và cài đặt hệ thống quản lý, cấp chứng minh nhân dân điện tử
Cuối cùng, em xin chân thành cảm ơn PGS.TS Nguyễn Văn Vy - người đã tận tình giúp đỡ em trong quá trình thực hiện luận văn Em xin chân thành
cảm ơn các thầy, các cô khoa Công nghệ - Đại học Quốc gia Hà Nội; các
đồng nghiệp Phòng quản lý hành chính - Cục C13, Cục E15 - Bộ Công an đã
giúp đỡ em hoàn thành luận văn tốt nghiệp này
Hà Nội, ngày 20 tháng Š năm 2004
Trang 7CHUONG 1
PHƯƠNG PHÁP HƯỚNG ĐỐI TƯỢNG
Ngày nay, do sự tiến bộ nhanh chóng về công nghệ phần cứng, sức mạnh của máy tính tăng nhanh sau mỗi khoảng thời gian Thách thức đặt ra
cho công nghệ phần mềm là phải phát triển phần mềm như thế nào để tận
dụng được các tiềm năng to lớn của phần cứng Vì vậy, xu hướng phát triển phần mềm ngày càng lớn, càng tinh vi và phức tạp Trong mọi lĩnh vực, các dữ liệu, các mối quan hệ của mọi hệ thống kinh tế xã hội đều được xử lý một cách nhanh chóng trên máy tính Hệ thống càng phát triển, tức là càng nhiều
yếu tố hợp thành thì mối quan hệ giữa chúng càng trở nên phức tạp Để xử lý
lượng thông tin lớn như vậy, cần phải có những phương pháp, công cụ hiện đại, công nghệ phát triển phần mềm hướng đối tượng cùng với các cơng cụ tự
động hố đi theo nó đã trở thành một giải pháp công nghệ hữu hiệu cho các vấn đề đặt ra [1] Phân tích thiết kế hướng đối tượng trở thành một yêu cầu tất
yếu trong công nghệ phát triển phân mềm Tiến trình phát triển phần mềm
thống nhất và ngôn ngữ mơ hình hố thống nhất là phương pháp luận và công
cụ điển hình cho công nghệ phát triển phân mềm hướng đối tượng
1.1 QUA TRINH CHUNG DE PHAT TRIEN PHAN MEM HƯỚNG ĐỐI TƯỢNG
Tiến trình thực hiện một bước lặp bao gồm xác định yêu cầu của hệ thống, phân tích, thiết kế, triển khai và kiểm thử là nội dung cơ bản của tiến trình phát triển phần mềm hướng đối tượng Trong các hoạt động đó, hoạt động phân tích và thiết kế đặt ra nhiều vấn đề nan giải hơn cả.[5]
Những vấn đề đặt ra trong phân tích thiết kế hướng đối tượng:
Đặc điểm của phân tích và thiết kế hướng đối tượng là nhìn nhận hệ
thống như một tập các đối tượng tương tác với nhau để tạo ra một hành động
Trang 8- - Tính trừu tượng hoá cao - _ Tính bao gói thông tin - Tinh mé dun hoa
- Tinh ké thita
Ngày nay, UML là công cụ được thiết kế có nhiều tính chất và đặc điểm giúp ta xây dựng được các mô hình đối tượng có các đặc trưng ở trên
Lập mô hình nghiệp vụ
Để có thể nắm bắt được yêu cầu hệ thống, trước hết phải nắm và hiểu
được hệ thống nghiệp vụ Việc mô tả các yêu cầu của hệ thống nghiệp vụ đầy đủ là cần thiết để đạt được sự nhất trí giữa khách hàng và những người phát triển hệ thống cần làm và không nên làm, những điều kiện ràng buộc đặt ra cho chúng Mục tiêu của bước này là để hiểu đúng và đây đủ về hệ thống mà ta cần phải tin hoc hoá thuần tuý về mặt nghiệp vụ Muốn vậy, trước hết cần
xác định phạm vi và chức năng hệ thống cần nghiên cứu bằng cách liệt kê các chức năng mà hệ thống thực hiện, chỉ ra mối quan hệ của nó với môi trường thông qua việc sử dụng các chức năng của hệ thống Tiếp đó cần tìm các ca sử dụng nghiệp vụ từ các chức năng của hệ thống mà qua đó con người và các hệ thống khác sử dụng ching [1]
Xác định yêu cau hệ thống
Nhiệm vụ chính trong xác định yêu cầu là phát triển một mô hình của
hệ thống cần xây dựng bằng cách dùng các ca sử dụng Điều này là tự nhiên, bởi vì các yêu cầu về chức năng được cấu trúc thành các ca sử dụng và do phần lớn các yêu cầu phi chức năng đều là riêng đối với một ca sử dụng đơn nên chúng cũng được xử lý trong các ca sử dụng đó Để mô tả các yêu cầu nghiệp vụ dưới góc độ phát triển phần mềm ta cần tìm các tác nhân và các ca sử dụng để chuẩn bị một phiên bản đầu tiên của mô hình ca sử dụng Sau đó,
Trang 9Phân tích
Nhiệm vụ của pha phân tích là làm mịn dân các yêu cầu đã nhận được từ pha trước và tạo cấu trúc cho chúng Thông qua đó, các yêu cầu được hiểu
chính xác hơn, từ đó đưa ra cấu trúc cho toàn bộ hệ thống
Nhiệm vụ của pha phân tích là tìm ra cách thức để thực hiện các yêu
cầu của hệ thống đã được xác định trong các ca sử dụng Cụ thể là, cần phân
tích mô hình ca sử dụng bằng cách tìm ra cách tổ chức các thành phần bên
trong của hệ thống để thực hiện mỗi ca sử dụng Những thành phần cấu trúc bên trong hệ thống ở đây chính là ba loại lớp phân tích Công việc xác định các lớp không phải làm tuỳ tiện mà thực hiện theo từng ca sử dụng, trước hết cho các ca sử dụng theo thứ tự ưu tiên được sắp Sau đó, cấu trúc lại cách tổ
chức các thành phần này của hệ thống Để đạt mục tiêu này cần tiến hành các hoạt động [5]: - _ Phân tích kiến trúc hệ thống - - Phân tích một ca sử dụng - _ Phản tích một lớp - Phan tích một gói
Trong quá trình phân tích, ta sẽ liên tục tìm các gói, các lớp phân tích
mới và các yêu cầu chung khi tiếp tục làm mịn mô hình bằng cách phân tích
các gói phân tích và duy trì các gói đó
Thiết kế
Trong thiết kế, chúng ta định hình hệ thống và tìm hình thức thể hiện về
mặt vật lý của nó (kể cả kiến trúc) để thực hiện mọi yêu cầu được đặt ra cho
hệ thống Một đầu vào cho thiết kế là mô hình phân tích Khi thiết kế ta sẽ cố
gắng bảo tôn được càng nhiều càng tốt cấu trúc của hệ thống được định hình
từ mô hình phân tích Kết quả của thiết kế là mô hình thiết kế và mô hình triển
khai được thể hiện dưới dạng một loạt các mô hình cụ thể Mô hình thiết kế
thực thi mô hình phân tích khi tính đến các điều kiện của môi trường để thực
Trang 10Để nhận được mô hình thiết kế ta cần thực hiện các công VIỆC Sau:
Thiết kế kiến trúc
Thiết kế một ca sử dụng Thiết kế một lớp
Thiết kế một hệ thống con
Mô hình thiết kế là một mô hình đối tượng mô tả sự thực thi các ca sử
dụng về mặt vật lý bằng cách tập trung vào việc xác định các yêu cầu chức
năng và phi chức năng, cũng như các ràng buộc khác liên quan đến môi
trường triển khai và ảnh hưởng của nó lên hệ thống Đặc điểm của cách tiếp cân hướng đối tượng
Sử dụng kết hợp cả hai cách thiết kế: trên - xuống (top-down) và dưới-
lên (bottom-up) Kỹ thuật phân rã chức năng trên-xuống được áp dụng để thiết kế các lớp, còn cấu trúc cả hệ thống được xây dựng dựa trên kiến trúc đơn thể
được đặc tả trong miền ứng dụng và hỗ trợ một phần trong việc sử dụng lại -
cách tiếp cận đưới - lên với nguyên lý che dấu thông tin cho phép sử dụng lại một cách tối đa
1.2 CÁC ƯU ĐIỂM CỦA TIẾP CẬN HƯỚNG ĐỐI TƯỢNG
= Những đối tượng được thiết kế tốt trong hệ thống hướng đối tượng là cơ sở để kết hợp các đơn thể (module) được sử dụng lại thành hệ
thống có chất lượng cao hơn
» Cơ chế tương tác bằng cách truyền thông điệp giữa các đối tượng đảm bảo cho việc mô tả các giao diện giữa các modul bên trong hệ
thống và hệ thống bên ngoài trở nên dễ dàng hơn
= Viéc phân tích và thiết kế theo cách phân bài toán thành các đối tượng là hướng tới lời giải của thế giới thực, là tự nhiên hơn so với
cách phân rã theo chức năng từ trên xuống (Top-down)
Trang 11= Nguyên lý thiết kế dựa vào sự bao gói cả dữ liệu và xử lý trong một đối tượng rất phù hợp với ngữ nghĩa của mô hình trong cài đặt
“ Lập trình hướng đối tượng và kỹ thuật kế thừa cho phép xác định các modul và sử dụng ngay sau khi chúng chưa thực hiện đầy đủ các chức năng và sau đó mở rộng các đơn thể đó mà không ảnh hưởng
tới các đơn thể đã có
= Tiếp cận hướng đối tượng cung cấp cho ta công cụ hỗ trợ giải quyết
độ phức tạp của bài toán bằng việc phân rã thành các thành phần độc lập tương đối với nhau
“ Hệ thống hướng đối tượng dễ dàng mở rộng thành các hệ thống có
quy mô lớn hơn nhờ tương tác giữa các đối tượng thông qua việc gửi và nhận thông báo
= Vé van dé phát triển và bảo trì hệ thống đơn giản hơn do có sự phân hoạch rõ ràng, là kết quả của việc bao gói thông tin và sự kết nối
Trang 12CHƯƠNG 2
CÁC CÔNG CỤ HỖ TRỢ PHÁT TRIỂN HƯỚNG ĐỐI TƯỢNG Phương pháp phân tích thiết kế hướng đối tượng sử dụng ngôn ngữ
UML cung cấp phương tiện đủ mạnh để xác định các đối tượng và xây dựng
các đơn thể của hệ thống phần mềm
2.1 KHÁI QUÁT VỀ UML
UML là một ngôn ngữ chuyên dụng
UML được đưa vào sử dụng từ năm 1997 và nhanh chóng được công
nghiệp phân mềm chấp nhận là ngôn ngữ đồ hoạ chuẩn để đặc tả, xây dựng và làm tài liệu cho các hệ thống phần mềm chuyên sâu
UML là ngôn ngữ mơ hình hố, ngơn ngữ chuẩn thống nhất để viết ra
bản kế hoạch chỉ tiết phân mềm Nó mô tả ký pháp thống nhất, ngữ nghĩa và
các định nghĩa chính mơ hình hố Các khung nhìn ngôn ngữ cho phép nhìn
nhận hệ thống phát triển ở các mức độ khác nhau, dễ sử dụng, đễ hiểu Như
mọi ngơn ngữ mơ hình hố khác, UML có ký pháp (các biểu tượng sử dụng
trong mô hình) và tập các quy tắc sử dụng để mơ hình hố các hệ thống của
thế giới thực [1]
s%* UML là một ngôn ngữ
Là một ngôn ngữ UML có từ vựng và quy tắc tổ hợp các từ vựng nhằm
mục đích giao tiếp Ngôn ngữ mô hình là ngôn ngữ có từ vựng và quy tắc tập trung thể hiện về mặt vật lý và khái niệm của hệ thống Vì vậy, UML là ngôn
ngữ chuẩn công nghiệp để viết ra kế hoạch chi tiết phần mềm
* UML là ngôn ngữ để biểu diễn đồ hoạ
Đối với nhiều lập trình viên, không có khoảng cách giữa ý tưởng cài đặt
và chuyển nó thành mã, họ suy nghĩ vấn đề và viết ngay mã trình cho nó Tuy nhiên, việc giao tiếp giữa mô hình khái niệm với những cái khác trong vòng
đời phát triển phần mêm sẽ gặp khó khăn khi mọi người không sử dụng chung
một ngôn ngữ cho dự án Đặc biệt có những dự án và tổ chức phát triển phần
Trang 13tham gia dự án Hơn nữa một số vấn đề của hệ thống phần mềm sẽ được hiểu rõ ràng hơn thông qua mô hình thay cho ngôn ngữ lập trình văn bản Cuối cùng, nếu người viết mã không bao giờ viết thành các mô hình thì thông tin có thể mất hoặc không thể viết lại một cách đây đủ nếu chỉ xem mã lệnh trong trường hợp người viết mã chuyển đi nơi khác làm việc
Để khắc phục những nhược điểm trên, ta sẽ sử dụng ngôn ngữ UML để
xây dựng các mô hình khác nhau:
-_ Mỗi ký pháp trong UML mang một ngữ nghĩa rõ ràng nên nếu một người trong đội phát triển viết mô hình UML thì người khác có thể hiểu được, thậm chí các công cụ khác cũng có thể dịch được những mô hình đó một cách rõ ràng - Các cấu trúc mô tả dưới dạng các mô hình đồ hoạ nên dễ dàng nắm bắt - _ Mô hình rõ ràng sẽ làm cho việc trao đổi, giao tiếp trở nên dễ dàng % UML là ngôn ngữ đặc tả
Đặc tả là mô tả rõ ràng nhất những điểm mấu chốt của vấn dé UML
cho phép mô tả chính xác, rõ rang UML tap trung đặc tả toàn bộ các quy định
phân tích, thiết kế và cài đặt quan trọng trong quá trình phát triển và triển khai
hệ thống phần mềm
* UML là ngôn ngữ để tạo mã
UML không phải là ngôn ngữ lập trình trực quan Những mô hình của nó có thể kết nối trực tiếp tới các ngôn ngữ lập trình khác nhau Điều đó có
nghĩa là có thể ánh xạ từ mô hình trong UML sang một ngôn ngữ lập trình
khác như Java, C' hoặc Visual Basic, thậm chí có thể sang các bảng trong cơ
sở dữ liệu quan hệ hoặc cơ sở dữ liệu hướng đối tượng Đồng thời có thể thực hiện ngược lại tir cai dat mo hinh UML Điều đó có nghĩa nó cho phép chúng
ta có thể làm việc với văn bản, chương trình, hay đồ hoạ một cách nhất
Trang 14‹*» UML là ngôn ngữ làm tài liệu
UML hướng tới làm tài liệu kiến trúc hệ thống và các chỉ tiết của nó UML cho kha nang biểu diễn yêu cầu, thử nghiệm, mơ hình hố các hoạt
động lập kế hoạch và quản lý sản phẩm
- UML cho biết giới hạn của hệ thống và các chức năng của nó thông qua
các ca sử dụng (Use case) và tác nhân (Actor)
- Trong UML các ca sử dụng được mô tả bằng biéu dé logic
- Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đồ lớp
- Mô hình hoá các hành vi đối tượng bằng biểu đồ chuyển trạng thái
- Phản ánh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đồ triển
khai
- Mở rộng khả năng mô tả các chức năng và hành vi hệ thống bằng khuôn
mẫu (stereotypes) [5]
1.2 KIẾN TRÚC TRONG UML
Kiến trúc phần mềm cho ta một cái nhìn khái quát nhất về hệ thống
phân mềm ở các góc độ khác nhau Mỗi khung nhìn phản ánh về một khía
cạnh tổ chức và cấu trúc của hệ thống, tập trung vào từng mat cụ thể giúp cho
ta hiểu và sử dụng hệ thống tốt nhất
Khung nhìn ca sử dụng cho ta cách sử dụng chức năng để mô tả hành vi của hệ thống khi nhìn nhận hệ thống dưới góc độ người dùng cuối cùng và các
nhà phát triển
Khung nhìn thiết kế bao gồm các lớp, các giao diện, các cộng tác tạo nên từ vựng để đặc tả các vấn đề và các giải pháp cho nó Khung nhìn này hỗ
Trang 15Khung nhìn tiến trình của hệ thống chứa các luồng và tiến trình công
việc tạo nên cơ chế hoạt động tương tranh
Khung nhìn triển khai của hệ thống bao gồm các thành phần và các file được kết hợp lại cho ra các hệ thống vật lý Khung nhìn này hướng đến việc quản lý cấu hình của hệ thống
Khung nhìn bố trí bao gồm các nút tạo nên kết cấu phần cứng mà trên
đó hệ thống vận hành Khung nhìn này chủ yếu hướng đến sự phân tán và cài đặt cụ thể của hệ thống [Š] 2.2.1 Mô hình khái niệm của UML(conceptional model) CÁC KHỐI XÂY DỰNG ae Su vat Quan hé Biểu đồ Sự vật Sự vật Sự vật Sự vật chú | | Phụ thuộc | | Ca sử dụng cấu trúc hành vi | | nhóm gộp ‘ thích Liên kết | | Lớp Tong quat Đối tượng hoá Tuần tự Cộng tác Trạng thái Ca sử dụng Tương tác Gói Ghi chú Hoạt động Lớp Máy trạng Mô hình Thành phần Lớp hoạt thái Hệ thống con Bố trí động Khung làm Giao diện VIỆC Thành phan Sự cộng tác Nút
Hình 2.2: Các cấu trúc thành phần của UML
Ba khối chính tạo nên UML là các khối xây dựng, các quy tác ngữ nghĩa và một số cơ chế chung được áp dụng cho mơ hình hố
2.2.2 Các khối xây dựng
Các sự vật là các trừu tượng hoá, là phần tử lớp đầu tiên để xây dựng
nên các mô hình trong UML Các quan hệ gắn kết các sự vật lại với nhau, các 11
Trang 16biểu đồ nhóm các sự vật được quan tâm lại tạo nên ngữ nghĩa của nó (cho một
mô hình)
a Các sự vật cấu trúc (structural things)[10]: Bao gồm
Lớp (class): Một lớp mô tả một tập hợp các đối tượng có chung các thuộc tính, các tác vụ, các mối quan hệ và ngữ nghĩa Một lớp có trách nhiệm
thực hiện một hay nhiều giao diện Một lớp được biểu diễn bằng một hình chữ
nhật bên trong có tên, thuộc tính và các tác vụ (phương thức) Công dân —}————— Tên Tên: Text i ——†———>* Ngày sinh: Date Thuộc tính Tao() XemQ ——†———> Phương thức InQ Hình 2.3 Lớp Một lớp có ba thành phân như sau: tên lớp, thuộc tính và các phương thức (ứng xử) của lớp
Tên lớp thường là danh từ, ví dụ: Công dân
Các thuộc tính được coi là đúng nếu nó bao gồm các thông tin để mô tả và nhận đạng một thực thể cụ thể của một lớp Tuy nhiên chỉ nên đưa vào các thuộc tính mà hệ thống quan tâm Mỗi một thuộc tính đều thuộc một kiểu dữ liệu nào đó Kiểu đữ liệu nguyên thuỷ bao gồm các kiểu như: Integer,
Boolean, Real Ngoài ra các thuộc tính còn có khả năng nhìn thấy được
(Visibility) bao gồm public, private va protected Néu mot thudc tinh 1a
public nghĩa là một lớp khác có thể tham chiếu đến và sử dụng thuộc tính đó Néu 1a private thì các lớp khác không thể tham chiếu đến thuộc tính này
Các phương thức là một lớp thực thực hiện Các phương thức thường duoc goi 1a cc ham (funtion) nhung chúng chỉ thuộc vào lớp đó và áp dụng
đối với các đối tượng của lớp đó Cũng giống như các thuộc tính, các phương
thức cũng có phạm vi và khả năng nhìn thấy được
Đối tượng là khái niệm dùng để mơ hình hố một vật hoặc một khái niệm trong thế giới thực, có thể là một phần của bất kỳ loại hệ thống nào như
Trang 17thi trong hệ thống phân mềm) không tồn tại một cách trực tiếp trong thế giới thực nhưng nó phát sinh bắt nguồn từ việc nghiên cứu cấu trúc và hành vi của các đối tượng trong thế giới thực Vì thế các đối tượng liên quan đến hiểu biết cúa chúng ta về thế giới thực bởi đối tượng là thể hiện một lớp nào đó
Ký pháp: trong UML đối tượng được thể hiện bởi một hình chữ nhật với ten ở bên trong Tên đối tượng được gạch chân Hình tròn Hình 2.4: Đối tượng
Giao diện (interface): Một giao diện là một tập hợp các tác vụ đặc tả
một dịch vụ của một lớp hoặc một thành phan Mot giao diện biểu diễn bằng
một hình tròn với tên của nó:
Ispenlling
Hình 2.5: Giao diện
Sự cộng tác (collaboration): Sự cộng tác xác định các hoạt động bên
trong hệ thống và là một bộ các nguyên tác Các phần tử khác nhau cùng làm việc để cung cấp một hành vi hợp tác lớn hơn tổng hành vi của tất cả các phần tử Một sự cộng tác được biểu diễn bằng một hình elip với đường nét đứt và thường chỉ gồm có tên:
Hình 2.6: Sự cộng tác
Ca sử dụng (Use case): Một ca sử dụng mô tả một tập hợp dãy hành động mà hệ thống thực hiện để cho một kết quả quan sát được các giá trị đối
Trang 18Những chức năng mà hệ thống cung cấp sẽ được mô tả trong mỗi ca sử
dụng Trong đó mô tả những chức năng, những thành phần bên ngoài - tác
nhân (Actor) tương tác với hệ thống với mối quan hệ giữa ca sử dụng và tác nhân (biểu đồ ca sử dụng) Nói một cách chính xác hơn, ca sử dụng mô tả
trình tự các hành động của một tác nhân nào đó, sử dụng một phần chức năng
của hệ thống để hoàn thành một tiến trình Vì thế, đối với người sử dụng, ca sử
dụng mô tả để họ sử dụng hệ thống; nó mô tả các tương tác giữa một số tác
nhân và hệ thống thông qua dịch vụ mà hệ thống cung cấp cho các tác nhân
Mỗi ca sử dụng là một bộ phận các yêu cầu chức năng của người sử dụng Kết
hợp các ca sử dụng lại với nhau ta có được mơ tả về tồn bộ yêu cầu chức
năng của hệ thống Các ca sử dụng cho phép những người phát triển phần mềm và khách hàng thoả thuận được về các yêu cầu, điều kiện cũng như các khả năng mà hệ thống phải tuân theo
Tac nhan: Mot tác nhân thể hiện một tập hợp các vai trò mà các thực
thể ngoài (đối với hệ thống) có thể thực hiện khi sử dụng hệ thống Một tác nhân thể hiện một nhóm người, một bộ phận, một tổ chức hoặc các hệ thống
nào khác có tương tác với hệ thống đó Tương tác của tác nhân với hệ thống có thể:
> Cung cấp thông tin cho hệ thống > Lay thong tin tir hé thống
> Nhan thong tin tir hé thống và cung cấp thông tin cho hé thong Mot s6 dac diém cua tac nhan:
> Một tác nhân có tên và tên đó phản ánh vai trò của tác nhân Tên không nên phản ánh một thực thể đặc trưng của tác nhân và cũng không phản ánh chức năng của tác nhân
> Các tác nhân tương tác với hệ thống bằng cách gửi và nhận thông báo với hệ thống như nó thực hiện với các ca sử dụng
> Nếu có nhiều hơn một tác nhân trong một ca sử dụng thì tác nhân kích thích được gọi là “tác nhân khởi tạo” hay “tác nhân chủ động” và các tác nhân
Trang 19> Các tác nhân tương tác trực tiếp với hệ thống được gọi là các tác nhân
chính hay các tác nhân trực tiếp, các tác nhân còn lại được gọi là các tác nhân
thứ yếu
Cách xác định các tác nhân: dựa vào việc nhận dạng các tác nhân Các thực thể quan tâm đến việc sử dụng và tương tác với hệ thống tức là phải xác định xem nó đòi hỏi gì ở hệ thống cũng như cần đến những ca sử dụng nào để
sử dụng hệ thống?
Khi mô tả một tác nhân cần chỉ rõ vai trò của tác nhân khi tương tác với
hệ thống Ví dụ, với hệ thống quản lý chứng minh nhân dân có một tác nhân
là nhân viên nhập dữ liệu, ta có thể mô tả một cách ngắn gọn như sau:
Nhân viên nhập dữ liệu: là những người nhập dữ liệu cho Công dân đến
xin đăng ký cấp Chứng minh nhân dân
Tác nhân được biểu diễn bằng hình tượng sau:
Xác định ca sử dụng:
Có hai cách xác định ca sử dụng trong hệ thống:
> Xác định thông qua các tác nhân: xác định các tác nhân nào có liên
quan tới hệ thống hoặc tổ chức, tìm và mô tả tất cả các tác nhân bằng cách xem người dùng nào sẽ sử dụng hệ thống và hệ thống nào khác tương tác
với nó Với mỗi tác nhân xác định các quá trình mà nó khởi tạo hoặc tham
gia vào bằng cách xem tác nhân trao đổi/ tương tác hoặc sử dụng với hệ
thống như thế nào?
> Xác định thông qua các sự kiện: những sự kiện nào hệ thống đáp
ứng lại hoặc có hành vi ứng xử tương ứng
Mối quan hệ giữa các sự kiện với tác nhân, sự kiện với hệ thống
Khi xác định các ca sử dụng cần thảo luận, trao đổi với người dùng hệ
thống và nên xem xét lại các dữ liệu đặc tả yêu câu để có thể trả lời một số
câu hỏi sau:
Nhiệm vụ chính của tác nhân là gì?
e Tác nhân sẽ phải đọc, viết hay thay đổi thông tin hệ thống?
Trang 20e_ Tác nhân sẽ phải cung cấp tin tức cho hệ thống về những thay đổi bên ngoài hệ thống?
e Tác nhân mong muốn được cung cấp tin tức về sự thay đổi không?
Thành phần (Component): Thành phần là một bộ phận vật lý có thể
thay thế một hệ thống phù hợp với những điều kiện cụ thể và cung cấp phương tiện (tác vụ) thực hiện một tập các giao diện Một thành phần biểu diễn một gói vật lý các phần tử lôgic khác nhau như các lớp, các giao diện và sự cộng
tác Một thành phần được biểu diễn bằng một hình chữ nhật với các bảng, một thành phần thường bao gồm chỉ có tên của nó:
Orderform.java
Hinh 2.8: Cac thanh phan
Lớp chủ dong (active class): Mot lớp chủ động là một lớp mà các đối tượng của nó sở hữu một hay một số tiến trình hoặc các dãy thao tác Bởi vậy
nó có thể khởi động hoạt động điều khiển Một lớp chủ động được biểu diễn như một lớp nhưng có đường viền đậm: Công dân Tên: Text Ngày sinh: Date Tao() Xem() InQ Hình 2.9 Lớp hoạt động Nut (node): Mot nut là một phần tử vật lý tôn tại trong thời gian thực và
biểu diễn một tài nguyên tính toán, thường có ít nhất bộ nhớ và khả năng xử
Trang 21b Các sự vật hành vi (behavioral things): các sự vật hành vi là những bộ phận động của các mô hình UML, mô tả hành vi của hệ thống theo thời gian và không gian Có hai loại hành vi sơ cấp của sự vật:
Sự tương tác (interaction): sự tương tác là một hành vi bao gồm một tập các thông báo được trao đổi giữa một tập các đối tượng trong một khung
cảnh cụ thể nhằm thực hiện một mục tiêu xác định Một thông báo được biểu
diễn bằng một đường thẳng có hướng, gồm tên
Hiển thị
Thông báo
Máy trạng thái (state machine): một máy trạng thái gồm một SỐ các
phần tử biểu diễn các trạng thái, các chuyển dịch (từ một trạng thái này sang
một trạng thái khác), các sự kiện (các sự vật kích hoạt một chuyển dịch) Một trạng thái được biểu diễn bằng một hình chữ nhật góc tròn trong đó có tên
trạng thái và các trạng thái con của nó (nếu có)
fe Tra lai ban sao |
Hinh 2.11 Trang thai
Các su vat nhém gop (grouping thinks): Có một loại sự vật nhóm gộp
duy nhất là gói (package) Nó là công cụ để tổ chức các thành phần của một
mô hình thành các nhóm: một mô hình có thể được phân chia vào trong các
gói Một gói đơn thuần là một khái niệm
Gói cung cấp một cơ chế nhóm gộp để:
> Chỉ ra bức tranh lớn không quá đi sâu vào chỉ tiết
> Chỉ ra sự phụ thuộc giữa các lop > Chỉ ra chỉ tiết các tập hợp con cô lập
Thông thường một gói là tập hợp các lớp nhưng nó cũng có thể chứa các
gói khác Một lớp chỉ thuộc vào duy nhất một gói Một gói có thể tham chiếu
đến các gói khác hoặc phụ thuộc vào các gói, các lớp khác Tham chiếu của
| Be ve ™ NA _—
17 [PRUNG
Trang 22một gói chỉ ra rằng có một số lớp thuộc gói đó phụ thuộc vào một số lớp thuộc vào gói mà nó tham chiếu đến
Một gói được biểu diễn như một bảng thường chỉ gồm có tên và đôi khi
có nội dung của nó
Hình 2.12: Gói
Sự vật giải thích (Annontional things): sự vật gải thích là phần giải
thích của mô hình UML Nó có thể sử dụng để mô tả, giải thích và đánh dấu
một phần tử bất kì trong một mô hinh [5]
Dù ngôn ngữ có mức độ bao quát đến đâu thì vẫn còn các sự vật chưa được định nghĩa trong ngôn ngữ đó Để thể hiện được hết mọi điều trong mô hình, UML cung cấp khả năng lập chú thích Một chú thích có thể được đặt
bất cứ chỗ nào trong biểu đô và có thể chứa bất kỳ loại thông tin nào Loại
thông tin mà nó chứa không được UML thông dịch Chú thích được gắn vào
một vài phần tử trong biểu đồ với đường đứt nét chỉ ra phần tử nào được giải
thích thêm hay chỉ tiết hoá với thông tin trên chú thích Một chú thích thường
chứa các thông tin dẫn giải hay các câu hỏi từ người làm mô hình như lời nhắc
nhở để giải quyết các tình trạng khó xử sau này Một chú thích có thể có các khuon mau (stereotype) mô tả kiểu chú thích Một chú thích biểu diễn một lời
chú giải không có ảnh hưởng về ngữ nghĩa, nghĩa là nội dung của nó không làm thay đổi nghĩa của mô hình mà nó gắn vào Điều này giải thích tại sao các chú thích thường được sử dụng để đặc tả các yêu cầu, các nhận xét, các sự giải
thích và các ràng buộc
Một chú thích có thể chứa bất kỳ sự phối hợp văn bản hay đồ thị nào
Ta có thể đưa vào một URL, thậm chí liên kết hay nhúng vào một tài liệu khác
Trang 23Trả lại bản sao :
Hình 2.13: Chú thích
2.2.3 Các quan hệ:
a Quan hệ giữa ca sử dụng và tác nhân:
Quan hệ giữa ca sử dụng và tác nhân thường gọi là quan hệ tương tác vì
nó thể hiện sự tương tác giữa tác nhân và ca sử dụng Thông thường đây là quan hệ | - 1 không có hướng để chỉ ra rằng tác nhân có thể liên lạc với ca sử
dụng theo cả hai hướng Quan hệ này thể hiện bằng một đường thẳng nối giữa tác nhân và ca sử dụng.[7]
b Quan hệ giữa ca sử dụng với ca sử dụng
Các ca sử dụng quan hệ với nhau theo ba kiểu quan hệ là: mở rộng, bao
gồm và tổng quát hoá
Quan hé mé réng (extend): là một quan hệ tổng quát hoá trong đó một ca sử dụng mở rộng một ca sử dụng khác bằng cách đưa thêm các hành động
vào ca sử dụng tổng quát Ca sử dụng mở rộng có thể bao gồm các hành vi từ ca sử dụng được mở rộng thêm và phụ thuộc vào các điều kiện mở rộng Nó khơng bao gồm tồn bộ hành vi, nó có thể chọn một phân hành vi của ca sử dụng tổng quát mà nó muốn dùng lại Ca sử dụng được mở rộng là ca sử dụng hồn thiện Thơng thường các ca sử dụng được mô tả dưới dạng văn bản nên
cần xác định phần nào trong ca sử dụng mở rộng là được sử dụng lại từ ca sử
dụng tổng quát, phần nào là được định nghĩa lại, phần nào là thêm vào Một ca
sử dụng mở rộng là một cách để có thể kiểm soát các ngoại lệ, là trường hợp
đặc biệt của ca sử dụng tổng quát Quan hệ mở rộng giữa hai ca sử dụng được biểu diễn bằng mũi tên đứt nét nối giữa hai ca sử dụng hướng vào ca sử dụng được mở rộng và ký pháp khuôn mẫu “extend” ở bên cạnh.[2]
AC
Hình 2.14: Quan hệ mở rộng
Trang 24Quan hệ tổng quát hoá (genetalization): Khi một số các ca sử dụng kiểm soát các chức năng tương tự nhau có liên hệ với nhau theo một cách nào đó, chúng có thể được gói lại thành một gói trong UML Các nhóm gói liên hệ với các phần tử mô hình, có thể được mở rộng hoặc thu bớt lại thành một biểu tượng, cho phép người phát triển nhìn một gói tại một thời điểm Gói không mang ý nghĩa nào khác, nó chỉ tập hợp các ca sử dụng có các chức năng tương tự hoặc có các liên hệ với nhau
Quan hệ sử dụng (use): là một quan hệ tổng quát hoá mà trong đó một
số ca sử dụng có cùng những ứng xử chung, thì phần chung này được tách thành một ca độc lập và các ca sử dụng ban đầu chứa nó bây giờ sẽ “sử dụng” nó Người ta dùng mũi tên với hình tam giác rỗng để nối từ mỗi ca sử dụng
đến ca sử dụng chung được sử dụng và trên mỗi mũi tên này ghi thêm chữ
“se” Khi một ca sử dụng “sử dụng” ca sử dụng này cần phải sử dụng “đầy
đủ” tức là mọi chức năng của nó Tuy nhiên không đòi hỏi các chức năng đó được “sử dụng” theo một trật tự xác định nào đó [7]
c Các quan hệ giữa các lớp:
Các lớp và các đối tượng cùng với biểu đồ lớp, biểu đồ đối tượng cho ta
cái nhìn tĩnh về hệ thống Khía cạnh động hay ứng xử của hệ thống thể hiện
qua sự hợp tác của một tập hợp các đối tượng Trong hệ thống, một đối tượng luôn luôn có các mối quan hệ với các đối tượng khác Vì vậy, khi mơ hình hố
hệ thống ta không chỉ mô hình các đối tượng mà còn phải mơ hình hố quan hệ các đối tượng đó với các đối tượng khác UML cung cấp một số loại quan
hệ chính như sau:
d Quan hệ liên kết (Assocition):
Trong UML, liên kết là một quan hệ giữa hai lớp để xác định xem các
đối tượng của lớp này được liên kết và thực hiện công việc cùng nhau như thế
nào Giữa các đối tượng thuộc các lớp khác nhau phải có sự liên kết để chúng có thể tương tác và công tác với nhau nhằm thực hiện các tiến trình
Trang 25Ví dụ:
Công dân Đăng ký
Tham gia
Bản số Đối với một liên kết giữa hai lớp A và B, một thông tin quan trọng liên quan là có bao nhiêu đối tượng của lớp A có thể liên kết với một đối
tượng của lớp B tại một thời điểm Ta sử dụng lực lượng của A để mô tả thông tin nay.[8] 1.10 | Vi du: 1 * 1 * Hình 2.15: Bản số của quan hệ Ouy tắc để xác định các liên kết: Đối với bước phân tích, ta sử dụng quy tắc sau:
- Một quan hệ liên kết hữu ích thường mang mối quan hệ mà nó cần
- Một liên kết quan trọng giữa hai đối tượng phải thoả mãn vai trò cung
cấp một phương tiện cho phép đối tượng này cộng tác hay tương tác VỚI
đối tượng kia
Các quan hệ liên kết thường được ứng với một động từ hoặc một danh động từ Mỗi liên kết thường có một số ngữ nghĩa trong các quan hệ sau:
- Trật tự vật lý: tiếp theo (next to), là một phần của (part of), chứa trong
(contained in),
Trang 26- Hanh động định hướng: lái (drive),
- Tương tác: nói tới (talk to),
- Sở hữu: có (have), là một phần của (part of),
- Hoặc thoả mãn điều kiện: làm việc cho (work for), quản lý (manage), Quan hệ giữa liên kết và cài đặt: Trong bước phân tích một quan hệ liên kết không phải là một thể hiện về dòng dữ liệu và các biến đối tượng hay các liên kết đối tượng trong giải pháp phân mềm Quan hệ liên kết có thể được cài đặt
bằng nhiếu cách nhưng các quyết định đó không thực hiện trong bước phân
tích để đảm bảo tính tự do của thiết kế sau này
Khi tạo ra một mô hình khái niệm ta có thể định nghĩa nhiều quan hệ
liên kết không cân thiết cho quá trình xây dựng Ngược lại, ta có thể phát hiện
các quan hệ liên kết cần thiết cho cài đặt nhưng không có trong pha phân tích
Trong các trường hợp đó, mô hình khái niệm phải được cập nhật lại e Quan hệ kết tập (Shared Aggregation)[7]
Quan hệ kết tập là một dạng đặc biệt của quan hệ liên kết, nó biểu diễn
mối quan hệ toàn thể - bộ phận Nếu như quan hệ liên kết giữa hai lớp chỉ ra
một mối quan hệ mang tính cấu trúc giữa hai thành phần ngang hàng, có nghĩa là cả hai lớp cùng một cấp độ, không lớp nào quan trọng hơn lớp nào Đôi khi chúng ta muốn mơ hình hố một đối tượng toàn thể và các thành phần của nó,
chẳng hạn ta muốn thể hiện Nhân viên là thành viên của Trung tâm nhận hồ
sơc hay Trung tâm là bộ phận của một Viện Kiểu quan hệ này gọi là kết tập, thể hiện mối quan hệ “có”, “chứa trong”, “bao gồm”, “là một phần của `,
Trang 27Hai tính chất của quan hệ kết tập:
- Phản đối xứng (Anfisymmiry): Nếu một đối tượng A quan hệ với một
đối tượng B bằng một quan hệ kết tập thì B không thể quan hệ với A bảng
quan hệ kết tập đó Nói cách khác nếu B là một thành phần của A thì A không
thể là một phần của B.[5]
- Bắc cầu (Transitiviiy): Nếu A quan hệ với B bằng một quan hệ kết tập và B quan hệ với C cũng bằng quan hệ kết tập đó thì A cũng có quan hệ với C
Khi nào cần chỉ ra quan hệ kết tập?
Thời gian của đối tượng bộ phận bị giới hạn trong thời gian của đối
tượng kết tập nó Đây là phụ thuộc tạo/ xoá bỏ của đối tượng bộ phận trong
đối tượng toàn bộ Đối tượng bộ phận không thể tồn tại bên ngoài thời gian
tồn tại của đối tượng toàn bộ
Đây là một nhóm có quan hệ “toàn bộ - bộ phận” logic hoặc vật lý một cách rõ ràng
Một thuộc tính của đối tượng hợp được các đối tượng bộ phận thừa kế Các phép toán được áp dụng đối với đối tượng hợp cũng được thừa kế ở
các đối tượng bộ phận như: huỷ bỏ, đi chuyển, lưu trữ,
Nếu không chắc chắn khi nào sử dụng quan hệ kết tập thì không để ý
đến nó mà chú trọng vào các quan hệ liên kết đơn giản Hầu hết lợi ích của việc phát hiện là chỉ ra các quan hệ kết tập để liên hệ tới giải pháp cài đặt phan mém
Quan hé tu hop (Composition ageregation)[2]
Là một dạng đặc biệt của quan hệ kết tập nhưng nó chỉ ra rằng nếu đối tượng gộp (Aggregation) bị huỷ bỏ thì các đối tượng thành phần cũng bị huỷ bỏ Trong khi ở quan hệ kết tập khi đối tượng gỘp bị huỷ bỏ thì chỉ có các liên kết đến các thành phần của nó bị huỷ bỏ còn các đối tượng thành phần khác vẫn tồn tại
Biểu diễn: Quan hệ tụ hợp được biểu diễn bằng một đường thẳng nối
giữa hai lớp, một đầu là một hình thoi đặc để chỉ ra rằng lớp kia là một thành
phân và phụ thuộc vào lớp này
Trang 28g Quan hệ phụ thuộc (Dependency):[5]
Là quan hệ giữa hai phần tử mô hình có thể là các lớp hoặc các gói, nó
chỉ ra rằng sự thay đổi của lớp này sẽ ảnh hưởng đến lớp kia
Quan hệ phụ thuộc thường được dùng trong các trường hợp sau: - Một lớp sử dụng một biến toàn cục là đối tượng của lớp khác
- Trong phương thức của một lớp có khai báo một biến cục bộ là đối tượng của một lớp khác
- Trong phương thức của một lớp có tham số là đối tượng của một lớp
khác
Biểu diễn: quan hệ phụ thuộc được biểu diễn bằng một đường nét đứt
nối giữa hai phần tử mô hình với đầu mũi tên hướng vào phần tử phụ thuộc (phần tử mà phần tử kia phụ thuộc vào nó)
Hình 2.17 Quan hệ phụ thuộc
h Quan hệ tổng quát hoá (Generalization):
Là quan hệ mô tả mối quan hệ kế thừa Một lớp ở mức tổng quát hơn và
các lớp chỉ tiết hơn kế thừa các thuộc tính và phương thức của nó, đồng thời có
thêm các đặc điểm riêng của chúng
Quan hệ này còn được gọi là quan hệ “is - a- kind - of” Dùng quan hệ này khi muốn mô tả quan hệ cha - con Một lớp có thể không có cha hay có một hoặc nhiều cha Một lớp không có cha và có một hoặc nhiều lớp con được gọi là lớp gốc hay lớp cơ sở Lớp không có con được gọi là lớp lá Một lớp có đúng một cha được gọi là kế thừa đơn Lớp có nhiều cha được gọi là kế thừa
bội
Ký pháp: Quan hệ tổng quát hoá được biểu diễn bằng một đường liền
nét nối liên hai lớp, với một hình tam giác rỗng hướng vào lớp cha
Trang 29Ví dụ: Nguoi Cán bộ Công dân
Hình 2.18 Quan hệ tổng quát hoá
i Quan hệ hiện thực (Realization) [9]
Quan hệ hiện thực dùng để mô tả quan hệ giữa A và B, trong đó A chỉ
ra các ứng xử đặc trưng còn B sẽ thực hiện các ứng xử đó
Quan hệ này thường được dùng để thể hiện mối quan hệ giữa giao diện
và lớp hoặc thành phần cung cấp phương thức hoặc dịch vụ cho nó hay mối quan hệ giữa một ca sử dụng và một sự cộng tác để thực hiện ca sử dụng đó
Một giao diện là một tập hợp các thuộc tính chỉ ra dịch vụ của lớp hoặc thành phần phải thực hiện nó
Hình 2.19 Quan hệ thực hiện
2.2.4 Các biểu đô trong UML
Một biểu đô là một biểu diễn đồ thị của tập các phần tử (các từ vựng)
thường được thể hiện như một đồ thị liên thông với các đỉnh (là các sự vật) và các cung (là các mối quan hệ) Có một số loại biểu đồ thường gặp trong thực
tế phát triển phần mềm hướng đối tượng như sau:|6 |
a Biéu dé ca sit dung (Use case diagram)
Trang 30Biểu đồ ca sử dụng chỉ ra một số tác nhân và kết nối chúng với các ca sử dụng mà hệ thống cung cấp Nó mô tả các chức năng mà hệ thống cung
cấp, thể hiện bằng lời hoặc bằng biểu đồ ca sử dụng Các tác nhân không nhất thiết là con người mà cũng có thể là một hệ thống ngồi cần lấy hay truyền
thơng tin từ hệ thống hiện thời
Biểu đồ ca sử dụng là một công cụ cân thiết trong việc nắm bắt các yêu
cầu, lên kế hoạch và kiểm soát dự án lặp lại b Biểu đô lớp (class điagram)
Biểu đồ lớp chỉ ra tập hợp các lớp, các giao diện, các sự cộng tác và các mối quan hệ của chúng Người ta sử dụng biểu đồ lớp để mô hình hoá khung
nhìn thiết kế tĩnh của hệ thống Các lớp biểu diễn cho sự vật được xử lý bên
trong hệ thống Ta thường dùng biểu đồ lớp để:
=_ Mơ hình hố bảng từ vựng của hệ thống “_ Mơ hình hố các sự cộng tác đơn giản # Mo hinh hod ca sé dit liéu logic
“_ Các lớp có thể có quan hệ với nhau theo một số cach nhu sau: =_ Liên kết (lớp nọ nối với lớp kia)
« Phu thudc (1 lép nay phu thuộc hay sử dụng lớp kia)
"_ Đặc biệt hoá (lớp này là một phân tử chuyên biệt của lớp kia) =_ Đóng gói (nhiều lớp gộp lại)
Một hệ thống có nhiều biểu đồ lớp và ngược lại một biểu đồ lớp có mặt
ở nhiều hệ thống
c Biểu đô đối tượng (object diagram)
Trang 31các thực thể của lớp trong biểu đồ lớp Có thể coi biểu đồ đối tượng là một
biến thể của biểu đồ lớp, nó dùng các biểu diễn giống biểu đồ lớp Biểu đồ đối
tượng chỉ ra một số thể hiện đối tượng của lớp d Biéu dé tuong tac (interaction diagram)
Biểu đô tuần tự (sequece diagram) và biểu đồ cộng tác (collaboration
diagram) 1a hai dang của biểu đồ tương tac
- Biéu dé tudn tu (sequence diagram)
Biểu đồ tuần tự chi ra sự tương tác giữa một số đối tượng Biểu đồ này nhấn mạnh đến trình tự thời gian các thông báo được gửi đi giữa các đối
tượng
- Biéu dé hop tac (collaboration diagram)
Biểu đô cộng tác chỉ ra sự hợp tác hành động, nó giống như biểu đồ
tuân tự nhưng thường là sự lựa chọn để biểu thị sự tổ chức hợp tác của các đối tượng Nó là một cách khác để thể hiện một tình huống có thể xảy ra trong hệ
thống nhưng tập trung vào việc thể hiện việc trao đổi qua lại các thông báo
giữa các đối tượng hơn là quan tâm đến thứ tự của thông báo đó Biểu đồ cộng
tác nhấn mạnh tới tổ chức cấu trúc của các đối tượng gửi và nhận thông báo
Qua biểu đồ này ta biết được giữa hai đối tượng cụ thể trao đổi những thông
báo gì cho nhau
Ta có thể sử dụng hai biểu đồ tương tác thay thế cho nhau và dùng để:
> Mô hình hố các lng điều khiển (sự kiện) theo trình tự thời gian
> Mó hình hố các lng điêu khiển của tổ chức e Biểu đô trạng thái (statechart diagram)
Trang 32Biểu đồ trạng thái biểu diễn một máy trạng thái Nó biểu diễn dòng điều
khiển từ trạng thái này tới trạng thái khác Nó nhấn mạnh dòng điều khiển từ
hoạt động này đến hoạt động khác đang xảy ra bên trong một máy trạng thái
g Biéu dé hoat dong (activity diagram)
Biểu đồ hoạt động là trường hợp đặc biệt của biểu đồ trạng thái Nó chỉ
ra dòng điều khiển chính từ hoạt động này đến hoạt động khác, nó bao gồm
việc mơ hình hố các bước tuần tự trong một tiến trình xử lý Biểu đồ trạng thái và biểu đồ hoạt động biểu diễn khía cạnh động của hệ thống Chúng có
thể dùng cho việc mô hình hoá vòng đời của một đối tượng Ta sẽ dùng biểu
đồ hoạt động để:
> Mơ hình hố luồng công việc (có thể có rế nhánh, phân nhánh, sát
nhập)
> Mó hình hoá một tác vụ (một thủ tục tính toán)
h Biéu d6 thanh phan (component diagram)
Biểu đồ thành phần chỉ ra tập hợp các thành phân và các mối quan hệ
của chúng Người ta sử dụng biểu đồ thành phần để mô tả cấu trúc phần mềm, các thành phần thực thi tĩnh của hệ thống Ta sử dụng biểu đồ thành phần để
“_ Mơ hình hố mã nguồn
“_ Mô hình hoá xuất phẩm có thểthực hiện được
=_ Mơ hình hố các cơ sở dữ liệu vật lý
Trang 33Một ví dụ về biểu đồ thành phần: File thực thi find.html inddx.html Nateng.dll Thành phan Hình 1.20 Một ví dụ về biểu đô thành phần
¡ Biểu đô bố trí (deploymemt điagram)
Biểu đồ bố trí mơ hình hố các khía cạnh vật lý của một hệ thống hướng đối tượng Nó biểu diễn cấu hình các nút xử lý đang vận hành và các thành phần hoạt động trên chúng Nó còn bao gồm các nút và các ràng buộc Nó
hướng vào việc mô hình hoá sự phân tán, gửi đi và cài đặt các phần tạo nên hệ
thống vật lý Ta sẽ sử dụng biểu đồ bố trí để:
> Mơ hình hố các hệ thống nhúng
> Mô hình hoá các hệ thống máy khách! máy dịch vụ
> Mơ hình hố các hệ thống phân tán đây đủ
Trang 34Một ví dụ về biểu đồ bố trí: SQL Application Server Workstation#1 Webalts.exe Printer Workstation#1 Webalts.exe Hình 2.21 Một ví dụ về biểu đồ bố trí
2.3 CÁC QUY TÁC CỦA UML
Mô hình hố một hệ thống khơng đơn giản là lắp ghép các khối được
xây dựng của UML một cách ngẫu nhiên Giống như mọi ngôn ngữ, UML có một số quy tắc chỉ ra rằng, một mô hình được xây dựng tốt là mô hình có một
ngữ nghĩa chắc chắn và đồng bộ với tất cả mô hình có quan hệ với nó UML đưa ra các quy tắc ngữ nghĩa sau đây:
- Tên gọi: là các sự vật, các mối quan hệ và các biểu đồ
- Phạm vi: là khuôn khổ cho ý nghĩa cụ thể đối với một tên gọi
- Tính trực quan: có thể nhìn thấy và được phần tử khác sử dụng
- Tính tích hợp: các sự vật có thể liên kết với các sự vật khác như thế nào - Tính thực hiện được: có ý nghĩa để vận hành và mô phỏng một mô hình
động
Những nguyên tắc cần biết để xây dựng tốt các mô hình:
- Su lược đi: một số phân tử được dấu đi làm đơn giản việc nhìn nhận mô hình
- Sự không đây đả: một số phân tử có thể bỏ qua
Trang 352.4 CÁC CƠ CHẾ CHUNG
UML cũng cung cấp bốn cơ chế chung để áp dụng trong mô hình hoá: -Các đặc tả: UML cung cấp một cách diễn tả vượt trội bằng văn bản
theo cú pháp và ngữ nghĩa của khối đồ hoạ sử dụng, ví dụ như một tập đầy đủ
các thuộc tính, các tác vụ và các hành vi của lớp đó Nhờ vậy việc dùng các kí
pháp đồ họa để làm trực quan hoá hệ thống, dùng các đặc tả của UML để chỉ
ra các chi tiết của hệ thống
-Các bài tri: hau hết các phần tử trong UML đều có biểu diễn đồ họa
duy nhất cung cấp một sự thể hiện trực quan về các khía cạnh của phần tử đó
Ví dụ: biểu diễn về lớp đưa ra các khía cạnh quan trọng nhất của một lớp, như
tên, thuộc tính, các tác vụ - Các phân hoạch chung:
Cách I: đó là sự phân hoạch của lớp và đối tượng Một lớp là một trừu tượng, đối tượng là một biểu hiện của lớp Hầu hết mọi khối xây dựng trong UML đều thuộc lớp hay đối tượng UML thường phân biệt lớp và đối tượng lớp đó bằng cách gạch chân tên của đối tượng
Cách 2: đó là sự phân chia giữa giao diện và triển khai một giao diện, khai
báo hợp đồng và sự thực thi hợp đông để thể hiện việc thi hành cụ thể của hợp
đồng Trong DML, ta có thể mô hình hoá cả giao điện và sự triển khai, như minh hoạ ở hình dưới đây, có một thành phần được gọi là Spellingwizard.dll thực hiện giao diện IUnknow và [Spelling |Unknow Spellingwizard.dll ISpelling ¿
Hình 2.23: Giao diện và sự triển khai
- Các cơ chế khả năng mở rộng: UML cung cấp ngôn ngữ chuẩn viết các bản thiết kế phần mềm nhưng nó không đủ để diễn đạt mọi sắc thái của các
mô hình trong mọi lĩnh vực và trong mọi thời điểm Vì thế, UML được thiết
kế mở cho phép nó có khả năng mở rộng và quản lý được Các cơ chế dùng để mở rộng là: các khuôn mẫu, các giá trị thẻ, các ràng buộc
Trang 36Sự mở rộng từ vựng ngôn ngữ DML cho phép tạo ra các khối xây dựng
mới từ các khối có sắn và cụ thể cho vấn để bằng cách thêm vào biểu diễn
khuôn mẫu, giá trị thẻ hay ràng buộc 2.5 UNG DUNG CUA UML
UML khong chỉ là công cụ mạnh trợ giúp phát triển các hệ thống phần mềm quy mô lớn, phức tạp mà còn trợ giúp phát triển nhiều các hệ thống khác, tổ chức các hệ kinh doanh, các hệ kỹ thuật Một số hệ thống mà UML
có thể mô tả là:
Hệ thông tin: lưu trữ, tìm kiếm, biến đổi và trình bày thông tin
cho người dùng Phải giải quyết ượng lớn dữ liệu với mối quan hệ
phức tạp được cất giữ trong CSDL quan hệ hay CSDL đối tượng Hệ thống kỹ thuật: giải quyết các hệ thống viễn thông, quân sự
hoặc các tiến trình công nghiệp
Hệ thống thời gian thực chìm (butlt in): thực hiện thông qua lập
trình mức thấp và đòi hỏi sự hỗ trợ thời gian thực
Hệ phân bố: được phân bố trên một số máy tính với dữ liệu được
truyền từ máy này sang máy khác Hệ này đòi hỏi truyền thông
đồng bộ xây dựng dựa trên các hệ hướng đối tượng như
JavaBean
Phần mềm hệ thống: Hệ điều hành, CSDL
Trang 37CHUONG 3
VAN DUNG CONG NGHE HƯỚNG ĐỐI TƯỢNG XÂY DỰNG MÔ HÌNH
CHO HỆ THỐNG QUẢN LÝ CHỨNG MINH NHÂN DÂN ĐIỆN TỬ
3.1 PHÁT BIẾU BÀI TOÁN
Chứng minh nhân dân (viết tắt: CMND) là giấy tuỳ thân của Công dân do cơ quan Công an có thẩm quyền chứng nhận về những đặc điểm, nội dung cơ bản của mỗi Công dân trong độ tuổi do pháp luật quy định, nhằm đảm bảo thuận tiện việc thực hiện quyền, nghĩa vụ của công dân trong việc đi lại và thực hiện các giao dịch trên lãnh thổ Việt Nam [3]
CMND còn là một sản phẩm phản ánh tính pháp lý, được Nhà nước quản lý theo pháp luật hiện hành Thông qua việc cấp và quản lý CMND để
phục vụ cho việc bảo vệ An ninh chính trị, bảo vệ trật tự an toàn toàn xã hội
góp phần vào công cuộc phát triển, xây dựng đất nước và quản lý xã hội
Ở nước ta, công tác sản xuất, cấp và quản lý CMND đã ra đời hơn 40 năm nay; đầu tiên là Giấy Thông hành rôi đến Giấy Chứng mỉnh thư
cuốn và hiện nay là giấy Chứng minh nhân dân Quá trình quản lý và cấp
CMND đã góp phần đáp ứng được các yêu cầu quản lý xã hội trong từng giai đoạn lịch sử, tạo điều kiện thuận lợi về mặt pháp lý cho Công dân trong
các hoạt động xã hội Tuy nhiên, hiện nay các hệ thống quản lý, cấp
CMND ở nước ta chỉ quản lý trên một hệ thống đơn lẻ và vẫn phải làm thủ công nhiều công đoạn, hệ thống này chưa phát huy hết tác dụng để phục vụ cho các yêu cầu công tác nghiệp vụ, việc cấp phát cho một người nhiều
CMND vẫn còn xẩy ra Đặc biệt, tại các tàng thư Công an tờ khai, chỉ bản CMND hiện đang xử lý và khai thác thong tin bằng phương pháp thủ công nên
hạn chế nhiều đến kết quả tra cứu Do đó, việc ứng dụng công nghệ thông tin vào công tác quản lý, cấp chứng minh nhân dân đang trở nên cấp bách; nhằm ngăn chặn tình trạng làm giả CMND, phát hiện những dấu hiệu nghi vấn
thông qua công tác sử dụng CMND Tuy nhiên, việc xây dựng hệ thống CSDL
Trang 38về chứng minh nhân dân đòi hỏi nhiều công nghệ, kỹ thuật hiện đại với nhiều
công đoạn khác nhau nên kết quả ứng dụng hệ thống quản lý, cấp CMND điện tử mới dừng ở phân tích, thiết kế hệ thống
3.2 MƠ TẢ NGHIỆP VỤ
Cơng việc quản lý, cấp chứng minh nhân dân điện tử gồm những công
đoạn sau [4]:
a Quy trình nhận đơn và cấp CMND lần đâu:
Bước 1: Công dân đến địa điểm cấp CMND trực tiếp làm các thủ tục
cần thiết xin cấp Chứng minh nhân dân dưới sự hướng dẫn của Nhân viên làm
CMND: Làm đơn xin cấp CMND (hồ sơ xin cấp được người xin khai theo mẫu), chụp ảnh, lấy dấu vân tay trực tiếp tại nơi nhận hồ sơ Người nộp đơn
nhận một giấy hẹn để liên hệ nhận CMND khi xong
Bước 2: Trung tâm nhận hồ sơ (TTNHS) thực hiện quy trình kiểm tra ở
các cấp khác nhau: bao gồm tiếp nhận và kiểm tra tính đúng đắn trong tờ khai của công dân (kiểm tra tính đúng đắn trong tờ khai là sự kết hợp so sánh, đối
chiếu với số hộ khẩu mà công dân đang cư trú và giấy CMND cũ (nếu có))
Bước 3: TTNHS nhận được kết quả kiểm tra Nếu đơn bị từ chối, người
nộp đơn sẽ nhận được thông báo theo thủ tục hiện hành; nếu đơn được chấp nhận thì mẫu đơn được điền với ít nhất một ảnh màu và bản phê duyệt được
chuyển đến bước tiếp theo
Bước 4: Nhân viên nhập thông tin trên tờ khai, quét vân tay trong đơn
bằng Scanner hoặc camera
Bước 5: Ảnh được nhập vào hệ thống bằng cách để ảnh kèm theo đơn vào máy quét (hoặc chụp trực tiếp)
Bước 6: Nhân viên xác nhận việc vào số liệu kết thúc bằng cách ghi chỉ
dẫn do máy tính tạo ra vào đơn xin chuyển hồ sơ cho bộ phận kiểm tra; tiếp
Trang 39Bước 7: Nhân viên khác ở bộ phận kiểm tra cầm hồ sơ vào máy số chỉ
dẫn ghi trên đơn (do nhân viên ở bước 6 ghi); mọi chi tiết về đương sự hiện
trên màn hình kể cả ảnh và vân tay Nhân viên kiểm tra lại một lần nữa thông
tin so với thông tin trong đơn Nếu phát hiện ra lỗi thì sửa cho đúng Nếu ảnh và vân tay chưa đạt yêu cầu thì có thể vào lại ở giai đoạn này
Bước 8: Những hồ sơ đã qua kiểm tra ở bước 7 được thực hiện thủ tục
cấp CMND và bổ sung vào CSDL CMND
Bước 9: Thẻ CMND đã sẵn sàng để ¡n Thực hiện cá thể hoá (sinh mã
vạch - Barcode)
Bước 10: Thẻ CMND được in ra, kẹp vào giữa hai trang trống - trang ép
plastic: laminate - CMND đã in sắn và ép màng plastic Kết quả là một
CMND theo tiêu chuẩn quy định, có đây đủ thông tin kể cả ảnh màu, vân tay
và phần mã vạch để cho máy đọc được ở mặt sau
Bước 11: Chứng minh nhân dân mới được đưa vào máy đọc tại nơi
kiểm tra chất lượng Nếu thiết bị không đọc được hay không đọc đúng có
nghĩa là đã có sai sót trong quá trình sản xuất, khi đó CMND phải được huỷ
và làm lại từ bước 7 Nếu CMND qua được khâu kiểm tra chất lượng, thì được
soát lại với bản chính của đơn và được gửi về TINHŠ cùng một yêu cầu biên nhận mà TTNHS phải gửi trả Khi công dân làm đơn hay người cầm giấy Báo hẹn (được cấp ở bước 1) nhận CMND từ TTNHS và biên nhận phải được gửi
lại cho trung tâm cấp CMND, có thể tự động qua mạng (nếu có) Khi Trung tâm cấp CMND xác nhận đã nhận được biên nhận thì bản CMND trong hệ CMND sẽ được đánh dấu, tức là đã được nhập vào trong CSDL và đã được phát cho người mang CMND
Trang 40b Quy trình nhận đơn cấp đổi và cấp lại CMND
Bước 1: Đơn xin cấp lại CMND (hồ sơ xin cấp được người xin khai theo mẫu, kèm theo 3 hay một số nhất định ảnh màu, lấy dấu vân tay, ) Hồ sơ xin cấp đổi, cấp lại CMND_ được đưa đến một trong các cơ sở nhận hồ sơ (TTNHS) Người nộp đơn nhận một giấy Báo hẹn để liên hệ nhận CMND khi
xong
Bước 2: Thực hiện quy trinh kiém tra 6 Trung tam CSDL CMND dé truy nguyên người làm đơn xin cấp đổi hoặc cấp lai CMND (số CMND cũ là hợp lệ với các số liệu của hồ sơ gốc) Nếu kết quả kiểm tra số liệu có trong hồ
sơ gốc thì tiến hành cấp đổi (nhân viên chỉ cân cập nhật những thay đổi mới từ khi cấp CMND cũ đến nay ví dụ như thay đổi địa chỉ, họ tên, từ số liệu
trong đơn) Trường hợp không có dữ liệu trong CSDL thì thủ tục cấp đổi, cấp lại coi như cấp mới, các bước tiến hành như thủ tục cấp mới và thu lại CMND
cũ để huỷ (nếu có)
Bước 3: Ảnh mới, vân tay nếu cần được nhập vào bảng máy ảnh số hoặc bằng camera số, máy quét theo đơn
Bước 4: Giống hệt từ bước 7 - bước l1 trong trường hợp xin cấp CMND lần đầu
Một số chức năng của hệ thống quản lý, cấp CMND:
Ký hiệu Tên chức năng Giải thích
RI QTHT Quản trị hệ thống
RI.1 TDMK Thay đổi mật khẩu
RI.2 QLNCN Quản lý nhóm chức năng
R1.3 QLSD Quản lý người sử dụng chương trình
R1.4 MA Lap bảng mã địa danh
R5 MAK Lập bảng mã khác