Tổng quan nghiên cứu

Trong ngành công nghệ phần mềm hiện đại, ước tính có từ 40% đến 50% tổng chi phí và thời gian phát triển bị tiêu tốn vào các hoạt động khắc phục lỗi và sửa đổi các chức năng lặp lại. Hoạt động phát triển phần mềm mang tính chất thâm dụng tri thức cao, đòi hỏi sự phối hợp liên tục giữa các bộ phận phân tích nghiệp vụ, phát triển mã nguồn, kiểm thử chất lượng và quản lý dự án. Tuy nhiên, thực tế tại nhiều đơn vị sản xuất phần mềm cho thấy phần lớn kinh nghiệm quý báu chỉ tồn tại dưới dạng tri thức ngầm định trong tâm trí nhân sự, rất dễ bị thất thoát khi có sự biến động về nhân sự hoặc gặp trở ngại khi làm việc cộng tác xuyên quốc gia.

Công ty Phần mềm Data Delivery Service (DDS) Việt Nam, trực thuộc tập đoàn Aperia với hơn 10 năm kinh nghiệm trong lĩnh vực xử lý dữ liệu thẻ tín dụng và giải pháp tài chính tại Dallas (Hoa Kỳ), thường xuyên phải giải quyết các bài toán kỹ thuật phức tạp như hệ thống FNMS Vision Web, NEBA Vision Web hay các tiêu chuẩn bảo mật thanh toán PCI. Mặc dù doanh nghiệp đã ứng dụng hệ thống quản lý công việc Ticket System gắn với định mức 8 giờ làm việc mỗi ngày và công cụ Team Foundation Server (TFS), tri thức vẫn bị phân tán cục bộ và thiếu tính liên kết logic. Vấn đề nghiên cứu trọng tâm là làm thế nào để chuyển đổi nguồn tri thức rải rác trong các công cụ này thành cơ sở dữ liệu ngữ nghĩa có thể tái sử dụng.

Mục tiêu cụ thể của luận văn là nghiên cứu, thiết kế và xây dựng khung hệ thống quản lý tri thức phần mềm (Software Knowledge Management System - SKMS) dựa trên nền tảng Web ngữ nghĩa (Semantic Web) và mô hình Ontology. Đề tài được triển khai trong phạm vi thời gian 5 tháng (từ tháng 7 năm 2011 đến tháng 12 năm 2011) tại DDS Việt Nam. Về mặt ý nghĩa thực tiễn, việc ứng dụng thành công hệ thống SKMS giúp doanh nghiệp rút ngắn từ 25% đến 35% thời gian tìm kiếm giải pháp kỹ thuật, hạn chế tối đa các lỗi lặp lại trong quá khứ và nâng cao độ chuẩn xác trong việc ước lượng chi phí cho các dự án phần mềm tiếp theo.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Luận văn xây dựng trên nền tảng tích hợp của ba khung lý thuyết và mô hình học thuật nòng cốt:

Thứ nhất, mô hình quản lý tri thức toàn diện của Gilbert Probst (1998/2000), cấu thành từ 8 khối chức năng tương hỗ chặt chẽ: Xác định mục tiêu tri thức, Xác định tri thức, Thu nhận tri thức, Phát triển tri thức, Phân bổ tri thức, Sử dụng tri thức, Bảo quản tri thức và Đo lường giá trị tri thức. Mô hình này cung cấp khung quy trình chuẩn để vận hành luồng thông tin trong tổ chức.

Thứ hai, mô hình chuyển đổi tri thức SECI của Nonaka và Takeuchi (1995), mô tả vòng xoắn ốc chuyển hóa liên tục giữa tri thức ngầm và tri thức rõ ràng qua 4 giai đoạn: Xã hội hóa (Socialization), Biểu hiện (Externalization), Kết hợp (Combination), và Tiếp thu (Internalization).

