nghiÊn cỨu vÀ Ứng dỤng vdm++ cho mÔ hÌnh hÓa vÀ kiỂm...

11
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHNGUYN XUÂN TÙNG NGHIÊN CU VÀ NG DNG VDM++ CHO MÔ HÌNH HÓA VÀ KIM THHTHNG IMP TI NTTDATA VIETNAM LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Ni 2015

Upload: lenga

Post on 02-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN XUÂN TÙNG

NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH

HÓA VÀ KIỂM THỬ HỆ THỐNG IMP TẠI NTTDATA

VIETNAM

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội – 2015

Page 2: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN XUÂN TÙNG

NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH

HÓA VÀ KIỂM THỬ HỆ THỐNG IMP TẠI NTTDATA

VIETNAM

Ngành: Công nghệ thông tin

Chuyên ngành: Công nghệ phần mềm

Mã Số: 60480103

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN VĂN TĂNG

Hà Nội – 2015

Page 3: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

1

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn chân thành nhất tới T.S Nguyễn Văn Tăng – người đã tận

tình chỉ bảo, góp ý và giúp đỡ tôi hoàn thành luận văn này.

Tôi xin chân thành cảm ơn các thầy cô giáo Khoa Công Nghệ Thông Tin, Trường

Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội đã truyền đạt lại cho tôi những kiến

thức vô cùng bổ ích trong suốt quá trình tôi tham gia học tập và nghiên cứu tại trường.

Tôi cũng xin chân thành cảm ơn gia đình, bạn bè, đồng nghiệp luôn động viên

giúp đỡ mỗi khi tôi gặp khó khăn cũng như tạo mọi điều kiện thuận lợi để tôi hoàn

thành nhiệm vụ học tập và nghiên cứu trong suốt thời gian qua.

Page 4: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

2

LỜI CAM ĐOAN

Tôi xin cam đoan những kết quả trong luận văn này là do tôi nghiên cứu, tổng

hợp và thực hiện. Toàn bộ những nội dung trong luận văn là kết quả của chính cá nhân

tôi hoặc được tổng hợp từ những nguồn tài liệu khác nhau. Tất cả các nguồn tài liệu

đều có nguồn gốc rõ ràng và trích dẫn đầy đủ.

Tôi xin hoàn toàn chịu trách nhiệm với lời cam đoan của mình. Nếu có gì sai trái,

tôi xin chịu mọi hình thức kỷ luật theo quy định.

Hà Nội, 15 tháng 10 năm 2015

Học viên

Nguyễn Xuân Tùng

Page 5: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

3

MỤC LỤC

LỜI CẢM ƠN .................................................................................................................. 1

LỜI CAM ĐOAN ............................................................................................................ 2

MỤC LỤC ....................................................................................................................... 3

DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT .............................................................. 5

MỞ ĐẦU ......................................................................................................................... 9

CHƯƠNG 1 – GIỚI THIỆU CHUNG ........................................................................... 10

1.1. Giới thiệu về VDM ................................................................................................ 10

1.1.1. Khái niệm ......................................................................................................... 10

1.1.2. Các loại VDM .................................................................................................. 11

1.1.3. VDM ++ ........................................................................................................... 11

1.1.3.1. Cấu trúc class ................................................................................................ 11

1.1.3.3. Hàm khởi tạo (Constuctors) ....................................................................... 13

1.1.3.4. Biến thể hiện (Instance Variables) ............................................................. 13

1.1.3.6. Hàm và Phương thức ................................................................................. 20

1.1.3.7. Tính đồng thời (Concurrency) ................................................................... 23

1.2. Công cụ hỗ trợ VDM++ ......................................................................................... 23

1.2.1. Giới thiệu .......................................................................................................... 23

1.2.2. Modelio ............................................................................................................ 24

1.2.3. Overture ............................................................................................................ 27

CHƯƠNG 2 – TỔNG QUAN VỀ DỰ ÁN ................................................................... 40

2.1. Giới thiệu về dự án ................................................................................................. 40

2.1.1. Hiện trạng nghiệp vụ ........................................................................................ 40

2.1.2. Mục đích xây dựng hệ thống IMP ................................................................... 40

2.2. Hệ thống IMP ......................................................................................................... 41

2.2.1. Nền tảng hệ thống ............................................................................................ 41

2.2.2. Luồng nghiệp vụ hệ thống ............................................................................... 43

2.3. Quy trình phát triển dự án....................................................................................... 45

2.3.1. Quy trình phát triển hiện tại ............................................................................. 45

2.3.2. Đánh giá vấn đề của dự án ............................................................................... 46

