Mở đầu z CHƢƠNG 1 TỔNG QUAN VỀ VẤN ĐỀ SỬ DỤNG LẠI TRONG PHÁT TRIỂN PHẦN MỀM 1. Khái niệm Sử dụng lại là việc sử dụng cỏc khỏi niệm hay các đối tƣợng hiện cú trong tỡnh huống mới. Nú bao gồm việc mó húa cỏc thụng tin phỏt triển ở cỏc mức trừu tƣợng khác nhau, lƣu giữ cỏc thể hiện này để phục vụ cho tỡnh huống cần đến trong tƣơng lai, khớp tỡnh huống cũ và tỡnh huống mới, nhân đôi các đối tƣợng và các hành động đó đƣợc phỏt triển và làm cho chỳng thớch nghi với cỏc yờu cầu mới [3]. Núi chung, sử dụng lại hƣớng tới việc lấy cỏc thành phần của một sản phẩm để dễ dàng phỏt triển sản phẩm khỏc với tính năng khác.
Một thành phần sử dụng lại khụng chỉ là một module hay một đoạn mó nguồn mà nú cú thể là một thiết kế, một phần của thao tỏc bằng tay, một tập hợp dữ liệu kiểm thử hay một ƣớc lƣợng về giỏ thành, về thời gian… 1. Lịch sử và quá trình phát triển của sử dụng lại - Giai đoạn 1 (trước năm 1950): chƣa sử dụng lại vỡ thời điểm này chỉ cú vài mỏy với phần cứng không tƣơng thích. - Giai đoạn 2 (từ những năm 1950 đến đầu những năm 197 0): sử dụng lại mó, cấu trỳc dữ liệu hay cỏc ứng dụng hoàn chỉnh trong cỏc dự ỏn phần mềm mới. Hoạt động chính tập trung vào việc đóng gói, tạo các thƣ viện các đoạn chƣơng trỡnh, cỏc hàm, cỏc thủ tục.
- Giai đoạn 3 (từ những năm 1970 đến nay): Ngƣời ta đó nhận ra lợi ớch của việc sử dụng lại cỏc thành phần khỏc nhau của vũng đời phỏt triển phần mềm. Bắt đầu từ mụ hỡnh húa miền, đặc tả cỏc yờu cầu cho tới thiết kế phần z Vũ Diệu Hương, K9T1 6 Luận văn thạc sỹ mềm, viết mó, kiểm thử, bảo trỡ phần mềm. Đó cú nhiều kết quả đạt đƣợc trong việc sử dụng lại cỏc khớa cạnh mang tớnh tổ chức, phƣơng pháp luận, tiến trỡnh phỏt triển và cỏc cấu trỳc giao tiếp. Ta cú thể chia cỏc hoạt động sử dụng lại ở giai đoạn này thành ba mức: Sử dụng lại ở mức chƣơng trỡnh nguồn hay thƣ viện (điển hỡnh là hệ Unix) Sử dụng lại các đối tƣợng và các thành phần (tham khảo mục 1.9) Sử dụng lại ở mức trừu tƣợng (đặc tả yêu cầu, phân tích, thiết kế) Khỏi niệm sử dụng lại cỏc yếu tố phần mềm là rất dễ hiểu trong trƣờng hợp sử dụng lại mó nguồn, nhƣng thật khú hiểu trong khung cảnh sử dụng lại các đặc tả và cỏc thiết kế (đƣợc biểu diễn dƣới dạng văn bản hoặc dạng biểu đồ), càng khú hiểu hơn khi nói đến sử dụng lại cỏc yờu cầu phi hỡnh thức, cỏc tri thức về miền, cỏc kỹ năng của con ngƣời và kinh nghiệm của cỏc chuyờn gia (đƣợc biểu diễn bằng ngụn ngữ tự nhiên).
Đặc tả yờu cầu là chế tác trong giai đoạn sớm nhất của vũng đời phỏt triển phần mềm và đó thu hỳt sự quan tâm đặc biệt trong cụng nghệ sử dụng lại. Hiệu quả thu đƣợc từ việc sử dụng lại cỏc sản phẩm trừu tƣợng của tiến trỡnh phỏt triển, nhƣ các đặc tả, lớn hơn rất nhiều so với hiệu quả thu đƣợc từ sử dụng lại mó. Mó chứa cỏc chi tiết mức thấp chuyờn cho một phạm vi hẹp cú thể không đƣợc sử dụng lại. Cỏc thiết kế hay các đặc tả trừu tƣợng hơn và do đó có thể đƣợc ỏp dụng cho một phạm vi rộng rói hơn.
Ví dụ, với cựng một thiết kế cho một lớp bất kỳ thỡ khi triển khai bằng ngụn ngữ Java sẽ khỏc so với khi triển khai bằng ngụn ngữ C++. Do đó, ta có thể sử dụng lại thiết kế trong một dũng cỏc ứng dụng nhƣng các dũng mó nguồn định nghĩa của lớp thỡ khụng thể sử dụng lại trong mỗi ứng dụng mà chuyờn biệt húa về ngụn ngữ cài đặt hay nền mà chƣơng trỡnh chạy trên đó. Ngày nay ngƣời ta quan tâm hơn đến việc nghiờn cứu phƣơng pháp và xây dựng cụng cụ hỗ trợ việc sử dụng lại cỏc chế tỏc thuộc cả vũng đời phỏt triển phần mềm, nhƣ: xây dựng cỏc mẫu, xõy dựng cỏc mụ hỡnh miền. Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm z Vũ Diệu Hương, K9T1 7 Luận văn thạc sỹ 1.
Vai trũ và tầm quan trọng của sử dụng lại Tổ chức cỏc hoạt động sử dụng lại một cỏch cú hệ thống khụng chỉ trỏnh cho cỏc nhà phỏt triển khụng phải thực hiện cỏc nhiệm vụ lặp đi lặp lại mà cũn mang lại nhiều lợi ớch trong phỏt triển phần mềm. Đặc biệt nhấn mạnh vào bốn khớa cạnh sau: 1. Kinh tế: Tiết kiệm tài nguyờn, giảm chi phí, tăng lợi nhuận Khi sử dụng cỏc thành phần đƣợc định nghĩa trƣớc, cỏc hoạt động gắn với đặc tả, thiết kế và cài đặt đƣợc thay bằng việc tỡm kiếm thành phần, làm thớch nghi nú với cỏc yờu cầu mới và tớch hợp chỳng. Kinh nghiệm cho thấy tập hợp cỏc hoạt động sau tốn ớt thời gian hơn, do đó, tốn ít chi phí hơn các hoạt động trƣớc.
Nhƣng cũng chỳ ý rằng, phỏt triển phần mềm cho sử dụng lại tốn thời gian và chi phí hơn bỡnh thƣờng. Tuy nhiờn, ta tiết kiệm đƣợc nhiều thời gian và chi phớ trong những dự án sau đó. Chất lượng: Cải tiến tớnh xỏc thực của cỏc sản phẩm phần mềm, giảm rủi ro. Vỡ cỏc thành phần phần mềm khụng chỉ đƣợc sử dụng trong một hệ thống mà cũn đƣợc kiểm thử trong nhiều môi trƣờng khỏc nhau.
Cỏc lỗi thiết kế và cài đặt đƣợc phỏt hiện và đƣợc loại trừ để cỏc thành phần sử dụng lại chứa rất ớt lỗi. Hiệu suất Sử dụng lại cỏc yếu tố phần mềm sẵn cú giỳp tiết kiệm thời gian. Do đó, thỏa món yờu cầu ngƣời dựng về thời hạn giao sản phẩm và đặc biệt là rỳt ngắn thời gian đƣa sản phẩm ra thị trƣờng, đây là một nhõn tố rất quan trọng trong phỏt triể n phần mềm. Kiến thức và kinh nghiệm của cỏc chuyờn gia Sử dụng lại cỏc yếu tố phần mềm khụng những khụng phải làm lại yếu tố phần mềm đó mà quan trọng hơn là nhanh chóng tiếp cận đƣợc kiến thức nghiệp vụ và Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm z Vũ Diệu Hương, K9T1 8 Luận văn thạc sỹ kinh nghiệm chuyờn gia qua cỏc yếu tố phần mề m đó nhƣ là kiến thức miền hay giải phỏp cho mỗi vấn đề trong thực tế.
Phân loại sử dụng lại Sử dụng lại có thể phân theo cách thức thực hiện: - Sử dụng lại một cỏch ngẫu nhiờn - Sử dụng lại cú chủ ý Nếu ngƣời phỏt triển một sản phẩm mới nhận ra rằng, một thành phần của một sản phẩm đƣợc phỏt triển trƣớc đó có thể đƣợc sử dụng lại trong một sản phẩm mới thỡ trƣờng hợp này gọi là sử dụng lại một cỏch ngẫu nhiờn. Mặt khỏc, việc sử dụng cỏc thành phần phần mềm đƣợc xõy dựng với mục đích để sử dụng lại trong tƣơng lai thỡ gọi là sử dụng lại cú chủ ý. Loại sử dụng lại thứ hai tiện lợi hơn so với loại thứ nhất ở chỗ: khi cỏc thành phần đƣợc xõy dựng với mục đích để sử dụng lại trong tƣơng lai, nó thƣờng đƣợc phỏt triển sao cho dễ dàng và an toàn cho việc sử dụng lại, chẳng hạn nhƣ đƣợc làm tài liệu tốt, đƣợc kiểm thử một cỏch triệt để. Thêm vào đó, chúng thể hiện tớnh thống nhất về kiểu (style) làm cho việc bảo trỡ dễ dàng hơn.
Nhƣ vậy, để tạo ra những chế tỏc cú thể sử dụng trong tƣơng lai thỡ chi phớ bỏ ra thƣờng đắt hơn bỡnh thƣờng nhiều lần vỡ mất thời gian để đặc tả, thiết kế, cài đặt, kiểm thử và làm tài liệu một thành phần phần mềm. Tuy nhiờn, khụng thể đảm bảo rằng một thành phần nhƣ vậy sẽ đƣợc sử dụng lại và do đó sẽ khụng thể đảm bảo việc thu hồi lại vốn đó đầu tƣ trong phát triển thành phần với mục đích có thể sử dụng lại trong tƣơng lai. Các chế tác có thể sử dụng lại Đối tƣợng của sử dụng lại là cỏc chế tỏc sử dụng lại. Đó là bất kỳ thụng tin nào mà nhà phỏt triển cú thể cần trong tiến trỡnh tạo ra phần mềm và tất cả cỏc chế tỏc trong vũng đời phỏt triển phần mềm.
Cỏc chế tỏc cú thể thuộc cỏc dạng khác nhau nhƣ đƣợc chỉ ra trong bảng 1-1. Tổng quan về vấn đề sử dụng lại trong phát triển phần mềm z Vũ Diệu Hương, K9T1 9 Luận văn thạc sỹ Cỏc chế tỏc cú thể là cỏc thành phần trừu tƣợng mức cao (nhƣ tri thức miền) hay cỏc thành phần mức trừu tƣợng thấp (nhƣ các module mó nguồn). Chúng đƣợc lƣu trữ và biểu diễn ở nhiều dạng khác nhau (nhƣ là văn bản, đồ họa, õm thanh, phim ảnh). Kớch cỡ của chúng thay đổi từ một hàm thƣ viện cho tới một hệ thống hoàn chỉnh.
Tập hợp cỏc chế tỏc sử dụng lại tạo nờn một thƣ viện sử dụng lại. Các thƣ viện này khụng chỉ chứa cỏc thành phần cú thể sử dụng lại mà cũn đƣợc mong đợi là sẽ cung cấp cỏc dịch vụ cho ngƣời dùng thƣ viện nhƣ là lƣu trữ, tỡm kiếm, kiểm tra cỏc chế tỏc từ cỏc miền ứng dụng khỏc nhau, mức mịn và mức trừu tƣợng khỏc nhau, truy xuất, làm thớch nghi, tớch hợp và đặc tả cỏc mối quan hệ giữa cỏc chế tỏc. Cỏc vấn đề chớnh trong việc sử dụng các thƣ viện này là quyết định các lƣợc đồ phõn lớp cỏc chế tỏc một cỏch phự hợp và lựa chọn các phƣơng pháp tỡm kiếm trong thƣ viện một cỏch hiệu quả. Để trỏnh cỏc vấn đề khó khăn, ta sử dụng cỏc ngụn ngữ cụ thể miền.
Cỏc ngụn ngữ này sử dụng cỳ phỏp và ngữ nghĩa rất chặt chẽ đƣợc định nghĩa dƣới dạng một miền ứng dụng và cỏc chế tỏc sử dụng lại của nú. Bảng 1-1: Cỏc chế tỏc sử dụng lại Văn bản - Tài liệu khảo sỏt miền ứng dụng, khảo sỏt nghiệp vụ.