Thứ ba, khung kiến trúc Web ngữ nghĩa chuẩn W3C do Tim Berners-Lee khởi xướng, sử dụng ngôn ngữ bản thể luận Web Ontology Language (OWL DL/Lite/Full) và mô hình dữ liệu Resource Description Framework (RDF) để mô hình hóa dữ liệu máy có thể hiểu và suy luận logic.

Hệ thống khái niệm chính của đề tài bao gồm:

  • Knowledge Artefact (Tài sản tri thức phần mềm): Tập hợp các thực thể phát sinh trong quá trình kỹ nghệ phần mềm như mã nguồn, thành phần component, tập changeset, báo cáo lỗi (bug), tài liệu yêu cầu và lịch sử thảo luận ticket.
  • Tri thức ngầm định (Tacit Knowledge) và Tri thức rõ ràng (Explicit Knowledge): Phân biệt giữa kinh nghiệm cá nhân chưa được văn bản hóa và dữ liệu đã được cấu trúc hóa có thể truyền tải.
  • System Ontology: Bản thể luận hệ thống mô tả mối quan hệ ngữ nghĩa 3 tầng giữa nội dung, tổ chức và tương tác người dùng.
  • 10 lĩnh vực công nghệ phần mềm theo chuẩn SWEBOK của IEEE: Định vị toàn bộ chu trình kỹ thuật từ lập yêu cầu, thiết kế, lập trình, kiểm thử đến bảo trì phần mềm.

Phương pháp nghiên cứu

Nghiên cứu áp dụng phương pháp chọn mẫu có chủ đích (purposive sampling) với cỡ mẫu gồm 25 nhân sự kỹ thuật chủ chốt đang trực tiếp tham gia sản xuất tại DDS Việt Nam (bao gồm 10 lập trình viên, 6 kiểm thử viên QC, 4 chuyên viên phân tích nghiệp vụ BA và 5 quản lý dự án). Lý do lựa chọn nhóm đối tượng này là nhằm bao quát toàn bộ các vai trò tham gia vào vòng đời sản phẩm phần mềm, đảm bảo dữ liệu phản ánh chính xác các điểm nghẽn tri thức thực tế.

Nguồn dữ liệu nghiên cứu được trích xuất trực tiếp từ các kho dữ liệu dự án thực tế tại DDS Việt Nam, bao gồm hơn 100 ticket yêu cầu nghiệp vụ, tập dữ liệu kiểm thử lỗi trong TFS và các đoạn mã nguồn trong các dự án điển hình như PCI và FNMS Vision Web.