2.3.3. Giải pháp tổng thể ............................................................................................ 47

CHƯƠNG 3 – ÁP DỤNG QUY TRÌNH MỚI VÀO DỰ ÁN IMP .............................. 52

Page 6: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

4

3.1. Mô hình hóa thực thể dữ liệu.................................................................................. 52

3.1.1. Mô hình hóa kiểu dữ liệu SQL ......................................................................... 52

3.1.2. Mô hình hóa cấu trúc bảng ............................................................................... 53

3.1.3. Mô hình hóa bảng dữ liệu ................................................................................ 55

3.1.4. Mô hình hóa cơ sở dữ liệu................................................................................ 56

3.2. Mô hình hóa đặc tả hệ thống .................................................................................. 56

3.2.1. Đặc tả kiến trúc ................................................................................................ 56

3.2.2. Đặc tả nghiệp vụ............................................................................................... 57

3.3. Kiểm thử mô hình hóa ............................................................................................ 61

3.4. Kết quả thực nghiệm ............................................................................................... 63

3.5. Kinh nghiệm thực tiễn ............................................................................................ 66

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .................................................................... 68

TÀI LIỆU THAM KHẢO ............................................................................................. 69

Page 7: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

5

DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT

STT Từ viết tắt Tiếng Anh Tiếng Việt

1 VDM Vienna Development

Method

Phương thức phát triển

Vienna

2 VDM-SL VDM Specification

Language

Ngôn ngữ đặc tả VDM

3 VDM++ VDM Object-Oriented Đặc tả hướng đối tượng

VDM

4 SA System Analysis Phân tích hệ thống

5 ERD Entity-Relation Diagram Lực đồ quan hệ thực thể

6 IDE Integrated Development

Environment

Môi trường phát triển tích

hợp

7 RD Requirement Definition Đặc tả yêu cầu

8 DD Detail Design Thiết kế chi tiết

9 Class Lớp

10 SQL Structured Query Language Ngôn ngữ truy vấn mang

tính cấu trúc

11 UML Unified Modeling Language Ngôn ngữ mô hình hóa

thống nhất

12 MVC Model View Controller Một mẫu kiến trúc phần

mềm trong kỹ thuật kỹ sư

phần mềm

13 IMP Industrial Maintenance

Program

Chương trình bảo dưỡng

khu công nghiệp

14 IDE Integrated Development

Environment

Môi trường phát triển tích

hợp

15 CT Combinatorial Testing Kiểm tra tổ hợp

16 PT Processing Test Kiểm thử nghiệp vụ

17 IT Intergration Test Kiểm thử tích hợp

18 ST System Test Kiểm thử hệ thống

Page 8: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

6

DANH MỤC HÌNH VẼ

Hình 1. 1. Cấu trúc class trong VDM++ ....................................................................... 12

Hình 1. 2. Cú pháp khai báo lớp thừa kế ....................................................................... 13

Hình 1. 3. Cú pháp khai báo biến thể hiện .................................................................... 13

Hình 1. 4. Cú pháp khai báo tính bất biến ..................................................................... 14

Hình 1. 5. Ví dụ khai báo rằng buộc biến thể hiện bằng biểu thức INV ....................... 14

Hình 1. 6. Ví dụ cài đặt hàm truy cập biến cục bộ ........................................................ 15

Hình 1. 7. Khai báo kiểu Union ..................................................................................... 17

Hình 1. 8. Cấu trúc khai báo kiểu product ..................................................................... 17

Hình 1. 9. Khởi tạo kiểu product ................................................................................... 17

Hình 1. 10. Cấu trúc khai báo kiểu dữ liệu bản ghi ....................................................... 18

Hình 1. 11. Khởi tạo kiểu dữ liệu bản ghi ..................................................................... 18

Hình 1. 12. Cấu trúc lớp trong VDM++ ........................................................................ 21

Hình 1. 13. Cấu trúc khai báo hàm tường minh ............................................................ 21

Hình 1. 14. Cấu trúc khai báo hàm không tường minh ................................................. 21

Hình 1. 15. Cấu trúc khai báo phương thức tường minh ............................................... 22

Hình 1. 16. Cấu trúc khai báo phương thức không tường minh .................................... 22

Hình 1. 17. Cấu trúc khai báo phương thức ở mức trừu tượng ..................................... 22

Hình 1. 18. Cấu trúc khai báo phương thức dạng uỷ thác ............................................. 23

Hình 1. 19. Cú pháp khai báo đồng bộ đối tượng chia sẻ ............................................. 23

Hình 1. 20. Xuất biểu đồ UML sang định dạng .UML trong Modelio ......................... 24

