Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
1,61 MB
Nội dung
HỌC VIỆN THUẬT MẬT MÃ Khoa Công Nghệ Thông Tin Bài Tập Lớn CÔNG NGHỆ PHẦN MỀM ĐỀ TÀI: Software Re-engineering (Tái kỹ nghệ phần mềm) Hà Nội, 26/8/2015 Mục lục Mục lục Lời nói đầu Chương 1: Tổng quan tái kỹ nghệ 1.1 Bảo trì hệ thống phần mềm 1.2 Tổng quan chung tái kỹ nghệ 1.3 Qui trình chung tái kỹ nghệ phần mềm 10 1.3.1 Dịch mã nguồn 11 1.3.2 Kỹ nghệ ngược 12 1.3.2.1 Làm lại tài liệu 15 1.3.2.2 Phục hồi thiết kế 15 1.3.3 Cấu trúc lại hệ thống 16 1.3.4 Module hóa chương trình 18 1.3.5 Tái kỹ nghệ liệu 19 1.4 Các công cụ sử dụng cho tái kỹ nghệ 22 1.4.1 Ngôn ngữ UML 22 1.4.2 Hệ thống phần mềm RATIONAl ROSE 25 1.4.3 Tái kỹ nghệ hệ thống với kỹ nghệ đảo ngược Rational Rose 29 1.5 Những ưu điểm hạn hế tái kỹ nghệ 30 1.5.1 Các ưu điểm 30 1.5.2 Các hạn chế 30 1.6 Kết luận 31 Chương 2: Bài toán chương trình “Sổ địa chỉ” 32 2.1 Giới thiệu chương trình sổ địa 32 2.1.2 Những vấn đề cần cải tiến chương trình 33 Chương 3: Tái kỹ nghệ chương trình sổ địa 35 3.1 Sơ đồ tiến trình thực tái kỹ nghệ 35 3.2 Qui trình thực tái kỹ nghệ chương trình sổ địa 35 3.2.1 Xây dựng tài liệu mô hình thiết kế UML 35 3.2.2 Cấu trúc lại chương trình 36 3.2.3 Tái kỹ nghệ liệu 40 3.2.4 Xây dựng mã nguồn 42 3.2.5 Hoàn thiện, cài đặt sử dụng 44 3.3 Kết đạt số đánh giá 45 3.3.1 Liên quan đến chương trình 45 3.3.2 Liên quan đến triển khai 46 3.3.3 Một số vấn đề tồn 46 Tài liệu tham khảo 47 Tiếng Việt 47 Tiếng Anh 47 Lời nói đầu Ngày nay, sống kỉ nguyên công nghệ thông tin Với bùng nổ công nghệ thông tin, hỗ trợ máy tính cho hoạt động người ngày trở nên cần thiết hết Để đáp ứng nhu cầu thiết yếu này, phần mềm phục vụ người ngày phổ biến hơn, số lượng lớn nâng cấp để có chất lượng tốt Tuy nhiên, với xu hướng phát triển phần mềm, hệ thống phần cứng, chương trình hỗ trợ môi trường phát triển, hay qui trình nghiệp vụ đổi với tốc độ không ngừng Ngày hôm nay, hệ thống đại, tối tân đến ngày mai trở nên lạc hậu không dùng Trước thay đổi nhanh chóng công cụ, môi trường hỗ trợ này, phần mềm cũ có nguy bị bỏ Vậy phải để giải vấn đề mà số lượng phần mềm cũ ngày lớn? Nhiều giải pháp đưa cho việc bảo trì phần mềm Bảo trì phần mềm giai đoạn quy trình tiến hóa phần mềm Đây giai đoạn có chi phí tốn nhất, ta biết, chiếm đến 70% tổng chi phí phát triển phần mềm Tuy nhiên, thực phát triển phần mềm chi phí bỏ lớn nhiều Cho nên yêu cầu đặt phải lựa chọn phương pháp bảo trì phần mềm cho có hiệu cao giảm thiểu rủi ro Với chương trình phần mềm sử dụng thời gian dài, gặp phải vấn đề ngôn ngữ lập trình không sử dụng, thiếu công cụ hỗ trợ cần thiết, không đáp ứng đủ yêu cầu người dùng v.v… Vì vậy, để tiếp tục sử dụng hệ thống phần mềm, ta thực trình bảo trì cần phải có biện pháp xây dựng, cấu trúc lại phần chương trình trở nên lạc hậu không dùng Và phương pháp phổ biến hiệu ngày nay, tái kỹ nghệ lại hệ thống phần mềm Tái kỹ nghệ phương pháp tiến hóa phần mềm có hiệu cao chi phí bỏ nhiều so với việc xây dựng phần mềm so với số phương pháp tiến hóa khác Có điều quy trình tái kỹ nghệ hỗ trợ công cụ phương tiện với quy trình khép kín hoàn thiện đầy đủ Một số công cụ hỗ trợ cho việc tái kỹ nghệ phần mềm ngôn ngữ mô hình hóa thống UML, Rational Software Architecture, Rational Rose v.v… Trong phạm vi đề tài này, chúng em sử dụng hai công cụ hỗ trợ cho việc tái kỹ nghệ ngôn ngữ UML Rational Software Architecture Cùng với việc tìm hiểu quy trình tái kỹ nghệ, để hiểu sâu bước thực quy trình, ta thực tái kỹ nghệ cho chương trình đơn giản là: Sổ địa Chương 1: Tổng quan tái kỹ nghệ Sau thời gian sử dụng, phần mềm cần phải bảo trì để đáp ứng yêu cầu phát sinh người sử dụng, công nghệ mới, thay đổi hoạt động nghiệp vụ theo thời gian theo nghĩa vòng đời hệ thống phần mềm, ta lại bắt đầu công việc: phân tích, thiết kế, cài đặt, kiểm thử mức cao Như vậy, việc tái sử dụng phần xây dựng trước có ý nghĩa to lớn cho việc tiết kiệm công sức, thời gian, kinh phí hoạt động phát triển Có nhiều cách thực việc bảo trì hệ thống phần mềm có nhiều công cụ để thiết kế lại phần mềm Mỗi công cụ thiết kế lại phần mềm có ưu nhược điểm riêng, tuỳ theo hoàn cảnh thực tế mà ta lựa chọn công cụ cho hiệu Dưới trình bày số vấn đề tái kỹ nghệ hệ thống phần mềm UML (Unified Modeling Language) công cụ Rational Rose 1.1 Bảo trì hệ thống phần mềm Phát triển phần mềm phải trải qua nhiều giai đoạn Các giai đoạn bao gồm: phân tích yêu cầu, kiến trúc hệ thống, thiết kế, cài đặt, kiểm thử, triển khai phần mềm bảo trì Bảo trì giai đoạn cuối vòng đời phát triển phần mềm Bảo trì bảo đảm cho hệ thống tiếp tục hoạt động sau thực kiểm thử hay sau đưa hệ thống vào hoạt động thực tế Bảo trì phần mềm bao gồm sửa đổi làm hệ thống thích nghi với yêu cầu thay đổi người sử dụng, thay đổi liệu cho phù hợp, gỡ rối, khử bỏ sửa chữa sai sót mà trước chưa phát Ngày nay, việc xây dựng, phát triển trình bảo trì hệ thống phần mềm hỗ trợ nhiều công cụ, kĩ nghệ phần mềm có máy tính trợ giúp (CASE) Công nghệ CASE phát triển mạnh mẽ, bao gồm công cụ về: lập kế hoạch quản lý dự án, công cụ trợ giúp phân tích thiết kế, cài đặt hệ thống, tích hợp kiểm thử, làm mẫu …Ở quan tâm tới số hoạt động trình bảo trì phần mềm số công cụ có sẵn Bảo trì giai đoạn cuối tiến trình kĩ nghệ phần mềm, tiêu tốn nhiều thời gian, công sức kinh phí Tái kỹ nghệ công nghệ đặc trưng giúp cho việc bảo trì hệ thống phần mềm hiệu nhanh chóng 1.2 Tổng quan chung tái kỹ nghệ Bản chất việc tái kỹ nghệ phần mềm để cải tiến biến đổi phần mềm có để hiểu, điều khiển hay sử dụng cách khác Ngày nay, số lượng hệ thống xây dựng từ đầu giảm dần, hệ thống kế thừa lại ngày nhiều Chức hệ thống không đổi hệ thống phần cứng, công nghệ, môi trường làm việc ngày đổi Những hệ thống phần mềm kế thừa lại trở nên lạc hậu, số cấu trúc chương trình không dùng nhu cầu tái kỹ nghệ phần mềm tăng lên đáng kể Việc tái kỹ nghệ phần mềm trở nên quan trọng việc phục hồi tái sử dụng lại phần mềm có, làm cho chi phí bảo trì phần mềm kiểm soát tạo sở cho việc tiến hóa phần mềm tương lai Thuật ngữ “Tái kỹ nghệ” nhanh chóng trở thành từ yêu thích nhà quản lý phát triển phần mềm, thực có ý nghĩa họ? Về tái kỹ nghệ lấy phần mềm thừa kế có mà việc bảo trì chúng đắt, thành phần, kiến trúc hệ thống không dùng làm lại công nghệ phần mềm phần cứng thời Vấn đề khó khăn phải có hiểu biết hệ thống Thường tài liệu phân tích yêu cầu, tài liệu thiết kế tài liệu mã nguồn chương trình không nữa, lỗi thời Vì để hiểu chức không sử dụng cách rõ ràng điều khó khăn Thường hệ thống cũ bao gồm chức không cần thiết chức không cần đưa vào hệ thống Vậy tái kỹ nghệ? Chikofsky Cross định nghĩa tái kỹ nghệ là: “ kiểm tra, phân tích, biến đổi hệ thống phần mềm thời để xây dựng lại thành hệ thống mới, bổ sung thêm số thành phần vào đó” (Chikofsky 1990) Định nghĩa rõ ràng tập trung vào làm sáng tỏ đặc trưng thuật ngữ, thay đổi kết phần mềm Arnold, định nghĩa cách khác tái kỹ nghệ là: “bất kỳ hoạt động làm cải tiến hiểu biết phần mềm, hoạt động cải tiến phần mềm thường tăng khả bảo trì, khả sử dụng lại, khả tiến hóa” (Arnold 1993) Quy trình tái kỹ nghệ thường kết hợp nhiều qui trình khác kỹ nghệ ngược, làm lại tài liệu, cấu trúc lại chương trình, chuyển đổi kỹ nghệ xuôi, dịch hệ thống sang ngôn ngữ lập trình đại Mục đích để có nhìn rõ chương trình thời (đặc tả, thiết kế, thực thi), sau tái thực lại để cải thiện chức năng, hiệu suất, thi hành hệ thống Mục tiêu để trì chức có chuẩn bị cho chức thêm vào sau Sau sửa đổi, chức phần mềm không thay đổi, thông thường cấu trúc chương trình giữ nguyên cũ Đứng từ quan điểm kỹ thuật, tái kỹ nghệ phần mềm giải pháp thứ hai vấn đề phát triển phần mềm sau lựa chọn giải pháp phát triển hệ thống phần mềm Nguyên nhân cấu trúc phần mềm không nâng cấp việc phân phối hệ thống có tính tập trung việc khó Nó thường thay đổi triệt để ngôn ngữ lập trình hệ thống hệ thống cũ với ngôn ngữ lập trình thủ tục khó chuyển đổi sang ngôn ngữ lập trình hướng đối tượng Java hay C++ Do đó, giới hạn cố hữu tồn hệ thống trì chức phần mềm không thay đổi Tuy nhiên, đứng từ quan điểm nghiệp vụ, tái kỹ nghệ phần mềm đường đảm bảo hệ thống cũ tiếp tục phục vụ Sẽ đắt rủi ro chấp nhận cách tiếp cận khác việc phát triển phần mềm Để hiểu lí cho vấn đề này, đưa đánh giá sơ vấn đề hệ thống phần mềm cũ Vậy trường hợp nên thực tái kỹ nghệ hệ thống Câu trả lời tái kỹ nghệ có hiệu cao thực hệ thống cũ kế thừa lại (legacy system) Một hệ thống cũ kế thừa lại phương thức, công nghệ cũ, hệ thống máy tính hay chương trình ứng dụng lạc hậu tiếp tục sử dụng chức đáp ứng nhu cầu người dùng Tuy nhiên, hệ thống hiệu cao công nghệ lạc hậu thủ tục hay tảng hỗ trợ không tồn Hơn nữa, hệ thống thường không tài liệu đặc tả, phân tích, mô hình thiết kế Vì vậy, để xây dựng lại hệ thống cần phải có hiểu biết sâu sắc Do đó, tái kỹ nghệ lựa chọn tốt trường hợp Sự khác biệt then chốt tái kỹ nghệ phát triển hệ thống phần mềm điểm xuất phát cho việc phát triển Đối với việc phát triển hệ thống phần mềm mới, công việc bắt đầu với việc viết tài liệu đặc tả cho hệ thống, tái kỹ nghệ, hệ thống cũ đóng vai trò đặc tả cho hệ thống Hình 1-02: Qui trình tái kỹ nghệ Hình 1-02 mô tả qui trình tái kỹ nghệ có khả thực Đầu vào qui trình chương trình kế thừa đầu phiên có module có cấu trúc rõ ràng chương trình Đồng thời tái kỹ nghệ chương trình, liệu cho hệ thống tái kỹ nghệ lại Các hoạt động qui trình tái kỹ nghệ là: Dịch mã nguồn Chương trình chuyển đổi từ ngôn ngữ lập trình cũ sang phiên chuyển sang ngôn ngữ khác Kỹ nghệ ngược Chương trình phân tích lấy thông tin để làm tài liệu cho tổ chức chức chương trình Cải tiến cấu trúc hệ thống Cấu trúc điều khiển chương trình phân tích sửa đổi để giúp cho việc đọc hiểu dễ dàng Module hóa hệ thống Liên kết phần chương trình thành nhóm với nhau, thành phần riêng biệt, dư thừa bỏ Trong vài trường hợp, giai đoạn bao gồm việc biến đổi cấu trúc chương trình Tái kỹ nghệ liệu Dữ liệu xử lý chương trình thay đổi để phản hồi lại thay đổi chương trình Chi phí tái kỹ nghệ hiển nhiên định qui mô công việc cần phải tiến hành Chi phí phương pháp tiếp cận đến tái kỹ nghệ thể hình 1-03 Chi phí tăng từ trái qua phải, chuyển đổi mã nguồn lựa chọn rẻ tái kỹ nghệ phần việc chuyển hướng cấu trúc có chi phí cao Hình 1-03: Chi phí tái kỹ nghệ Ngoại trừ qui mô hoạt động tái kỹ nghệ, yếu tố ảnh hưởng đến chi phí tái kỹ nghệ là: Chất lượng phần mềm để tái kỹ nghệ Chất lượng phần mềm tài liệu liên quan (nếu có) thấp chi phí cho việc tái kỹ nghệ cao Công cụ hỗ trợ có sẵn cho việc tái kỹ nghệ Hoạt động tái kỹ nghệ chi phí hiệu công cụ sử dụng Và Công cụ CASE công cụ cần thiết tất yếu cho hoạt động tái kỹ nghệ tự động việc chuyển đổi chương trình, làm giảm chi phí đáng kể Phạm vi chuyển đổi liệu thiết yếu Nếu tái kỹ nghệ phụ thuộc lớn vào khối lượng liệu chuyển đổi, làm tăng đáng kể chi phí tiến trình Tính sẵn có đội ngũ nhân viên chuyên môn Nếu nhân viên chịu trách nhiệm bảo trì hệ thống tham gia vào qui trình tái kỹ nghệ, điều làm gia tăng chi phí Các kỹ sư tái kỹ nghệ hệ thống phải nhiều thời gian để thực hiểu hệ thống 1.3 Qui trình chung tái kỹ nghệ phần mềm Hình 1-04: Mô hình hoạt động tái kỹ nghệ Tái kỹ nghệ bắt đầu với mã nguồn chương trình kế thừa lại kết thúc với mã nguồn chương trình đích Qui trình đơn giản việc sử dụng công cụ dịch mã để dịch mã nguồn từ ngôn ngữ sang ngôn ngữ khác (từ FORTRAN sang C ) hay từ hệ điều hành sang hệ điều hành khác (từ Linux sang Window) Mặt khác, công việc tái kỹ nghệ phức tạp: sử dụng mã nguồn chương trình có để xây dựng lại thiết kế, xác định yêu cầu hệ thống sau so sánh chúng với yêu cầu tại, từ loại bỏ không khả ứng dụng nữa, tổ chức thiết kế lại hệ thống (sử dụng thiết kế hướng đối tượng), cuối xây dựng mã cho hệ thống Chúng ta hình dung rõ mô hình chung hoạt động tái kỹ nghệ phần mềm qua hình 1-04 10 Chương 2: Bài toán chương trình “Sổ địa chỉ” 2.1 Giới thiệu chương trình sổ địa chỉ: Sau toán đơn giản sử dụng để thử nghiệm cho trình tái kỹ nghệ Đây chương trình sổ địa “Sổ địa chỉ” Chương trình “Sổ địa chỉ” chương trình viết ngôn ngữ Java Đây chương trình giúp cho người dùng lưu trữ thông tin cá nhân người thân, bạn bè, đồng nghiệp v.v… giúp họ dễ dàng quản lý danh sách địa cá nhân Với việc sử dụng chương trình, ta lưu trữ thông tin tên, số điện thoại, email, địa v.v… Chương trình có chức sau: - Thêm địa - Sửa địa có - Xóa địa có - Lưu địa vừa thêm vừa chỉnh sửa Giao diện chương trình hình: Hình 2-01: Giao diện chương trình “Sổ địa chỉ” Khi click chọn button “New” chương trình cho phép điền thông tin vào textbox Sau thực điền đầy đủ thông tin lưu liệu lại cách chọn button “Save” Và tất thông tin lưu trữ sở liệu chương trình Vì tùy chọn chức sửa, xóa 32 thông tin đưa vào cách dễ dàng cách bấm chọn button “Edit”, “Delete” để thực thao tác Khung cửa sổ chương trình AddressBook lớp AddressFrame mở rộng từ lớp JFrame AddressFrame container cho thành phần đồ họa khác hoạt động điều khiển cách xử lý kiện khác tạo thành phần Các thành phần lớp JPanel mà lớp có nhiệm vụ khác nhau: − AddressPanel đại diện cho ghi địa Nó cung cấp giao diện cho việc chỉnh sửa ghi thời tạo ghi Lớp chứa trường text cho tất thông tin đối tượng Address − AddressActionPanel cung cấp button cho tất ca sử dụng mà ứng dụng hỗ trợ Trong AddressActionPanel tạo kiện mà AddressFrame phải xử lý Ví dụ người dùng ấn nút Save, lớp tạo kiện AddressFrame phải lắng nghe xử lý tất kiện quan trọng đến từ lớp − AddressListPanel nơi hiển thị địa thêm vào từ lớp AddressFrame Danh sách có kiểu đối tượng ListEntry Một ListEntry chứa định danh ghi sở liệu Từ định danh (ID) ghi cho phép ứng dụng lấy toàn nội dung ghi vào AddressPanel − AddressDao Việc kết nối tạo sở liệu chương trình xử lý lớp AddressDao Vì vậy, trình tái kỹ nghệ liệu thực sửa đổi thông qua lớp 1.2 Những vấn đề cần cải tiến chương trình Đây chương trình đơn giản với số chức bản, thực trình tái kỹ nghệ chương trình để xây dựng thêm số tính mới, giúp chương trình hoàn thiện Và vấn đề cần phải tái ký nghệ đặt chương trình “Sổ địa chỉ” là: − Sửa lại cấu trúc chương trình cho dễ hiểu hơn, bỏ phần mã thừa sai − Việt hóa lại giao diện chương trình cho thân thiện với người sử dụng − Thêm chức tìm kiếm địa theo tên, họ, theo số điện thoại v.v… − Sắp xếp địa theo tên, họ, theo địa v.v… Với vấn đề cần cải tiến chương trình, có nhiều phương pháp để thực Vì cần phải lựa chọn hướng tiếp cận cho 33 phù hợp mà đem lại chi phí hiệu vấn đề đặt nhà phát triển phần mềm Cụ thể yêu cầu toán đưa số giải pháp sau: − Xây dựng chương trình: thực xây dựng lại hoàn toàn chương trình với chức chương trình ban đầu chức bổ sung Nếu thực phương pháp này, phải thực việc phân tích, thiết kế xây dựng toàn chương trình từ đầu mà không sử dụng đến tài nguyên có sẵn mã nguồn chương trình cũ Như việc phát triển nhiều thời gian công sức − Xây dựng thêm chức bổ sung: với phương pháp này, giảm tải phần công việc Tuy nhiên, việc xây dựng thêm chức phân tích, tìm hiểu chương trình ban đầu cách chi tiết dễ dàng dẫn đến sai lầm Chương trình sau xây dựng trở nên phức tạp, chồng chéo nhau, khó hiểu làm hỏng hệ thống − Tái kỹ nghệ: Xem xét lại chương trình cũ với bước thực nêu chương 1, qua cấu trúc xây dựng lại chương trình theo yêu cầu cải tiến Với giải pháp đưa ra, thấy tái kỹ nghệ thể rõ ưu điểm vượt trội so với cách tiếp cận khác Đây giải pháp khả thi phù hợp với yêu cầu toán, vừa tốn thời gian công sức, vừa có hiệu cao Qui trình tái kỹ nghệ chương trình “Sổ địa chỉ” trình bày chi tiết chương 34 Chương 3: Tái kỹ nghệ chương trình sổ địa 3.1 Sơ đồ tiến trình thực tái kỹ nghệ Tiến trình tái kỹ nghệ chương trình “Sổ địa chỉ” thực theo sơ đồ sau: Hình 3-01: Sơ đồ tiến trình tái kỹ nghệ “Sổ địa chỉ” 3.2 Qui trình thực tái kỹ nghệ chương trình sổ địa Ta thực trình tái kỹ nghệ chương trình Sổ địa dựa bước sau: − Giai đoạn 1: từ mã nguồn chương trình xây dựng tài liệu mô hình thiết kế cho chương trình Trong giai đoạn này, thực xây dựng tài liệu đặc tả yêu cầu chương trình, xây dựng mô hình UML cho chương trình từ mã nguồn − Giai đoạn 2: Từ tài liệu mô hình thiết kế chương trình thực cấu trúc lại chương trình: Bỏ cấu trúc thừa sai, đồng thời thêm số chức cho chương trình − Giai đoạn 3: Thực tái kỹ nghệ lại liệu 35 − Giai đoạn 4: xây dựng mã nguồn cho chương trình mới: Từ cấu trúc hệ thống thực xây dựng mã nguồn cho chương trình − Giai đoạn 5: Hoàn thiện chương trình, cài đặt sử dụng: Xây dựng hoàn thiện chương trình, thực kiểm tra đánh giá chương trình so với chương trình cũ 3.2.1 Xây dựng tài liệu mô hình thiết kế UML Trong giai đoạn phải thực việc kỹ nghệ ngược để tạo tài liệu phân tích, thiết kế cho chương trình Để tạo tài liệu phân tích, đặc tả hệ thống trước tiên phải có nhìn tổng quan đầy đủ hệ thống Tuy nhiên, với việc xuất phát từ mã nguồn chương trình, việc đơn giản Để xây dựng tài liệu đặc tả chương trình sử dụng cho trình thiết kế cần phải hiểu chương trình có chức năng, tính gì, hoạt động nào, vận hành Để có thông tin này, trước hết cần dựa việc sử dụng chương trình cộng với việc nghiên cứu mã chương trình Các ghi mã nguồn phần quan trọng giúp cho hiểu hệ thống Thực xong bước này, ta xây dựng tài liệu đặc tả chương trình hoàn thiện Sau có tài liệu phân tích, đặc tả, ta tiếp tục phục hồi mô hình thiết kế cho chương trình cách sử dụng công cụ Rational Rose Quá trình xây dựng mô hình thể sơ đồ hình 3-02 Hình 3-02: Mô hình kỹ nghệ ngược sử dụng Rational Rose Như giới thiệu, Rational Rose công cụ hỗ trợ mạnh việc kỹ nghệ ngược Quá trình kỹ nghệ ngược với Rational Rose tạo mô hình UML thông qua việc phân tích thư viện hỗ trợ thời mã nguồn chương trình Để thu mô hình UML chương trình, ta thực trình dịch ngược theo thao tác giới thiệu chương Sau thực trình này, kết thu biểu đồ lớp chương trình hình 3-03 36 Hình 3-03: Biểu đồ lớp chương trình “Sổ địa chỉ” Với việc có tài liệu đặc tả cộng với hiểu biết sâu sắc hệ thống, tiếp tục sử dụng công cụ Rational Rose để xây dựng hoàn thiện biểu đồ UML cho chương trình 37 Address Book New address > Delete address user Edit address > Save address Exit program Hình 3-04: Biểu đồ use case Từ biểu đồ use case, ta thực xây dựng biểu đồ cho ca sử dụng chương trình, cụ thể biểu đồ cho trình thêm địa mới, xóa địa sửa địa có sẵn 38 Hình 3-05: Biểu đồ cho việc thêm địa Hình 3-06: Biểu đồ cho trình xóa địa 39 Hình 3-07: Biểu đồ cho việc sửa địa 3.2.2 Cấu trúc lại chương trình Dựa vào biểu đồ UML, tài liệu đặc tả chương trình tạo từ giai đoạn trên, đọc tài liệu mã nguồn với việc sử dụng chương trình gốc, hiểu rõ hoạt động chương trình, chức năng, tình cách thức hoạt động Và dựa hiểu biết chương trình gốc này, kết hợp với yêu cầu tiến hóa hệ thống đưa trên, dễ dàng xây dựng lại cấu trúc cho chương trình Chương trình có chức năng: Thêm địa Sửa địa có Xóa địa có Lưu địa vừa tạo Tìm kiếm địa theo tên, họ, theo số điện thoại v.v… 40 Sắp xếp địa theo tên, họ, theo địa v.v… Ngoài ra, chương trình có giao diện hoàn toàn tiếng Việt, giúp cho việc sử dụng chương trình dễ dàng đơn giản Trước tiên, thực việc cấu trúc lại mã nguồn chương trình, bỏ phần mã nguồn không thừa, không cần thiết phần mã nguồn sai Sau đó, dựa mô hình thiết kế xây dựng thiết kế lại chương trình với chức thêm vào Cụ thể đưa thêm chức tìm kiếm, xếp địa Dựa mô hình UML cũ, sử dụng Rational Rose để sửa chữa, tinh chỉnh nâng cao chương trình với chức thêm vào, đồng thời phải đồng chương trình để chức không xung đột với hệ thống, chương trình đảm bảo ổn định Các biểu đồ UML chương trình 41 Address Book New address > Delete address user Edit address > Save address Search address Oder address Exit program Hình 3-08: Biểu đồ use case chương trình 42 3.2.3 Tái kỹ nghệ liệu Với chương trình xây dựng ban đầu: - Một thông tin địa lưu trữ gồm có: Last Name First Name Middle Name Phone Email Address Address City State ZIP Country Tất thông tin lưu trữ bảng sở liệu Address sau: Hình 3-09: Bảng sở liệu địa chương trình gốc Trong bảng sở liệu Address, ID khóa bảng lấy giá trị tăng dần bắt đầu Tuy nhiên, để sửa đổi lại chương trình cho phù hợp với người sử dụng, thông tin lưu trữ cho cá nhân sửa đổi, có thành phần sau: ID Họ Tên Ngày sinh Số điện thoại Email Địa Quận/Huyện Tỉnh/Thành phố Cơ quan Ghi Phân loại 43 Để lưu trữ thông tin nêu trên, trước tiên cần phải kỹ nghệ lại sở liệu chương trình Thực sửa đổi lại liệu ta có bảng sở liệu sau: Hình 3-10: Bảng sở liệu chương trình Sau xây dựng sửa đổi, ta thực thay đổi thông qua lớp AddressDao giai đoạn xây dựng mã nguồn để thu liệu mong muốn 3.2.4 Xây dựng mã nguồn Sau hoàn thiện trình cấu trúc lại hệ thống kỹ nghệ liệu, giai đoạn thực xây dựng mã nguồn Sau giai đoạn cấu trúc lại chương trình thu mô hình UML chương trình với đầy đủ chức cải tiến Kết hợp với mã nguồn gốc chức sinh mã nguồn Rational Rose từ mô hình UML, xây dựng mã nguồn cho chương trình với đầy đủ chức kể Để thu mã nguồn Java từ mô hình UML thông qua Rational Rose, vào Tools/ Java/J2EE / Generate Code, Rational Rose tự động sinh mã nguồn cho chương trình Đối với sở liệu chương trình, thực xây dựng mã nguồn theo cấu trúc liệu tạo 3.2.5 Hoàn thiện, cài đặt sử dụng Sau xây dựng mã nguồn, thực cài đặt đầy đủ tảng môi trường cần thiết để hỗ trợ chương trình hoạt động Thực đánh giá chương trình xem có đầy đủ chức yêu cầu không, đồng thời kiểm thử chương trình để tìm lỗi trình hoạt động Các lỗi lỗi chức năng, giao diện chương trình, hiệu suất thực v.v… Sau chương trình đánh giá đầy đủ đưa vào sử dụng 3.3 Kết đạt số đánh giá Quá trình tái kỹ nghệ chương trình thử nghiệm đạt kết sau: 3.3.1 Liên quan đến chương trình 44 - Chương trình tái kỹ nghệ đáp ứng yêu cầu chức đặt ra: • • Thêm chức tìm kiếm xếp địa lưu chương trình Các chức cũ giữ nguyên tiếp tục sử dụng - Về cấu trúc chương trình: • • Các lớp chương trình cũ giữ nguyên chương trình mới, quan hệ lớp không thay đổi Tuy nhiên cấu trúc hàm, thuộc tính lớp thay đổi để phù hợp với việc xây dựng thêm chức cho chương trình, quan hệ thành phần lớp thay đổi Một số hàm cấu trúc lại mã nguồn cho dễ hiểu hơn, tiện cho việc bảo trì tiếp sau nhiên không làm thay đổi chức hàm - Trong file mã nguồn thực đưa thêm ghi để người xem hiểu chương trình, dễ dàng cho việc sửa đổi, bảo trì, kỹ nghệ lại lần sau - Cấu trúc liệu chương trình thay đổi theo thay đổi thông tin địa lưu chương trình - Về giao diện chương trình, thông tin hiển thị, nút điều khiển, tên chương trình việt hóa, có thêm chức hiển thị Hình 3-11: Giao diện chương trình 3.3.2 Liên quan đến triển khai 45 Sau chương trình xây dựng, việc thực triển khai chương trình thay đổi Chương trình xây dựng ngôn ngữ Java nên yêu cầu môi trường chạy phải có cài đặt Java Ngoài ra, chương trình hiển thị giao diện hoàn toàn tiếng Việt nên dễ dàng tiện lợi cho người sử dụng chương trình 3.3.3 Một số vấn đề tồn Vì thời gian để thực đề tài nhiều nên việc tái kỹ nghệ lại chương trình chưa hoàn thiện, chưa thêm đầy đủ chức theo yêu cầu cho chương trình Chương trình thử nghiệm tương đối đơn giản nên chưa nhận thấy hết tầm quan trọng việc tái kỹ nghệ Nhưng hệ thống lớn với số lượng dòng mã nguồn lên đến hàng nghìn, chí chục nghìn dòng việc tái kỹ nghệ cho thấy ưu điểm rõ rệt Với việc tái kỹ nghệ, tiết kiệm thời gian nhân lực, giúp giảm thiểu chi phí Tài liệu tham khảo - - Tiếng Việt: [1] Nguyễn Văn Vỵ, Phân tích thiết kế hệ thống thông tin đại hướng cấu trúc hướng đối tượng, NXB Thống kê 2002 [2] PGS.TS Nguyễn Văn Vỵ, Phân tích thiết kế hệ thống phần mềm theo hướng đối tượng, Bài giảng trường Đại học Công Nghệ [3] Đặng Văn Đức, Phân tích thiết kế hướng đối tượng UML, NXB Giáo dục 2002 [4] Trương Ninh Thuận, Phân tích thiết kế hướng đối tượng, Bài giảng trường Đại học Công Nghệ [5] TS Dương Kiều Hoa – Tôn Thất Hoà, Phân tích thiết kế HTTT theo UML Tiếng Anh: [6] Francesco Bonfiglio, Reverse Engineering Legacy Code with Rational Rose, article [7] Dr Linda H Rosenberg, Software Reengineering, Engineering Section head Software Assurance Technology Center Unisys Federal Systems [8] Ian Sommeville, Software Engineering, Sixth Edition, Addisom – Wesley, 2001 [9] E J Chikofsky and J H Cross, “Reverse Engineering and Design Recovery: A Taxonomy,” IEEE Software, vol 7, pp 13–17, January 1990 [10] Rational Rose Corp., Rational Rose 2002, http://www.rational.com/uml/ [11] Using Rose Rational Rose® 2001, Rational the e-development company [12] http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javadb/ 46 [...]... ra một công thức cho quá trình tái kỹ nghệ dựa trên hình 1-04 như sau: Tái kỹ nghệ = kỹ nghệ ngược + biến đổi + kỹ nghệ xuôi Phải chú ý rằng, đôi khi tái kỹ nghệ và kỹ nghệ ngược được xem như là hai mặt hoàn toàn khác nhau Nhưng trong thực tế thì kỹ nghệ ngược được xem như là một phần của qui trình tái kỹ nghệ Thành phần đầu tiên trong qui trình tái kỹ nghệ, kỹ nghệ ngược”, là hoạt động nhằm xác định... vậy, kỹ nghệ ngược là một quá trình giúp cho nhà phát triển có những cái nhình rõ ràng hơn về hệ thống, và nó chính là một phần của qui trình tái kỹ nghệ Những ảnh hưởng của quá trình này sẽ ảnh hưởng tới thành công của dự án tái kỹ nghệ Kỹ nghệ ngược thường được sử dụng trong qui trình tái kỹ nghệ phần mềm để khôi phục lại thiết kế và những đặc tả của chương trình, từ đó giúp cho các kỹ sư tái kỹ nghệ. .. cũng không còn thì qui trình kỹ nghệ ngược phải bắt đầu với mã thực thi của chương trình Nhiều người cho rằng, tái kỹ nghệ và kỹ nghệ ngược là những tên gọi khác nhau của cùng một quá trình, nhưng trong thực tế kỹ nghệ ngược không phải là tái kỹ nghệ Mục đích của kỹ nghệ ngược là để thu được thiết kế hoặc đặc tả của hệ thống từ mã nguồn của nó Trong khi đó, mục đích của tái kỹ nghệ là để tạo ra một hệ... cho việc tái kỹ nghệ sẽ bị tăng lên Mặc dù tái kỹ nghệ hệ thống có thể cải tiến việc bảo trì, nhưng nó không thể duy trì hệ thống đó giống như một hệ thống được phát triển mới và được sử dụng các phương pháp kỹ nghệ phần mềm hiện đại Bên cạnh đó, tái kỹ nghệ cũng không thể tránh khỏi những rủi ro chung đối với quá trình phát triển phần mềm Đó là: - Rủi ro trong tiến trình: - Rủi ro trong kỹ thuật dịch... công để điều chỉnh và cải tiến hệ thống tạo ra 1.3.2 Kỹ nghệ ngược 12 Kỹ nghệ ngược là qui trình phân tích phần mềm với mục đích để phục hồi những đặc tả và thiết kế của phần mềm đó Kỹ nghệ ngược không làm thay đổi hệ thống hoặc tạo ra một hệ thống mới, nó chỉ là quá trình kiểm tra mà không thay đổi chức năng tổng thể của chương trình Trong qui trình kỹ nghệ ngược, mã nguồn của chương trình chính là đầu... tái kỹ nghệ sẽ rẻ hơn 4 lần so với việc viết lại chương trình 1.5.2 Các hạn chế Mặc dù không thể phủ nhận những ưu điểm nổi trội của tái kỹ nghệ so với các phương pháp tiếp cận khác trong việc tiến hóa phần mềm, nhưng không phải 30 là nó không có những nhược điểm Nhược điểm chính của tái kỹ nghệ hệ thống là bị giới hạn trong một phạm vi nhất định của hệ thống cũ mà nó có thể cải tiến bằng tái kỹ nghệ. .. việc tổ chức lại cấu trúc của chương trình Tuy nhiên, kỹ nghệ ngược không nhất thiết phải luôn có trong qui trình tái kỹ nghệ 1 Thiết kế và đặc tả của một hệ thống đang tồn tại có thể được kỹ nghệ ngược, vì vậy chúng có thể được sử dụng như một đầu vào, và chính là đặc tả yêu cầu của hệ thống thay thế 2 Ngoài ra, việc thiết kế và đặc tả có thể được kỹ nghệ ngược, do đó nó luôn sẵn sàng cho việc bảo trì... trợ của Rational Rose ta sẽ xây dựng lại được các biểu đồ của hệ thống đó Đây chính là một tính năng quan trọng của Rational Rose phục vụ cho việc tái kỹ nghệ hệ thống 1.4.3 Tái kỹ nghệ hệ thống với kỹ nghệ đảo ngược của Rational Rose Thiết kế bằng kỹ nghệ đảo ngược là thiết kế lấy thông tin từ mã nguồn của chương trình, rồi tạo hoặc cập nhật lại thành một mô hình trên Rational Rose Thông qua khả năng... tái kỹ nghệ thể hiện rõ các ưu điểm vượt trội so với các cách tiếp cận khác Đây là một giải pháp khả thi nhất bởi nó phù hợp với yêu cầu của bài toán, hơn nữa nó vừa ít tốn kém thời gian và công sức, vừa có hiệu quả cao hơn Qui trình tái kỹ nghệ chương trình “Sổ địa chỉ” sẽ được trình bày chi tiết ở chương 3 34 Chương 3: Tái kỹ nghệ chương trình sổ địa chỉ 3.1 Sơ đồ tiến trình thực hiện tái kỹ nghệ. .. Tái kỹ nghệ chương trình sổ địa chỉ 3.1 Sơ đồ tiến trình thực hiện tái kỹ nghệ Tiến trình tái kỹ nghệ chương trình “Sổ địa chỉ” sẽ thực hiện theo sơ đồ sau: Hình 3-01: Sơ đồ tiến trình tái kỹ nghệ “Sổ địa chỉ” 3.2 Qui trình thực hiện tái kỹ nghệ chương trình sổ địa chỉ Ta có thể thực hiện quá trình tái kỹ nghệ chương trình Sổ địa chỉ dựa trên các bước sau: − Giai đoạn 1: từ mã nguồn chương trình xây