Về phương pháp phân tích, tác giả vận dụng quy trình 7 bước phát triển Ontology chuẩn mực của Trung tâm Tin sinh học Y tế Đại học Stanford (Stanford Center for Biomedical Informatics Research), kết hợp công cụ soạn thảo Protégé và phương pháp tiếp cận Kiến trúc hướng Bản thể luận (Ontology-Driven Architecture - ODA). Lý do lựa chọn phương pháp này là vì nó cung cấp nền tảng logic hình thức bậc một (First-Order Logic), cho phép máy tính tự động thực hiện các phép suy diễn bắc cầu (Transitive) và đối xứng (Symmetric) trên siêu dữ liệu mà các cơ sở dữ liệu quan hệ truyền thống không đáp ứng được. Toàn bộ quá trình khảo sát, thu thập và xây dựng mô hình diễn ra liên tục từ ngày 04/07/2011 đến ngày 02/12/2011.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình điều tra thực trạng và xây dựng mô hình tại DDS Việt Nam đã đem lại 4 phát hiện quan trọng:

  1. Mức độ phân mảnh tri thức ngầm ở mức báo động: Khảo sát cho thấy khoảng 75% giải pháp xử lý nghiệp vụ phức tạp chỉ được lưu giữ trong trí nhớ của các cá nhân kỳ cựu. Khi xảy ra tình huống nhân sự thay đổi (như chuyên viên BA hoặc kỹ sư lập trình phụ trách module rời công ty), nhân sự mới phải tiêu tốn hơn 50% thời gian làm việc trong ngày chỉ để trao đổi qua lại nhằm hiểu lại yêu cầu cũ, gây lãng phí nghiêm trọng nguồn lực.
  2. Sai lệch lớn trong công tác ước lượng chi phí và thời gian: Do thiếu kho tri thức tái sử dụng, sai số trong khâu ước lượng thời gian dự án lên đến 33.3%. Cụ thể trong dự án nâng cấp PCI 2.0, thời gian dự kiến ban đầu là 3 tháng nhưng thời gian thực tế chỉ mất 2 tháng nhờ tận dụng được đoạn mã mở hộp thoại modal từ dự án trước. Việc báo giá sai lệch làm giảm đáng kể sức cạnh tranh của doanh nghiệp khi chào thầu.
  3. Hiện thực hóa thành công bộ System Ontology 3 tầng: Nghiên cứu đã thiết kế hoàn chỉnh cấu trúc Ontology bao gồm Content Ontology (chuẩn hóa các lớp ka:KnowledgeArtefact, ka:SourceCode, ka:Bug), Organization Ontology (mô hình hóa các vai trò BA, DEV, QC, PM) và Interaction Ontology (ghi nhận thao tác với môi trường lập trình), kết nối đồng bộ 10 lĩnh vực chuyên môn của SWEBOK.
  4. Tăng tốc độ truy xuất thông tin kỹ thuật: Thử nghiệm trên 25 nhân sự cho thấy việc áp dụng truy vấn ngữ nghĩa giúp nâng độ chính xác tìm kiếm giải pháp và định vị chuyên gia phụ trách lên hơn 60% so với phương pháp tìm kiếm từ khóa thông thường trên TFS.

Thảo luận kết quả

Nguyên nhân cốt lõi dẫn đến các tồn tại trên là do dữ liệu trong Ticket System và TFS tồn tại ở dạng văn bản phi cấu trúc, thiếu các siêu dữ liệu ngữ nghĩa chỉ dẫn mối quan hệ phụ thuộc giữa các đoạn mã và tài liệu nghiệp vụ. Điển hình như trường hợp nâng cấp chức năng quản lý người dùng tại dự án FNMS Vision Web: Do không nắm rõ các thay đổi liên quan đến chức năng đăng nhập trước đó của nhân sự cũ, mã nguồn chỉnh sửa đã gây lỗi nghiêm trọng khi chuyển giao cho đối tác Mỹ.

So sánh với các công trình quốc tế như nghiên cứu của tổ chức SWESE, mô hình Dhruv Ontology hay hệ thống EvoOnt sử dụng ngôn ngữ SPARQL để dò tìm lỗi mã nguồn, giải pháp System Ontology trong luận văn này có tính tương thích cao hơn với mô hình doanh nghiệp gia công phần mềm. Đóng góp nổi bật là việc tích hợp thành công Organization Ontology vào vòng đời phát triển, giúp hệ thống không chỉ tìm thấy tài liệu mà còn xác định chính xác "ai nắm giữ tri thức gì" (Know Who Knows What).

Dữ liệu nghiên cứu và cấu trúc liên kết có thể được biểu diễn một cách trực quan thông qua bảng ma trận ánh xạ giữa các lớp thực thể Ontology và sơ đồ luồng dữ liệu chuyển đổi tri thức SECI. Cách biểu diễn này giúp các nhà quản lý dễ dàng theo dõi đường đi của tri thức từ khâu phân tích yêu cầu của BA đến khâu viết mã của DEV và kiểm thử của QC.

Đề xuất và khuyến nghị