Hình 1. 21. Lựa chọn xuất file trong Modelio ............................................................... 25

Hình 1. 22. Kết quả xuất file .UML .............................................................................. 25

Hình 1. 23. Menu chuyển đổi từ UML sang VDM ....................................................... 26

Hình 1. 24. Danh sách các class sau khi import ............................................................ 26

Hình 1. 25. Tạo mới dự án VDM++ trong Overture ..................................................... 29

Hình 1. 26. Chọn loại dự án VDM ................................................................................ 30

Hình 1. 27. Nhập tên dự án VDM++ ............................................................................. 31

Hình 1. 28. Chọn các dự án cần tham chiếu .................................................................. 31

Hình 1. 29. Danh sách thư viện Overture hỗ trợ ........................................................... 32

Hình 1. 30. Hộp thoại cấu hình thực thi và gỡ lỗi ......................................................... 33

Hình 1. 31. Hộp thoại cấu hình thực thi và gỡ lỗi ......................................................... 33

Hình 1. 32. Giao diện gỡ lỗi .......................................................................................... 34

Hình 1. 33. Khung nhìn gỡ lỗi ....................................................................................... 35

Hình 1. 34. Khung nhìn biến thể hiện ........................................................................... 36

Hình 1. 35. Khung nhìn kiểm thử tổ hợp ....................................................................... 36

Hình 1. 36. Lựa chọn sinh mã Java ............................................................................... 37

Hình 1. 37. Menu xuất VDM++ sang UML .................................................................. 38

Hình 1. 38. Kết quả xuất file .uml ................................................................................. 38

Page 9: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

7

Hình 1. 39. Import file .uml vào Modelio ..................................................................... 39

Hình 2. 1. Luồng nghiệp vụ hiện tại .............................................................................. 40

Hình 2. 2. Tổng quan yêu cầu chức năng của hệ thống................................................. 41

Hình 2. 3. Chuyển đổi từ mô hình hệ thống độc lập sang mô hình tích hợp intrarmart 42

Hình 2. 4. Các thành phần trong intramart .................................................................... 42

Hình 2. 5. Kiến trúc MVC của struts ............................................................................. 43

Hình 2. 6. Luồng nghiệp vụ hệ thống ............................................................................ 43

Hình 2. 7. Luồng nghiệp vụ phê duyệt kế hoạch năm ................................................... 44

Hình 2. 8. Màn hình tạo kế hoạch tháng/chi tiết ........................................................... 44

Hình 2. 9. Mô hình chữ V gồm 4 bước ......................................................................... 45

Hình 2. 10. Chi tiết công việc cần thực hiện trong từng công đoạn .............................. 45

Hình 2. 11. Nguyên nhân của vấn đề tốn nhiều thời gian phát triển lại ........................ 46

Hình 2. 12. Mô hình chữ V thêm giai đoạn mô hình hóa VDM++ ............................... 47

Hình 2. 13. Chi tiết công việc bao gồm việc mô hình hóa bằng VDM++ .................... 48

Hình 2. 14. Phạm vi công việc của các nhóm vai trò trong dự án ................................. 50

Hình 3. 1. Mô hình hóa kiểu dữ liệu SQL server .......................................................... 53

Hình 3. 2. Mô hình hóa cấu trúc dữ liệu bảng Imp_Schedule_Annual ......................... 54

Hình 3. 3. Mô hình hóa cấu trúc dữ liệu bảng Imp_Schedule_Annual_Pln_Detail ...... 55

Hình 3. 4. Mô hình hóa bảng Imp_Schedule_Annual và

Imp_Schedule_Annual_Pln_Detail ............................................................................... 55

Hình 3. 5. Mô hình hóa cơ sở dữ liệu Imp .................................................................... 56

Hình 3. 6. Lược đồ lớp trừu tượng trong Modelio ........................................................ 57

Hình 3. 7. Lược đồ luồng nghiệp vụ xử lý tạo mới kế hoạch ........................................ 58

Hình 3. 8. Mô hình hóa lớp trừu tượng ScheduleAnnualModel ................................... 59

Hình 3. 9. Mô hình hóa lớp cài đặt ScheduleAnnualModelImpl .................................. 60

Hình 3. 10. Mô hình hóa lớp xử lý yêu cầu B0102ServiceController........................... 61

Hình 3. 11. Cài đặt unit test thiết kế lớp ScheduleAnnualModelImpl .......................... 62

Hình 3. 12. Màn hình kiểm thử và kết quả kiểm thử lớp ScheduleAnnualModelImpl .. 63

