1. Trang chủ
  2. » Công Nghệ Thông Tin

XÂY DỰNG HỆ THỐNG BẢO TRÌ PHẦN MỀM TÍCH HỢP VỚI ECLIPSE SỬ DỤNG CÔNG NGHỆ WEB NGỮ NGHĨA

41 1,2K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 2,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

XÂY DỰNG HỆ THỐNG BẢO TRÌ PHẦN MỀM TÍCH HỢP VỚI ECLIPSE SỬ DỤNG CÔNG NGHỆ WEB NGỮ NGHĨA Giáo viên hướng dẫn : TS... Khái niệm BTPM Bảo trì là công việc tu sửa, thay đổi phần mềm đã được

Trang 1

XÂY DỰNG HỆ THỐNG BẢO TRÌ

PHẦN MỀM TÍCH HỢP VỚI ECLIPSE SỬ DỤNG CÔNG NGHỆ

WEB NGỮ NGHĨA

Giáo viên hướng dẫn : TS Cao Tuấn Dũng

Sinh viên thực hiện : Nguyễn Đức Đạt

Lớp : CNTT – KSTN - K49

Trang 2

Nội dung

1 Bài toán bảo trì phần mềm

2 Tiếp cận web ngữ nghĩa cho bài toán BTPM

3 Xây dựng công cụ hỗ trợ BTPM

4 Kết luận và hướng phát triển

Trang 3

Khái niệm BTPM

 Bảo trì là công việc tu sửa, thay đổi phần mềm đã được phát triển (chương trình, dữ liệu, các loại tài liệu đặc

tả, …) theo những lý do nào đó

 Chi phí cho việc bảo trì [6]

 50% thời gian bảo trì là đọc hiểu hệ thống cũ

67%

15%

3%

3% 5% 7%

Trang 4

Một số tồn tại với cách bảo trì hiện thời

 Các hệ thống quản lý artifact (source code, tài liệu…) độc lập với nhau

 Chưa quan tâm nhiều đến sự liên kết giữa các thành phần phần mềm

Trang 5

Ngữ cảnh và mục tiêu của đề tài

 Nằm trong đề tài nghiên cứu Mitani2009

Trang 6

Nội dung

1 Bài toán bảo trì phần mềm

2 Tiếp cận web ngữ nghĩa cho bài toán BTPM

3 Xây dựng công cụ hỗ trợ BTPM

4 Kết luận và hướng phát triển

Trang 7

Web ngữ nghĩa?

 Là sự mở rộng của web hiện tại

 Các thông tin được gắn thêm ngữ nghĩa cho phép máy tính có thể hiểu được

Trang 9

Ý tưởng ứng dụng web ngữ nghĩa trong BTPM

 Sử dụng ontology để xây dựng các annotation mô tả

source code, tài liệu và các mối quan hệ giữa chúng

 Truy vấn ngữ nghĩa dữ liệu

 Sử dụng luật suy diễn

 Chia sẻ thông tin

Trang 10

Nội dung

1 Bài toán bảo trì phần mềm

2 Tiếp cận web ngữ nghĩa cho bài toán BTPM

3 Xây dựng công cụ hỗ trợ BTPM

4 Kết luận và hướng phát triển

Trang 11

Công cụ hỗ trợ BTPM

 Mục đích:

 Các công việc chính

 Sự phụ thuộc giữa các thành phần code

 Mối liên kết ngữ nghĩa giữa mã nguồn và tài liệu

Trang 12

Tạo ontology source code

Ontology Source Code

Ngôn ngữ: OWL DL Bao gồm:

BNF (Backus–Naur Form)

Concepts và cây phân cấp

Kế thừa có chọn lọc

Thuộc tính

Trang 13

Tạo ontology document

Ontology Document

Ngôn ngữ: OWL DL Bao gồm:

Tài liệu hệ thống

Concepts và cây phân cấp

Thuộc tính

Trang 14

Sinh tự động annotation về sự phụ thuộc các thành phần source code

Project & các file nguồn

Bộ Phân Tích (Parser)

Cây cú pháp trừu tượng

Đối sánh

Ontology

Chú thích ngữ nghĩa

Trang 15