Dựa trên kết quả xây dựng System Ontology, luận văn đề xuất 4 nhóm giải pháp mang tính hành động cao dành cho các doanh nghiệp phần mềm:

  1. Tích hợp (Integrate) công cụ trích xuất siêu dữ liệu ngữ nghĩa tự động: Xây dựng module Semantic Annotation gắn liền với thao tác "Check-in" trên hệ thống TFS hoặc Git. Giải pháp này giúp tự động gán nhãn siêu dữ liệu cho các changeset và bug phát sinh, hướng tới mục tiêu giảm 40% thời gian nhập liệu thủ công của lập trình viên trong vòng 3 tháng đầu triển khai. Chủ thể thực hiện là Đội ngũ Kiến trúc sư hệ thống kết hợp cùng nhóm DevOps.
  2. Chuẩn hóa (Standardize) kho tài sản tri thức tái sử dụng: Xây dựng danh mục các thành phần mã nguồn và giải pháp kỹ thuật mẫu (Best Practices) được phân loại theo Content Ontology, đặt mục tiêu cắt giảm từ 20% đến 30% chi phí phát triển đối với các module chức năng có tính chất lặp lại. Timeline hoàn thành trong 6 tháng do các Trưởng nhóm lập trình (Lead Developers) và Quản lý dự án (PM) chủ trì.
  3. Thiết lập (Establish) mạng lưới định vị chuyên gia nội bộ: Triển khai tính năng gợi ý chuyên môn tự động dựa trên Organization Ontology nhằm cắt giảm 50% thời gian nhân viên mới phải tự tìm kiếm người hỗ trợ kỹ thuật. Lộ trình thực hiện kéo dài trong 2 quý liên tiếp dưới sự điều phối của Phòng Quản lý nguồn lực kỹ thuật và Ban Quản lý dự án.
  4. Ban hành (Institutionalize) quy trình đo lường và đánh giá tri thức định kỳ: Áp dụng thang đo hiệu quả sử dụng tri thức theo chu trình Probst, kiểm soát định kỳ chất lượng các bình luận giải pháp trong Ticket System. Kế hoạch duy trì xuyên suốt 12 tháng do Trưởng bộ phận Phân tích nghiệp vụ (BA Lead) phối hợp cùng Bộ phận Đảm bảo chất lượng (QA/QC) thực hiện.

Đối tượng nên tham khảo luận văn

Nội dung luận văn mang lại giá trị thực tiễn và học thuật cho 4 nhóm đối tượng sau:

  • Giám đốc công nghệ (CTO) và Quản lý dự án (PM): Cung cấp giải pháp giải quyết bài toán phụ thuộc nhân sự, giúp giảm thiểu 30% rủi ro gián đoạn công việc khi nhân sự thay đổi và nâng cao độ chính xác khi lập dự toán ngân sách cho các dự án quy mô từ 5 đến 50 kỹ sư.
  • Kỹ sư phát triển phần mềm (Developers) và Kỹ sư kiểm thử (QC/QA): Cung cấp phương pháp tra cứu nhanh các giải pháp lập trình đã được kiểm chứng, liên kết changeset với lịch sử lỗi trên TFS nhằm rút ngắn 40% thời gian xử lý sự cố trong quá trình bảo trì phần mềm.
  • Chuyên viên phân tích nghiệp vụ (BA) và Kiến trúc sư giải pháp: Giúp nắm vững phương pháp mô hình hóa thông tin theo chuẩn Web ngữ nghĩa, nâng cao chất lượng tài liệu hóa yêu cầu khách hàng và hạn chế tối đa các thiếu sót logic trong quá trình bàn giao kỹ thuật.
  • Giảng viên, học viên cao học và nghiên cứu sinh ngành Hệ thống thông tin: Tài liệu tham khảo giá trị về ứng dụng thực tiễn của ngôn ngữ OWL DL, phương pháp luận phát triển Ontology 7 bước của Đại học Stanford và cách tích hợp 10 lĩnh vực SWEBOK vào hệ thống thông tin doanh nghiệp.

Câu hỏi thường gặp

Hệ thống SKMS dựa trên Ontology khác biệt gì so với cơ sở dữ liệu tài liệu truyền thống?
Cơ sở dữ liệu truyền thống chỉ lưu trữ văn bản đơn thuần và tìm kiếm dựa trên từ khóa chính xác. Ngược lại, hệ thống SKMS ứng dụng Ontology biểu diễn tri thức dưới dạng mạng ngữ nghĩa, cho phép máy tính tự động thực hiện các phép suy luận logic giữa mã nguồn, lỗi và nhân sự, giúp tăng hơn 60% độ chính xác trong việc truy tìm nguyên nhân phát sinh lỗi.

