BÀI 5: LẬP TRÌNH KẾ THỪA
1.2. Phương pháp phân tích và thiết kế bottom-up
Trong phân tích và thiết kế hướng đối tượng, phương pháp được áp dụng chủ yếu là bottom-up (từ dưới lên). Theo đó, chúng ta xuất phát từ không gian thực các đối tượng của bài toán để thiết kế các lớp đối tượng, sau đó bằng phương pháp tổng quát hóa (tức là tìm kiếm sự chia sẽ giống nhau về nội dung) để thiết kế các lớp đối tượng ở mức cao (tổng quát hay trừu tượng hơn).
Quá trình phân tích và thiết kế có chia thành 3 không gian các lớp đối tượng như sau: thứ nhất, không gian các đối tượng thực tế của bài toán, ở đây gồm tất cả các đối tượng có liên quan và nhằm mục tiêu giải quyết bài toán với nội dung và hành vi đầy đủ. Thứ hai, không gian các lớp đối tượng trong chương trình. Vì chức năng máy tính là xử lý thông tin do đó không gian các đối tượng trong chương trình được thiết kế theo hướng thông tin và xử lý thông tin, tức các nội dung và hành của các đối tượng chỉ mang tính thông tin và là những dạng thông tin có thể biểu diễn được trên máy tính. Thứ ba, không gian các lớp đối tượng thiết kế. Với mục tiêu chính tằng cường sử dụng lại (giảm bớt sự trùng lặp) nên các lớp đối tượng có mức trừu tượng cao (tổng quát hơn) sẽ được thiết kế.
Minh họa 3 không gian các đối tượng và lớp đối tượng như sau:
Kích thước của không gian các đối tượng trong chương trình có thể nhỏ hơn không gian các đối tượng thực trong bài toán, bởi vì trong chương trình chỉ thể hiện được các đối tượng cũng như nội dung của đối tượng về mặt thông tin. Mặt khác, trong không gian thiết kế có thể phát sinh thêm các lớp trừu tượng, có mức khái quát cao hơn so với các lớp đối tượng trong chương trình yêu cầu.
Phương pháp phân tích và thiết kế hướng đối tượng thường xuất phát theo 2 hướng: thứ nhất, từ bản mô tả về bài toán sau đó chúng ta tìm kiếm các đối tượng dựa trên mô tả “danh từ”, các thuộc tính của đối tượng dựa trên mở tả “tính từ” và các hành vi của đối tượng dựa trên mô tả “động từ”. Thứ hai, dựa trên bản phân tích
và thiết kế về các thực thể dữ liệu theo truyền thống để đưa ra các lớp đối tượng, sau đó phân tích bổ sung thêm các hành vi cho đối tượng.
Khác với phân tích hướng chức năng thường được thực hiện bằng phương pháp top-down, quá trình phân tích thiết kế hướng đối tượng áp dụng phương pháp bottom-up. Chúng ta xuất phát từ bài toán để phân tích các đối tượng trong không gian thực của bài toán, tư đó chúng ta phân loại và đưa ra thiết kế các lớp đối tượng của chúng. Dựa trên các lớp đối tượng này chúng ta đi tìm kiếm sự chia sẽ giống nhau về các đặc tính (thuộc tính và phương thức) của chúng để đưa ra thiết kế các lớp có mức trừu tượng cao hơn (tổng quát hơn). Quá trình đi lên như vậy được gọi
là bottom-up, việc dừng lại ở mức nào phụ thuộc vào thực tế của bài toán cũng như chủ quan của người phân tích. Hiện nay chưa có một quy trình tổng thể dưới dạng hình thức hóa toán học để thực hiện điều này.
Các đối tượng trong không
gian thực của bài
Các đối tượng trong không gian của chương trình
Các lớp đối tượng trong không gian thiết kế
Chẳng hạn, từ các đối tượng con sử tử, con chó phốc và chó đốm chúng ta phân thành 2 loại: thứ nhất là loại động vật ăn thịt hoang dã, thứ hai là con vật nuôi trong nhà. Chúng ta đưa ra thiết kế 2 lớp đối tượng gồm “Predator Wild Cats” và “Pet Dogs”. Từ hai lớp đối tượng này chúng ta lại thiết kế lớp tổng quát hơn là
“Mammal” gồm các đặc tính chia sẽ giống nhau giữa chúng như lông, máu nóng, đi bằng bốn chân,... và hành vi như ăn, ngủ, sinh sản,... (hình vẽ trên).
Mỗi phương án phân loại đối tượng từ bài toán thực để đưa ra thiết kế lớp, mỗi phương án thiết kế lớp có mức tổng quát hơn từ các lớp mức thấp đều cho một kết quả khác nhau của thiết kế và đem lại hiệu quả xây dựng và phát triển ứng dụng khác nhau. Việc đánh giá phương án nào cho kết quả tốt nhất là chưa có phương pháp tổng thể, chủ yếu dựa vào trải nghiệm thực tế của người phân tích và kết quả ứng dụng của phần mềm tương ứng.