Tạo annotation từ code (tiếp)

Class

Method Lời định nghĩa hàm

Lời định nghĩa lớp

Ánh xạ

<sec0.2:Method

rdf:id="#org.jgraph.example.IconExample/createCellAttributes(java.awt.geom.Point2D)“> <sec0.2:hasSource rdf:resource=“#/Graph/src/org/jgraph/example/IconExample.java"/> <rdfs:label xml:lang="en">createCellAttributes</rdfs:label>

Trang 16

Kết quả

Trang 17

Sinh tự động annotation về mối liên kết giữa mã nguồn và tài liệu

 Section (3.2.2 The EDGE AND…)

 hasParagraph – Paragraph (The Edge interface…)

Trang 19

Chức năng tạo chú thích ngữ nghĩa thủ công

 Những thông tin không thể thực hiện được tự động

Class – encodesRequirement – Requirement

Method – entryPointFor – Requiremnt

SoftwareComponent – hasTest – Test

SoftwareComponent – hasDescriptionIn - DocumentElement

Tạo Test

Giao diện đồ họa, thao tác

thuận tiện và tối ưu

Trang 21

Áp dụng matching code-tài liệu trong chức năng cảnh báo thay đổi

Trang 22

testedAt 6/6/2009

testedAt

Trang 23

Chức năng tìm kiếm Test

Trang 24

Ví dụ 1:

#scanTree() usesMethod #scanTree()

scanTree là một hàm đệ quy

Trang 25

SELECT ?layer1 ?layer2 (count(*) AS ?numberCalls)

WHERE

{

?layer1 sec:containsMethod ?method1

?layer2 sec:containsMethod ?method2

?method1 sec:usesMethod ?method2

?layer1 sec:hasDirectType ‘Layer’

?layer2 sec:hasDirectType ‘Layer’

}

GROUP BY ?layer1 ?layer2

Chức năng xem quan hệ giữa các layer (dùng rule)

Layer : một tầng trong kiến trúc phân tầng của một phần

mềm

Layer - containsMethod - method

Trang 26

Tạo luật

Sử dụng luật (SWRL) để tạo ra quan hệ

layer – containsMethod – method

Trang 27

Giao diện quan hệ các layer

Số lần gọi giữa các layer với nhau

Class được sử dụng

bởi class Jgraph

trong modelLayer

Trang 28

Một số chức năng khác

MetricChartView Hiển thị biểu đồ các độ đo của package, class

RequirementView

Hiển thị thông tin về các Requirement, cho phép nhảy tới các class cài đặt requirement này, hay method mà người dùng nên đọc để hiểu về requirement đó.

MethodCall Quan hệ gọi lẫn nhau giữa các method

CodeDependence Xem sự phụ thuộc lẫn nhau giữa các class

CreateTest Tạo Test và các thông tin ngữ nghĩa liên quan tới Test

CreateManualAnn

otation

Tạo thủ công các chú thích ngữ nghĩa

Class – encodesRequirement – Requirement Method – entryPointFor – Requirement SoftwareComponent – hasTest – Test SoftwareComponent – hasDescriptionIn – DocumentElement ….

AnnotationManag

er Quản lý chú thích ngữ nghĩa, duyệt các khái niệm, quan hệ trong ontology

Trang 29

Nội dung

1 Bài toán bảo trì phần mềm

2 Tiếp cận web ngữ nghĩa cho bài toán BTPM

3 Xây dựng công cụ hỗ trợ BTPM

4 Kết luận và hướng phát triển

Trang 30

Kết luận

 Chương trình

 Cài đặt plugin với 98 class, 14434 dòng code

 Tự động hóa một phần trong quá trình tạo annotation

 Cung cấp khá nhiều chức năng

 Dễ sử dụng lại khi hỗ trợ các ngôn ngữ khác trên Eclipse

 Hạn chế

 Tài liệu ở định dạng pdf

 Mới chỉ áp dụng cho ngôn ngữ lập trình JAVA

 Mới quản lý thay đổi theo chiều code  document

Trang 31

So sánh với các hệ thống khác

 Hệ thống không dựa trên web ngữ nghĩa