Ontology giải quyết bài toán mất mát tri thức khi nhân sự nghỉ việc như thế nào?
Ontology giúp chuyển đổi tri thức ngầm thành tri thức rõ ràng bằng cách liên kết siêu dữ liệu của từng changeset, ticket và module dự án với tác giả thực hiện. Khi nhân viên nghỉ việc, toàn bộ lịch sử thiết kế và mối quan hệ phụ thuộc kỹ thuật vẫn được lưu trữ nguyên vẹn trong 3 tầng ontology, giúp giảm 50% thời gian tiếp cận dự án của nhân sự thay thế.

Mô hình Probst đóng vai trò gì trong việc thiết kế vòng đời quản lý tri thức tại DDS Việt Nam?
Mô hình Probst cung cấp khung tham chiếu toàn diện gồm 8 khối chức năng từ định hướng mục tiêu, thu nhận đến đo lường tri thức. Việc áp dụng mô hình này giúp DDS Việt Nam thiết lập một chu trình khép kín, biến 8 giờ làm việc định mức mỗi ngày của từng kỹ sư thành tài sản tri thức chung, hạn chế triệt để các sai lầm lặp lại.

Doanh nghiệp phần mềm cần chuẩn bị hạ tầng công nghệ nào để triển khai Ontology và Web ngữ nghĩa?
Doanh nghiệp cần duy trì hệ thống quản lý mã nguồn chuẩn (như TFS hoặc Git), tích hợp công cụ soạn thảo bản thể luận Protégé và cài đặt bộ máy suy luận (Inference Engine) hỗ trợ ngôn ngữ truy vấn SPARQL. Hạ tầng máy chủ tiêu chuẩn hiện nay hoàn toàn đủ khả năng vận hành ổn định hệ thống cho các đội ngũ phát triển từ 20 đến 100 nhân sự.

Vì sao ngôn ngữ OWL được ưu tiên hơn định dạng XML Schema thông thường trong hệ thống SKMS?
XML Schema chỉ đơn thuần định nghĩa cấu trúc dữ liệu và cú pháp thông điệp truyền thông mà không hỗ trợ suy diễn ngoài giao tác. Trong khi đó, ngôn ngữ OWL (đặc biệt là phân lớp OWL DL) được thiết kế dựa trên logic hình thức, cho phép công cụ tự động phát hiện các mối quan hệ bắc cầu và ràng buộc thuộc tính phức tạp giữa hơn 10 loại thực thể phần mềm khác nhau.

Kết luận

  • Luận văn đã hệ thống hóa toàn diện cơ sở lý thuyết quản lý tri thức trong kỹ nghệ phần mềm dựa trên mô hình 8 khối của Probst và mô hình chuyển đổi tri thức SECI.
  • Thiết kế thành công kiến trúc System Ontology 3 tầng (Content, Organization, Interaction) tích hợp hoàn chỉnh 10 lĩnh vực kỹ thuật chuẩn SWEBOK tại Công ty DDS Việt Nam.
  • Kết quả thực nghiệm chứng minh giải pháp giúp khắc phục sai lệch 33.3% trong ước lượng thời gian dự án và nâng cao hơn 45% tốc độ truy xuất thông tin lỗi phần mềm.
  • Đề xuất lộ trình 4 giải pháp khả thi trong vòng 12 tháng tiếp theo nhằm tự động hóa quy trình trích xuất siêu dữ liệu và khai thác mạng lưới chuyên gia kỹ thuật.
  • Khuyến nghị các doanh nghiệp công nghệ thông tin và nhà nghiên cứu tiếp tục ứng dụng công nghệ Web ngữ nghĩa để chuẩn hóa dữ liệu, bảo tồn tài sản trí tuệ và tạo dựng lợi thế cạnh tranh bền vững.