Bối cảnh và vấn đề nghiên cứu
Đồ án tốt nghiệp đại học (Capstone Project) với đề tài "Prinet Mobile Application" được thực hiện bởi nhóm sinh viên chuyên ngành Kỹ thuật phần mềm (Software Engineering) bao gồm: Nguyễn Hồng Giang (SE02098 - Trưởng dự án/Trưởng nhóm kiểm thử), Vũ Hồng Dương (SE02380 - Trưởng nhóm kỹ thuật), Vũ Hải Anh (SE01984 - Lập trình viên), Nguyễn Trọng Phục (SE02345 - Lập trình viên), và Bùi Công Sơn (SE02099 - Lập trình viên), dưới sự hướng dẫn của giảng viên Nguyễn Ngọc Chi.
Trong thực tiễn sử dụng thiết bị di động, nhu cầu thao tác trực tiếp trên các bức ảnh chụp hoặc ảnh lưu trữ sẵn trong máy và chuyển lệnh in ấn tới các máy in mà không cần phụ thuộc vào kết nối vật lý bằng dây cáp phức tạp là một vấn đề thiết thực. Nhóm tác giả xác định mục tiêu nghiên cứu và phát triển phần mềm tập trung vào ba nhiệm vụ cụ thể được đánh số theo đề xuất của dự án:
- Xây dựng một công cụ chỉnh sửa hình ảnh đơn giản tích hợp các chức năng: vẽ tay tự do (free hand-drawing), xoay ảnh (rotate), cắt xén ảnh (crop), chèn biểu tượng/nhãn dán (add symbols/stickers), thiết lập bố cục và áp dụng các bộ lọc hiệu ứng màu sắc (color filter). Toàn bộ các chức năng này được tự xây dựng mà không sử dụng các thư viện ngoài.
- Cho phép người dùng lựa chọn máy in đã được đăng ký và thực hiện in ấn bức ảnh đã chỉnh sửa qua mạng Internet thông qua dịch vụ đám mây Google Cloud Print.
- Cung cấp giao diện ứng dụng hỗ trợ 3 ngôn ngữ: Tiếng Anh (English), Tiếng Nhật (Japanese) và Tiếng Việt (Vietnamese).
Đối tượng nghiên cứu của đồ án là quy trình phát triển ứng dụng di động xử lý ảnh và cơ chế giao tiếp với dịch vụ in ấn đám mây. Phạm vi nghiên cứu về mặt thời gian được xác định từ ngày 06/01/2014 đến ngày 26/04/2014 (tổng thời gian 16 tuần làm việc, bao gồm thời gian nghỉ Tết Nguyên đán). Về mặt không gian kỹ thuật, phần mềm vận hành trên hệ điều hành Android từ phiên bản 4.0 trở lên, được thử nghiệm trực tiếp trên các thiết bị Samsung Galaxy S3, LG F160L và máy in cổ điển HP LaserJet 1500 kết nối qua dịch vụ Google Cloud Print.
Cơ sở lý thuyết và phương pháp
Đồ án áp dụng mô hình vòng đời phát triển phần mềm chữ V (V-Model), phân chia rành mạch các giai đoạn phát triển song song với các cấp độ kiểm thử tương ứng:
- Giai đoạn lập kế hoạch và phân tích yêu cầu (Plan and Requirement) đối ứng với Kiểm thử hệ thống (System Test).
- Giai đoạn thiết kế kiến trúc mức cao (High-level design) đối ứng với Kiểm thử tích hợp (Integration test).
- Giai đoạn thiết kế chi tiết (Detailed design) đối ứng với Kiểm thử đơn vị (Unit test).
- Giai đoạn cài đặt mã nguồn (Implementation).
- Giai đoạn vận hành và bàn giao (Operation).
Quy trình quản lý kỹ thuật và tài liệu tuân thủ khung quy trình chuẩn của Công ty Cổ phần Phần mềm FPT (FSOFT), cụ thể là quy chuẩn viết mã Java chuẩn FSOFT (FSOFT standard Java coding convention). Hệ thống tài liệu quản lý bao gồm Kế hoạch quản lý dự án (Project Plan), Điều lệ dự án (Project Charter), Lịch trình dự án (Project Schedule), Kế hoạch quản lý cấu hình (CM Plan) và Tài liệu đặc tả yêu cầu phần mềm (SRS).
Phương pháp nghiên cứu và phát triển kỹ thuật được nhóm triển khai gồm:
- Phương pháp phân tích và mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ ca sử dụng (Use Case Diagram), sơ đồ gói kiến trúc (Package Diagram), và các sơ đồ lớp chi tiết (Class Diagram).
- Phương pháp xử lý đồ họa tự lập trình: Nhóm tự nghiên cứu và xây dựng các thuật toán thao tác điểm ảnh, cắt ghép, xử lý biến đổi ma trận Bitmap trên nền tảng Android SDK mà không sử dụng các framework hay thư viện đồ họa ngoài.
- Nguồn dữ liệu thực nghiệm: Dữ liệu hình ảnh được lấy từ máy ảnh của thiết bị (Camera) và thư viện hình ảnh lưu trữ nội bộ (Gallery), kết hợp với dữ liệu trạng thái máy in truy xuất từ hệ số API của Google Cloud Print service.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc module rõ ràng, phân định giữa giao diện người dùng, logic điều khiển và các dịch vụ tích hợp bên ngoài.
+-------------------------------------------------------------------+
| Prinet Application |
| +--------------------+ +------------------+ +---------------+ |
| | Prinet.Utility | | View-Controller | | Edit Picture | |
| | (XML GUI Layouts) | | Activities | | Classes | |
| +--------------------+ +------------------+ +---------------+ |
| +--------------------+ +------------------+ |
| | Print Job | | Common/Minor | |
| | Management | | Utilities | |
| +--------------------+ +------------------+ |
+-------------------------------------------------------------------+
| |
v v
+-----------------------+ +----------------------+
| Local Mobile Camera | | Google Cloud Print |
| & Photo Gallery | | Service (Internet) |
+-----------------------+ +----------------------+
Kiến trúc gói của phần mềm được phân chia thành các thành phần chính:
Prinet.Utility: Chứa toàn bộ các tệp cấu hình giao diện XML layout cho ứng dụng.
- Nhóm lớp View-Controller: Chứa các Activity điều khiển luồng tương tác và vận hành chính của ứng dụng Prinet.
- Nhóm lớp logic xử lý hình ảnh: Chứa các lớp nghiệp vụ xử lý biến đổi đồ họa bao gồm
EditPicActivity, EditEffectActivity, EditStickerActivity, EditDrawActivity, StickerView, và DrawView. Lớp trung tâm EditPicActivity quản lý các thuộc tính: imageUri, rawImageBitmap, bMapEdited, và editImageUri.
- Nhóm lớp in ấn: Chứa các lớp logic kết nối, xác thực tài khoản Google, lấy danh sách máy in đã đăng ký và truyền dữ liệu tác vụ in (
PrintJob).
- Nhóm lớp tiện ích phụ trợ: Quản lý hộp thoại hiển thị, dữ liệu lưu tạm, cơ chế đa ngôn ngữ qua hàm
setLocale() và tính năng chia sẻ hình ảnh.
Môi trường phát triển và môi trường vận hành thử nghiệm của dự án được tổng hợp như sau:
| Tiêu chí |
Môi trường phát triển (Development) |
Môi trường triển khai thử nghiệm (Deployment) |
| Hệ điều hành |
MS Windows 7 Professional |
Android 4.0 trở lên (Android 4.1.2, Android 4.2) |
| Phần cứng |
Tối thiểu Core 2 Duo, RAM 1GB, Ổ cứng 50GB |
Samsung Galaxy S3 (GPU Quad-core 1.4 GHz Cortex-A9, Exynos 4412 Quad, RAM 1GB); LG F160L (RAM 2GB, màn hình 5.1 inch) |
| Thiết bị in |
Trình mô phỏng / Kết nối mạng LAN |
Máy in cổ điển HP LaserJet 1500 |
| IDE / Ngôn ngữ |
Eclipse 4.2, Ngôn ngữ Java (Android SDK) |
Máy ảo Dalvik / Android Runtime |
| Dịch vụ hỗ trợ |
Google Cloud Print, Tortoise SVN 1.5 |
Google Cloud Print service |
| Quản lý dự án |
Microsoft Project |
Microsoft Project |
Trong quá trình triển khai mã nguồn, nhóm tuân thủ quy chuẩn viết mã FSOFT và thực hiện kiểm tra chéo (Peer review) dựa trên bảng câu hỏi đánh giá mã nguồn: việc viết chú thích Javadoc, tính tối ưu của vòng lặp, việc đặt tên biến rõ ràng, và loại bỏ mã hóa cứng (hard-coded strings). Luồng dữ liệu xử lý ảnh đi qua bốn bước tuần tự: Ảnh đầu vào (Input picture) -> Chuyển thành Bitmap thô (Raw Bitmap) -> Chỉnh sửa tạo Bitmap mới (Edited Bitmap) -> Xuất ra ảnh kết quả (Output Picture).
Nội dung chính theo từng chương
Phần 1: Giới thiệu dự án và Đề xuất giải pháp (Introduction & Proposal)
Nội dung chương giới thiệu tổng quan về cấu trúc đồ án Capstone và lý do hình thành ứng dụng Prinet. Tác giả chỉ rõ khoảng trống tiện ích khi người dùng thiết bị thông minh muốn chỉnh sửa nhanh các chi tiết trên ảnh chụp rồi in ra giấy thông qua dịch vụ mạng mà không cần dùng máy vi tính làm trung gian. Giải pháp được đưa ra là tích hợp công cụ chỉnh sửa đồ họa đa chức năng và dịch vụ Google Cloud Print vào một giao diện di động duy nhất, hỗ trợ 3 ngôn ngữ Anh, Nhật, Việt.
Phần 2: Quản lý dự án phần mềm (Project Management)
Chương này mô tả chi tiết phương thức tổ chức và điều hành dự án của nhóm:
- Tiến độ (Project Schedule): Toàn bộ dự án kéo dài 16 tuần (từ tuần 1 đến tuần 16). Tuần 1 dành cho việc lập kế hoạch và xác định yêu cầu. Tuần 2 và tuần 3 dành cho thiết kế kiến trúc, thiết kế chi tiết và lập kế hoạch kiểm thử. Từ tuần 6 đến tuần 12 tập trung cài đặt mã nguồn và kiểm thử đơn vị. Tuần 13 và tuần 14 thực hiện kiểm thử hệ thống. Tuần 15 đóng gói phần mềm, hoàn thiện tài liệu hướng dẫn sử dụng và cài đặt. Cuối tuần 15 và tuần 16 chuẩn bị và bảo vệ đồ án tốt nghiệp.
- Quản lý công việc (Task Management): Các nhiệm vụ trong giai đoạn khởi động đạt tỷ lệ hoàn thành 100%, từ việc họp khởi động (Kick-off meeting), lập Project Charter, Project Schedule, Kế hoạch quản lý cấu hình (CM Plan) do Nguyễn Hồng Giang thực hiện, đến việc thu thập và phân tích tài liệu SRS do các thành viên Vũ Hải Anh, Vũ Hồng Dương, Nguyễn Trọng Phục và Bùi Công Sơn phối hợp thực hiện.
- Quản lý giao tiếp (Communication Management): Nhóm thiết lập lịch làm việc trực tiếp (face-to-face) cố định từ 13h30 đến 17h30 vào các ngày Thứ Hai, Thứ Tư và Thứ Sáu hàng tuần tại nhà; duy trì lịch họp định kỳ mỗi tuần một lần với giảng viên hướng dẫn. Các kênh thông tin được phân định cụ thể: báo cáo trạng thái và giao việc qua Email; trao đổi giải quyết vấn đề và hỗ trợ qua Email, Điện thoại, Skype; chuyển giao tài liệu và mã nguồn qua Tortoise SVN.
- Quản lý rủi ro (Risk Management): Thực hiện qua quy trình 4 giai đoạn gồm nhận diện, phân tích, lập kế hoạch và giám sát rủi ro. Các rủi ro chính được lập kế hoạch phòng ngừa và dự phòng chi tiết:
| Mã rủi ro |
Mô tả rủi ro |
Kế hoạch phòng tránh (Avoidance Plan) |
Kế hoạch dự phòng (Contingency Plan) |
| R1 |
Lịch học của thành viên có thể bị thay đổi trong quá trình thực hiện |
Xác định các ràng buộc và trao đổi với nhà trường trước khi kỳ học bắt đầu |
Yêu cầu họp với nhà trường; Điều chỉnh lại kế hoạch dự án |
| R2 |
Thời lượng dự án có thể bị nhà trường hoặc FPT Software yêu cầu cắt ngắn |
Xác định các giả định và yêu cầu nhà trường, công ty xác nhận về thời hạn |
Đề xuất giảm bớt phạm vi dự án (scope); Thay đổi lại kế hoạch dự án |
| R3 |
Thành viên rời khỏi nhóm trước khi dự án hoàn thành |
Trưởng dự án trao đổi về ý nghĩa và chi phí dự án; cam kết trách nhiệm; phân công hợp lý; tổ chức teambuilding hàng tuần |
Thuyết phục thành viên ở lại; tái cơ cấu nhóm; rà soát toàn bộ dự án để thu hẹp phạm vi |
| R4 |
Giảng viên hướng dẫn không thể hỗ trợ (đi onsite, tai nạn, ốm đau) |
Duy trì liên lạc cập nhật tình trạng làm việc; họp định kỳ hàng tuần; thông báo trước 2 tuần nếu vắng mặt |
Đề xuất cử người hỗ trợ thay thế; tổ chức họp rà soát với người hỗ trợ mới |
| R5 |
Xung đột ý kiến giữa các thành viên trong nhóm |
Giao việc rõ ràng; thường xuyên tổ chức các buổi sinh hoạt gắn kết |
Trưởng dự án tìm hiểu nguyên nhân gốc rễ và đứng ra giải quyết xung đột |
- Quản lý chất lượng (Quality Management): Đặt ra tiêu chí nghiệm thu nghiêm ngặt là phải vượt qua các bảng kiểm tra (Checklist) hoặc được giảng viên hướng dẫn phê duyệt cho từng hạng mục bàn giao (Kế hoạch dự án, Lịch trình, CM Plan, SRS, Tài liệu thiết kế, Kế hoạch giai đoạn, Đặc tả chương trình và Mã nguồn).
Phần 3: Đặc tả yêu cầu phần mềm (Requirement Specification)
Chương này xác định ranh giới chức năng của phần mềm Prinet:
- Yêu cầu chức năng: Thể hiện qua Use Case Diagram gồm các tác vụ: Chụp ảnh mới bằng máy ảnh (
Capture a new photo with camera), Chọn ảnh từ thư viện (Gallery), Chỉnh sửa ảnh (Crop photo, Rotate photo, vẽ tay, áp dụng hiệu ứng, dán sticker), Xem danh sách máy in (View printer list), Thiết lập trang in (Page Setup), và In ấn qua dịch vụ Google Cloud Print (Print through Google Cloud Print service). Chức năng đa ngôn ngữ cho phép chuyển đổi tức thì giữa tiếng Anh, tiếng Nhật và tiếng Việt trên giao diện người dùng.
- Yêu cầu phi chức năng: Đặt ra 6 tiêu chuẩn kỹ thuật gồm Tính khả dụng (Usability), Độ tin cậy (Reliability), Tính khả chuyển (Portability), Hiệu năng xử lý (Performance), Khả năng bảo trì (Maintainability) và Tính sẵn sàng (Availability).
Phần 4: Thiết kế phần mềm (Software Design)
Tài liệu trình bày chi tiết kiến trúc phần mềm và các biểu đồ lớp thiết kế:
- Kiến trúc tổng thể phân tách thành các gói phụ trách giao diện người dùng, bộ điều khiển các Activity, bộ xử lý logic ảnh, bộ kết nối in ấn và các tiện ích dùng chung.
- Thiết kế lớp chi tiết cho phân hệ chỉnh sửa ảnh tập trung vào sự phối hợp giữa
EditPicActivity và các Activity chuyên trách: EditEffectActivity (xử lý hiệu ứng màu sắc), EditStickerActivity (quản lý nhãn dán thông qua StickerView), và EditDrawActivity (quản lý vẽ tay tự do thông qua DrawView).
- Thiết kế các lớp chuyên trách cho phân hệ in ấn (
Print Class Diagram) và phân hệ cấu hình cài đặt (Setting Class Diagram).
Phần 5: Cài đặt mã nguồn (Implementation)
Trình bày môi trường lập trình và phương thức hiện thực hóa chức năng:
- Thiết lập môi trường phát triển trên Windows 7 Professional, Eclipse 4.2 kết hợp Android SDK.
- Toàn bộ các thuật toán xử lý ảnh được tự lập trình trực tiếp: cắt ảnh, xoay ảnh, vẽ tay, áp dụng bộ lọc hiệu ứng màu, chèn nhãn dán.
- Ghi nhận thách thức kỹ thuật lớn trong quá trình thực hiện: Lỗi tràn bộ nhớ hệ thống (
OutOfMemory error) khi ứng dụng nạp và thao tác với các đối tượng Bitmap có độ phân giải cao trong bộ nhớ RAM của thiết bị di động.
Phần 6: Kiểm thử và Quản lý lỗi (Review & Quality Control)
Chương này tổng kết hoạt động kiểm định chất lượng phần mềm theo mô hình chữ V:
- Phương pháp rà soát và kiểm thử: Thực hiện thẩm định tài liệu và thẩm định mã nguồn (Source code Review). Áp dụng bảng kiểm tra kiểm thử hệ thống (System Test Review Checklist) do reviewer GiangNH thực hiện ngày 11/02/2014, bao gồm các tiêu chí kiểm tra: kiểm thử đầu vào không hợp lệ, kiểm thử tính năng theo yêu cầu, kiểm thử hiệu năng, kiểm thử bảo mật, kiểm thử phục hồi lỗi (failover), và kiểm thử phiên bản tài liệu.
- Các loại kiểm thử thực hiện: Kiểm thử chức năng (Functional Test), Kiểm thử giao diện người dùng (User Interface Test), và Kiểm thử hồi quy (Regression Test) tại hai cấp độ: Kiểm thử đơn vị (Unit Test) và Kiểm thử hệ thống (System Test).
- Phân loại và xử lý lỗi (Defect Management): Lỗi được phân loại theo 4 cấp độ: Nhẹ (Cosmetic), Trung bình (Medium), Nghiêm trọng (Serious), và Chết người (Fatal). Dữ liệu ghi nhận từ Bảng quản lý lỗi (Defect Management Sheet) ngày 17/04/2014 của dự án như sau:
| Tên lỗi |
Loại tài liệu / Vị trí |
Mô tả chi tiết lỗi |
Mức độ nghiêm trọng |
Biện pháp xử lý |
| Sai phiên bản tài liệu |
Tài liệu SRS |
Tiêu đề đầu trang (header) hiển thị sai phiên bản so với bản cập nhật gần nhất |
Cosmetic (Nhẹ) |
Cập nhật lại đúng số phiên bản tài liệu |
| Sai tên nút bấm |
Test case Hệ thống (S01, dòng 13) |
Trong tài liệu nút tên là "Capture" nhưng thực tế trên màn hình hiển thị "Take a picture" |
Cosmetic (Nhẹ) |
Đổi lại tên nút trên giao diện thành "Capture" |
| Sai tên nút bấm |
Test case Đơn vị (S05-2, dòng 10) |
Trong tài liệu nút tên là "OK" nhưng thực tế trên màn hình hiển thị "Done" |
Cosmetic (Nhẹ) |
Đổi lại tên nút trên giao diện thành "OK" |
| Thiếu thông tin bìa |
Test case Đơn vị |
Trang bìa tài liệu kiểm thử bị thiếu thông tin |
Cosmetic (Nhẹ) |
Điền đầy đủ thông tin vào trang bìa |
| Mã hóa cứng và thiếu chú thích |
Mã nguồn lớp PrintJob |
Một số tham số thiếu chú thích rõ ràng; các biến thực thể yêu cầu (Request entity variables) vẫn bị gán cứng giá trị (hard-coded) |
Medium (Trung bình) |
Bổ sung chú thích tham số; loại bỏ các biến gán cứng |
Phần 7: Tổng kết và Bài học kinh nghiệm (Summary & Lessons Learned)
Nhóm tổng kết bốn bài học kinh nghiệm chính thu được sau 16 tuần thực hiện đồ án:
- Kỹ thuật (Technique): Hiểu sâu và làm chủ kỹ thuật lập trình ứng dụng trên hệ điều hành Android.
- Giao tiếp (Communication): Cải thiện năng lực và kỹ năng phối hợp làm việc nhóm.
- Quy trình (Process): Tiếp thu kiến thức thực tế về quy trình phát triển phần mềm chuẩn FSOFT và sử dụng thành thạo hệ thống biểu mẫu tài liệu công nghiệp.
- Quản lý (Management): Nâng cao kỹ năng lập kế hoạch tiến độ và tổ chức điều phối dự án.
Kết quả và đóng góp
Đồ án đã đạt được các kết quả kỹ thuật và quản lý cụ thể:
- Xây dựng hoàn chỉnh ứng dụng di động Prinet trên nền tảng Android (hỗ trợ Android 4.0 trở lên), đáp ứng các chức năng chụp ảnh, duyệt ảnh từ thư viện, chỉnh sửa ảnh cục bộ và in ấn từ xa.
- Tự thiết kế và cài đặt thành công 5 nhóm chức năng biên tập ảnh (Crop, Rotate, Hand-drawing, Edit effects, Add stickers) trực tiếp trên đối tượng đồ họa Bitmap mà không cần phụ thuộc vào bất kỳ thư viện bên ngoài nào.
- Tích hợp thành công dịch vụ Google Cloud Print cho phép kết nối và gửi lệnh in ấn hình ảnh tới máy in truyền thống (HP LaserJet 1500) qua môi trường mạng Internet.
- Hỗ trợ hoàn chỉnh 3 ngôn ngữ giao diện (Anh, Nhật, Việt) thông qua cơ chế quản lý Locale và tệp tài nguyên XML chuẩn của Android.
- Vận hành đầy đủ quy trình quản lý dự án công nghiệp: lập kế hoạch MS Project, quản lý rủi ro với 5 kịch bản, quản lý cấu hình bằng Tortoise SVN, và kiểm soát chất lượng qua bảng kiểm Checklist và bảng quản lý lỗi (Defect Management Sheet).
Hạn chế và hướng nghiên cứu tiếp
Văn bản đồ án nêu rõ các hạn chế kỹ thuật phát sinh trong quá trình thực hiện:
- Vấn đề quản lý bộ nhớ: Xảy ra hiện tượng lỗi bộ nhớ (
OutOfMemory error) khi thao tác với các hình ảnh Bitmap kích thước lớn trên thiết bị di động, do việc cấp phát và giải phóng tài nguyên xử lý đồ họa chưa được tối ưu hóa triệt để.
- Mã nguồn còn tồn tại một số biến bị gán cứng (hard-coded) trong lớp
PrintJob và một số tham số chưa được viết chú thích đầy đủ theo chuẩn Javadoc, đòi hỏi phải tiếp tục chuẩn hóa.
- Khả năng in ấn phụ thuộc hoàn toàn vào trạng thái kết nối mạng Internet và hoạt động của máy chủ dịch vụ Google Cloud Print.
Hướng nghiên cứu và phát triển tiếp theo được xác định dựa trên phạm vi tài liệu:
- Tối ưu hóa thuật toán nạp và xử lý Bitmap để giải quyết triệt để lỗi tràn bộ nhớ trên các dòng thiết bị di động có cấu hình RAM hạn chế.
- Loại bỏ hoàn toàn các biến gán cứng trong các lớp kết nối in ấn và bổ sung cơ chế kiểm soát lỗi ngoại lệ mạng.
Giá trị tham khảo
Đồ án là tài liệu tham khảo thực tế cho sinh viên ngành Kỹ thuật phần mềm, Công nghệ thông tin hoặc các nhóm phát triển ứng dụng di động:
- Cung cấp mô hình mẫu về việc áp dụng quy trình công nghiệp của FPT Software (FSOFT) vào một dự án tốt nghiệp đại học, đặc biệt là hệ thống bảng biểu quản lý tiến độ, kế hoạch quản lý cấu hình (CM Plan) và quản trị rủi ro chi tiết.
- Cung cấp mẫu tài liệu kiểm thử hệ thống (System Test Review Checklist) và mẫu theo dõi khuyết tật phần mềm (Defect Management Sheet) chuẩn chỉ, có thể áp dụng trực tiếp cho các đồ án phần mềm khác.
- Là tài liệu hữu ích cho những người nghiên cứu lập trình Android muốn tự xây dựng công cụ xử lý đồ họa cơ bản không phụ thuộc thư viện và tích hợp giao thức in ấn đám mây Google Cloud Print.
Câu hỏi thường gặp
1. Ứng dụng Prinet giải quyết bài toán chỉnh sửa hình ảnh bằng giải pháp kỹ thuật nào?
Nhóm tác giả tự lập trình toàn bộ các chức năng chỉnh sửa ảnh (cắt, xoay, vẽ tự do, tạo hiệu ứng màu, thêm nhãn dán) dựa trên việc xử lý trực tiếp các đối tượng Bitmap trong Android SDK, hoàn toàn không sử dụng bất kỳ thư viện hay hàm dựng sẵn nào của bên thứ ba.
2. Quá trình in ấn qua mạng của Prinet được thực hiện thông qua công nghệ nào?
Ứng dụng sử dụng dịch vụ đám mây Google Cloud Print. Người dùng chọn ảnh đã chỉnh sửa trên ứng dụng di động, kết nối tài khoản để chọn máy in đã đăng ký với dịch vụ Google, thiết lập trang in (Page Setup) và gửi lệnh in qua môi trường mạng Internet tới máy in đích (được thử nghiệm thực tế với dòng máy in cổ điển HP LaserJet 1500).
3. Nhóm tác giả đã nhận diện những rủi ro dự án nào và có biện pháp xử lý ra sao?
Nhóm đã xác định 5 rủi ro chính: thay đổi lịch học cá nhân, yêu cầu rút ngắn thời gian dự án từ phía trường học/công ty, thành viên rời nhóm, giảng viên hướng dẫn bận việc đột xuất, và xung đột nội bộ. Tương ứng với mỗi rủi ro, nhóm đều xây dựng kế hoạch phòng ngừa (như cam kết trách nhiệm, họp giao ban định kỳ) và kế hoạch dự phòng (như đề xuất thu hẹp phạm vi dự án, tái cơ cấu phân công công việc, yêu cầu người hỗ trợ mới).
4. Khó khăn kỹ thuật lớn nhất được ghi nhận trong quá trình cài đặt ứng dụng là gì?
Khó khăn kỹ thuật lớn nhất được nêu trong tài liệu là lỗi tràn bộ nhớ hệ thống (OutOfMemory error) phát sinh khi ứng dụng xử lý và biến đổi các bức ảnh Bitmap trong chu trình: Input picture -> Raw Bitmap -> Edited Bitmap -> Output Picture.
5. Hoạt động kiểm thử và quản lý chất lượng phần mềm trong đồ án được thực hiện như thế nào?
Dự án áp dụng mô hình kiểm thử chữ V với hai giai đoạn chính là Kiểm thử đơn vị (Unit Test) và Kiểm thử hệ thống (System Test), kết hợp các hình thức kiểm thử chức năng, giao diện và hồi quy. Toàn bộ các khiếm khuyết phát hiện qua rà soát tài liệu và kiểm thử mã nguồn được theo dõi qua Bảng quản lý lỗi (Defect Management Sheet), phân loại theo 4 cấp độ: Nhẹ (Cosmetic), Trung bình (Medium), Nghiêm trọng (Serious), và Chết người (Fatal).
Kết luận
Đồ án tốt nghiệp "Prinet Mobile Application" đã hoàn thành việc xây dựng ứng dụng di động trên nền tảng Android, tích hợp bộ công cụ chỉnh sửa hình ảnh tự phát triển cùng tính năng in ấn từ xa thông qua dịch vụ Google Cloud Print. Dự án được triển khai chặt chẽ theo mô hình chữ V và tuân thủ toàn diện các quy chuẩn kỹ nghệ phần mềm của FPT Software, từ khâu quản lý tiến độ, quản trị rủi ro đến rà soát chất lượng và kiểm thử có hệ thống. Mặc dù gặp phải thách thức kỹ thuật về tối ưu bộ nhớ Bitmap trên thiết bị di động, công trình đã hoàn thành toàn bộ các mục tiêu đề ra và thể hiện đầy đủ các bước thực hành kỹ thuật phần mềm trong một dự án Capstone hoàn chỉnh.