Hình 3. 13. Timeline của dự án trước và sau khi áp dụng quy trình mới ...................... 64

Hình 3. 14. Lỗi có độ ưu tiên cao phát hiện khi thực hiện Modelling Test .................. 65

Hình 3. 15. Lỗi có độ ưu tiên trung bình phát hiện khi thực hiện Modelling Test ....... 65

Hình 3. 16. Lỗi có độ ưu tiên thấp phát hiện khi thực hiện Modelling Test ................. 66

Page 10: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

8

DANH MỤC BẢNG

Bảng 1. 1. Kiểu dữ liệu cơ bản của VDM ..................................................................... 15

Bảng 1. 2. Danh sách các phép toán trên kiểu dữ liệu cơ bản ....................................... 16

Bảng 1. 3. Các phép toán của kiểu Union ..................................................................... 17

Bảng 1. 4. Các phép toán của kiểu product ................................................................... 18

Bảng 1. 5. Các phép toán của kiểu bản ghi ................................................................... 18

Bảng 1. 6. Các phương thức kiểu dữ liệu tập hợp ......................................................... 19

Bảng 1. 7. Các phương thức kiểu dữ liệu map .............................................................. 19

Bảng 1. 8. Các phương thức kiểu dữ liệu map .............................................................. 20

Bảng 1. 9. Danh sách cộng đồng người dùng Overture ................................................ 27

Bảng 2. 1. Định nghĩa mục đích của hành động ............................................................ 48

Bảng 2. 2. Định nghĩa vai trò và trách nhiệm ................................................................ 50

Bảng 3. 1. Kiểu dữ liệu SQL và kiểu dữ liệu VDM tương ứng .................................... 52

Bảng 3. 2. Tổng hợp lỗi tài liệu thiết kế ........................................................................ 64

Bảng 3. 3. Phạm vi và quy mô dự án ............................................................................. 64

Page 11: NGHIÊN CỨU VÀ ỨNG DỤNG VDM++ CHO MÔ HÌNH HÓA VÀ KIỂM …repository.vnu.edu.vn/bitstream/VNU_123/11817/1/4... · CHƯƠNG 1 – GIỚI THIỆU ... 8 DD Detail Design

69

TÀI LIỆU THAM KHẢO

Tiếng Anh

1. Peter Gorm Larsen, Kenneth Lausdahl, Nick Battle, John Fitzgerald, Sune Wolff

(2011), VDM-10 Language Manual.

2. Daisuke Souma, Goro Hatayama, HitoshiOhsaki, Nguyen Van Tang (2012),

Modeling and Validating the Train Fare Calculation and Adjustment System

Using VDM++.

3. Bernhard K. Aichernig, Rudolf Schlatte, Database Development of a Work-Flow

Planning and Tracking System Using VDM-SL

4. Bernhard K. Aichernig, Johann H¨orl, Requirements Validation of a Voice

Communication System used in Air Traffic Control

5. John Fitzgerald, Sune Wolff (2011), Proceeding of the 9th

Overture Workshop

6. Overture-Community: Overture: Formal modelling in VDM. Website:

http://www.overturetool.org/

7. Augusto Ribeiro, Peter Gorm Larsen, John Fitzgerald, Kenneth Lausdahl,

Kenneth Pierce, Sune Wolff, Nick Battle (2010), Tutorial for Overture/VDM++

8. Augusto Ribeiro, Peter Gorm Larsen, John Fitzgerald Nick Battle, Kenneth

Lausdahl, Kenneth Pierce, Sune Wolff (2010), Tutorial for Overture/VDM-RT

9. Augusto Ribeiro, Kenneth Lausdahl, and Peter Gorm Larsen, Run-Time

Validation of Timing Constraints for VDM-RT Models

10. Wikipedia: Vienna Development Method. Địa chỉ:

https://en.wikipedia.org/wiki/Vienna_Development_Method

11. Ken Pierce, Counterpoint: Towards a Proof-Support Tool for VDM

12. John Fitzgerald, Peter Gorm Larsen, Paul Mukherjee, Nico Plat, Marcel Verhoef

(2004), Validated Designs for Objectoriented Systems

13. Peter Gorm Larsen, Kenneth Lausdahl, Peter Tran-Jørgensen, Joey Coleman,

Sune Wolff and Lu´ ıs Diogo Couto (2015), Overture VDM-10 Tool Support:

User Guide (Version 2.1.6)

14. Website của framework intramart được áp dụng trong dự án. Địa chỉ:

http://www.intra-mart.hk/?page=what&id=25

15. Research and Development Headquarters, NTT DATA Corporation (2014),

Overview of TERASOLUNA SS Development Methodology