1.2.2 Phạm vi áp dụng Xây dựng một ứng dụng Web để quản lý và tra cứu gia phả, gồm phần chính: - Các trang cập nhật thông tin của từng thành viên trong dòng họ.. Với quan điểm xem dữ liệ
Trang 1LỜI CẢM ƠN
LỜI CAM ĐOAN
MỤC LỤC
DANH MỤC CÁC HÌNH VẼ
DANH MỤC CÁC TỪ VIẾT TẮT
LỜI GIỚI THIỆU 1
TÓM TẮT 2
ABSTRACT 2
CÁC TỪ KHÓA 2
CHƯƠNG 1 MỞ ĐẦU 3
1.1 YÊU CẦU THỰC TẾ VÀ TÍNH CẤP THIẾT CỦA ĐỀ TÀI 3
1.2 ĐỐI TƯỢNG VÀ PHẠM VI ÁP DỤNG 4
1.2.1 Đối tượng nghiên cứu 4
1.2.2 Phạm vi áp dụng 4
1.3 HƯỚNG TIẾP CẬN CỦA LUẬN VĂN 5
CHƯƠNG 2 TỔNG QUAN VỀ CÔNG NGHỆ WEB ĐỘNG PHP VÀ HỆ QUẢN TRỊ NỘI DUNG JOOMLA 7
2.1 CÔNG NGHỆ WEB ĐỘNG 7
2.2 KIẾN TRÚC CƠ BẢN 7
2.3 GIỚI THIỆU CÁC NGÔN NGỮ WEB ĐƯỢC SỬ DỤNG 9
2.3.1 Giới thiệu về HTML 9
2.3.2 Giới thiệu về JavaScript 10
2.3.3 Tích hợp JavaScript vào HTML 13
2.3.4 Giới thiệu về PHP 15
2.3.5 GIỚI THIỆU VỀ MYSQL 16
2.4 GIỚI THIỆU VỀ HỆ QUẢN TRỊ NỘI DUNG (HQTND-CMS) JOMLA 17
CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 20
3.1 PHÁT BIỂU BÀI TOÁN: 20
3.2 ĐẶC TẢ NGHIỆP VỤ 21
3.3 GIẢI PHÁP PHÂN TÍCH, THIẾT KẾ CÁC MÔ HÌNH 22
3.3.1 Phân tích, thiết kế thống theo phương pháp hướng đối tượng 22
3.3.2 Ưu điểm của phương pháp phân tích thiết kế hướng đối tượng 23
3.4 ĐẶC TẢ HỆ THỐNG 23
3.4.1 Biểu đồ trường hợp người sử dụng (Use Case Diagram) 24
3.4.2 Biểu đồ Lớp 26
3.4.3 Biểu đồ trình tự và biểu đồ cộng tác 28
Trang 23.4.3.4 Biểu đồ cộng tác mô tả usecase duyệt cây gia phả và xem thông tin trích lục người quản trị 31
3.4.3.5 Biểu đồ trình tự mô tả usecase thêm, sửa, xóa thông tin người 32
3.4.3.6 Biểu đồ cộng tác mô tả usecase thêm, sửa, xóa thông tin người 33
3.4.3.7 Biểu đồ trình tự mô tả usecase thêm, sửa, xóa thông tin vợ 34
3.4.3.8 Biểu đồ cộng tác mô tả usecase thêm, sửa, xóa thông tin vợ 35
3.4.3.9 Biểu đồ trình tự mô tả usecase thêm, sửa, xóa thông tin chức vị 36
3.4.3.10 Biểu đồ cộng tác mô tả usecase thêm, sửa, xóa thông tin chức vị 37
3.4.3.11 Biểu đồ trình tự mô tả usecase thêm, sửa, xóa thông tin mộ táng 38
3.4.3.12 Biểu đồ cộng tác mô tả usecase thêm, sửa, xóa thông tin mộ táng 39
3.4.3.13 Biểu đồ trình tự mô tả usecase xóa thông tin người chi tiết 40
3.5 CÀI ĐẶT 41
3.5.1 Trang của người truy cập 41
3.5.1.1 Trang chủ (hiển thị phả hệ đồ) 41
3.5.1.2 Trang hiển thị thông tin trích lục của từng thành viên 42
3.5.1.3 Trang hiển thị thông tin khác của từng thành viên 42
3.5.2 Trang của người quản trị 43
3.5.2.1 Trang chủ (hiển thị phả hệ đồ) 43
3.5.2.2 Trang hiển thị thông tin trích lục của từng thành viên 44
3.5.2.4 Trang cập nhật thông tin người 46
3.5.2.5 Trang cập nhật thông tin vợ 47
3.5.2.6 Trang thêm thông tin vợ 47
3.5.2.7 Trang thêm thông tin con 48
3.5.2.7 Trang thêm thông tin con 48
3.5.2.8 Trang cập nhật thông tin chức vị 48
3.5.2.9 Trang thêm thông tin chức vị 49
3.5.2.10 Trang cập nhật thông tin mộ táng 49
3.5.2.11 Trang thêm thông tin mộ táng 49
3.5.2.12 Trang xóa (chỉ có thể xóa những thành viên không có con) 50
KẾT LUẬN 51
PHỤ LỤC 1
PHỤ LỤC 2
TÀI LIỆU THAM KHẢO
Trang 3Hình 1.1 Mô hình hoạt động giữa máy chủ Server và trình duyệt Browser.
Hình 3.10 Biểu đồ cộng tác thêm, sửa, xóa thông tin người
Hình 3.11 Biểu đồ trình tự thêm, sửa, xóa thông tin vợ
Hình 3.12 Biểu đồ cộng tác thêm, sửa, xóa thông tin vợ
Hình 3.13 Biểu đồ trình tự thêm, sửa, xóa thông tin chức vị
Hình 3.14 Biểu đồ cộng tác thêm, sửa, xóa thông tin chức vị
Hình 3.15 Biểu đồ trình tự thêm, sửa, xóa thông tin mộ táng
Hình 3.16 Biểu đồ cộng tác thêm, sửa, xóa thông tin mộ táng
Hình 3.17 Biểu đồ trình tự xóa thông tin người chi tiết
Trang 5LỜI GIỚI THIỆU
Tục ngữ có câu:
“Chim có tổ người có tông
Cây có gốc nước có nguồn”
Việc lập gia phả là ý tưởng của tiền nhân từ xưa đến nay, nó có một ý nghĩa sâu sắc,
có ảnh hưởng lớn lao trong tập quán, truyền thống của người Việt Nam Gia phảgiúp ta tưởng nhớ đến tổ tông, công ơn của ông bà, nó duy trì kỷ cương, lễ giáo đặtnền tảng đạo lý cho gia đình mỗi người, kiểm điểm lại sự còn mất, sự phát triển củatộc họ, mà cố gắng chấn chỉnh lại nếp ăn ở của mỗi người trong tông môn đồng thờiđặt nền móng việc thờ phụng tổ tiên cho được quy cũ hơn với mục đích “cùng nhauuống nước nhớ nguồn”
Việc lập gia phả ngoài đời bằng cách biên chép tay thường rất phức tạp và gặp rấtnhiều khó khăn trong việc quản lý từng thành viên trong gia phả Tuy nhiên, nếuchúng ta áp dụng những công nghệ máy tính để tiến hành công việc này thì nó sẽ trởnên dễ dàng và tiện lợi Với ý tưởng đó, em đã tiến hành tìm hiểu về gia phả và xâydựng một trang Web để hỗ trợ cho người dùng có thể biên chép và quản lý gia phảmột cách trực quan, đơn giản, nhanh chóng và tiện lợi
Trang 6TÓM TẮT
Gia phả có vai trò rất quan trọng trong đời sống, lịch sử và văn hóa của con ngườiViệt Nam Vì thế việc biên soạn gia phả đóng vai trò lưu giữ thông tin của conngười của các dòng họ qua từng thế hệ Luận văn này xây dựng trang Web gia phả
để khắc phục những hạn chế trong việc biên soạn gia phả truyền thống Trang Webđược xây dựng dựa vào việc sử dụng các thư viện, công cụ và tiện ích của hệ quảntrị nội dung viết bằng PHP Joomla Luận văn xây dựng một component của Joomlatích hợp với các thành phần sẵn có của Jommla cho phép thực hiện toàn bộ thao tácnghiệp vụ biên soạn và tra cứu gia phả Component này là cơ sở cho việc tích hợpcác nội dung đặc thù của gia phả với các loại nội dung khác của hệ quản trị nộidung Joomla Tuy nhiên trong thời gian hạn hẹp luận văn chưa xây dựng sản phẩmhoàn thiện có chức năng phong phú và tích hợp nhiều loại nội dung
ABSTRACT
Family tree is very important to Vietnamese’s life, history and culture Therefore,family tree composing and editing plays the role of information storing for everymember of family through every generation This thesis build family tree website toovercome the limits in traditional family tree composing and editing The website isimplemented basing on utilizing libraries, tools and ultilities of content managementsystem (CMS) Joomla programming in PHP The thesis implement a Joomlacomponent integrated with available components and modules of Joomla thatenable user perform all of family tree composing, editing, navigating and browsingbusiness processes This component is the foundation for integrating particular andspecific contents of family tree with other kinds of contents of Joomla CMS.However, in a limited time for accomplishing, the thesis hasn’t built a completedproduct with the abundant functionalities and integrating many kinds of contents
CÁC TỪ KHÓA
GIA PHẢ, HỆ QUẢN TRỊ NỘI DUNG, MYSQL, PHP
Trang 7CHƯƠNG 1 MỞ ĐẦU
1.1 YÊU CẦU THỰC TẾ VÀ TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Ở Việt Nam, gia phả giữ một vai trò quan trọng trong gia đình, gia tộc và ngoài
xã hội Việc làm gia phả của người xưa nhằm hai mục đích: trước hết, giúp người tanhớ ngày giỗ của tổ tiên, ông bà, cha mẹ Sau đó, là cho con cháu biết nguồn gốc giatộc từ đâu đến đâu, họ hàng trên dưới xa gần ra sao Nhờ có gia phả mà con cháucác đời sau mới hiểu được ngọn ngành, tông chỉ nhà mình
Người xưa quan niệm: trong một nhà một họ mà gốc rễ không tường tận, thìtrong con cháu thường xảy ra những chuyện có hại cho gia đạo
Gia phả không chỉ quan tâm đến nguồn gốc, giỗ Tết, mà nó còn chứa đựngnhiều nghĩa lý sâu xa, khuyên răn việc thiện, việc nghĩa ở đời, nhờ vậy mà trong họgiữ được tình hoà hiếu lâu dài Gia đình là nơi thường ngày những người cùngchung máu mủ quây quần sum họp Nhưng trong phạm vi gia đình, sợi dây thân ái
đó chỉ có thể duy trì trong một giới hạn nhất định rồi tự nó sẽ phai nhạt dần khinhững người trong gia đình ấy bắt đầu phân tán ra nhiều ngành Số người trong giađình càng đông thì con cháu không thể nào biết hết được dòng họ xa gần từ các đờitrước Không những vậy, vào thời loạn lạc, chiến tranh, nhiều người trong họ phải
ly tán, loạn lạc Giờ con cháu của họ không biết đến tổ tông, bà con, anh em
Do đó, trước những vấn đề cấp thiết của một dòng họ, việc tạo trang Web giaphả sẽ giúp con cháu nhớ hết tất cả mọi người đã sinh ra trước họ và đã chết trước
họ bao nhiêu đời Bởi vậy, trang Web gia phả là sợi dây liên lạc vô hình nhưng hữuhiệu nhất để cố kết nối tất cả con cháu của một dòng họ lại với nhau Mối tươngquan này không những chỉ quan hệ đến con cháu ở hiện tại, mà còn quan hệ cả đếntương lai nữa
Viêc tạo trang Web phả hệ là thật sự hữu ích đối với những thành viên trongdòng họ Dù ở đâu, dù bất cứ khi nào Mỗi một người trong dòng họ đều có thể biếtđược những thay đổi, những thông tin mới nhất của dòng họ Ngoài ra việc tạo trangWeb gia phả sẽ giúp những người xa quê hương, những người bị ly tán lâu đời tìmlại gốc gác, tổ tiên của mình Đi xa hơn, việc tạo trang web gia phả lưu tất cả thôngtin của dòng họ còn ảnh hưởng tới cả quốc gia, góp phần làm phong phú lịch sử
Trang 8nước nhà, bởi lịch sử quốc gia chính là lịch sử của nhiều gia đình, dòng họ đúc kếtlại Chính những nhân vật có tên tuổi lưu danh trong sử sách là nhờ vào gia phả củagia đình, họ được lưu truyền tới các thế hệ mai sau
1.2 ĐỐI TƯỢNG VÀ PHẠM VI ÁP DỤNG
1.2.1 Đối tượng nghiên cứu
Nghiên cứu “Gia phả dòng họ Nguyễn Khoa…”
Họ Nguyễn Khoa nguyên quán ở làng Trạm Bạc, tổng Văn Cú, huyện AnDương, phủ Kim Môn, tỉnh Hải Dương (Bắc kỳ) Theo yêu cầu của Nguyễn KhoaMinh, thượng thư Bộ Lễ, họ được ghi vào tháng 11 năm Minh Mạng thứ 10, 1829vào Dinh Bộ (việc chính thứ trong việc hộ) của làng An Cựu, huyện Hương Trà(nay là Hương Thủy) gần thành phố Huế, tỉnh Thừa Thiên
Gia tộc hiện nay ở xóm gia lạc, xã Dương Nỗ, huyện Phú Vang, tỉnh Thừa Thiên
1.2.2 Phạm vi áp dụng
Xây dựng một ứng dụng Web để quản lý và tra cứu gia phả, gồm phần chính:
- Các trang cập nhật thông tin của từng thành viên trong dòng họ
+ Cập nhật thông tin cá nhân
+ Cập nhật thông tin vợ
+ Cập nhật thông tin con
+ Cập nhật thông tin chức vị
+ Cập nhập thông tin mộ táng
- Các trang liệt kê thông tin của từng thành viên trong dòng họ
+ Liệt kê thông tin cá nhân
+ Liệt kê danh sách vợ
+ Liệt kê danh sách các con
+ Liệt kê chức vị
+ Liệt kê mộ táng
- Các trang thêm thông tin của từng thành viên trong dòng họ
+ Thêm thông tin cá nhân
+ Thêm thông tin vợ
+ Thêm thông tin con
Trang 9+ Thêm thông tin mộ táng.
- Các trang xóa thông tin của từng thành viên trong dòng họ
+ Xóa thông tin cá nhân
+ Xóa thông tin vợ
+ Xóa thông tin con
- Xuất cây phả hệ theo thứ tự cấp bậc của dòng họ
1.3 HƯỚNG TIẾP CẬN CỦA LUẬN VĂN
Để xây dựng trang Web thõa mãn những mục tiêu đề ra, tác giả luận vănkhông chọn cách xây dựng trang Web từ đầu mà tận dụng những thư viện và công
cụ mã nguồn mở Sau khi phân tích các yêu cầu và tính chất của hệ thống tác giảluận văn nhận thấy có nhiều điểm tương đồng với các hệ quản trị nội dung (CMS)
mã nguồn mở miễn phí được sử dụng rất rộng rãi hiện nay Bên cạnh đó tính chấtcủa trang web đơn giản, dữ liệu không phức tạp và không yêu cầu cao, khắt khe về
hệ thống nên luận văn chọn ngôn ngữ PHP để phát triển Thêm vào đó với địnhhướng tận dụng tối đa các công cụ sẵn có của các hệ thống này như là hệ thốngquản trị nội dung, các thư viện tương tác cơ sở dữ liệu, các phân hệ quản lý ngườidùng, ngôn ngữ và cấu hình hệ thống, tác giả luận văn chọn hệ quản trị nội dungJoomla được xây dựng trên ngôn ngữ PHP và cơ sở dữ liệu MySQL
Với quan điểm xem dữ liệu của hệ thống gia phả như một loại nội dung đượcquản lý và xuất bản tương tự như các loại nội dung đặc thù khác của hệ quản trị nộidung, tác giả luận văn chọn cách tiếp cận xây dựng hệ thống quản lý thông tin về giaphả như một component của Joomla để có được khả năng tích hợp với phần lõi vềquản lý nội dung sẵn có của joomla lẫn các phần mở rộng (extensions) thương mạihoặc miễn phí đã và đang được phát triển rất nhiều bởi cộng đồng Joomla (với sựđóng góp của 100.000 lập trình viên PHP và hệ quản trị nội dung) Với cách tiếp cậnnày, trong phạm vi luận văn này component gia phả sẽ sử dụng các thư viện tươngtác cơ sở dữ liệu, công cụ template (template engine/tool), component người dùng,các thư viện xử lý giao diện Javascript,… sẵn có của hệ nền Joomla Hơn thế nữaluận văn còn tham khảo mã nguồn của các component cơ sở của Joomla nhưcontents, contact, login,… để phỏng theo mô thức phát triển trong việc xây dựngcomponent giả phả Điều này sẽ đem tới khả năng tích hợp và liêt kết nội dung,
Trang 10thông tin của component giả phả với các component khác ví dụ như liên kết thôngtin trích lục của người dùng với các bản tin trong component content, liên kết thôngtin trích lục với thông tin người dùng trong component user và thông tin danh thiếptrong component contact, hoặc sử dụng quy trình đăng tải tin trong componentcontent để xây dựng quy trình đăng tải các mục nội dung, thông tin của hệ thống giaphả khi phát triển lên hệ thống quản trị phân tán.
Bên cạnh hướng chọn công nghệ và phương pháp thi công, luận văn còn chọnphương pháp phân tích và thiết kế hệ thống theo phương thức hướng đối tượng dựavào Usecase Luận văn sẽ xây dựng các Usecase cho hệ thống từ đặc tả bài toánđược phát biểu từ những nghiên cứu tổng hợp về nghiệp vụ biên soạn gia phả bằngtay Từ đó luận văn sẽ đưa ra biểu đồ các lớp sẽ xây dựng cho hệ thống và đi kèm làcác biểu đồ tuần tự và cộng tác để mô tả phương thức giải quyết, thực hiện cáctrường hợp sử dụng được nêu ra trong tập các UseCase
Trang 11CHƯƠNG 2 TỔNG QUAN VỀ CÔNG NGHỆ WEB ĐỘNG PHP VÀ
HỆ QUẢN TRỊ NỘI DUNG JOOMLA
2.1 CÔNG NGHỆ WEB ĐỘNG
Ngày nay, các Web site tĩnh với các trang HTML đơn giản không còn đáp ứngđược nhu cầu của người dùng Các Web site động kết hợp với cơ sở dữ liệu đã trởnên xu thế phát triển Web
Trang Web động là trang Web có kết nối cơ sở dữ liệu Điều này có nghĩa làkhi trang Web động được làm tươi, dữ liệu trình bày trên trang Web được đọc từCSDL
Để tạo một trang Web thì có nhiều cách lựa chọn, riêng đề tài của luận vănnày là tạo Web site động: ngôn ngữ kịch bản PHP và chương trình quản lý cơ sở dữliệu MySQL
2.2 KIẾN TRÚC CƠ BẢN
Kiến trúc căn bản nhất để trang Web động hoạt động được là nó phải làm việctrên mô hình client/server Mỗi client hay server đều đảm đương một chức năngriêng để hoàn thành công việc chung đó là cho ra một trang Web động Ứng dụngWeb thì phải có một mô hình server có thể là một máy tính làm server, nhằm tậptrung hoá việc xử lý dữ liệu Còn các client, là máy tính của người sử dụng phảiđược nối mạng với server, khi các máy này truy cập vào một Website có nghĩa là nó
đã truy cập vào server, sau đó lấy dữ liệu từ server về thể hiện lên máy mình Cùngmột lúc có thể có hàng trăm người (client) truy cập vào cùng một Website được xử
lý tập trung trên server
Trang 12Hình 2.1 Mô hình hoạt động giữa máy chủ Server và trình duyệt Browser
- Client
Các ứng dụng phát triển trên nền Web sử dụng tính năng single client là trìnhduyệt Web Ngôn ngữ được sử dụng để mô tả nội dung được hiển thị trên các trìnhduyệt Web là HTML, mặc dù nó là ngôn ngữ chủ đạo nhưng không phải là duynhất
- Server/ Web Server
Hầu hết các ứng dựng Web đều hoạt động tập trung trên Server Một ứng dụngđặc trưng gọi là Web Server đóng vai trò giao tiếp với các trình duyệt Một cơ sở dữliệu (CSDL) trên Server sẽ lưu trữ tất cả những thông tin đáp ứng yêu cầu cho côngviệc của ứng dụng Web Và cần phải có một ngôn ngữ làm vai trò "liên lạc" giữaWeb Server và CSDL trên server Ngôn ngữ này cũng thực hiện các công việc xử lýthông tin đến và đi từ Web Server
Chức năng của Web Server là ở tại chỗ, chạy trên nền của HĐH, chờ các yêucầu trên Web gởi đến, sau đó trả lời những yêu cầu này, và cấp phát những trangWeb thích ứng Tuy nhiên trong thực tế thì chức năng của Web Server không đơngiản như vậy, vì nhiệm vụ của Web Server là phải cung cấp tính ổn định cho môitrường Web nên đòi hỏi này phải được đáp ứng một cách rất nghiêm túc Có nhiều
Trang 13Apache là một kiểu mẫu Web Server rất phổ biến, nó là một dự án nguồn mở.Luận văn này chọn Apache là Web Server bởi vì Apache không chỉ được hổ trợ rấttốt trên môi trường Linux, Unix mà nó còn hoạt động khá ổn định trong môi trườngMicrosoft Windows
Apache tận dụng được tính năng của third-party Bởi vì đây là nguồn mở nênngười dùng có thể viết chương trình mở rộng tính năng của Apache PHP hoạt độngvới tư cách là một phần mở rộng của Apache, được gọi là một module của Apache.Apache có tính ổn định và tốc độ Thực hiện các thay đổi đối với Apache bằngcách sử dụng dòng lệnh, hoặc sử dụng các tập tin text trong folder của chương trìnhApache Mặc dù Apache chỉ làm việc tốt trên Unix, nhưng cũng có những phiên bảnchạy tốt trên hệ Windows
2.3 GIỚI THIỆU CÁC NGÔN NGỮ WEB ĐƯỢC SỬ DỤNG
2.3.1 Giới thiệu về HTML
HTML là viết tắt của Hyper Text Markup Language ( Ngôn ngữ đánh dấu siêuvăn bản) Một tài liệu HTML thường có đuôi mở rộng là html hoặc htm Các trangHTML nói riêng và các trang web nói chung (.php, asp, ) có tính chất của mộtvăn bản như các file txt hay doc nhưng nó phức tạp và đa dạng hơn
HTML là hàng loạt các đoạn mã chuẩn với các qui ước được thiết kế để tạo cáctrang Web và được hiển thị bởi những trình duyệt Web (Web Browser) HTML lànền tảng của World Wide Web, một trông những dịch vụ hàng đầu
Ngôn ngữ đánh dấu siêu văn bản được dùng trong dịch vụ Web của internet, chophép định nghĩa các khuôn dạng của thông tin và cách mà trình duyệt Web hiển thịthông tin cho người dùng
HTML sử dụng các khóa, được gọi là các thẽ (tag), để định dạng và định nghĩacác đoạn văn bản trong một trang Web Trình duyệt sẽ dịch các khoá này thành cácđoạn văn và hình ảnh của trang web Tuy nhiên, thẽ HTML còn nhiều vai trò hơnngoài việc định dạng văn bản và hình ảnh
Các trang Web HTML có thể đọc được bằng các trình duyệt Web (WebBrowse) khác nhau và phổ biến trên Internet Explorer(IE)
Ngôn ngữ HTML có ưu điểm là rất đơn giản và có thể chạy tốt với nhiều hệđiều hành và nhiều trình duyệt Web khác nhau Tuy mỗi trình duyệt do 1 hãng khác
Trang 14nhau sản xuất và có 1 cách biên dịch trang Web khác nhau nhưng nói chung đều chomột kết quả tương tự nhau Ngoài ra HTML được sọan thảo rất đơn giản, không cầnchương trình chuyên dụng, chỉ cần notepad hoặc bất kỳ chương trình sọan thảo vănbản nào
2.3.2 Giới thiệu về JavaScript
2.3.2.1 Giới thiệu
Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệtNetscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngônngữ lập trình Java lúc đó đang được coi là một hiện tượng JavaScript được bổ sungvào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng
12 năm 1995 Trên thực tế, hai ngôn ngữ lập trình Java và JavaScript không có liênquan gì đến nhau, ngoại trừ việc cú pháp của cả hai ngôn ngữ cùng được phát triểndựa trên cú pháp của C Java Script gồm 2 mảng là client-server thực hiện lệnh trênmáy của end-user và web-server
2.3.2.2 Tính chất của JavaScript
- JavaScript là một ngôn ngữ tạo script
Các ngôn ngữ tạo script đã được sử dụng một thời gian dài trước khi Web xuấthiện Trong môi trường UNIX, script đã được sử dụng để thực hiện các tác vụ quản
lý hệ thống lặp đi lặp lại và để thực hiện tự động nhiều tác vụ cho những người dùng
ít thành thạo máy tính Ngoài ra, ngôn ngữ tạo script là cơ sở của việc lập trình CGIhiện vẫn được sử dụng để bổ sung tính tương tác hạn chế đối với các trang Web.Những ví dụ về các ngôn ngữ tạo script bao gồm: Perl, nổi tiếng trong việc lập trìnhCGI, Awk và SED (được thiết kế cho xử lý văn bản mở rộng), rồi HyperTalk là mộtngôn ngữ tạo script hướng đối tượng như JavaScript
Giống như tất cả các ngôn ngữ tạo script, JavaScript được diễn dịch và điều này tạođiều kiện cho việc nhanh chóng tìm lỗi dễ dàng; hơn thế, nó có một số lượng lệnhhữu hạn và cú pháp dễ học Ngoài ra, JavaScrip được thiết kế cho việc thực hiệnmột tập hợp các tác vụ được xác định rõ ràng
- Phù hợp cho các chương trình nhỏ và đơn giản
Do JavaScript là một ngôn ngữ tạo script, nó rất phù hợp cho việc thực hiện
Trang 15dựng một bảng chuyển đổi đơn vị giữa dặm và kilômét, hoặc giữa pound vàkilôgam Những tác vụ này có thể được viết và thực hiện dễ dàng ở tốc độ có thểchấp nhận với JavaScript và dễ dàng được tích hợp vào các trang Web Một ngônngữ cứng nhắc hơn như Java sẽ không mấy phù hợp cho việc phát triển nhanh vàbảo trì dễ dàng những kiểu trình ứng dụng này.
Ngược lại, JavaScript không phù hợp với việc cài đặt một môi trường xử lý và hiểnthị các tài liệu đồ họa phân tán Mặc dù JavaScript cũng là một công cụ để tích hợpcác Java applet hay plug- in vào một trang Web nhưng việc thử phát triển appletthực sự trong JavaScript sẽ rất khó khăn và không hiệu quả nếu không nói là khôngthể được
Dĩ nhiên, điều này không có nghĩa là các trình ứng dụng lớn không thể đượcphát triển với JavaScript Tuy nhiên, các ngôn ngữ tạo script được sử dụng cho cáctác vụ nhỏ hơn chứ không phải các chương trình được biên dịch đầy đủ
- Thực hiện các tác vụ lặp đi lặp lại
JavaScript phù hợp với việc tạo các chương trình nhỏ, nó được thiết kế đặc biệtphù hợp cho các tác vụ được lặp đi lặp lại Ví dụ, JavaScript là lý tưởng cho việctính toán nội dung của một trường trong mẫu điền (form) dựa trên các thay đổi của
dữ liệu trong một trường khác Mỗi khi dữ liệu thay đổi, chương trình JavaScript xử
lý sự kiện sẽ được gọi và dữ liệu mới trong các trường khác sẽ được tính toán vàhiển thị
- Lập trình cho các sự kiện người dùng
Do cách thức JavaScript được tích hợp vào trình duyệt và tương tác trực tiếpvới trang HTML nên JavaScript có thể được sử dụng để lập trình đáp ứng các sựkiện người dùng chẳng hạn như các thao tác nhấp chuột và nhập dữ liệu vào mẫuđiền
Ví dụ, một script JavaScript có thể được sử dụng để thực hiện một hệ thống trợ giúpđơn giản Bất kỳ khi nào khi đưa con trỏ vào một nút lệnh hoặc một liên kết trêntrang Web thì một thông báo hướng dẫn và giúp đỡ có thể được hiển thị trên thanhtrạng thái ở phần dưới cùng của cửa sổ trình duyệt Điều này bổ sung tính tương tácvào các trang Web, làm cho các mẫu điền trở nên sinh động và có thể giảm những
Trang 16yêu cầu về băng thông và tải trên máy chủ vốn bị gây ra bởi việc sử dụng các mẫuđiền và lập trình CGI.
- Gỡ lỗi và thử nghiệm dễ dàng
Giống như các ngôn ngữ tạo script, JavaScript làm cho quá trình phát triển và
xử lý sự cố trở nên dễ dàng do nó không cần phải biên dịch Việc kiểm tra mãchương trình, xem xét các kết quả, thực hiện các thay đổi và kiểm nghiệm lại mãchương trình là rất thuận tiện mà không mất nhiều thao tác và thời gian chờ cho việcbiên dịch
2.3.2.3 Ưu điểm của JavaScript
JavaScript cung cấp nhiều tính năng mạnh cho người lập trình, bao gồm mộtchu kỳ phát triển ngắn gọn, các script kích cỡ nhỏ và dễ nghiên cứu Những tínhnăng mạnh này giúp JavaScript có thể dễ dàng và nhanh chóng được sử dụng để mởrộng các trang HTML có sẵn trên Website
- Phát triển nhanh
Do JavaScript không cần đến sự biên dịch chiếm nhiều thời gian nên các script
có thể được phát triển trong khoảng thời gian tương đối ngắn Điều này được cảitiến bởi việc hầu hết các tính năng giao diện, chẳng hạn như hộp thoại, mẫu điền vàcác phần tử GUI khác đều được xử lý bởi trình duyệt và mã HTML Những ngườilập trình JavaScript không phải lo lắng về việc tạo hay xử lý những phần tử nàytrong các trình ứng dụng của họ
- Dễ học
Mặc dù JavaScript có thể có nhiều điểm tương tự Java nhưng nó không cónhững cú pháp và quy tắc phức tạp của Java Bằng cách học chỉ một vài lệnh và cácquy tắc về cú pháp đơn giản, kèm với việc tìm hiểu cách các đối tượng được sửdụng trong JavaScript ta có thể bắt đầu tạo các chương trình tương đối phức tạp
- Không phụ thuộc hệ điều hành
Do bản chất của World Wide Web là không phụ thuộc hệ điều hành nên cácchương trình JavaScript đã làm cho trình duyệt Netscape Navigator cũng không phụthuộc vào bất kỳ hệ điều hành nào
- Kích cỡ chương trình nhỏ
Trang 17Các chương trình JavaScript có kích cỡ khá nhỏ so với các applet nhị phân doJava tạo nên Điều này làm giảm thiểu các yêu cầu lưu trữ trên máy chủ và thời giantải cho người dùng Ngoài ra, do các chương trình JavaScript thường được chứatrong cùng một tệp như mã HTML của một trang Web nên chúng đòi hỏi ít hơnnhững sự truy cập mạng riêng biệt.
2.3.2.4 Nhược điểm của JavaScript
JavaScript cũng có các khuyết điểm nhất định của nó Những khuyết điểm nàybao gồm sự hạn chế của tập hợp các phương thức tạo sẵn, không có khả năng bảo vệcác mã nguồn khỏi những tin tặc và thực tế JavaScript vẫn chưa phát triển hoànchỉnh vì chưa có môi trường gỡ lỗi
- Phạm vi hạn chế của các phương thức tạo sẵn
Các phiên bản trước đây của trình duyệt Netscape Navigator chứa một phiênbản còn hạn chế của JavaScript Trong phiên bản cuối cùng của Navigator, số lượngcác phương thức tạo sẵn đã tăng đáng kể nhưng vẫn chưa hoàn chỉnh để làm việcvới các tài liệu và các cửa sổ máy khách
- Không che giấu được mã
Do mã nguồn của script thuộc JavaScript được chứa như một phần của mãnguồn HTML dành cho tài liệu nên không có cách gì để bảo vệ mã khỏi bị sao chép
và sử dụng lại bởi những người xem trang Web Điều này tạo nên những quan tâmtrong công nghiệp phần mềm về sự bảo vệ sở hữu trí tuệ
- Thiếu các công cụ gỡ lỗi và phát triển
Hầu hết các môi trường lập trình phát triển tốt đều cung cấp một tập hợp công
cụ làm cho việc phát triển dễ dàng và đơn giản hơn để tăng tốc quá trình gỡ lỗi
Trang 18Việc chứa các script trong HTML rất đơn giản Mỗi script được chứa trong thẻchứa SCRIPT Nói cách khác, một thẻ < /SCRIPT > mở sẽ bắt đầu script này và mộtthẻ < /SCRIPT > đóng sẽ kết thúc nó:
< SCRIPT > chương trình JavaScript < /SCRIPT >
Thẻ SCRIPT sẽ có hai thuộc tính tuỳ chọn xác định cách thức tích hợp script JavaScriptvào tệp HTML Những thuộc tính này được trình bày trong bảng sau:
".js"
LANGUAGE Chỉ ra ngôn ngữ sử dụng trong script, có thể sử dụng hai giá trị:
JavaScript và LiveScript Giá trị LiveScript chỉ để tương thíchngược với các script được phát triển trước đây khi ngôn ngữ nàycòn được gọi là LiveScript Nên sử dụng giá trị JavaScript trong cácscript
Tuy nhiên có những lý do bắt buộc đặt các đoạn mã JavaScript nào đó vàophần tiêu đề của tệp HTML để đảm bảo chúng được xác định trước khi người dùng
có thể kích hoạt các sự kiện
Việc chứa các chương trình JavaScript trực tiếp trong các tệp HTML có thểthích hợp cho các script nhỏ và các trang HTML đơn giản Tuy nhiên, đối với nhữngtrang yêu cầu các script phức tạp thì chúng ta khó có thể kiểm soát được chúng
Để việc phát triển và bảo trì các tệp HTML với các script JavaScript được dễ dànghơn, đặc tả JavaScript đề nghị giữ các script JavaScript trong các tệp riêng biệt và sửdụng thuộc tính SRC của thẻ SCRIPT để gọi chương trình JavaScript vào trong tệpHTML
Đơn giản nhất, cấu trúc SRC có thể được sử dụng như sau:
< SCRIPT LANGUAGE = ’’JavaScript’’
SRC= ’’http://www.cfti.edu.vn/JSS/JavaScript.js"> chương trình JavaScript
< /SCRIPT >
Một trong những thuận lợi của phương pháp này là các script tự động được chedấu khỏi các bộ trình duyệt khác vốn không hỗ trợ JavaScript Tuy nhiên, kỹ thuật
Trang 19này đòi hỏi thêm một yêu cầu và truy cập server, điều này có thể khó xử lý trên mộtserver chậm hoặc qua một nối kết Internet tốc độ thấp.
Ngoài ra, cả hai kỹ thuật (mã JavaScript trong tệp HTML và mã JavaScripttrong tệp riêng biệt) đều có thể được sử dụng đồng thời
2.3.4 Giới thiệu về PHP
2.3.4.1 PHP là gì ?
PHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ Quá trình
xử lý PHP được thực hiện trên máy chủ ( Windowns hoặc Unix ) Khi một trangWeb muốn dùng PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tintrong trang Web đó, sau đó đưa ra kết quả như ngôn ngữ HTML.Vì quá trình xử lýnày diễn ra trên máy chủ nên trang Web được viết bằng PHP sẽ dễ nhìn hơn ở bất kì
hệ điều hành nào
PHP là một ngôn ngữ lập trình kiểu script, chạy trên Server và trả về mãHTML cho trình duyệt PHP có thể nối trực tiếp với HTML Mã PHP tách biệt vớiHTML bằng các thực thể đầu và cuối và được đặt trong kiểu tag đặc biệt cho phépngười sử dụng có thể vào hoặc ra khỏi chế độ PHP Khi một tài liệu được đưa raphân tích, quá trình xử lý PHP chỉ được thực hiện ở những điểm quan trọng, rồi sau
đó đưa ra kết quả
Một file php có thể bao gồm text, thẻ HTML và các script (kịch bản)
File PHP có thể bao gồm các phần mở rộng ".php", ".php3", hoặc là ".phtml"
2.3.4.2 Tại sao chọn PHP ?
- PHP chạy trên nhiều nền khác nhau, như Windows, Linux
- PHP tương thích với hầu hết các server đang sử dụng hiện nay, như Apache,IIS …
- PHP xây dựng được nhiều tính năng để đáp ứng những nhu cầu chung nhất
- PHP rất ổn định và tương hợp, mới đây PHP đã vận hành khá ổn định trên các
hệ điều hành gồm cả Unix, windown Đồng thời nó cũng nối với một số máy chủnhư Apache hay IIS
2.3.4.3 Lịch sử ra đời của PHP
PHP được giới thiệu năm 1994 như một bộ sư tập của một ngôn ngữ lập trình
Trang 20Tới năm 1998 việc công bố phiên bản 3 thì PHP mới chình thức phát triển theohướng tách riêng của mình, giống như C và Perl, PHP là một ngôn ngữ lập trình cócấu trúc và tính năng đa dạng Chính vì những điểm giống nhau này đã khuyếnkhích các nhà thiết kế Web chuyên nghiệp chuyển qua sử dụng PHP Với phiên bản
3 này PHP cũng cung cấp một số lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL,mSQL, OPBC và Oracle Nó cũng có thể làm việc với các hình ảnh các file dữ liệu,FTP, XML và host của các kĩ thuật ứng dụng khác
Đến nay PHP vẫn là một dịch vụ hàng đầu miễn phí Tuy nhiên không giốngnhư một số ngôn ngữ khác càng ngày nó càng trở thành một xu hướng vì rất nhiềucác trang Web hiện nay được làm bằng PHP
2.3.5 Giới thiệu về MYSQL
2.3.5.1 MySQL là gì ?
- MySQL là một CSDL server nhỏ
- MySQL là một trong những lựa chọn cho các ứng dụng vừa và nhỏ
- MySQL hỗ trợ SQL chuẩn
- MySQL được biên dịch dựa trên nhiều nền khác nhau, như Linux, Windows
- MySQL miễn phí trong download và sử dụng
2.3.5.2 Vì sao sử dụng MySQL ?
MySQL được sử dụng phổ biến Nhưng MySQL có những hạn chế là có nhữngđặc điểm của những hệ quản trị CSDL khác mà MySQL không hỗ trợ
Với những hạn chế đó đã làm cho MySQL không được chọn để chạy trên một
số các môi trường Nhưng đối với phần lớn các ứng dụng, MySQL là sự chọn tốtnhất bởi nó rất thích hợp cho việc phát triển những ứng dụng Web
MySQL không có đầy đủ những cơ sở vật chất cho một Hệ Quản trị CSDL,nhưng việc lưu trữ dữ liệu trên Web, thì MySQL có đầy đủ tính năng
Đối với những CSDL cỡ trung bình thì MySQL hỗ trợ tuyệt vời về tốc độ
2.4 GIỚI THIỆU VỀ HỆ QUẢN TRỊ NỘI DUNG (HQTND-CMS) JOMLA
CMS là một công cụ cho phép người dùng quản trị các nội dung thông tin củamột Website với giao diện thân thiện, dễ dàng sử dụng Nó cung cấp cho ngườidùng các khả năng để duy trì, thay đổi, cập nhật các nội dung của trang Web bao
Trang 21mục đích sử dụng đơn giản hay phức tạp CMS được thiết kế dành riêng cho hệthống dotnetnuke và được phân nhỏ thành nhiều module giúp cho việc chọn lựa nơihiển thị của từng phần nhỏ trong CMS được linh động hơn.
Các tính năng cơ bản:
- Đảm bảo tin tức và bài viết luôn mới, cập nhật liên tục với giao diện chuyênnghiệp
- Phân quyền chặt chẽ
- Định hướng tin, bài viết vào một hoặc nhiều nhóm tin thích hợp
- Thiết kế các thiết lập riêng cho từng module giúp việc hiển thị linh động, tùytheo mục đích của người sử dung (cho phép hiển thị hình ảnh hoặc không, hiển thịbao nhiêu tin, )
ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MySQL, cho phép người sử dụng có thể
dễ dàng xuất bản các nội dung của họ lên Internet hoặc Intranet
Joomla có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc độ hiển thị, lập chỉ mục, đọc tin RSS(RSS feeds), trang dùng để in, bản tin nhanh, blog,
diễn đàn, bình chọn, lịch biểu, tìm kiếm trong site và hỗ trợ đa ngôn ngữ
Joomla giúp xây dựng một Website hoặc các ứng dụng online, Joomla là một
mã nguồn mở do đó việc sử dụng Joomla là hoàn toàn miễn phí cho tất cả mọi ngườitrên thế giới
Joomla được sử dụng ở khắp mọi nơi trên thế giới, từ những Website cá nhâncho tới những hệ thống Website doanh nghiệp có tính phức tạp cao, cung cấp nhiềudịch vụ và ứng dụng Joomla có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tincậy cao.Với Joomla, việc cập nhật các tin tức có thể được thực hiện nhanh chóng và
dễ dàng ngay cả đối với người chỉ biết dùng Word! Đặc biệt, Joomla hoàn toànmiễn phí, do đó có thể là một lựa chọn tốt khi cần phát triển một cổng tin tức, một
hệ thống Website mạnh mẽ và đáng tin cậy
Joomla đã được sử dụng trên khắp thế giới, đã được ứng dụng vào xây dựngcác Website từ đơn giản như Website cá nhân tới các ứng dụng Website phức tạp
Sau đây là một số ứng dụng có thể được xây dựng bằng Joomla
Trang 22 Thương mại điện tử
Sau khi cài đặt xong Joomla thì không cần phải có kiến thức chuyên môn sâu
mà vẫn có thể quản lý và sử dụng Joomla một cách dễ dàng trong việc cập nhật nộidung, hình ảnh, chỉ cần có kiến thức căn bản về Microsoft Word là có thể làm việc
dễ dàng với Joomla
Ngoài các vấn đề là mã nguồn mở miễn phí, khả năng bảo mật cao, dễ dàng sửdụng, điều tuyệt vời khiến cho Joomla phát triển mạnh và được nhiều người yêuthích là với Joomla việc xây dựng (lập trình) thêm các thành phần, module, các chứcnăng cho nó là việc rất dễ dàng đối với các lập trình viên, do đó Joomla có rất nhiềucác chức năng mở rộng được viết bởi các nhà lập trình trên khắp thế giới, và hầu hếttất cả các ứng dụng, thành phần này đều được chia sẻ miễn phí (tất cả đều có sẵn vàmiễn phí) Sau đây là một vài ví dụ về các ứng dụng được viết thêm hoặc được tíchhợp cho Joomla
Trang 23Sử dụng nền tảng của Joomla, các developer có thể xây dưng được:
hoặc bất kỳ loại ứng dụng nào phù hợp nhu cầu của người sử dụng…
Trang 24CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1 PHÁT BIỂU BÀI TOÁN
Gia phả được coi là hoàn chỉnh trước hết phải là một gia phả được ghi chép rõràng, chữ nghĩa chân phương có ghi rõ tên người sao lục, biên soạn thuộc đời thứmấy, năm nào, triều vua nào, căn cứ vào bản nào, tên người tục biên qua các đờicũng có cước chú rõ ràng Đầu gia phả có lời tựa ghi được nguồn gốc xuất xứ củathủy tổ có cứ liệu thành văn hay truyền ngôn
Mở đầu là thuỷ tổ, lần lượt đến tiên tổ các đời, nối dòng đến lớp con cháu mớisinh (xem hình 3.1) Đối với tiền nhân có các mục sau đây:
Tên: Gồm tên huý, tên tự, biệt hiệu, thụy hiệu và tên gọi thông thường theo tậpquán địa phương?
Thuộc đời thứ mấy?
Con trai thứ mấy của ông nào? Bà nào?
Ngày tháng năm sinh (có người còn ghi được cả giờ sinh)
Ngày, tháng, năm mất?
Thọ bao nhiêu tuổi?
Mộ táng tại đâu? (có người ghi được cả nguyên táng, cải táng, di táng tại đâu?Vào tháng, năm nào?)
Học hành, thi cử, đỗ đạt, chức vụ, địa vị lúc sinh thời và truy phong sau khimất: Thi đỗ học vị gì? Khoa nào? Triều vua nào? Nhận chức vị gì? Năm nào? Đượcban khen và hưởng tước lộc gì? Sau khi mất được truy phong chức gì? Tước gì?.Vợ: Chánh thất, kế thất, thứ thất Họ tên, con gái thứ mấy của ông nào, bànào? Quê ở đâu? Các mục ngày, tháng, năm sinh; ngày, tháng, năm mất, tuổi thọ,
mộ, đều ghi từng người như trên Nếu có thi đỗ hoặc có chức tước, địa vị, được banthưởng riêng thì ghi thêm
Con: Ghi theo thứ tự năm sinh, nếu nhiều vợ thì ghi rõ con bà nào? Con gái thìcước chú kỹ: Con gái thứ mấy, đã lấy chồng thì ghi tên họ chồng, năm sinh, con ông
bà nào, quê quán, đỗ đạt, chức tước? Sinh con mấy trai mấy gái, tên gì? (Con gái cócước chú còn con trai không cần vì có mục riêng từng người thuộc đời sau)
Trang 25Những gương sáng, những tính cách, hành trạng đặc biệt, hoặc những côngđức đối với làng xã, họ hàng, xóm giềng
Ngoài những mục ghi trên, gia phả nhiều họ còn lưu lại nhiều sự tích đặc biệtcủa các vị tiên tổ, những đôi câu đối, những áng văn hay, những bài thuốc giatruyền đó là những tài sản quý giá mà chúng ta để thất truyền, chưa biết khai thác.Những nội dung ghi trên chỉ có tính chất gợi ý với các bậc huynh trưởng các
họ, đang chăm lo công việc phổ biến và tục biên gia phả dành cho con cháu đời sau.Còn phần trên gia phả hoàn chỉnh hay sơ sài, các cụ còn giành lại cho ta được baonhiêu biết bấy nhiêu, ai dám sáng tác thêm? Tuy nhiên, nếu tìm được quốc sử, hoặctrong gia phả, thần phả khác những tư liệu liên quan thì có thể cước chú kỹ, giúp đờisau thêm sáng tỏ
3.2 ĐẶC TẢ NGHIỆP VỤ
Vì thời gian thực hiện luận văn hạn hẹp nên tác giả của luận văn chỉ giới hạnphần xây dựng ứng dụng dựa trên đặc tả với nội dung dữ liệu cơ bản như sau:
Ghi phả hệ phát sinh từ Thuỷ Tổ cho đến các đời con cháu sau này, làcách vẽ như một cây, từng gia đình là từng nhánh, từ gốc đến ngọn để dễ theodõi từng đời
o Tên: Gồm tên tên thụy (là tên trong khai sinh), giới tính, biệt hiệu,tình trạng hiện nay (còn sống, đã chết hay không rõ), ngày sinh Thuộc đời thứmấy? Con trai thứ mấy của ai?
táng, di táng tại đâu? Thời gian nào?
o Vợ: chánh thất, kế thất, thứ thất ? Họ tên? Quê ở đâu? Ngày, tháng,năm sinh? Tình trạng hiên nay? Ngày, tháng, năm mất ? Hưởng thọ ? Mộ táng
rõ con của bà nào thì ghi là không rõ
Trang 26Con gái thì không phải là tiền nhân nên con gái không được nhập thông tin hậuduệ và không được hiển thị trên gia phả
Trang 27Con thứ 1 Con thứ 2 … Con thứ n Con thứ 1 Con thứ 2 … Con thứ n Con thứ 1 Con thứ 2 … Con thứ n Con thứ 1 Con thứ 2 …Con thứ n
Đời thứ III
Đời thứ N
Trang 283.3 GIẢI PHÁP PHÂN TÍCH, THIẾT KẾ CÁC MÔ HÌNH
3.3.1 Phân tích, thiết kế thống theo phương pháp hướng đối tượng
Mục tiêu của giai đoạn phân tích là tạo ra mô hình tổng thể của hệ thống cầnxây dựng, mô hình này cần phải được trình bày theo hướng nhìn của khách hànghay người sử dụng và làm sao để họ hiểu được Mô hình này cũng có thể được sửdụng để xác định các yêu cầu của người dùng đối với hệ thống và qua đó giúp tađánh giá tính khả thi của hệ thống
Mô hình thường được mô tả bởi ngôn ngữ trực quan, điều đó có nghĩa là đaphần các thông tin được thể hiện bằng các kí hiệu đồ họa và các kết nối giữa chúng,chỉ khi cần thiết một số thông tin mới được biểu diễn ở dạng văn bản Tạo mô hìnhcho các hệ thống phần mềm trước khi thực sự xây dựng chúng, đã trở thành mộtchuẩn mực trong việc phát triển phần mềm Việc biểu diễn mô hình phải thỏa mãncác yếu tố sau:
- Chính xác: Mô tả đúng hệ thống cần phát triển
- Đồng nhất: Các View nhìn khác nhau không được mâu thuẩn với nhau
- Có thể hiểu được: Cho người tham gia phát triển hệ thống và người sử dụng
- Dể thay đổi
- Dể dàng liên lạc với các mô hình khác
Mô hình là sự đơn giản hóa hiện thực Mô hình được xây dựng nên để chúng ta
dể hiểu thấu đáo một hệ thống cần xây dựng Tạo mô hình sẽ giúp cho chúng ta hiểuthấu đáo một hệ thống phức tạp trong sự toàn thể của nó Nói tóm lại, mô hình hóamột hệ thống nhằm mục đích:
- Hình dung một hệ thống theo thực thế hay theo mong muốn của chúng ta
- Chỉ rõ cấu trúc và ứng xử của hệ thống
- Tạo một khuôn mẫu hướng dẫn trong quá trình phát triển hệ thống
- Lập tài liệu cho các quyết định khi phân tích, thiết kế hệ thống
Mô hình hướng đối tượng được xây dựng từ các đối tượng, mà đối tượng đónggói cả dữ liệu và hành vi, vì vậy mà chúng ta sử dụng tiếp cận hướng đối tượngkhông chỉ cho mô hình hóa dữ liệu mà cả cho mô hình hóa xử lý Sử dụng phươngpháp hướng đối tượng chúng ta có thể mô hình hóa các thực thể trog thế giới thực
mà vẫn giữ được cấu trúc, quan hệ cũg như hành vi của chúng Phương pháp tiếp
Trang 29cận hướng đối tượng là phương pháp tốt nhất cho việc thiết kế hệ thống thườngxuyên thay đổi phong cách hoạt động của hệ thống
3.3.2 Ưu điểm của phương pháp phân tích thiết kế hướng đối tượng
Phương pháp tiếp cận mô hình hướng đối tượng ngày càng trở nên phổ biến dokhả năng biểu diễn các kiểu dữ liệu cũng như các mối quan hê phức tạp trong thếgiới thực, đặc tả dữ liệu và quá trính xử lý bằng tập hợp kí hiệu nhất quán, đa dạng.Phương pháp phân tích thiết kế hướng đối tượng mô tả thế giới thực bởi các kháiniệm của phạm vi lĩnh vực ứng dụng, nên nó tạo nên sự tiếp cận tương ứng giữa hệthống và vấn đề thực ngoài đời Vì quá trình phát triển phần mềm đồng thời là quátrình cộng tác của khách hàng/người dùng, nhà phân tích, nhà thiết kế, nhà lập trình,nhà kiểm thử, chuyên gia lĩnh vực, chuyên gia kĩ thuật…nên mối tiếp cận này khiếncho việc giao tiếp giữa họ với nhau được dể dàng hơn
Với ưu điểm của tính kế thừa và tái sử dụng mã, phương pháp tiếp cận mô hìnhhướng đối tượng đã cung cấp một môi trường mạnh, đầy năng lực cho việc pháttriển các hệ thống lớn và phức tạp Vì các đối tượng đã được thử nghiêm kỹ càngtrong lần dùng trước đó, nên khả năng tái sử dụng đối tượng có tác dụng giảm thiểulỗi và các khó khăn trong việc bảo trì, giúp tăng tốc độ thiết kế và phát triển phầnmềm Phương pháp hướng đối tượng giúp ta xử lý các vấn đề phức tạp trong pháttriển phần mềm và tạo ra các thế hệ phần mềm có khả năng mở rộng và tương thíchcao
3.4 ĐẶC TẢ HỆ THỐNG
Website quản lý gia phả của một dòng họ, quản lý các vấn đề chính liên quanđến gia phả :
- Quản lý thông tin của từng hậu duệ trong dòng họ bao gồm:
+ Thông tin trích lục (gồm thông tin cá nhân, danh sách vợ và danh sáchcác con )
+ Thông tin khác (gồm thông tin chức vị và thông tin mộ táng)
- Quản lý phả hê đồ
Xuất cây gia phả theo thứ tự cấp bậc của từng thành viên trong dòng họ.Website này cho phép người truy cập xem các thông tin cá nhân của mỗi
Trang 30Người quản trị phải có tên truy cập và mật khẩu của mình để có thể quản lýgia phả
3.4.1 Biểu đồ trường hợp người sử dụng (Use Case Diagram)
Hệ thống gồm hai tác nhân (Actor) chính là: Người quản trị (NguoiQuanTrị)
và người truy cập (NguoiTruyCap).
- NguoiQuanTri: là người dùng có quyền lớn nhất trong hệ thống, có quyền
cập nhật, thêm, sửa, xóa các thông tin (gồm thông tin người, thông tin vợ, thông tincon, thông tin khen thưởng, thông tin mộ táng) của từng người trong trong dòng họrồi đưa lên Website Tương ứng với loại User Super Admin, Author, Editor (xemphụ lục 1 (mục quản lý người dùng) )
- NguoiDung: là người duyệt Web trong trường hợp không rõ xuất xứ
(anonymous user) hoặc có thể là registered user , có quyền xem thông tin cá nhâncủa mỗi người trong dòng họ (như là xem thông tin trích lục, xem thông tin mộtáng) và duyệt cây gia phả
Trang 32
Nguoi Quan Tri
Duyet cay gia pha Nguoi Quan Tri)
Them/Sua Thong Tin Mo Tang
Xoa Thong Tin Mo Tang
Xoa Thong Tin Chuc Vi
Them/Sua Thong Tin Chuc Vi Xoa Thong Tin Vo Them/Sua Thong Tin Vo
Them/Sua Thong Tin Nguoi
Xoa Thong Tin Nguoi
Trang 333.4.2 Biểu đồ Lớp
Hệ thống quản lý gia phả của một họ tộc giúp việc tạo cây, thêm, sửa, xóathông tin của mỗi cá thể trong dòng họ Mỗi người trong dòng họ có thể không hoặcnhiều vợ Các thuộc tính của người gồm mã người (maN), tên thụy (tenThuy), giớitính (giơiTinh), ngày sinh (ngaySinh), ngày mất (ngayMat), điạ chỉ (diaChi), tìnhtrạng hiện nay (tinhTrangHienNay), biệt hiệu (bietHieu), học vấn(hocVan), đời thứ(doiThu), con thứ(conThu), mã cha (maCha), mã mẹ (maMe) Các thuộc tính của vợgồm mã vợ (maVo), tên vợ (tenVo), ngày sinh (ngaySinh), vợ thứ (voThu), tìnhtrạng hiện nay (tinhTangHienNay), quê (Que), ngày mất (ngayMat), hưởng thọ(huongTho), mộ táng (moTang)
Mỗi người trong dòng họ có thể không hoặc có một thông tin mộ táng vàkhông hoặc nhiều thông tin chức vị Thông tin mộ táng bao gồm mã mộ táng(mamotang), kiểu mộ táng (kieuMoTang), nơi mộ táng (noiMoTang), thời điểm mộtáng (thoiDiemMoTang) Thông tin chức vị gồm mã chức vị (maChucVi), nhậnchức vị gì (nhanChucVi), năm nhận chức vị (namNhanChuc), giải thích chức vị(dienDai)
Trang 34giapha_HTML createTemplate()
trangchu($manguoi) formNhapTTinNguoi($macha, $manguoi) formNhapTTinVo($mavo, $manguoi) formNhapChucVi($machucvi, $manguoi) formNhapMoTang($mamotang, $manguoi) layTTinCayGiaPha()
opname()
Hình 3.3 Biểu đồ lớp
Trang 35danhSachConTheoVo( ) danhSachChucVi( )
danhSachMoTang( )
danhSachAnhEm( ) layTTinCayGiaPha( )
addVar( )
addObject( )
displayParsedTemplate( ) hienThiCayGiaPha( )
Trang 363.4.3.2 Biểu đồ cộng tác mô tả usecase duyệt cây gia phả và xem thông tin trích lục người dùng
Trang 381: napTrang( ) 15: xemTTinTrichLuc( ) 16: xemTTinKhac( )
2: trangchu()
14: hienThiCayGiaPha( )
4: napThongTinNguoi() 5: danhSachVo( ) 7: danhSachChucVi( ) 8: danhSachMoTang( ) 9: danhSachAnhEm( )
11: addVar( ) 12: addObject( ) 13: displayParsedTemplate( )
Hình 3.5 Biểu đồ cộng tác duyệt cây và xem thông tin trích lục của người dùng
Trang 393.4.3.3 Biểu đồ trình tự mô tả usecase duyệt cây gia phả và xem thông tin trích lục của người quản trị
: Nguoi Quan Tri : TrangChu-Nguoi Quan Tri : giapha_HTML : mosNguoi : patTemplate
napTrang( )
trangchu()
layTTinCayGiaPha( ) napThongTinNguoi() danhSachVo( )
danhSachChucVi( ) danhSachMoTang( ) danhSachAnhEm( )
danhSachConTheoVo( )
createTemplate( )
addVar( ) addObject( ) displayParsedTemplate( ) hienThiCayGiaPha( )
xemTTinTrichLuc( )
xemTTinKhac( )
suaTTinNguoi( ) xoaTTinNguoi( )
suaTTinVo( ) themTTinVo( )
xoaTTinVo( )
themTTinChucVi( ) suaTTinChucVi( ) xoaTTinChucVi( ) themTTinMoTang( )
suaTTinMoTang( ) xoaTTinMoTang( )
Hình 3.6 Biểu đồ trình tự duyệt cây và xem thông tin trích lục của người quản trị
Trang 403.4.3.4 Biểu đồ cộng tác mô tả usecase duyệt cây gia phả và xem thông tin trích lục người quản trị
: Nguoi Quan Tri
: TrangChu-Nguoi Quan Tri
: giapha_HTML
: mosNguoi
: patTemplate
3: layTTinCayGiaPha( ) 10: createTemplate( )
6: danhSachConTheoVo( )
1: napTrang( ) 15: xemTTinTrichLuc( )
21: xemTTinKhac( )
16: suaTTinNguoi( ) 17: xoaTTinNguoi( ) 19: suaTTinVo( ) 18: themTTinVo( ) 20: xoaTTinVo( ) 22: themTTinChucVi( ) 23: suaTTinChucVi( ) 24: xoaTTinChucVi( ) 25: themTTinMoTang( ) 26: suaTTinMoTang( ) 27: xoaTTinMoTang( )
2: trangchu() 14: hienThiCayGiaPha( )
4: napThongTinNguoi() 5: danhSachVo( ) 7: danhSachChucVi( ) 8: danhSachMoTang( ) 9: danhSachAnhEm( )
11: addVar( ) 12: addObject( ) 13: displayParsedTemplate( )
Hình 3.7 Biểu đồ cộng tác duyệt cây và xem thông tin trích lục của người quản trị