mới

 Hệ thống dựa trên web ngữ nghĩa

 Tạo annotation từ code và tài liệu được thực hiện bằng tay

 Sử dụng ngôn ngữ KANDOR để mô tả tri thức

Trang 32

Hướng phát triển

 Quản lý thay đổi theo chiều document – code

 Phát triển tiếp các thuật toán sinh tự động

 Thông kê các thay đổi, ý nghĩa thay đổi

 Làm việc với server

Trang 33

Tài liệu tham khảo

[1] René Witte , Yonggang Zhang , Juergen Rilling, Empowering Software Maintainers

with Semantic Web Technologies

[2] David Hyland-Wood, David Carrington, Simon Kaplan, Enhancing Software

Maintenance by using Semantic Web Techniques

[3] Yonggang Zhang, René Witte, Juergen Rilling, Volker Haarslev, An Ontological

Approach for the Semantic Recovery of Traceability Links between Software Artifacts,

IET Software journal

[4] Hans-Jörg Happel, Stefan Seedorf, Applications of Ontologies in Software Engineering [5] Suzanne Kabel, Bob Wielinga, Integrating Manuals and Training – First didactic

ontology

[6] Trung Hung Vo, Software Maintenance

[6] Natalya F Noy and Deborah L McGuinness, A Guide to Creating Your First Ontology

Trang 34

Em xin chân thành cảm ơn !

Trang 35

Khái niệm Semantic Web (Gruber)

commonly accepted understanding

conceptual model

of a domain (ontological theory)

unambiguous terminology definitions

machine-readability with computational semantics formal, explicit specification of a shared conzeptualization

Trang 36

Khái niệm Semantic Web

Nhận được sự thống nhất về cách hiểu trong một cộng đồng

Mô hình khái niệm

về một miền ứng dụng cụ thể

Loại bỏ sự nhập nhằng

về thuật ngữ

Mang ngữ nghĩa mà máy tính có thể hiểu

Đặc tả hình thức, tường minh về một quá trình khái

niệm hóa được chia sẻ

Trang 37

Thị phần IDE Java – Thống kê do QA Systems

thực hiện

Trang 38

Các search engine

Trang 39

Tạo tự động annotation từ code

Trang 40

Khái niệm artifact

 Một artifact là một sản phẩm phụ hữu hình được sinh

ra trong quá trình phát triển phần mềm

“An artifact is one of many kinds of tangible byproduct

produced during the development of software”

 Ví dụ: biểu đồ use cases, class digrams, mô hình UML, tài liệu yêu cầu, tài liệu thiết kế

Trang 41

Metric view

Ngày đăng: 05/08/2016, 04:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] René Witte , Yonggang Zhang , Juergen Rilling, Empowering Software Maintainers with Semantic Web Technologies Sách, tạp chí
Tiêu đề: Empowering Software Maintainers with Semantic Web Technologies
Tác giả: René Witte, Yonggang Zhang, Juergen Rilling
[2] David Hyland-Wood, David Carrington, Simon Kaplan, Enhancing Software Maintenance by using Semantic Web Techniques Sách, tạp chí
Tiêu đề: Enhancing Software Maintenance by using Semantic Web Techniques
Tác giả: David Hyland-Wood, David Carrington, Simon Kaplan
[3] Yonggang Zhang, René Witte, Juergen Rilling, Volker Haarslev, An Ontological Approach for the Semantic Recovery of Traceability Links between Software Artifacts , IET Software journal Sách, tạp chí
Tiêu đề: An Ontological "Approach for the Semantic Recovery of Traceability Links between Software Artifacts
[4] Hans-Jửrg Happel, Stefan Seedorf, Applications of Ontologies in Software Engineering [5] Suzanne Kabel, Bob Wielinga, Integrating Manuals and Training – First didacticontology Sách, tạp chí
Tiêu đề: Applications of Ontologies in Software Engineering"[5] Suzanne Kabel, Bob Wielinga, "Integrating Manuals and Training – First didactic
[6] Natalya F. Noy and Deborah L. McGuinness, A Guide to Creating Your First Ontology Sách, tạp chí
Tiêu đề: A Guide to Creating Your First Ontology
Tác giả: Natalya F. Noy, Deborah L. McGuinness

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w