Tên dự án: “Phát triển ứng dụng Quản lý lưu trữ và số hóa tài liệu”
Đơn vị thực hiện: Nhóm phát triển ứng dụng web trực thuộc Bộ môn Công nghệ
phần mềm - Khoa Công nghệ thông tin - Trường Đại học Xây dựng.
Đơn vị đầu tư: Chi cục văn thư lưu trữ Tỉnh Phú Thọ Tổng thời gian thực hiện: 3 tháng.
Thời gian bảo hành/bảo trì: 12 tháng.
3.1.2 Mô tả ứng dụng và môi trƣờng phát triển.
Mục đích của phần mềm này là để Quản lý lưu trữ và số hóa tài liệu, văn bản, hình ảnh theo bài toán nghiệp vụ chuẩn, được hướng dẫn chi tiết trong Công văn Số 283/VTLTNN–NVTW– Bộ Nội Vụ, giúp cho quá trình lưu trữ và tìm kiếm cũng như sử dụng tài liệu được nhanh chóng, chính xác, đồng thời hỗ trợ cho việc thống kê các tài liệu văn bản hiện có, lập báo cáo, xuất file thống kê nhiều định dạng …
Các chức năng chính của chương trình bao gồm: 1. Quản lý lưu trữ:
Quản lý Hồ sơ/Văn bản.
Nhập mục lục Hồ sơ/Văn bản từ tệp excel.
Xuất các thống kê chi tiết Phông/Hộp hồ sơ/Hồ sơ/Văn bản thành file với nhiều định dạng như Word/Excel/PDF.
2. Quản lý danh mục:
Quản lý Cơ quan lưu trữ. Quản lý Phông lưu trữ. Quản lý Hộp hồ sơ.
Quản lý danh mục Loại Văn bản. Quản lý danh mục Thời hạn bảo quản.
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
55
Quản lý danh mục Chế độ sử dụng. Quản lý danh mục Tình trạng vật lý. Quản lý danh mục Ngôn ngữ.
Quản lý danh mục Độ mật Quản lý danh mục Độ tin cậy
Quản lý danh mục Loại hình tài liệu. 3. Thống kê báo cáo:
Thống kê danh sách Phông. Thống kê mục lục Hồ sơ. Thống kê mục lục Văn bản. 4. Tìm kiếm:
Tìm kiếm căn bản Hồ sơ/Văn bản
Tìm kiếm nâng cao Phông, Hồ sơ, Văn bản theo nhiều tiêu chí. 5. Các chức năng tài khoản:
Đăng nhập. Đăng xuất. Đổi mật khẩu. 6. Quản trị hệ thống:
Quản lý tài khoản.
Quản lý Nhóm người dùng. Phân quyền.
Cấu hình hệ thống. 7. Hiển thị menu theo phân quyền. 8. Các trang giới thiệu và tin tức khác.
Các chức năng trên đây là các chức năng nghiệp vụ chính của bài toán quản lý lưu trữ tài liệu trên thực tế. Các phần việc này trước đây vẫn được làm một cách thủ công. Sau đó được tin học hóa bằng một ứng dụng web. Tuy nhiên chức năng của ứng dụng web này còn rất sơ sài, giao diện thiết kế theo phong cách cũ, các thành phần hiển thị đều là các thành phần mặc định trên HTML, giao diện cố định và không có chức năng thay đổi hiển thị theo độ phân giải cửa sổ, chất lượng phần mềm còn rất kém chưa thực sự đáp ứng được nhu cầu của người dùng, gây khó khăn trong quá trình sử dụng. Thêm nữa qua nghiên cứu sản phẩm này, nhóm phát triển web nhận thấy việc thiết kế
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
56
Database còn rất nhiều hạn chế, gây ra nhiều dữ liệu thừa và dữ liệu rác không đáng có, làm hao phí tài nguyên hệ thống và giảm đáng kế chất lượng của phần mềm.
Do nhận thấy các hạn chế của ứng dụng web cũ, đơn vị đầu tư đã quyết định đầu tư xây dựng một hệ thống hoàn toàn mới, nhưng có hỗ trợ lại các dữ liệu đã có trên hệ thống cũ để không mất chi phí cho việc nhập lại toàn bộ khối dữ liệu khổng lồ đã có. Việc này đặt ra thêm một bài toán về xử lý khối dữ liệu cũ, do sẽ phải lọc khối dữ liệu này để giữ lại chính xác những phần có thể sử dụng được và loại bỏ tối đa các phần dữ liệu dư thừa. Thêm nữa lại phải chuyển đổi dữ liệu cũ sang Database mới. Do đó quá trình thực hiện phân tích và thiết kế ứng dụng mới gặp rất nhiều khó khăn.
Hình 5 dưới đây thể hiện giao diện hoàn toàn mới của hệ thống, khắc phục những hạn chế của sản phẩm cũ và thêm vào các tính năng mới hỗ trợ người dùng một cách đầy đủ và thoải mái hơn trong quá trình sử dụng phần mềm.
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
57
Một yêu cầu nữa là ứng dụng mới nhất thiết phải tuân theo các quy định được nêu ra trong Công văn hướng dẫn Số 283/VTLTNN – NVTW – Bộ Nội Vụ về quy chuẩn cho các ứng dụng quản lý lưu trữ và số hóa tài liệu sử dụng cho các chi cục văn thư lưu trữ quốc gia. Thêm nữa, người sử dụng phần mềm đều là những người có kinh nghiệm lâu năm trong việc xử lý bài toán nghiệp vụ trên thực tế. Bối cảnh này vừa là thuận lợi nhưng cũng vừa là thách thức cho việc phát triển sản phẩm web đảm bảo chất lượng cho người dùng.
3.1.3 Tiêu chuẩn ứng dụng theo Công văn Số 283/VTLTNN-NVTW-Bộ Nội Vụ
Công văn Số 283/VTLTNN-NVTW-Bộ Nội Vụ là Công văn hướng dẫn chỉnh lý tài liệu hành chính được phát hàng bởi Cục văn thư và lưu trữ nhà nước - Bộ Nội Vụ, quy định các quy chuẩn cho tài liệu hành chính trước khi đưa lưu trữ, quy định các bước để chỉnh lý một tài liệu hành chính cho khớp với các quy chuẩn và quy định các mẫu văn bản cần được xác lập cho việc chỉnh lý và lưu trữ tài liệu hành chính tại các Chi cục văn thư lưu trữ nhà nước.
Qua việc nghiên cứu các quy chuẩn này, cũng như các mẫu văn bản cần phải tiến hành thực hiện, đồng thời nghiên cứu các bước thực hiện chỉnh lý văn bản/tài liệu để hiểu bài toán nghiệp vụ cần xử lý, nhóm phát triển phần mềm xác định được một số yêu cầu chính của bài toán này như sau:
1. Cấu trúc kho lưu trữ sẽ được tổ chức thành các cấp bậc khác nhau: Từ Cơ quan lưu trữ -> Phông -> Hộp Hồ sơ -> Hồ sơ -> Văn bản, nhằm mục đích hệ thống hóa rõ ràng, chính xác các tài liệu lưu trữ, tạo điều kiện cho việc quản lý, bảo quản, khai thác, sử dụng tài liệu.
Trong đó:
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
58
Phông lƣu trữ là khái niệm dùng để chỉ một khối tài liệu hoàn chỉnh hoặc tương đối hoàn chỉnh phản ánh quá trình hình thành và phát triển của một quốc gia, một cơ quan hay một cá nhân, gia đình, dòng họ. Hộp hồ sơ là đơn vị nhỏ hơn nằm trong Phông, bao gồm nhiều hồ sơ
với nhiều chủ đề khác nhau
Hồ sơ là đơn vị nhỏ hơn nằm trong Hộp hồ sơ, bao gồm nhiều văn bản có chung một chủ đề.
Văn bản là đơn vị nhỏ nhất, thuộc Hồ sơ, và chính là các tài liệu/văn bản cần lưu trữ.
2. Đảm bảo xuất dữ liệu đầy đủ theo các mẫu văn bản đính kèm. Từ các mẫu văn bản đính kèm này sẽ xác định được các thuộc tính của từng đối tượng, hệ thống hóa thành các bảng (Table) và các thuộc tính (Properties) trong Database.
3. Đảm bảo việc phân loại đối tượng chính xác theo các quy chuẩn, ví dụ Loại văn bản, Loại Tài liệu, Loại ngôn ngữ…
4. Đảm bảo có đầy đủ các thuộc tính cần thiết, ví dụ: Thời hạn bảo quản, Tình trạng vật lý, Độ mật, Độ tin cậy, Chế độ bảo quản, …
5. Đảm bảo các tác vụ theo đúng các bước của bài toán nghiệp vụ được quy định, từ thành lập Cơ quan lưu trữ, thành lập Phông, Hộp hồ sơ, Hồ sơ, Giao nhận tài liệu, chỉnh sửa, thêm các thông tin về tài liệu/văn bản …
Việc quy định này như đã nói, vừa là thuận lợi nhưng cũng vừa là thách thức trong quá trình phát triển phần mềm ứng dụng. Thêm nữa cần phải quan tâm đến các dữ liệu cũ để có thể chuyển đổi các dữ liệu còn dùng được trong khối dữ liệu cũ sang hệ thống mới nên việc phân tích bài toán cũng gặp rất nhiều khó khăn.
Dựa trên những vấn đề nghiên cứu được cũng như định hướng phát triển ứng dụng về sau, nhóm phát triển phần mềm quyết định xây dựng ứng dụng này theo hướng
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
59
mô hình, áp dụng đồng thời các phương pháp kiểm thử hướng mô hình và đánh giá tính tiện dụng trong suốt quá trình phát triển nhằm nâng cao chất lượng phần mềm và giảm thiểu tối đi hao phí bảo trì về sau.
3.1.4 Mô hình xây dựng ứng dụng Quản lý lƣu trữ.
Ứng dụng Quản lý lưu trữ và số hóa tài liệu được xây dựng trên công nghệ ASP.NET và ngôn ngữ lập trình C#, có áp dụng mô hình Server-Client bằng việc áp dụng Công nghệ WebServices trong mô hình code. Việc này hỗ trợ cho việc mở rộng hệ thống về sau trên nhiều nền tảng khác (không chỉ là web), ví dụ Android, Windows Phone, iOS … Hiện tại đã có phiên bản ứng dụng Android cho hệ thống này, kết nối trực tiếp đến WebServices và gọi các API của nó để xử lý và trả kết quả về cho Client. Tuy nhiên trong khuôn khổ của luận văn này, tác giả chỉ muốn sử dụng hệ thống để minh chứng cho các nghiên cứu lý thuyết ở trên. Do đó sẽ không nói đến các ứng dụng mở rộng của hệ thống này.
Mô hình cấu trúc tổng quan của ứng dụng được thể hiện trong Hình 6 dưới đây:
Hình 6: Sơ đồ cấu trúc Ứng dụng Quản lý lƣu trữ tài liệu. 3.2 Mục tiêu thực nghiệm
Mục tiêu của việc tiến hành thực nghiệm là để minh chứng cho các nghiên cứu lý thuyết đã nói ở Chương 1 về kiểm thử hướng mô hình và Chương 2 đánh giá tính tiện dụng của web. Các mục tiêu cụ thể sẽ được mô tả chi tiết trong từng phần 3.3 và 3.4, tương ứng với việc áp dụng kiểm thử hướng mô hình và áp dụng đánh giá tính tiện dụng vào quá trình phát triển ứng dụng web
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
60
Mục tiêu chung của toàn bộ quá trình thực nghiệm là:
- Đưa ra ví dụ cụ thể về việc áp dụng các quy trình kiểm thử hướng mô hình và đánh giá tính tiện dụng trong suốt quá trình phát triển ứng dụng web. - Đánh giá kết quả thu được sau từng vòng lặp bản mẫu (prototype) để đưa ra
các điều chỉnh cũng như đánh giá những thay đổi của việc áp dụng 2 quá trình trên so với việc không áp dụng chúng trong quá trình phát triển ứng dụng.
- Đánh giá kết quả của toàn bộ quá trình để đánh giá chất lượng của 2 quy trình trên so với khi không áp dụng chúng.
- Chứng minh sự đúng đắn và sự cải thiện chất lượng phần mềm khi áp dụng các quy trình trên.
Dưới đây là chi tiết cụ thể quá trình áp dụng kiểm thử hướng mô hình và đánh giá tính tiện dụng trong suốt quá trình phát triển ứng dụng. Để mô tả rõ ràng về từng bước của quy trình, tác giả sẽ đưa ra một ví dụ cụ thể về một chức năng cụ thể trên từng quy trình. Kết quả cuối cùng được đánh giá thông qua phản hồi từ phía người dùng cuối. Đây là một kết quả mang tính khách quan và chính xác nhất về chất lượng của sản phẩm khi đến tay người dùng cuối.
3.3 Áp dụng kiểm thử hƣớng mô hình 3.3.1 Áp dụng quy trình 3.3.1 Áp dụng quy trình
Chuẩn bị:
1. Xác định Mục tiêu: Xây dựng mô hình kiểm thử cho các tác vụ của ứng dụng
web đã xác định ở trên bằng Spec Explorer. Phân tích và đánh giá các mô hình thu được để đánh giá chất lượng và chỉnh sửa. Sau đó tạo các ca kiểm thử, các Test Script thực tế bằng Selenium. Phân tích và đánh giá chéo giữa mô hình và thực tế để rút ra kết quả đánh giá chất lượng của việc áp dụng quy trình kiểm thử hướng mô hình trên quy trình phát triển ứng dụng web hướng mô hình.
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
61
2. Xác định tài liệu: Tài liệu chính là công văn hướng dẫn Số 283/VTLTNN – NVTW – Bộ Nội Vụ đã được nói đến ở trên. Ngoài ra còn có các tài liệu yêu cầu của khách hàng thông qua các buổi gặp gỡ, trao đổi và đi đến thống nhất các chức năng cũng như làm rõ các vấn đề quan trọng trong yêu cầu của người dùng.
Từ các tài liệu này có thể xác định các chức năng của hệ thống, cũng như đầu ra mong muốn của từng chức năng/tác vụ/hành động hệ thống … Từ đó đưa ra các trường hợp, các trạng thái có thể xảy ra trên hệ thống cụ thể cho từng chức năng. Xây dựng các kịch bản cho từng trường hợp và mô hình hóa các ca kiểm thử, cũng như có thể dựa trên đó để tạo ra các ca kiểm thử thực tế trên bản mẫu ứng dụng.
3. Xác định bối cảnh: Ứng dụng được phát triển trong khuôn khổ gói thầu dự án
phần mềm, áp dụng quy trình phát triển ứng dụng Web hướng mô hình, với sự hỗ trợ của người dùng cuối thực, có chuyên môn và am hiểu về môi trường sử dụng cũng như quy trình nghiệp vụ mà bài toán đặt ra. Điều này tạo thuận lợi trong việc tham khảo các trường hợp có thể xảy ra khi thực hiện bài toán nghiệp vụ trên thực tế. Qua đó có thể chuyển thành các kịch bản kiểm thử hỗ trợ cho việc sinh mô hình cũng như việc tạo ra các ca kiểm thử chính xác hơn.
4. Xác định phương pháp kiểm tra đánh giá: Kiểm thử hướng mô hình bản chất
vẫn là kiểm thử tự động. Thêm nữa công cụ Selenium được sử dụng ở đây cũng là công cụ sử dụng trong kiểm thử tự động truyền thống. Nên phương pháp đánh giá chính là tham khảo ý kiến của các chuyên gia trong lĩnh vực kiểm thử tự động để lấy ý kiến của họ về các kết quả đạt được khi áp dụng kiểm thử hướng mô hình. Ngoài ra việc lấy ý kiển phản hồi từ khách hàng, cũng như đánh giá chéo giữa kiểm thử tự động thực tế với mô hình tự sinh bởi công cụ cũng là một phương pháp tối ưu giúp xác định chất lượng của các mô hình kiểm thử đã xây dựng được ở các bước trên.
Thực hiện:
Luận văn thạc sỹ Nguyễn Hải Dương – CB130387
62
Spec Explorer sử dụng ngôn ngữ code để mô hình hóa mô hình kiểm thử. Do đó cần học ngôn ngữ mô hình hóa này để viết code cho việc tự sinh các mô hình.
Để tiện cho việc trình bày, ở đây sẽ lựa chọn chức năng tài khoản để trình bày về quá trình mô hình hóa này. Hình 7 thể hiện mô hình kiểm thử cho chức năng tài khoản. Trong đó:
- Si : là các trạng thái chuyển đổi của hệ thống khi xảy ra các hành động
- c_login_empty(): Hành động đăng nhập khi chưa điền thông tin tài khoản (tên tài khoản + mật khẩu)
- c_login_acc(): Hành động đăng nhập khi chưa mới điền tên tài khoản mà chưa điền mật khẩu
- c_login_pass(): Hành động đăng nhập khi chưa mới điền tên mật khẩu mà chưa điền tài khoản.
- c_login_err(): Hành động đăng nhập bị lỗi.
- c_login_success(): Hành động đăng nhập thành công.
- a_back(): Hành động tự động quay trở về trạng thái ban đầu khi gặp lỗi. - c_logout(): Hành động đăng xuất hệ thống của người dùng.
Hình 7: Mô hình kiểm thử tự sinh cho chức năng tài khoản.
Để có được mô hình này, cần phải viết code bằng các ngôn ngữ mô hình trong các file tương ứng. Quan trọng nhất ở đây là file Config.cord – nơi thể hiện toàn bộ cấu hình của hệ thống mô hình hóa. Trong trường hợp này, file Config.cord có nội dung