Mục đích của tôi khi thực hiện đề tài là nghiên cứu phương pháp phân tích thiết kế hướng đối tượng từ đó nghiên cứu việc thiết kế mẫu để phát triển các ứng dụng, sử dụng phương pháp mô h
Trang 1III Mục lục
Lời cảm ơn I Tóm tắt kết quả II Mục lục III Bảng ký hiệu viết tắt VII Danh sách hình vẽ, bảng biểu VIII
Mở đầu 1
Chương 1 Phân tích thiết kế hướng đối tượng hướng mẫu 3
1.1 Tái sử dụng phần mềm 3
1.1.1 Tái sử dụng phần mềm là gì? 3
1.1.2 Khủng hoảng tái sử dụng phần mềm hướng đối tượng 3
1.1.3 Lợi ích của cách tiếp cận hướng đối tượng 4
1.1.4 Tầm quan trọng của việc tái sử dụng phần mềm 4
1.1.5 Các nguyên tắc của kỹ nghệ phần mềm hướng đối tượng 5
1.1.6 Mục tiêu của tái sử dụng phần mềm hướng đối tượng 8
1.1.7 Sự tiến triển của tái sử dụng phần mềm hướng đối tượng 10
1.2 Mô hình tái sử dụng phần mềm hướng đối tượng 11
1.2.1 Nguyên lý tảng băng trôi trong phát triển phần mềm hướng đối tượng 11
1.2.2 Đặc điểm của tái sử dụng phần mềm hướng đối tượng 12
1.2.3 Vòng đời quan trọng của tái sử dụng phần mềm hướng đối tượng 20
1.3 Qui trình tái sử dụng phần mềm 21
1.3.1 Miền ứng dụng 21
Trang 21.3.2 Ranh giới miền 21
1.3.3 Môi trường miền 21
1.3.4 Kiến trúc miền cụ thể 23
1.3.5 Sự phân lớp tái sử dụng phần mềm 23
1.3.6 Các qui trình cơ bản 24
Chương 2 XMl - Ngôn ngữ trợ giúp phát triển phần mềm trên nền web 27
2.1.1 XML là gì? .27
2.1.2 Sự khác nhau chính giữa XML và HTML 28
2.1.3 Sử dụng XML .29
2.1.4 Cấu trúc và cú pháp của XML 30
2.1.5 Định nghĩa kiểu tài liệu .32
2.2 phát triển ứng dụng với xML 38
2.2.1 Kiểu dữ liệu trong XML 38
2.2.2 Không gian tên XML .39
2.2.3 Lược đồ XML 42
2.3 Mô hình DOM 47
2.3.1 DOM là gì ? 47
2.3.2 Cái gì không phải là DOM 49
Chương 3 phát triển ứng dụng với bài toán tuyển dụng cán bộ công chức, viên chức 51
3.2 Thực trạng công tác tuyển dụng 52
3.2.1 Cơ cấu tổ chức của Bộ Lao động – Thương binh và X hội 52
3.2.2 Đối tượng và vị trí tuyển dụng 53
Trang 3V
3.2.3 Những vấn đề tồn tại hiện nay trong công tác tuyển dụng 54
3.2.4 Hoạt động tuyển dụng 55
3.2.5 Các chức năng nghiệp vụ 64
3.3 Giải pháp 65
3.4 Mô hình hoá và nắm bắt yêu cầu hệ thống 65
3.4.1 Xác định các tác nhân của hệ thống 65
3.4.2 Xác định các ca sử dụng 66
3.4.3 Phát triển các mô hình ca sử dụng 68
3.5 Mô tả chi tiết các ca sử dụng 71
3.5.1 Gói ca sử dụng "Xác định chỉ tiêu tuyển dụng" 71
3.5.2 Gói ca sử dụng "Quản lý hồ sơ dự tuyển" 74
3.5.3 Gói ca sử dụng "Sơ tuyển" 77
3.5.4 Gói ca sử dụng "Thi tuyển" 80
3.5.5 Gói ca sử dụng "Ra quyết định tuyển dụng" 81
3.6 Phân tích từng ca sử dụng 83
3.6.1 Ca sử dụng “Yêu cầu báo cáo nhân sự” 83
3.6.2 Ca sử dụng “Báo cáo nhân sự” 85
3.6.3 Ca sử dụng “Tổng hợp báo cáo nhân sự” 87
3.6.4 Ca sử dụng “Phân chỉ tiêu ” 88
3.6.5 Ca sử dụng “Thông báo tuyển dụng” 90
3.6.6 Ca sử dụng “Nhận hồ sơ” 91
3.6.7 Ca sử dụng “Cập nhật kết quả xét duyệt” 93
3.6.8 Ca sử dụng “Tổng hợp báo cáo hồ sơ dự tuyển” 95
3.6.9 Ca sử dụng “Tra cứu hồ sơ” 96
Trang 43.7 Thiết kế biểu đồ lớp cho các ca sử dụng 98
3.7.1 Biểu đồ lớp ca sử dụng “Yêu cầu báo cáo nhân sự” 98
3.7.2 Biểu đồ lớp ca sử dụng “Báo cáo nhân sự” 98
3.7.3 Biểu đồ lớp ca sử dụng “Tổng hợp báo cáo” 99
3.7.4 Biểu đồ lớp ca sử dụng “Phân chỉ tiêu” 99
3.7.5 Biểu đồ lớp ca sử dụng “Thông báo tuyển dụng” 100
3.8 Cài đặt và thử nghiệp 100
3.8.1 Công nghệ sử dụng 100
3.8.2 Cài đặt và thử nghiệp 100
Kết luận 107
Tài liệu tham khảo 108
phụ lục 110
Trang 5VII B¶ng ký hiÖu viÕt t¾t
Architecture
Language
Trang 6Danh sách hình vẽ, bảng biểu Tên hình vẽ, bảng biểu Trang
Hình 1.1 Khủng hoảng phát triển phần mềm 4
Hình 1.2 Giảm bớt giá thành phần cứng máy tính bằng cách kết hợp chặt chẽ tái sử dụng các thành phần với kiến trúc 5
Hình 1.3 Các mục tiêu của tái sử dụng phần mềm 9
Hình 1.4 Sự tiến triển của tái sử dụng phần mềm 11
Hình 1.5 Tảng băng phần mềm 12
Hình 1.6 Khái niệm trừu tượng hoá 13
Hình 1.7 Tính kế thừa 16
Hình 1.8 Đa kế thừa 17
Hình 1.9 Các lớp kế thừa 18
Hình 1.10 Sử dụng lại các thuộc tính kế thừa 18
Hình 1.11 Sự quá tải và nạp chồng 19
Hình 1.12 Thực thi đa hình 19
Hình 1.13 Mối quan hệ giữa miền, ranh giới và môi trường 22
Hình 1.14 Thứ bậc của các miền, miền con và các hệ thống 22
Hình 1.15 Tác động của việc thay đổi các yêu cầu 23
Hình 2.1 Cấu trúc tài liệu XML 30
Hình 2.2 Cấu trúc mô tả bởi DOM 49
Hình 3.1 Cơ cấu tổ chức Bộ Lao động – Thương binh và X hội 53
Hình 3.2 Biểu đồ hoạt động tuyển dụng cán bộ công chức, viên chức 63
Bảng 3.3 Bảng tham chiếu các chức năng nghiệp vụ 64
Hình 3.4 Mô hình ca sử dụng mức tổng quát 68
Trang 7IX
Hình 3.5 Mô hình ca sử dụng mức cao 68
Hình 3.6 Mô hình gói ca sử dụng “Xác định chỉ tiêu tuyển dụng” 69
Hình 3.7 Mô hình gói ca sử dụng “Quản lý hồ sơ dự tuyển” 69
Hình 3.8 Mô hình gói ca sử dụng “Sơ tuyển” 70
Hình 3.9 Mô hình gói ca sử dụng “Thi tuyển” 70
Hình 3.10 Mô hình gói ca sử dụng “Ra quyết định tuyển dụng” 71
Hình 3.11 Biểu đồ tuần tự ca sử dụng “Yêu cầu báo cáo nhân sự” 83
Hình 3.12 Sơ đồ liên kết ca sử dụng “Yêu cầu báo cáo nhân sự” 85
Hình 3.13 Biểu đồ tuần tự ca sử dụng “Báo cáo nhân sự” 85
Hình 3.14 Sơ đồ liên kết ca sử dụng “Báo cáo nhân sự” 86
Hình 3.15 Biểu đồ tuần tự ca sử dụng “Tổng hợp báo cáo nhân sự” 87
Hình 3.16 Sơ đồ liên kết ca sử dụng “Tổng hợp báo cáo” 88
Hình 3.17 Biểu đồ tuần tự ca sử dụng “Phân chỉ tiêu” 88
Hình 3.18 Sơ đồ liên kết ca sử dụng “Phân chỉ tiêu” 89
Hình 3.19 Biểu đồ tuần tự ca sử dụng “Thông báo tuyển dụng” 90
Hình 3.20 Sơ đồ liên kết ca sử dụng “Thông báo tuyển dụng” 91
Hình 3.21 Biểu đồ tuần tự ca sử dụng “Nhận hồ sơ” 92
Hình 3.22 Sơ đồ liên kết ca sử dụng “Nhận hồ sơ” 93
Hình 3.23 Biểu đồ tuần tự ca sử dụng “Cập nhật kết quả xét duyệt” 93
Hình 3.24 Sơ đồ liên kết ca sử dụng “Cập nhật kết quả xét duyệt” 94
Hình 3.25 Biểu đồ tuần tự ca sử dụng “Tổng hợp báo cáo hồ sơ dự tuyển” 95
Hình 3.26 Sơ đồ liên kết ca sử dụng “Tổng hợp báo cáo hồ sơ dự tuyển” 96
Hình 3.27 Biểu đồ tuần tự ca sử dụng “Tra cứu hồ sơ” 96
Hình 3.28 Sơ đồ liên kết ca sử dụng “Tra cứu hồ sơ” 97
Trang 8Hình 3.29 Biểu đồ lớp ca sử dụng “yêu cầu báo cáo nhân sự” 98
Hình 3.30 Biểu đồ lớp ca sử dụng “Báo cáo nhân sự” 98
Hình 3.31 Biểu đồ lớp ca sử dụng “Tổng hợp báo cáo” 99
Hình 3.32 Biểu đồ lớp ca sử dụng “Phân chỉ tiêu” 99
Hình 3.33 Biểu đồ lớp ca sử dụng “Thông báo tuyển dụng” 100
Trang 9Mục đích của tôi khi thực hiện đề tài là nghiên cứu phương pháp phân tích thiết kế hướng đối tượng từ đó nghiên cứu việc thiết kế mẫu để phát triển các ứng dụng, sử dụng phương pháp mô hình hoá UML trong phân tích thiết kế hướng đối tượng và nghiên cứu công nghệ XML trong việc biểu diễn, lưu trữ dữ liệu để phát triển ứng dụng trên nền Web
Nội dung luận văn gồm 03 chương:
Chương 1 Phân tích thiết kế hướng đối tượng hướng mẫu
Chương này sử dụng kết quả nghiên cứu phân tích thiết kế hướng đối tượng để nghiên cứu qui trình, mô hình tái sử dụng phần mềm hướng đối tượng theo hướng nghiên cứu để thiết kế mẫu
Chương 2 XML Ngôn ngữ trợ giúp phát triển phần mềm trên nền Web Chương này nghiên cứu ngôn ngữ XML trong việc phát triển ứng dụng trên nền Web
Trang 10Chương 3 Phát triển ứng dụng với bài toán Tuyển dụng cán bộ công chức, viên chức
Chương này sử dụng các kết quả đ nghiên cứu được để triển khai phân tích thiết kế theo phương pháp hướng đối tượng, sử dụng phương pháp mô hình hoá UML
và công cụ Rational Rose để phân tích thiết kế bài toán và sử dụng công nghệ lập trình DotNet và công nghệ XML để phát triển ứng dụng
Trang 11Chương 1 Phân tích thiết kế hướng đối tượng hướng mẫu 1.1 Tái sử dụng phần mềm
1.1.1 Tái sử dụng phần mềm là gì?
Tái sử dụng phần mềm là quá trình bổ sung hoặc cập nhật các hệ thống phần mềm trên cơ sở sử dụng các tài nguyên phần mềm sẵn có Các tài nguyên này có thể
được xác định như các thành phần phần mềm, các đối tượng, các mô hình phân tích/thiết kế yêu cầu phần mềm, kiến trúc miền, lược đồ cơ sở dữ liệu, m nguồn, tài liệu, hướng dẫn sử dụng, các mẫu, các kịch bản kiểm thử và các kế hoạch Tái sử dụng phần mềm có thể xảy ra trong một hệ thống phần mềm, qua các hệ thống phần mềm tương tự hoặc trong các hệ thống phần mềm có sự khác biệt lớn [14]
1.1.2 Khủng hoảng tái sử dụng phần mềm hướng đối tượng
Các phương pháp phát triển phần mềm truyền thống như phân tích thiết kế hướng cấu trúc bao gồm các sơ đồ phân r chức năng, biểu đồ phân cấp, biểu đồ luồng dữ liệu và biểu đồ chuyển trạng thái nhưng vẫn không kìm hm được cơn khủng hoảng gia tăng chi phí Phân tích thiết kế hướng dữ liệu, phân tích thiết kế hướng cấu trúc và các biến thể của chúng giải quyết các thao tác và dữ liệu như những thành phần riêng biệt và kết hợp với nhau một cách lỏng lẻo Các thao tác quyết định cấu trúc của hệ thống, còn dữ liệu là thành phần quan trọng thứ yếu Chi phí cho việc phát triển phần mềm tăng theo hàm mũ (Hình 1.1) [14]
Cách tiếp cận hướng đối tượng trong phát triển phần mềm được ưa thích hơn là vì nó dựa vào các lớp có khả năng tái sử dụng Các đối tượng là các thành phần phần mềm riêng biệt bao gói cả dữ liệu và thủ tục, kết hợp các phép toán và dữ liệu tạo thành các đối tượng mẫu Các hệ thống được chia nhỏ dựa trên các đối tượng Dữ liệu qui định cấu trúc của phần mềm [14]
Trang 12Tăng theo hàm mũ
Bẻ ngang đường cong nhờ lập
kế hoạch tái sử dụng
1.1.3 Lợi ích của cách tiếp cận hướng đối tượng
Lợi ích chủ yếu của cách tiếp cận hướng đối tượng là khả năng phát triển phần mềm nhanh hơn, rẻ hơn và đáng tin cậy hơn bằng việc sử dụng lại các thành phần phần mềm Cách tiếp cận hướng đối tượng làm giảm cả chi phí và thời gian cần thiết
để triển khai phần mềm thông qua sự kế thừa và khẳ năng sử dụng lại Cách tiếp cận hướng đối tượng cải thiện [14]:
– Tính tương tác giữa các phần thông qua các lớp đối tượng chuẩn sử dụng trong các hệ thống phần mềm khác nhau thông qua tính kế thừa
– Tính bảo trì được và tin cậy của các hệ thống phần mềm nhận được thông qua việc bao gói thông tin và tác vụ trong các đối tượng
– Tính mềm dẻo thông qua đa hình làm đơn giản hoá việc phát triển phần mềm – Tính sẵn sàng của các đối tượng miền cụ thể và các thành phần phần mềm có khả năng sử dụng lại được lưu trữ
1.1.4 Tầm quan trọng của việc tái sử dụng phần mềm
Ngành công nghiệp phần mềm đ chứng minh rằng, việc tái sử dụng phần mềm đem lại kết quả đầy ý nghĩa bằng việc giảm chi phí, thời gian và công sức trong khi vẫn làm tăng chất lượng, năng suất và khả năng bảo trì của các hệ thống phần mềm trong suốt vòng đời của phần mềm Tái sử dụng là một lợi thế vì:
Trang 13Hình 1.2 Giảm bớt giá thành phần cứng máy tính bằng cách kết hợp chặt chẽ tái sử
dụng các thành phần với kiến trúc
1.1.5 Các nguyên tắc của kỹ nghệ phần mềm hướng đối tượng
Các nguyên tắc của kỹ nghệ phần mềm hướng đối tượng đ trở thành công thức để đạt được mục tiêu đ đề ra Nguyên tắc đó là: sự trừu tượng hoá, che dấu thông tin, tính đầy đủ, tính kiểm thử, mô-đun hoá, cục bộ hoá và đồng dạng hoá
a Che dấu thông tin
Che dấu thông tin là sự bảo vệ các chi tiết thực thi bên trong phần mềm hướng
đối tượng Cần thận trọng trong che dấu thông tin từ các đối tượng có thể lạm dụng
1960 1970 1980 1990 2000
Chi phí
Thời gian USD
Trang 14nó Đây là sự phân biệt giữa cái gì “what” và như thế nào “how” “Cái gì” là thông tin cốt lõi có thể sử dụng được cho tất cả mọi người Thông tin về “cái gì” bao gồm các thông tin đặc trưng kỹ thuật và thông tin giao diện Thông tin “như thế nào” có thể chỉ sử dụng được đối với một số nhóm hạn chế Thông tin “như thế nào” bao gồm các chi tiết thực thi như là cấu trúc dữ liệu
Che dấu thông tin hỗ trợ và đòi hỏi trừu tượng hoá bằng việc giữ bí mật các chi tiết Che dấu thông tin làm cho chất lượng tăng lên và hỗ trợ khả năng tái sử dụng, khả năng di chuyển và khả năng bảo trì, ngăn chặn sự nhập nhằng từ phía người dùng, khuyến khích đảm bảo dữ liệu chính xác từ đầu vào và tăng cường khả năng tin cậy của hệ thống Che dấu thông tin cũng làm tăng tính cục bộ hoá và thường bao gồm dữ liệu đính kèm, vì lý do đó mà tính mô-đun hoá tốt và mục tiêu sửa chữa dễ dàng dễ dàng đ đạt được
Ví dụ, không cần thiết phải biết nhiều về các chức năng kỹ thuật điện tử trong máy tính của chúng ta Các chức năng này là ẩn đối với chúng ta, chúng ta học bàn phím
để biết nhập dữ liệu như thế nào và lấy kết quả như thế nào mặc dù đôi khi chúng ta phải học các phần mềm để có thể đạt được các kết quả mong đợi
b Tính đầy đủ
Tính đầy đủ đảm bảo tất cả các yêu cầu đ bao hàm trong hệ thống và mọi khía cạnh của vấn đề đ được xem xét một cách đầy đủ Các kỹ sư phần mềm phải xem xét và lập kế hoạch cho tất cả các vấn đề có thể xảy ra và giải pháp cho từng khía cạnh Những vấn đề đó có thể bao hàm cả các yêu cầu thay đổi trong tương lai
c Tính kiểm thử được
Tính kiểm thử được có nghĩa là một mô-đun, nhóm các mo-đun hoặc một hệ thống phần mềm hoàn chỉnh thực sự có thể kiểm thử được Một hệ thống có thể kiểm thử được cung cấp một thiết kế có thể thẩm tra việc kiểm thử một hệ thống sẽ xác thực nếu nó được thiết kế một cách đúng đắn Các xác thực hệ thống bao gồm cả các yêu cầu của khách hàng Các mô-đun độc lập là nhân tố quan trọng cho một hệ thống
có thể thẩm tra Do đó, để kiểm thử được tốt thì các mô-đun phải được liên kết với nhau một cách lỏng lẻo và chứa dữ liệu
Trang 15được nhóm lại quanh một kiểu dữ liệu và các đối tượng của kiểu đó Chỉ có các chương trình con chứa các thao tác cho các đối tượng của một kiểu nào đó mới có thể nhóm cùng nhau Ví dụ kiểu mảng có thể được đóng gói cùng với chương trình con
để tính giá trị trung bình các thành phần của mảng
Trong hệ thống phần mềm mô-đun hoá tốt, các mô-đun mức trên thường chứa cái cần xử lý (xử lý cái gì) trong khi các mô-đun mức thấp hơn chứa cách thức xử lý (xử lý như thế nào) Điều này ngụ ý rằng, các mô-đun mức thấp trong nhóm mô-đun chứa nhiều chi tiết thực thi hơn Nói cách khác, các mô-đun mức trên hầu hết là các mô-đun trừu tượng hoá, trong khi các mô-đun mức dưới hầu hết là các chi tiết
Sự mô-đun hoá tốt cũng ngụ ý, rằng các mô-đun được liên kết một cách lỏng lẻo Mức độ liên kết chính là thước đo cho sự phụ thuộc giữa các mô-đun Dữ liệu dùng chung được chia sẻ cũng làm tăng cường sự phụ thuộc lẫn nhau giữa các mô-
đun Quá trình xử lý chỉ yêu cầu dữ liệu thông qua các đối số hoặc dữ liệu cục bộ trong một mô-đun làm giảm khả năng liên kết Sự liên kết lỏng lẻo giữa các mô-đun
đảm bảo tính kiểm thử được đối với các mô-đun và tăng cường mục tiêu mô-đun hoá
Điều đó cũng ngụ ý rằng nếu có hai mô-đun, gọi là mô-đun A và mô-đun B Mô-đun
A có bị thay đổi thì mô-đun B cũng không bị ảnh hưởng bởi sự thay đổi tạo ra trong mô-đun A Do đó, bên cạnh việc đề cao mục tiêu mô-đun hoá, sự liên kết lỏng lẻo giữa các mô-đun cũng đạt được mục tiêu sửa chữa được
Ngoài sự liên kết lỏng lẻo, còn có một nhân tố khác cần thiết cho mô-đun hoá tốt hơn Nhân tố này gọi là “cục bộ hoá dữ liệu”, bằng cách cục bộ hoá dữ liệu chỉ trong các mô-đun cần thiết dữ liệu đó Sự kết hợp ba nguyên tắc: mô-đun hoá, kiểm thử được và cục bộ hoá làm cho việc sửa đổi dễ dàng hơn Chỉ dữ liệu có quan hệ ở mức cao hay dữ liệu đính kèm mới được đặt trong một mô-đun Do đó, để có khả năng mô-đun hoá tốt, các mô-đun liên kết lỏng phải chứa các dữ liệu cục bộ và đính kèm ở quan hệ mức cao
Trang 16e Tính cục bộ hoá
Tính cục bộ hoá bao hàm việc chỉ đặt dữ liệu đính kèm ở quan hệ mức cao trong các mô-đun có thao tác tới dữ liệu này Chỉ dữ liệu cần thiết mới được xử lý giữa các mô-đun và chỉ thông qua các đối số Điều này đảm bảo rằng, dữ liệu được toàn vẹn Dữ liệu cục bộ hoá đem lại sự độc lập và liên kết lỏng lẻo giữa các mô-đun Các nhân tố này phải được thực hiện để có được tính mô-đun hoá tốt Do đó, các nhân tố quan trọng cho việc mô-đun hoá tốt là:
– Cục bộ hoá dữ liệu
– Liên kết lỏng lẻo giữa các mô-đun
– Không có việc truyền dữ liệu giữa các mô-đun, ngoại trừ truyền thông qua các
đội phát triển cần phải tuân theo chuẩn đ được thiết lập trong suốt vòng đời của phần mềm Kết quả của giao ước này là phần mềm đồng dạng, dễ đọc và hiểu được
1.1.6 Mục tiêu của tái sử dụng phần mềm hướng đối tượng
Mục tiêu của tái sử dụng phần mềm hướng đối tượng là sản xuất ra phần mềm tốt hơn, nhanh hơn và rẻ hơn bằng việc sử dụng lại các tài nguyên đ được kiểm thử
đúng đắn Hình 1.3 phác hoạ tiến trình tái sử dụng phần mềm trong quá khứ, hiện tại
và tương lai Trong quá khứ khuynh hướng phát triển phần mềm thường thực hiện từ
đầu khi một yêu cầu được tiếp nhận Hiện nay, sử dụng công cụ CASE trong phát triển phần mềm nhưng vẫn còn phát triển mới phần mềm, còn trong tương lai để giảm chi phí, người phát triển sẽ cần sử dụng lại phần mềm đ có sẵn để phát triển
Một trong các mục tiêu của tái sử dụng phần mềm là sản xuất ra các tài nguyên có thể sử dụng lại cho các hệ thống độc lập và các ứng dụng có khả năng
Trang 17Hình 1.3 Các mục tiêu của tái sử dụng phần mềm Trong giai đoạn lập kế hoạch, ta nên tập hợp lại dữ liệu và xác định lại chính sách
và cơ chế chuẩn bị, các thủ tục và các chuẩn cho việc tái sử dụng phần mềm Trong giai đoạn phân tích miền, ta tập hợp các tài nguyên, phạm vi của miền, tiến hành phân tích miền và xây dựng các mô hình đối tượng cho việc tái sử dụng Trong giai
đoạn chuẩn bị kho tài nguyên ta xác định và tìm các công cụ cần thiết, liệt kê các tài nguyên, kiểm thử và xác nhận các tài nguyên, sau đó đưa chúng vào kho Trong giai
đoạn kỹ nghệ miền (miền bài toán, vấn đề) ta tích hợp phần mềm, tiến hành kỹ nghệ lĩnh vực và tái kỹ nghệ, xác định các tài nguyên mới, tập hợp chúng vào kho
Một mục tiêu sâu xa hơn của tái sử dụng phần mềm là trích ra các tài nguyên
có khả năng tái sử dụng từ các phần mềm hiện có để đưa vào phát triển một phần mềm mới Điều này rất quan trọng đối với việc xây dựng các quy trình phát triển phần mềm và sản xuất ra các sản phẩm có khả năng tái sử dụng Các quy trình phát triển phần mềm xác định cách thức phần mềm được phát triển và đảm bảo các phương pháp phù hợp được sử dụng để bảo trì chất lượng và tính toàn vẹn thiết kế Kỹ nghệ sản xuất phần mềm tập trung nhiều hơn vào các kỹ năng của thiết kế kiến trúc, các ngôn ngữ, đặc trưng nền tảng và tri thức về ứng dụng Điều này có tầm quan trọng như nền tảng của việc tạo dựng các hệ thống phần mềm có thể tồn tại và phát triển được trong thế giới tái sử dụng phần mềm
Phát triển phần mềm mới
Phát triển phần mềm mới
Phát triển phần mềm mới Thực hiện tái
sử dụng phần mềm
Các công cụ CASE
Các công cụ CASE
Tái sử dụng phần mềm Quá khứ Hiện tại Tương lai
Trang 181.1.7 Sự tiến triển của tái sử dụng phần mềm hướng đối tượng
Tái sử dụng phần mềm được định nghĩa như việc sử dụng lại các tài nguyên của các hệ thống đ tồn tại để xây dựng một phần mềm mới Do đó, tái sử dụng phần mềm là kết quả của sự hoán đổi mô hình trong kỹ nghệ phần mềm, từ việc xây dựng một hệ thống đơn tới việc xây dựng một lớp các hệ thống có liên quan
Tái sử dụng phần mềm không sinh ra hôm qua hay chậm chí hôm nay Từ khi
ra đời của ngành công nghiệp phần mềm cho tới chiến tranh thế giới thứ 2, việc sử dụng lại đ xuất hiện trong dạng thức này hay dạng thức khác của sự phát triển phần mềm Vào những năm 1950, 1960, 1970 các nhà phát triển phần mềm đ đề cập tới cái gọi là mô-đun Những năm 1980 khái niệm tái sử dụng đ được áp dụng trong các tiếp cận sản xuất phi cấu trúc Những năm 1990, được phép sử dụng cách tiếp cận kiểu cấu trúc trong tái sử dụng phần mềm (Hình 1.4)
áp dụng cách tiếp cận hướng đối tượng tạo ra phần mềm tái sử dụng một cách
dễ dàng hơn Có nhiều phương pháp hướng đối tượng có giá trị, mặc dù không có một chuẩn đơn lẻ nào cho các cách tiếp cận hướng đối tượng Nhóm quản lý đối tượng OMG được thành lập để tạo ra chuẩn cho cách tiếp cận hướng đối tượng OMG chuyên tạo khả năng cho các ứng dụng có thể phát tán trên mạng và được viết ra bởi các ngôn ngữ lập trình khác nhau để rồi cùng làm việc với nhau
OMG đ tập hợp được hơn 750 đại diện từ các công ty và tổ chức liên quan tới máy tính Họ tạo ra các đặc trưng nhưng không phải là phần mềm cho vấn đề tái sử dụng Các đặc trưng này luôn sẵn sàng được bổ sung thêm một cách tự do từ bất cứ công ty thành viên nào Các thành viên OMG gặp nhau 6 tháng/lần để đề xuất các quy trình tiêu chuẩn Hiện OMG đ phát triển được CORBA 2.0 dùng trong tái sử dụng Mặc dù công nghệ này được hình thành một cách độc lập bởi World Wide Web, Netscape và một số công ty khác đ tạo ra sự kết hợp giữa CORBA và Java như các ứng dụng Web trong tương lai
OMG có kế hoạch hỗ trợ cho việc chuẩn bị giới thiệu phiên bản mới của CORBA
là CORBA 3.0, có khả năng xây dựng các thành phần Một thành phần khác bổ sung thêm của CORBA 3.0 là CORBABeans cũng sẽ được đưa ra, nó cho phép tạo ra các
Trang 19Hình 1.4 Sự tiến triển của tái sử dụng phần mềm
1.2 Mô hình tái sử dụng phần mềm hướng đối tượng
1.2.1 Nguyên lý tảng băng trôi trong phát triển phần mềm hướng đối tượng
Chi phí của việc phát triền phần mềm hướng đối tượng là nhìn thấy được, nhưng chi phí cho việc bảo trì thì không thể nhận thấy được trong suốt vòng đời của phần mềm Hình 1.5 chỉ ra hình ảnh một tảng băng của vấn đề, người ta cần x đô-la
để phát triển phần mềm, nhưng phải cần tới 5x đô-la để bảo trì nó Tổng số 5x đô-la này sẽ biến thiên tuỳ thuộc vào thời gian tồn tại của phần mềm Việc bảo trì trong vòng đời của phần mềm không chỉ là sửa các lỗi phát sinh của hệ thống mà còn là bổ sung thêm các đặc trưng mới
Một thiết kế phần mềm tốt sẽ làm giảm chi phí bảo trì phần mềm, và quá trình thiết kế phần mềm bằng việc tái sử dụng đồng nghĩa với việc chi phí này còn giảm hơn nữa
• Được gọi là các mô-đun
• Tái sử dụng phần mềm không chính thức
• Phát triển phần mềm mới
• Kỹ nghệ phần mềm
• Các công cụ CASE
• Tái sử dụng phần mềm có cấu trúc
• Kỹ nghệ miền
• Cơ sở hạ tầng
• Phổ biến các kho tài nguyên
• Tái sử dụng phần mềm có
• Công nghệ
đối tượng phân tán
• Phổ biến Internet
• Tái sử dụng giao diện đối tượng
1960 1970 1980 1990 2000
Trang 20Hình 1.5 Tảng băng phần mềm
1.2.2 Đặc điểm của tái sử dụng phần mềm hướng đối tượng
Các đặc điểm của khái niệm hướng đối tượng là sự trừu tượng hoá, sự phân lớp, sự bao gói và che dấu thông tin, tính kế thừa và đa hình
a Sự trừu tượng hoá
Trừu tượng hoá (abstraction) có nghĩa là tập trung vào các điểm cốt yếu quan trọng trong khi lại bỏ các chi tiết không quan trọng Kỹ nghệ phần mềm tốt được phân cấp bởi mức độ trừu tượng hoá Sự phân cấp dựa trên các chức năng, tiến trình, dữ liệu và/hoặc đối tượng quan tâm Đây là kỹ thuật chính và thường được sử dụng trong quản lý tính phức hợp của kỹ nghệ phần mềm Trong phần mềm hướng đối tượng, các kỹ sư phần mềm trước tiên tập trung vào bản thiết kế để đẩy mạnh khả năng mô-đun hoá tốt của các thực thể chính Với số ít các chi tiết thực thi phải lo lắng, các kỹ sư có thể tập trung vào các mô-đun “what” trong hệ thống Các mô-đun mức trên cần được thiết kế trước tiên Các mô-đun mức thấp trở nên ít trừu tượng hơn với nhiều chi tiết thực thi được cài đặt
Sự trừu tượng hoá giúp đỡ thiết kế phần mềm trong đó các kỹ sư phần mềm có thể bỏ qua các chi tiết không cần thiết và tập trung vào không gian các vấn đề Sự trừu tượng hoá có quan hệ gần gũi với mục tiêu sửa chữa được và đẩy mạnh mô-đun hoá tốt
Trang 21Hình 1.6 Khái niệm trừu tượng hoá
b Che dấu thông tin
Che dấu thông tin (hiding information) và trừu tượng hoá trên thực tế là tương
đồng, ngoại trừ một điều rằng che dấu thông tin bao chứa cả khả năng truy cập dữ liệu Chỉ có các thao tác của đối tượng mới có thể nhìn thấy các chương trình ứng dụng, còn dữ liệu và các thao tác thực thi được che dấu Do đó, không có một thao tác nào khác có thể thực thi ngoài đặc tả trong giao diện Che dấu thông tin làm cho các ứng dụng trở nên mềm dẻo hơn, mở rộng hơn và cung cấp nhiều m nguồn có thể sử dụng lại Đó là cơ chế che dấu m nguồn và dữ liệu khỏi các chương trình ứng dụng
và bảo vệ chúng khỏi các tác động làm các thay đổi thực thi trong các tầng thấp của
hệ thống Che dấu thông tin cho phép người phát triển phần mềm tạo được một giao diện sáng sủa hơn giữa sự đặc tả và thực thi của các thao tác Kết quả là chương trình ứng dụng hướng đối tượng hoạt động hiệu quả hơn, độc lập với quá trình thực thi các thao tác của chúng
c Sự phân lớp
Phân lớp (classifier) là quá trình nhóm các đối tượng có các đặc tính (dữ liệu)
và các hành vi (phương thức hay thao tác) tương tự nhau lại với nhau Các lớp đó định
rõ các phương thức và dữ liệu của đối tượng Một lớp tương tự như một khai báo kiểu trong qui ước lập trình hướng cấu trúc ở đây một đối tượng là một thành phần của
Trang 22lớp cũng như một biến là một thành phần của kiểu trong lập trình hướng cấu trúc là vì tất cả các đối tượng của một lớp cụ thể chia sẻ các hành vi mở rộng và cấu trúc bên trong là như nhau, chúng sẽ phản hồi lại cuộc gọi của phương thức theo cùng một cách thức
Lớp đối tượng sẽ xác định đối tượng, toàn bộ các đối tượng và không gì khác ngoài đối tượng Một đối tượng có thể được phân ra thành như actor, server hay agent Sự phân chia đó phụ thuộc vào đối tượng đó liên quan như thế nào tới các đối tượng xung quanh Đối tượng actor không chịu một tác động của thao tác nào nhưng
nó cũng chỉ thao tác trên các đối tượng khác, cho nên các actor có hướng trở thành các thực thể tự trị rõ rệt Server chỉ chịu tác động của các thao tác chứ không thể thao tác trên các đối tượng khác Agent là một đối tượng thực thi thao tác thay một đối tượng khác
Một lớp được đặc tả bởi tập các giá trị và các thao tác áp dụng cho các đối tượng của lớp Do đó các bộ cấu trúc, bộ lựa chọn và bộ lặp áp dụng ở đây giống như cách thức phân loại các thao tác của đối tượng Ví dụ myCar là một lớp các bộ phận thực hiện các thao tác như:
được tạo ra Lớp trừu tượng được sử dụng chủ yếu như bản mẫu cho các lớp khác thông qua việc sử dụng tính kế thừa
d Bao gói
Bao gói (encapsulation) có nghĩa rằng một đối tượng bao gồm cả trạng thái và thao tác có thể thực thi trên trạng thái đó Gói các thủ tục và dữ liệu này là nền tảng của khái niệm hướng đối tượng Các hành động trên trạng tái của đối tượng được gọi
là tác vụ và được khởi tạo bằng cách gửi thông điệp tới đối tượng Dữ liệu đ được
Trang 23có thể thực hiện được hay không Người dùng có thể tin tưởng điều đó, khi một đối tượng được bổ sung vào m nguồn đ tồn tại thì không thể đoán trước được những
điều gì sẽ không thể xảy ra đối với các phần khác của chương trình
Sự bao gói lại đối lại với sự trừu tượng hoá Trừu tượng hoá tập trung vào các hành vi dễ nhận biết của đối tượng, còn sự bao gói tập trung vào sự thực thi của các hành vi Sự bao gói che dấu các chi tiết thực thi, người dùng ở bất cứ nơi đâu thông qua trừu tượng hoá chỉ có thể nhận biết được bản chất của hành vi
e Tính kế thừa
Kế thừa (inheritance) là khả năng kết hợp các đặc điểm chung của tất cả các thành phần của lớp (kiểu) trong đối tượng Trong ứng dụng hướng đối tượng, lớp con của một đối tượng có thể kế thừa các đặc điểm của lớp (kiểu) mà nó theo Do đó, khi một kiểu mới của đối tượng được khai báo thì một đối tượng tương tự cũng tồn tại Trong trường hợp này, ta có thể đơn giản khai báo kiểu đối tượng mới từ kiểu đối tượng đ tồn tại sau đó có thể bổ sung các thuộc tính mới cho đối tượng hoặc sửa đổi thuộc tính đ tồn tại Khi kiểu đối tượng mới đ được khai báo từ kiểu đối tượng cũ, thì kiểu đối tượng mới sẽ kế thừa các thuộc tính của kiểu đối tượng cũ
Một kiểu mới có thể được khai báo từ một kiểu đối tượng đ tồn tại Kiểu mới nhận được sau đó chỉ định kiểu dẫn xuất từ kiểu cơ sở Kiểu dẫn xuất thường bao gồm các thuộc tính và phương thức mới mà chúng không có trong kiểu cơ sở Nó khai báo lại hay nạp chồng quá trình thực thi của phương thức đ được khai báo trong kiểu lớp dưới sau khi nạp chồng hoàn tất khai báo cụ thể Bất kể phương thức nào không được nạp chồng bởi kiểu dẫn xuất sẽ được tự động kế thừa kiểu đối tượng của lớp dưới gần nhất Tương tự như vậy, kiểu dẫn xuất cũng kế thừa tất cả các thuộc tính của của các kiểu đối tượng dưới nó Trong khi kiểu dẫn xuất có thể định nghĩa lại các phương thức kế thừa thì các thuộc tính kế thừa của nó không thể định nghĩa lại được
Trang 24Tuy nhiên, nó cũng có thể bổ sung các thuộc tính mới Ví dụ các đối tượng trong mô phỏng thường cần có khả năng chứa các đối tượng tuần tự khác
Các kiểu đối tượng mới cũng có thể được khai báo lại theo các kiểu dẫn xuất khác Vị trí các kiểu đối tượng nằm trong nhiều lớp được biểu diễn trong hình 1.7
Bất kể kiểu đối tượng nào là kiểu cơ sở của SomeObject hoặc kiểu phía dưới nhiều mức SomeObject đều được xem là kiểu nằm dưới của SomeObject và SomeObject chứa tất cả các thuộc tính của các kiểu nằm dưới Dựa trên hình 1.7 ở trên ta thấy VehicleObj là cơ sở của AircraftObj, HelicoperObj là kiểu dẫn xuất của AircraftObj
Hình 1.7 Tính kế thừa Một kiểu dẫn xuất có thể có nhiều hơn một kiểu cơ sở, khi đó người ta gọi là
đa kế thừa Hình 1.8 minh hoạ khái niệm đa kế thừa
Trang 25Hình 1.8 Đa kế thừa Khi một kiểu đối tượng mới được khai báo theo cách này, nó sẽ có một bản sao các trường, phương thức của các kiểu cơ sở Nếu kiểu đối tượng mới được dẫn xuất ra từ các kiểu cơ sở mà các kiểu này có bất cứ một thuộc tính hay một phương thức nào trùng tên thì sẽ xảy ra sự nhập nhằng, tức là khi tham chiếu tới một thuộc tính hay một phương thức được dẫn xuất từ các kiểu cơ sở, nó không biết tham chiếu tới thuộc tính hay phương thức của kiểu cơ sở nào Điều này được khắc phục nếu xác
định rõ thuộc tính hay phương thức được kế thừa từ kiểu cơ sở nào, bằng cách ấn định một giá trị tham chiếu của kiểu được dẫn xuất và sau đó các đối tượng đa kế thừa tham chiếu riêng biệt tới mỗi kiểu cơ sở Khi đó thông tin được dẫn xuất sẽ được tham chiếu
Sự kế thừa cho phép một lớp chấp nhận các thuộc tính của lớp khác, lớp chấp nhận các thuộc tính gọi là lớp con trong khi lớp chứa các thuộc tính được chấp nhận gọi là lớp cha (Hình 1.10)
Mối quan hệ giữa các lớp con và các lớp cha của chúng được gọi là sự phân cấp lớp
Các hệ thống cho phép một lớp kế thừa các thuộc tính của một lớp duy nhất thì
hệ thống đó hỗ trợ kế thừa đơn, trong khi các hệ thống cho phép kế thừa từ nhiều hơn một lớp cha có hỗ trợ đa kế thừa Sử dụng tính kế thừa có thể dễ dàng tạo ra các lớp mới mà không cần phải định nghĩa lại những thành phần chung giữa chúng
Trang 26Hình 1.9 Các lớp kế thừa
Hình 1.10 Sử dụng lại các thuộc tính kế thừa
f Tính đa hình
Polymorphism là một từ Hi-Lạp có nghĩa là “đa hình” Do đó, khi một thao tác
được thực thi trên một đối tượng, phụ thuộc vào kiểu của đối tượng thao tác quyết
định tới dạng thức của đối tượng
Với đa hình, một lớp con có thể sửa đổi hoặc bổ sung các thuộc tính nó kế thừa Một lời gọi phương thức có thể cho các kết quả khác nhau, điều này phụ thuộc vào kiểu (lớp) của đối tượng nhận lời gọi Một lời gọi bị quá tải khi nó gọi các thao tác khác nhau tới các đối tượng của các lớp khác nhau Ví dụ, trong hình 1.11 đối tượng của các lớp Circle, Rectangle và Square đều hiểu và phản hồi lời gọi phương
các lớp con cụ
thể hoá lóp cha
(tái sử dụng)
Trang 27đó, lời gọi FindArea được coi là quá tải
Một lớp nạp chồng sự thực thi của một phương thức cụ thể khi thao tác được
kế thừa từ lớp cha của nó không phù hợp Trong hình 1.11 lớp Square đ kế thừa phương thức FindArea từ lớp cha của Square, đó là lớp Rectangle Phương thức FindArea của lớp Rectangle tính diện tích bằng cách sử dụng thuật toán “height-times-width” (cao nhân rộng), còn đối với hình vuông thì tính diện tích bằng cách bình phương chiều rộng của nó lại hiệu quả hơn Do đó lớp Square không sử dụng phương thức FindArea kế thừa từ lớp Rectangle mà thực hiện nạp chồng lớp đó
Hình 1.11 Sự quá tải và nạp chồng Hình 1.12 mô tả giả thuyết môi trường đồ hoạ cho phép tạo ra các khối hình thù khác nhau bằng cách gọi phương thức của một đối tượng cụ thể, trong đó R1, S1, C1 đáp lại cùng một lời gọi phương thức đó là Draw Object Lời gọi phương thức Draw Object cho phép gọi để vẽ các hình khối, hình vuông hay hình tròn Thực thế qúa trình thực thi của lời gọi phương thức Draw Object đ được định nghĩa lại cho mỗi kiểu đối tượng Khả năng tổng hợp hành vi của nhiều đối tượng cho thấy cấp độ cao hơn của sự trừu tượng trong phát triển phần mềm là vì người phát triển phần mềm nghĩ về các hoạt động cụ thể hơn là xem chúng được thực thi như thế nào
Hình 1.12 Thực thi đa hình
Trang 281.2.3 Vòng đời quan trọng của tái sử dụng phần mềm hướng đối tượng
Vòng đời của một hệ thống bắt đầu từ khi hệ thống khởi động và kết thúc khi
hệ thống nghỉ Một hệ thống ngừng hoạt động sẽ bị mất đi một phần tài nguyên, còn một số thành phần lại có thể được giữ lại cho việc tái sử dụng trong các hệ thống khác nếu có thể Ngày nay, các hệ thống đ ngừng hoạt động sẽ bị loại bỏ hoàn toàn
mà không một thành phần nào của chúng được giữ lại Đây là sự lng phí về sức lực
và giá trị dữ liệu Những hệ thống như vậy có thể sẽ được thu hồi và điều đó sẽ đem lại lợi ích về mặt kinh tế
Phát triển phần mềm hướng đối tượng bao gồm các giai đoạn sau:
– Trình bày các yêu cầu của khách hàng
về mặt kỹ thuật trong phần mềm Với các cách tiếp cận truyền thống thì công việc này tốn thêm hơn 500% phí tổn của một vòng đời sau khi hệ thống hoàn tất quá trình kiểm thử và chuyển sang giai đoạn hỗ trợ bảo trì Chi phí cho vòng đời một hệ thống bao gồm cả chi phí rủi ro và phí tổn cho việc loại trừ các lỗi và sửa đổi các yêu cầu
Điều này thực tế đ chứng minh rằng sử dụng lại tiến trình xử lý có thể làm giảm chi phí một cách đáng kể
Qui trình vòng đời mô tả việc tổ chức thực hiện công việc như thế nào trong việc phát triển và cải tạo các sản phẩm trong dòng sản phẩm của một miền Một qui trình xử lý có nhiều phương thức Vòng đời một giao diện hệ thống gắn với các môi
Trang 291.3 Qui trình tái sử dụng phần mềm
Một tổ chức nên tiếp cận phát triển phần mềm theo nguyên tắc nhất định, điều
đó sẽ cung cấp một cơ sở đầy đủ cho việc thiết lập và đánh giá hiệu quả của sự tích hợp tái sử dụng phần mềm Viện kỹ nghệ phần mềm SEI đ phát triển mô hình trưởng thành về năng lực CMM để hướng dẫn các tổ chức máy tính trong việc cải tiến qui trình phần mềm Phần này chúng ta sẽ tìm hiểu các khái niệm miền, giao diện và môi trường, sự phân lớp tái sử dụng phần mềm và các qui trình tái sử dụng phần mềm
1.3.1 Miền ứng dụng
Miền được định nghĩa như không gian vấn đề của họ các ứng dụng có cùng các yêu cầu Một miền là tập hợp các hệ thống có liên quan có những nét tương đồng Một miền có thể được chia thành các miền con để giảm nhẹ sự rủi ro và chứa đựng các hệ thống Các miền con và các tài nguyên liên kết với nhau Miền có danh giới và môi trường của miền Hình 1.13 minh hoạ mối quan hệ giữa miền, miền con, ranh giới miền và môi trường miền
1.3.2 Ranh giới miền
Ranh giới miền phân định miền này với miền khác Trong một miền có thể có nhiều hơn một miền Tập các miền đó được gọi là miền con Miền con chứa các thành phần, các tài nguyên chung nhất liên kết với nhau trong một hệ thống Miền con không phải là một hệ thống hoàn chỉnh Điều này hàm ý rằng, một thay đổi có ý nghĩa khi phát triển hệ thống đối với các tài nguyên chung của một miền con sẽ được
sử dụng lại trong hệ thống có liên quan tới nó
1.3.3 Môi trường miền
Môi trường miền là nơi một số thành phần có tương quan lẫn nhau nhưng lại
độc lập với các miền đ tồn tại Các miền này có một số chức năng thi hành trong môi trường đó Các hệ thống máy tính đ được triển khai và thực hiện trong môi
Trang 30vai trò trong
các hệ thống trong
thuộc tính trong
dự
án/miền con môi trường
các vai trò ngoài các hệ thống ngoài các thuộc
tính ngoài
đường ranh giới
Hình 1.13 Mối quan hệ giữa miền, ranh giới và môi trường
Hình 1.14 Thứ bậc của các miền, miền con và các hệ thống Các hệ thống và các ứng dụng được chia thành tập lớp các đối tượng và mối quan hệ giữa chúng Các lớp đối tượng trong và ngoài nằm trong ngữ cảnh của một
Trang 31Chi phí
miền con nhận dạng tất cả các lớp có yêu cầu các tài nguyên hay các dịch vụ từ miền con hoặc từ nơi miền con yêu cầu tài nguyên hay các dịch vụ
1.3.4 Kiến trúc miền cụ thể
Khách hàng đưa ra các yêu cầu, các đề xuất cho một ứng dụng, một sản phẩm hay dòng sản phẩm mới trong một miền Theo phương pháp truyền thống thì các yêu cầu có thể bị thay đổi, huỷ bỏ hay sửa chữa Điều đó là cần thiết cho sự tồn tại vì rằng các yêu cầu cần được cố định sớm nhất có thể Hình 1.15 cho ta thấy được vấn đề trên; một khách hàng liên tục có những thay đổi trong tất cả các giai đoạn phát triển phần mềm và để thực hiện các yêu cầu thay đổi sau giai đoạn phân tích phải tốn chi phí, nhưng sẽ còn phải tốn nhiều chi phí hơn để thay đổi các yêu cầu nếu xảy ra sau giai đoạn thiết kế sản phẩm
Kiến trúc miền cụ thể quyết định về phổ biến và khác biệt giữa khái niệm vè thao tác, yêu cầu hệ thống và các ràng buộc của miền
Hình 1.15 Tác động của việc thay đổi các yêu cầu
1.3.5 Sự phân lớp tái sử dụng phần mềm
Tái sử dụng phần mềm được phân lớp ngang hoặc phân lớp dọc Tái sử dụng dọc phân lớp các thành phần có khả năng tái sử dụng từ các hệ thống khác nhau trong một miền Khả năng này tồn tại khi các hệ thống đạt được từ vạch ranh giới có không nhiều các thành phần riêng lẻ có thể thích nghi với các yêu cầu mới hoặc sửa chữa
Trang 32lỗi Khi khả năng này trở thành hiện thực thì sẽ tìm kiếm thành phần có thể chấp nhận được trong kho tái sử dụng từ hệ thống khác còn tồn tại hiện hữu trong miền Ví
dụ, tái sử dụng gói toán học từ một hệ thống trong một hệ thống khác Điều này không ngăn được tái sử dụng một hệ thống toàn vẹn nếu như tái sử dụng phát triển một nhận diện mới tách ra từ hệ thống mới Ví dụ khác về tái sử dụng dọc là các gói tài chính và chăm sóc sức khoẻ
Tái sử dụng ngang sử dụng tài nguyên của các thành phần đang tồn tại từ các miền ngoại trừ miền được thiết kế Tình trạng này xảy ra khi một yêu cầu mới hoặc tồn tại các khiếm khuyết mà nó không thể thoả mn với bất cứ thành phần nào trong kho tái sử dụng Khi điều này xảy ra thì sẽ thực hiện tìm kiếm trong kho miền của hệ thống khác để làm cho nó thoả mn yêu cầu mới với các thành phần được từ các miền ngoài Ví dụ tái sử dụng ngang kết hợp giao diện người dùng và quản lý các hệ thống
đúng đường tới đích Tái sử dụng không chính thức thường đắt đỏ, không hiệu quả
b Tái sử dụng theo cơ hội
Tái sử dụng theo cơ hội phụ thuộc vào người phát triển phần mềm nhận ra
được tài nguyên cần thiết và tìm tài nguyên cần thiết đó trong kho Không có một qui trình chuẩn thích hợp cho tái sử dụng mà cũng không có kiến trúc miền nào cung cấp
Trang 33tổ chức hoặc bìa ngoài của bản báo cáo
có hệ thống yêu cầu hỗ trợ quản lý lâu dài và có sự đầu tư nhiều năm trước khi nó mang lại hiệu quả Nó đòi hỏi phải có sự thay đổi trong cách nghĩ của những người hành nghề bao gồm cả việc giáo dục cán bộ và khuyến khích sự sáng tạo, tư duy quản
lý và quan trọng là thay đổi trong văn hoá Những kết quả dưới đây đ được báo cáo trong cuộc hội thảo Giáo dục và Đào tạo năm 1993 của tổ chức thiết lập ra chương trình tái sử dụng phần mềm có hệ thống:
Hiệu suất tăng từ 14% tới 68%
Giảm 20% sự phàn nàn của khách hàng
Giảm 25% thời gian thi công
Giảm 25% thời gian sửa chữa
Giảm 50% thời gian tích hợp
Chất lượng sản phẩm tăng từ 20%-35%
Giảm chi phí đào tạo 20%
d Hình thức hoá tái sử dụng phần mềm
Qui trình hình thức hoá tái sử dụng phần mềm phụ thuộc vào tiêu chuẩn chính thức hay phi chính thức Tái sử dụng phi chính thức là thói quen tái sử dụng phần mềm không chính thức mà nó lấy hai dạng thức: tập trung quản lý và xuất phát từ người thực hiện
Tái sử dụng phi chính thức với sự quản lý tập trung thường đòi hỏi nhận thức ngay lập tức về cơ hội và do đó không có một ứng dụng phù hợp hoặc chuẩn về miền,
tổ chức hay dự án đ cung cấp Tái sử dụng xuất phát từ người thực hiện là phi chính thức và thường xuyên không được cung cấp tài liệu, m nguồn thường được những
Trang 34người thực hiện có liên quan đến nhau trên cùng hệ thống hoặc trên những hệ thống khác sử dụng
Tái sử dụng chính thức là một hoạt động điều khiển tiến trình, hoạt động đó yêu cầu các thủ tục, các chuẩn và thói quen chung áp dụng một cách phù hợp và phổ biến qua một miền Tất cả các miền con được chỉ định và cung cấp tài liệu với các thuộc tính và đặc trưng Sự phân loại này cho phép những người thực hiện tìm kiếm
và quyết định những cái gì dùng được để giải quyết vấn đề tại thời điểm thích hợp và thuận lợi bên trong các trình phát triển của họ Đồng thời nó cho điều khiển phục hồi các tài nguyên đ lựa chọn ở mức dự án
1.3.7 Nhận diện các tài nguyên có thể tái sử dụng
Các tài sản có thể tái sử dụng sẽ được nhận diện trong cùng hệ thống Với điều kiện này, các thành phần riêng lẻ trong kho tái sử dụng và các thành phần giành được
từ vạch ranh giới hệ thống đ được nhận dạng như làm thoả mn một yêu cầu hay sửa chữa một lỗi trong hệ thống
Trang 35Chương 2 xml - Ngôn ngữ trợ giúp phát triển phần mềm trên
nền web
Chúng ta biết HTML được xem là thành phần cơ bản của World Wide Web,
nó cung cấp các chuẩn để tạo ra một trang Web, định dạng thông tin trên Web để có thể phát tán trên phạm vi toàn cầu, được gọi là Internet Trên thực tế HTML đ kết hợp với HTTP tạo ra cuộc cách mạng trong việc gửi và nhận thông tin giữa mọi người Nhưng HTML được thiết kế chủ yếu là để hiển thị dữ liệu, tập trung chủ yếu tới việc biểu diễn thông tin như thế nào mà không cần biết thông tin đó là gì, cấu trúc của nó ra sao Vì lý do đó mà ngôn ngữ đánh dầu mở rộng XML ra đời
XML (eXtensible Markup Language) là ngôn ngữ đánh dấu mở, dựa trên văn bản; cung cấp cấu trúc, ngữ nghĩa thông tin cho dữ liệu Đây là “dữ liệu của dữ liệu” hay gọi là metadata, XML hỗ trợ các ứng dụng sử dụng dữ liệu và cung cấp các mức quản lý, thao tác thông tin trên nền Web XML là ngôn ngữ dựa theo chuẩn SGML (Standard Generalized Markup Language - Siêu ngôn ngữ có khả năng sinh ngôn ngữ khác), SGML là tập hợp các ngôn ngữ đánh dấu tổng quát chuẩn, được phát triển cho việc xây dựng cấu trúc và nội dung tài liệu thực thi trên Web Điều này làm cho XML trở lên mạnh mẽ hơn, bổ sung cho HTML và có thể trở nên quan trọng hơn trong tương lai trong việc phát tán trên Web
XML được xem là một ngôn ngữ, nói một cách đúng hơn là một “siêu ngôn ngữ” Điều đó có nghĩa rằng XML có thể được sử dụng để tạo ra ngôn ngữ khác Do
đó, các tập từ vựng là ngôn ngữ ứng dụng của XML Ví dụ: XSL (ngôn ngữ định dạng dựa trên biểu mẫu, có thể tạo ra dữ liệu XML) Dưới đây tôi sẽ trình bày XML
Trang 36– XML được thiết kế để mô tả cấu trúc dữ liệu
– Các thẻ của XML không được định nghĩa trước mà phải tự định nghĩa
nghĩa các thẻ cho riêng mình và cấu
trúc tài liệu cho riêng mình Ví dụ các
thẻ <to>, <from> không được định
nghĩa trước trong chuẩn XML mà tác
giả tự định nghĩa trong tài liệu XML
Các thẻ thường sử dụng đánh dấu tài liệu HTML và cấu trúc tài liệu HTML là
được định nghĩa trước Tác giả của tài liệu HTML chỉ được
sử dụng các thẻ đ được định nghĩa trong chuẩn HTML Ví dụ: <p>, <h1>,
…
XML hoàn thiện hơn HTML: XML không thay thế HTML mà nó bổ sung cho HTML, XML và HTML có thể được kết hợp sử dụng cùng nhau: XML sử dụng để mô tả dữ liệu trong khi HTML sử dụng để định dạng và hiển thị dữ liệu đó
Trong tương lai, XML sử dụng để phát triển ứng dụng trên nền Web: Trong tương lai XML sẽ là thành phần quan trọng của Web giống như HTML đ là một phần cơ bản của Web XML sẽ là công cụ phổ biến cho việc thao tác và chuyển dịch dữ liệu trên nền Web
Trang 37đổi HTML, dữ liệu đó có thể lưu trữ trong trang HTML giống như “ốc đảo dữ liệu”
XML sử dụng để thay đổi dữ liệu: Dữ liệu có thể được thay đổi giữa các hệ thống tương thích Hệ thống máy tính và cơ sở dữ liệu chứa dữ liệu theo định dạng của từng cơ sở dữ liệu Trong nhiều trường hợp, trong quá trình phát triển dữ liệu giữa các hệ thống thông qua Internet dữ liệu được chuyển sang XML để giảm tính phức tạp và tạo ra dữ liệu có thể được đọc bởi các ứng dụng khác nhau
XML sử dụng trong lĩnh vực B2B: các thông tin tài chính có thể được trao đổi thông qua Internet Trong tương lai XML sẽ trở thành ngôn ngữ chủ yếu cho việc trao
đổi thông tin tài chính giữa các thương gia thông qua Internet
XML có thể được sử dụng để chia sẻ dữ liệu: Kể từ khi dữ liệu XML được lưu trữ trong định dạng thuần văn bản, XML cung cấp cách thức để chia sẻ dữ liệu độc lập với phần mềm, phần cứng Điều này dễ dàng tạo ra dữ liệu mà các ứng dụng khác nhau có thể thực thi
XML sử dụng để lưu trữ dữ liệu: XML cũng có thể sử dụng để lưu trữ dữ liệu trong các tệp hoặc trong các cơ sở dữ liệu Các ứng dụng có thể đọc dữ liệu, hiển thị dữ liệu và truy lục thông tin từ kho lưu trữ
Sử dụng XML làm cho dữ liệu trở nên mạnh mẽ hơn: Dữ liệu có thể được sử dụng bởi nhiều người dùng XML độc lập phần cứng, phần mềm và ứng dụng Do đó dữ liệu có thể được thay đổi sử dụng trong nhiều ứng dụng hơn là mỗi chuẩn HTML
XML có khả năng tạo ra ngôn ngữ mới: XML có khẳ năng tạo ra ngôn ngữ mới phục vụ cho các ứng dụng khác nhau, như ngôn ngữ WML thường sử dụng cho các ứng dụng Internet để điều khiển các thiết bị cầm tay như điện thoại di động,
Trang 38XML độc lập với Server: Sử dụng XML có thể tạo ra tài liệu sử dụng độc lập với Server Tài liệu nằm ngay trên máy khi người dùng tải về và tiếp tục được sử dụng
mà không phụ thuộc vào Server [16]
Một số qui tắc khi phát triển các ứng dụng XML phải tuân theo [19, 20]:
• XML sử dụng trên Internet dễ dàng
– Cấu trúc vật lý chứa dữ liệu sử dụng trong tài liệu
Hình 2.1 Cấu trúc tài liệu XML a1 Cấu trúc logic
Cấu trúc logic cho phép tổ chức các thành phần khác nhau trong tài liệu XML, chỉ ra một tài liệu được xây dựng như thế nào mà không đề cập tới tài liệu đó chứa
Trang 39Phần mở đầu: Thành phần đầu tiên trong tài liệu XML là phần mở đầu Phần
mở đầu gồm hai phần lựa chọn: Khai báo XML và khai báo kiểu tài liệu DTD
Khai báo XML: Cho biết phiên bản XML mà tài liệu phải tuân theo, là thành phần bắt buộc trong tài liệu XML Ví dụ: <?xml version="1.0"?>
Khai báo kiểu tài liệu DTD: Chứa các m đánh dấu chỉ ra các qui tắc hoặc các
định nghĩa tài liệu hay các lớp riêng của tài liệu Khai báo kiểu tài liệu đi sau khai báo XML
Phần tài liệu: Phần tài liệu được xem như những thành phần đơn, chứa toàn
bộ dữ liệu trong tài liệu XML Thành phần đơn này có thể bao gồm các thành phần con và các thực thể mở rộng
Ví dụ: <?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
a2 Cấu trúc vật lý
Cấu trúc vật lý của một tài liệu XML xác định tất cả nội dung của tài liệu đó Nếu cấu trúc logic là bản thiết kế một gara để xe thì cấu trúc vật lý xem như là không gian thực tế bên trong gara Không gian hay các đơn vị lưu trữ được gọi là các thực thể, các thực thể có thể là một phần của tài liệu hay là một phần mở rộng của tài liệu
Mỗi thực thể xác định một định danh tên và chứa nội dung Trong cấu trúc của tài liệu XML, các thực thể được khai báo ở phần mở đầu của tài liệu và tham chiếu tới các thành phần của tài liệu, các thực thể được sử dụng bất cứ chỗ nào trong tài liệu bằng cách tham chiếu thực thể
Ví dụ: <!ENTITY SV "Nguyễn Văn Bốn">
Trang 40<HOTEN> &SV; </HOTEN>
Thành phần: <! ENTITY>: là thẻ khai báo thực thể
“Nguyễn Văn Bốn” là nội dung của thực thể SV
Khi thành phần <HOTEN> được xử lý thì nội dung của nó là nội dung của thực thể SV
&SV; : tham chiếu tới thực thể SV
b Cú pháp XML
Cú pháp XML tương ứng với các qui luật cấu trúc XML hay các qui luật của ngôn ngữ Cú pháp của XML cũng sử dụng các thẻ để cấu trúc tài liệu XML Tuy nhiên, không giống như HTML một thành phần của XML phải bắt đầu bằng một thẻ
mở và kết thúc bởi một thẻ đóng, các thẻ trong XML phân biệt chữ hoa, chữ thường Trong mỗi thẻ cũng có thể có các thuộc tính riêng của nó và một thẻ có thể không có nội dung (thẻ rỗng) Tài liệu XML tuân theo đúng cú pháp và qui tắc viết tài liệu thì gọi là tài liệu hợp khuân dạng (well-formed XML document) Ví dụ:
<p> This is Example <p> This is Example </p>
<h1> This is Example Viết đúng: <h1> This is Example </h1>
Viết sai: <h1> This is Example </H1>
<a href = “http://www.yahoo.com> Yahoo </a> (tag <a> có thuộc tính href)
2.1.5 Định nghĩa kiểu tài liệu - DTD [20]
Trong phần này ta tập trung tìm hiểu DTD, cấu trúc DTD và cách tạo ra DTD cho tài liệu Như đ đề cập trước DTD hoạt động như tập các qui luật, cho phép ta tạo
ra các tài liệu mới có cùng kiểu với một số đặc điểm của tài liệu cơ sở Ví dụ như DTD được tạo ra để sử dụng trong hiệp hội y học Tài liệu tạo ra với DTD này có thể chứa một số mục như tên bệnh nhân, các loại thuốc, lịch sử của y học, … Các viện y học có thể dễ dàng đọc các thông tin này nếu như họ có sử dụng hệ thống tài liệu dựa