tuanmaanh

New Member

Download miễn phí Xây dựng tác tử giao diện hỗ trợ lập trình sử dụng mạng Bayes





Agent hỗtrợlập trình được triển khai dưới dạng
một plug-in cho môi trường lập trình IntelliJ IDEA
[10]. IntelliJ IDEA được lựa chọn bởi hai lý do. Thứ
nhất, đây là một trong những môi trường lập trình
(IDE) khá phổbiến hiện nay. Thứhai, IntelliJ IDEA
cung cấp giao diện lập trình OpenAPI cho phép xây
dựng plug-in trên Java đểbổsung chức năng cho môi
trường. Chúng tôi đã sửdụng API này đểlập trình
agent.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

84
Abstract: In this paper, we describe the design and
construction of an interface agent for assisting Java
programming. The agent automatically monitors
programm fragments being coded and recommends to the
programmer library components that can be used for these
fragments. Our agent is different from one described in [8]
in that the former uses bayesian networks for making
decision. The use of bayesian networks enables integrating
different evidences in a flexible way when making decision.
The agent is integrated into IDE IntelliJ Idea as a plug-in.
The usefullness of the agent has been verified by
experiments.
I. ĐẶT VẤN ĐỀ
Các ngôn ngữ lập trình hiện nay đều có hệ thống đồ
sộ các thư viện hàm và các thành phần khác (lớp,
cách, giao diện .v.v.) đi kèm. Những thư viện
này do nhà sản xuất chương trình dịch cung cấp hay
do những tổ chức và lập trình viên khác xây dựng nên.
Ví dụ, thư viện Java phiên bản 1.4 có tới 2723 lớp.
Thư viện ngôn ngữ cho phép tiết kiệm đáng kể thời
gian lập trình. Tuy nhiên, không phải lập trình viên
nào cũng biết thư viện cung cấp những thành phần
nào, chức năng của thành phần đó là gì. Việc tìm kiếm
thành phần cần thiết bằng cách duyệt thư viện hay sử
dụng công cụ tìm kiếm theo từ khoá thường không
cho kết quả mong muốn nếu lập trình viên thậm chí
không biết thành phần cần tìm có tồn tại trong thư
viện hay không. Do vậy, cần có công cụ giúp lập trình
viên tìm ra những thành phần thư viện cần thiết vào
thời điểm thích hợp.
Agent (tác tử) giao diện là những chương trình chạy
trong chế độ nền, có khả năng theo dõi quá trình giao
tiếp giữa người với máy tính và chủ động đưa ra
những trợ giúp cần thiết tuỳ vào tình huống cụ thể [4].
Khác với những chương trình tra cứu hay tìm kiếm
thông thường, agent giao diện có cơ chế suy diễn cho
phép tự động ra quyết định khi nào cần trợ giúp mà
không cần đến yêu cầu từ phía người dùng.
Bài báo mô tả agent giao diện với khả năng tự động
theo dõi quá trình viết mã chương trình trên Java. Tuỳ
vào tình huống cụ thể và kinh nghiệm của lập trình
viên, agent sẽ đưa ra gợi ý về những thành phần của
thư viện Java mà lập trình viên có thể sử dụng trong
đoạn chương trình hiện tại. Mặc dù ý tưởng về agent
này được lấy từ [7, 8], có hai thay đổi đáng kể so với
nguyên bản. Thứ nhất, cơ chế suy diễn được xây dựng
dựa trên mạng Bayes. Đây là cơ chế suy diễn xấp xỉ
cho phép kết hợp thông tin từ những nguồn khác
nhau. Thứ hai, agent nguyên bản được tích hợp vào
trình soạn thảo emacs chạy trên hệ điều hành Linux,
còn agent của chúng tui được tích hợp vào môi trường
lập trình IntelliJ Idea chạy trên Windows vốn quen
thuộc với lập trình viên Việt nam hơn. Phần còn lại
của bài báo sẽ trình bày chi tiết về các thay đổi này.
II. NGUYÊN LÝ VÀ HOẠT ĐỘNG CỦA AGENT
Do được tích hợp vào môi trường lập trình (IDE),
agent giao diện được trình bày ở đây có thể theo dõi
những gì đang diễn ra trong cửa sổ soạn thảo chương
trình. Những thông tin này cho phép agent so sánh
Xây dựng tác tử giao diện hỗ trợ lập trình
sử dụng mạng Bayes
Constructing an Interface Agent to Assist Programming
Using Bayesian Networks
Từ Minh Phương, Nguyễn Nam Phong
84
tình huống lập trình hiện tại với những thành phần đã
có trong thư viện. Nếu tìm được các thành phần tương
tự với tình huống hiện tại, agent sẽ giới thiệu các
thành phần đó với lập trình viên thông qua một cửa sổ
riêng.
Mức độ tương tự của tình huống hiện tại so với
thành phần thư viện được đánh giá dựa trên hai tiêu
chí sau:
− Tương tự về chức năng. Thông thường, trước khi
viết một đoạn chương trình, lập trình viên thường
chèn chú giải mô tả chức năng đoạn chương trình đó.
Các chú giải này cung cấp cho agent thông tin về chức
năng của đoạn chương trình đang xây dựng.
− Tương tự về kiểu dữ liệu. Mỗi cách hay
hàm đều có kiểu dữ liệu đầu vào, đầu ra, còn được gọi
là dấu hiệu (signature) của thành phần đó. Dấu hiệu
được agent sử dụng khi tìm kiếm các thành phần thư
viện tương tự.
Mỗi khi lập trình viên viết một đoạn chú giải mô tả
chức năng của cách hay lớp sắp viết, agent sẽ
sử dụng kỹ thuật tìm kiếm thu thập thông tin
(information retrieval) để tìm và hiển thị danh sách
những thành phần thư viện có chức năng tương tự.
Trên hình 1 là một ví dụ minh họa kết quả tìm kiếm
theo chức năng. Phía trên là cửa sổ soạn thảo thông
thường của IntelliJ IDEA, phía dưới là cửa sổ giao
diện của agent. Trong ví dụ này, lập trình viên định
viết một cách tạo số ngẫu nhiên nằm giữa hai
giới hạn. Sau khi quan sát thấy lập trình viên nhập
dòng chú giải trong cửa sổ soạn thảo, agent hiển thị
danh sách một số cách có mô tả chức năng
tương tự với chú giải. Mỗi cách được hiển thị
cùng với mô tả vắn tắt. Cột bên trái là điểm số dùng
để so sánh độ phù hợp của cách.
Việc sử dụng thông tin từ chú giải thường chưa đầy
đủ để tìm ra thành phần phù hợp. Vì vậy, sau khi lập
trình viên khai báo kiểu dữ liệu cho cách định
viết như ví dụ trên hình 2, agent sử dụng kỹ thuật đối
sánh dấu hiệu (signature matching) [9] để tìm những
thành phần có dấu hiệu tương tự. Kết quả đối sánh
theo chú giải và theo dấu hiệu được kết hợp với nhau
để đưa ra danh sánh các cách phù hợp nhất.
Trong ví dụ trên hình 2, kết hợp so sánh theo chức
năng và theo dấu hiệu cho thấy cách
getLong có điểm số cao nhất.
Hình 1. Các thành phần tìm được nhờ so sánh chức năng
trong phần chú giải
Hình 2. Kết quả tìm kiếm sau khi kết hợp so sánh chức
năng và so sánh dấu hiệu
Chi tiết về kỹ thuật so sánh theo chức năng, theo
dấu hiệu và kết hợp kết quả so sánh sẽ được trình bày
trong phần tiếp theo của bài báo.
Ngoài việc phân tích hai loại thông tin trên, một yêu
cầu quan trọng với agent là không gợi ý lại những
thành phần mà lập trình viên đã biết và sử dụng thành
thạo. Một lập trình viên được coi là đã biết một thành
phần nếu lập trình viên từng sử dụng thành phần đó
một số lần nhất định trong các chương trình của mình.
Như vậy, ngoài yêu cầu đưa ra trợ giúp theo tình
huống, agent còn phải đưa ra trợ giúp tuỳ theo kinh
nghiệm cá nhân của từng người lập trình. Để làm
được điều này, agent lưu giữ một mô hình riêng cho
từng người lập trình bao gồm những thành phần người
đó đã biết. Khởi đầu mô hình này rỗng. Mô hình được
cập nhật nhờ phân tích những chương trình mà lập
trình viên đã viết cũng như theo dõi quá trình làm việc
85
của lập trình viên.
III. SO SÁNH TÌNH HUỐNG VÀ RA QUYẾT
ĐỊNH
1. Tương tự về chức năng
Như đã nói ở trên, các chú giải do người lập trình
chèn vào đoạn mã được sử dụng để tìm kiếm những
thành phần có mô tả chức năng tương tự. Ở đây, agent
sử dụng kỹ thuật thu thập thông tin, các chú giải được
coi như những câu truy vấn, phần mô tả chức năng
thành phần thư viện là văn bản cần tìm. Để thực hiện
so sánh, câu truy vấn và ...
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Hoàn thiện công tác trả lương theo sản phẩm tại Công Ty xây dựng số 1 Vinaconex Luận văn Kinh tế 0
D Thực trạng công tác kế toán tại công ty cổ phần xây dựng và đầu tư 492 Luận văn Kinh tế 0
D Hoàn thiện công tác thẩm định các dự án đầu tư trong lĩnh vực xây dựng tại Ngân hàng Vietcombank Luận văn Kinh tế 0
D Hoàn thiện công tác cung ứng nguyên vật liệu tại công ty cổ phần đầu tư xây dựng quang trung 2018 Kiến trúc, xây dựng 0
D Khảo sát, đánh giá thực trạng công tác tổ chức xây dựng chương trình, kế hoạch tại ủy ban nhân dân Văn hóa, Xã hội 0
D Công tác xây dựng gia đinh văn hóa ở huyện Tam Bình, tỉnh Vĩnh Long hiện nay, thực trạng và giải pháp Văn hóa, Xã hội 0
D Thực trạng công tác và một số giải pháp nhằm tăng khả năng cạnh tranh trong dự thầu xây dựng tại Công ty Xây dựng và Trang trí nội thất Bạch Đằng Khoa học kỹ thuật 0
D Hoàn thiện công tác xây dựng kế hoạch bán hàng của công ty TNHH Ngân Hạnh Luận văn Kinh tế 0
D Nghiên cứu tác động của văn hóa doanh nghiệp đến sự gắn bó của nhân viên – khảo sát tại một số công ty xây dựng Luận văn Kinh tế 0
D Báo cáo đánh giá tác động môi trường Dự án xây dựng Nhà máy chế biến thủy sản xuất khẩu Quốc Ái Khoa học Tự nhiên 0

Các chủ đề có liên quan khác

Top