1. Trang chủ
  2. » Công Nghệ Thông Tin

Phân tích, thiết kế, lập trình hướng đối tượng

19 440 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân tích, thiết kế, lập trình hướng đối tượng
Thể loại Phụ lục
Định dạng
Số trang 19
Dung lượng 288,8 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phân tích hướng ñối tượng cho phép mô tả hệ thống gần với thế giới thực hơn, xác ñịnh rõ các ñối tượng, trừu tượng hoá các yêu cầu ñể trên cơ sở ñó xây dựng ñược cấu trúc của hệ thống..

Trang 1

PHỤ LỤC 4

PHÂN TÍCH, THIẾT KẾ VÀ LẬP TRÌNH

HƯỚNG ðỐI TƯỢNG

§ 1 PHÂN TÍCH HƯỚNG ðỐI TƯỢNG 1.1 Giới thiệu

Phân tích hệ thống không chỉ có liên quan chặt chẽ với sự xuất hiện của máy tính, mà thực tế nhu cầu phân tích ñã có trước khi máy tính xuất hiện từ nhiều thế kỷ Khi các Vua Pharaon của Ai Cập cổ ñại xây dựng các Kim Tự Tháp, thì những người thiết kế Kim Tự Tháp có thể ñược coi như những nhà thiết kế hệ thống, những kiến trúc sư ñại tài, còn những người tổ chức vận chuyển nguyên vật liệu, huy ñộng nhân công xây dựng Kim Tự Tháp, theo một nghĩa nào ñó, chính là những người phân tích hệ thống Từ giữa thế kỷ 19, các nhà tư bản, các doanh nghiệp muốn có lợi nhuận cao ñã phải tiến hành nghiên cứu phương pháp, cách tổ chức, phân công lao ñộng hợp lý ñể cho các hệ thống sản xuất, kinh doanh hoạt ñộng ñạt hiệu quả cao hơn Chính họ ñã thực hiện phân tích những

hệ thống ñó ñể ñề ra những phương pháp quản lý, cách tổ chức mới, tốt hơn Cùng với sự phát triển của công nghiệp ñiện tử, giá thành phần cứng giảm nhiều, nhưng giá phần mềm lại tăng Nhất là phí tổn cho bảo trì ñể hệ thống ñáp ứng ñược như cầu của người sử dụng lại chiếm một tỷ trọng rất lớn trong tổng chi phí cho một

dự án phát triển phần mềm ðiều này cho thấy vai trò của công việc phân tích hệ thống là rất quan trọng và cần thiết phải tìm ra phương pháp tốt hơn cho việc phát triển hệ thống

Phân tích làm nhiệm vụ phân tách bài toán thành các thành phần nhỏ hơn Trong công nghệ phần mềm thì nó còn có nghĩa là phải hiểu rõ quá trình xây dựng ñặc tả yêu cầu của người sử dụng, nắm ñược các chức năng và cách phân

rã hệ thống vật lý thành các ñơn thể (module) Theo phương pháp truyền thống thì ñiều ñó thường ñược thực hiện theo cách tiếp cận trên-xuống (top-down),

sử dụng phương pháp phân tích có cấu trúc Phân tích hướng ñối tượng cho phép mô tả hệ thống gần với thế giới thực hơn, xác ñịnh rõ các ñối tượng, trừu tượng hoá các yêu cầu ñể trên cơ sở ñó xây dựng ñược cấu trúc của hệ thống Phương pháp hướng ñối tượng giải quyết ñược hố ngăn cách giữa phân tích và thiết kế hệ thống

Trang 2

1.2 Các bước thực hiện trong phân tích hướng ñối tượng

ðể xây dựng một hệ thống phần mềm thì phải giải quyết ba vấn ñề chính sau: + Dữ liệu, lớp các ñối tượng và cấu trúc của chúng

+ Những hành vi thể hiện các chức năng cục bộ, những quá trình trong hệ thống

+ ðiều khiển hành vi tổng thể của hệ thống

Trong thực tế, cấu trúc dữ liệu và yêu cầu về hành vi của hệ thống thường xuyên thay ñổi Do vậy phải phân tích kỹ bài toán, lựa chọn phương pháp phát triển hệ thống thích hợp ñể cho hệ thống có tính chất mở, dễ thích nghi giúp cho công việc bảo trì hệ thống ñỡ tốn kém

Người phân tích hệ thống là người có kiến thức bao quát, có kinh nghiệm trong quá trình phân tích nhiều hệ thống ứng dụng khác nhau, ñồng thời phải có khả năng giao tiếp, trao ñổi và hiểu ñược những người ñầu tư, thiết kế và những người sử dụng

hệ thống

Nhiệm vụ của phân tích hệ thống là phải trả lời cho ñược câu hỏi "Hệ thống làm cái gì?" và "Tại sao?" ðể xác ñịnh ñược bài toán và trả lời ñược những câu hỏi nêu trên thì người phân tích cũng cần phải phát hiện, tìm hiểu kỹ những hệ thống ñã có hoặc ñang hoạt ñộng trong thực tế Có thể ñó chưa phải là hệ thống tin học hoá Trên

cơ sở nghiên cứu những hệ thống cũ, xác ñịnh rõ yêu cầu của người sử dụng ñể quyết ñịnh xem hệ thống cần xây dựng sẽ làm cái gì và hoạt ñộng như thế nào

Trong các phương pháp truyền thống thì mô hình dòng dữ liệu ñược mô tả thông qua sơ ñồ dòng dữ liệu Các quá trình trong hệ thống ñược xác ñịnh thông qua việc phân rã chức năng top-down Sơ ñồ biến ñổi trạng thái ñược sử dụng ñể

mô tả sự biến ñổi thông tin và dòng ñiều khiển trong hệ thống Phương pháp hướng ñối tượng kết hợp hai phương diện dữ liệu với quá trình, gộp chung hành

vi cục bộ với dữ liệu trong một ñơn vị cấu trúc Phương pháp phân tích hướng ñối tượng cung cấp cho chúng ta công cụ ñơn giản nhưng ñủ mạnh ñể xác ñịnh các ñối tượng và xây dựng các ñơn nguyên của hệ thống cần phát triển Phân tích hướng ñối tượng bao gồm các bước sau:

+ Tìm hiểu bài toán

+ Xây dựng các ñặc tả yêu cầu của người sử dụng và của hệ thống phần mềm + Xác ñịnh các ñối tượng và các thuộc tính của chúng

+ Xác ñịnh các hàm mà các ñối tượng sẽ phải thực hiện (hành vi của các ñối tượng)

Trang 3

+ Xác ñịnh mối quan hệ tương tác giữa các ñối tượng, các thông báo và sự truyền thông báo giữa các ñối tượng

Tìm hiểu bài toán

Nhiệm vụ ñầu tiên của quá trình phân tích là phải tìm hiểu kỹ bài toán ứng dụng Người phân tích phải gặp gỡ, trao ñổi với những người ñầu tư, những người

sử dụng ñể biết rõ về chức năng, nhiệm vụ của hệ thống cần phát triển ðồng thời người phân tích phải tìm hiểu, phát hiện những hệ thống cũ ñã hoặc ñang giải quyết những vấn ñề tương tự như những vấn dề mà hệ thống cần xử lý Dựa vào những kinh nghiệm, kết quả phân tích những hệ thống cũ, những công việ mà hàng ngàyphải thực hiện ñể xác ñịnh chính xác bài toán Trên cơ sở ñó làm rõ hơn những yêu cầu của bài toán và ñịnh nghĩa lại theo quan ñiểm của các kỹ sư phầm mềm ñể ñảm bảo ñưa ra ñược lời giải tin học (hệ thống thực hiện ñược trên máy tính) Các khẳng ñịnh về bài toán phải ñơn giản và rõ ràng, mạch lạc về văn phạm ðiều này giúp cho các kỹ sư phần mềm có ñiều kiện tập chung nhiều hơn vào việc xây dựng lời giải cho bài toán Dựa trên những khẳng ñịnh của bài toán ñể xây dựng các ñặc tả yêu cầu của người sử dụng lẫn của cả hệ thống phần mềm

Xây dựng các ñặc tả yêu cầu

Khi ñã ñịnh nghĩa rõ bài toán thì bước tiếp theo là phải tìm hiểu xem hệ thống dự kiến sẽ yêu cầu làm cái gì? ðiều quan trọng ở ñây là phải xây dựng ñược danh sách các yêu cầu của người sử dụng Rõ ràng là ở ñây cần có sự trao ñổi, hiểu biết giữa người sử dụng và người phát triển hệ thống về những ñiều mà họ mong muốn Dựa trên những yêu cầu của người sử dụng, người phát triển ñưa ra các ñặc tả cho hệ thống Người xây dựng hệ thống phải trả lời ñược các câu hỏi:

+ ðầu ra (output) của hệ thống là cái gì?

+ Hệ thống sẽ phải làm cái gì ñể có kết quả mong muốn, nghĩa là phải xử lý cái gì?

+ ðầu vào (input) của hệ thống là cái gì?

+ Những tài nguyên mà hệ thống yêu cầu là cái gì?

Phải hiểu rõ nguồn gốc, các dạng thông tin cần cung cấp cho hệ thống hoạt ñộng

Hệ thống sẽ giải quyết vấn ñề gì, những kết quả cần phải có là gì Xác ñịnh ñược mối quan hệ giữa ñầu vào/ra (input/output), nghĩa là xác ñịnh ñược những khẳng ñịnh về mối quan hệ giữa tiền ñiều kiện và hậu ñiều kiện cho các quá trình trong hệ thống Các ñặc tả chi tiết phục vụ cho việc xây dựng và trắc nghiệm hệ thống ñể kiểm tra xem những nhiệm vụ ñặt ra có ñược hoàn thành hay không

Trang 4

Xác ñịnh các ñối tượng

Thông thường các ñối tượng sẽ ñược xác ñịnh thông qua các thực thể trong thế giới thực và ñược trừu tượng hoá thành các ñối tượng trừu tượng ðể xác ñịnh các ñối tượng chúng ta có nhiều phương pháp khác nhau, chẳng hạn có thể

sử dụng sơ ñồ dòng dữ liệu hoặc dựa vào phân tích văn bản

1 Sơ ñồ dòng dữ liệu:

Sơ ñồ dòng dữ liệu là mô hình hệ thống cho cả dữ liệu lẫn quá trình Thông tin lấy

từ các nguồn dữ liệu, ñược chuyển ñến cho một hay nhiều quá trình xử lý và ngược lại, một quá trình khi nhận ñủ thông tin vào (input) thì bắt ñầu thực hiện, xử lý thông tin và cho các kết quả (output) và chúng ñược gửi tới các kho dữ liệu Trong sơ ñồ dòng dữ liệu, một quá trình sẽ ñược thực hiện khi có ñủ các thông tin ñầu vào

Chức năng quan trọng của quá trình là xử lý dữ liệu, biến ñổi thông tin Dòng dữ liệu ñược gắn với một tên nhưng không nhất thiết phải là duy nhất Các dòng dữ liệu,

và tên ñược gắn cho nó phải chỉ ra ñược thông tin logic tương ứng cho một quá trình Tên gắn với dữ liệu phải là danh từ Kho dữ liệu biểu diễn cho một lượng lớn thông tin cần phải lưu trữ trong một thời gian dài, thường là trong các tệp dữ liệu ñể cho nhiều người có thể truy nhập vào

Sơ ñồ dòng dữ liệu có thể sử dụng ñể biểu diễn quá trình xử lý thông tin trong hệ thống ở nhiều mức ñộ trừu tượng khác nhau, ví dụ có thể làm mịn quá trình "Xử lý ñơn hàng" thành các quá trình "Xử lý ñơn hàng", "Tập hợp ñơn hàng"

Chúng ta có thể dựa vào ñịnh nghĩa của sơ ñồ dòng dữ liệu ñể xác ñịnh các ñối tượng Trong sơ ñồ dòng dữ liệu, những nút dữ liệu, kho dữ liệu có thể ñược xem như là các ñối tượng, tuy rằng không luôn có sự tương ứng 1-1 giữa những nút biểu diễn cho dữ liệu, kho dữ liệu trong sơ ñồ dòng dữ liệu với các ñối tượng Một ñối tượng có thể là ñại diện của một hay nhiều nút dữ liệu, kho dữ liệu trong sơ ñồ dòng dữ liệu tuỳ thuộc vào ngữ cảnh của vấn ñề mà nó mô tả

2 Phân tích văn bản:

Cách thực hiện thứ hai là dựa trên mô tả bằng văn bản của bài toán hoặc lời giải ñể phân tích Văn bản mô tả có thể gồm có một hay nhiều câu, một hay nhiều ñoạn, chương, phần, tuỳ thuộc vào mức ñộ phức tạp của bài toán Trong ñó các ñối tượng thường ñược mô tả bằng các danh từ Danh từ thường ñược phân loại thành danh từ riêng, danh từ chung, và các danh từ trừu tượng hoặc danh từ chỉ ñại lượng

ðiều quan trọng cần lưu ý khi phân tích là phải dựa vào ngữ nghĩa và ngữ cảnh ñể phân loại danh từ Một từ có thể là danh từ chung trong ngữ cảnh này song nó cũng

có thể là danh từ trừu tượng hoặc danh từ chỉ ñại lượng trong ngữ cảnh khác Cũng

Trang 5

cần lưu ý là khơng phải tất cả các danh từ đều được dùng để biểu diễn cho những đối tượng cần thiết cho hệ thống của chúng ta

Tĩm lại, chúng ta cĩ thể sử dụng một trong hai cơng cụ trên để xác định danh sách các đối tượng của bài tốn ứng dụng và sau đĩ tiếp tục: Xác định những đối tượng chỉ nằm trong khơng gian bài tốn, khơng gian lời giải, và những đối tượng nằm trong khơng gian bài tốn nhưng nằm ngồi giới hạn của hệ thống phần mềm và xây dựng các thuộc tính cho các đối tượng của khơng gian lời giải

Sau khi đã xác định được các đối tượng thì nhiệm vụ tiếp theo là xác định những thuộc tính mơ tả các tính chất của từng lớp đối tượng Người phân tích cĩ thể dựa vào

ba nguồn cung cấp thơng tin cơ bản sau để tập hợp, xây dựng những thuộc tính cho từng lớp đối tượng:

+ Từ những kinh nghiệm, tri thức của người phân tích hệ thống về thực tế cơng việc trong lĩnh vực tập trung nghiên cứu để dự đốn, xác định danh sách các thuộc tính

+ Từ những người sử dụng, thơng qua các cuộc phỏng vấn, trao đổi và tìm hiểu bài tốn cụ thể để lập danh sách các thuộc tính

+ Từ những hệ thống cũ, những bảng biểu, báo cáo và các tài liệu khoa học được

sử dụng thường xuyên trong lĩnh vực đang nghiên cứu để chọn lọc ra những thuộc tính cho lớp các đối tượng đã xác định

Ví dụ trong một hệ quản lý kinh doanh sách chúng ta cĩ thể đề xuất danh sách những thuộc tính cho các lớp SACH, DON_HANG và KHACH_HANG như sau: ðối với lớp SACH

Tac_gia : Tên tác giả của cuốn sách

Ten_sach : Tên gọi, tiêu đề của cuốn sách

Nha_XB : Nhà xuất bản

Nam_XB : Năm xuất bản

ðối với lớp DON_HANG

So_hieu : Số hiệu đơn đặt hàng

SH_KH : Số hiệu hoặc tên khách hàng

Ngay_DH : Ngày đặt hàng

Ngay_GH : Ngày giao hàng

ðối với lớp KHACH_HANG

SH_KH : Số hiệu khách hàng

Ten_KH : Tên khách hàng

Dia_chi : ðịa chỉ, nơi giao hàng

TK_KH : Số tài khoản của khách hàng trong ngân hàng

Trang 6

Danh sách các thuộc tính của các lớp sẽ ñược tiếp tục xem xét, bổ sung cho ñầy ñủ trong giai ñoạn thiết kế Cần lưu ý là phải cân nhắc ñể ñưa ra ñược những thuộc tính chung nhất, với những tên gọi ñặc trưng cho từng lớp ñối tượng

Xác ñịnh các hàm

ðể mô tả ñầy ñủ, chính xác các ñối tượng chúng ta cần tiếp tục xác ñịnh các hàm

mô tả hành vi của chúng Chúng ta có thể dựa vào văn bản mô tả bài toán ñể xác ñịnh các hàm Thông thường, trong các câu mô tả thì ñộng từ ñược dùng ñể chỉ một hành ñộng, sự xuất hiện, phân loại hay cấu thành của các ñối tượng

Các ñộng từ chỉ hành ñộng và so sánh giúp cho chúng ta xác ñịnh ñược các hàm, còn ñộng từ chỉ sự xuất hiện, so sánh giúp chúng ta xây dựng ñược cấu trúc phân loại ðộng từ sở hữu giúp cho việc xác ñịnh những cấu trúc cấu thành của các ñối tượng

Một cách khác là dựa vào sơ ñồ dòng dữ liệu ñể xác ñịnh các hàm, các chức năng ñược biểu diễn bằng các hình tròn hoặc ellipse Ví dụ, ñể mô tả cho hành vi của ñối tượng trong lớp KHACH_HANG chúng ta phải xây dựng các hàm xử lý những thuộc tính ñã xác ñịnh ở trên như các hàm xác ñịnh những thông tin về khách hàng: số hiệu,

họ và tên, ñịa chỉ, tài khoản,

Xác ñịnh mối quan hệ giữa các ñối tượng

Bước tiếp theo là xác ñịnh mối quan hệ giữa các ñối tượng, nghĩa là sự trao ñổi thông tin giữa chúng Như chúng ta thấy, trong một hệ thống mỗi thực thể phải có quan hệ ít nhất với một thực thể khác Chẳng hạn, trong hệ thống quản lý kinh doanh của công ty phát hành sách, khách hàng muốn mua sách thì phải ghi vào ñơn ñặt hàng, nghĩa là ñối tượng KHACH_HANG sẽ phải gửi một thông báo (ñơn ñặt hàng) cho ñối tượng DON_HANG Tương tự, DON_HANG lại có quan hệ với SACH vì những cuốn sách sẽ ñược bán cho khách hàng khi nhận ñược các ñơn ñặt hàng Quan

hệ giữa các lớp ñối tượng có thể có những kiểu khác nhau và ñược phân thành ba kiểu sau:

+ Quan hệ một – một

+ Quan hệ một – nhiều

+ Quan hệ nhiều - nhiều

§ 2 THIẾT KẾ HƯỚNG ðỐI TƯỢNG 2.1 Giới thiệu

Mục này sẽ mô tả phương pháp thiết kế phần mềm dựa trên các ñối tượng Phương pháp hướng ñối tượng nhằm che dấu thông tin ở mức tối ña và vì vậy hỗ trợ cho việc thiết kế những hệ thống với những cặp bộ giữa các thành phần là cực tiểu nhưng mức

ñộ cố kết hệ thống lại cao hơn cách tiếp cận chức năng Chúng ta sẽ tập trung nghiên

Trang 7

cứu các bước cần thực hiện trong thiết kế hướng ñối tượng và ví dụ mô tả cách thiết

kế các lớp, xây dựng cấu trúc hệ thống trong quá trình phát triển phần mềm

Che giấu thông tin là chiến thuật thiết kế sao cho có thể giấu ñược nhiều nhất lượng thông tin ở bên trong các thành phần cơ sở của một thiết kế ðiều này có nghĩa

là sự trao ñổi giữa các thực thể của thiết kế là cực tiểu và vì vậy thiết kế dễ dàng thay ñổi hơn Thiết kế hướng ñối tượng (TKHðT) là phương pháp thiết kế ñược thực hiện theo nguyên lý che giấu thông tin Khác với cách tiếp cận truyền thống (hướng chức năng) là nó xem hệ thống phần mềm là tập hợp các ñối tượng tương tác với nhau Mỗi ñối tượng làm việc với trạng thái (dữ liệu) riêng của mình ðối tượng, khái niệm

cơ sở ñã ñược ñề cập nhiều ở các phần trước là một thực thể có tập các thuộc tính và tập các hàm tác ñộng trên các thuộc tính ñó

Tập giá trị các thuộc tính xác ñịnh trạng thái của một ñối tượng Một ñối tượng không ñược quyền truy nhập trực tiếp hoặc làm thay ñổi trạng thái của ñối tượng khác ðiều này dẫn ñến là các ñối tượng chỉ có thể trao ñổi với nhau bằng các thông báo Thông báo sẽ kích hoạt các hàm của ñối tượng nhận thông tin tương ứng Hoạt ñộng của cơ chế truyền thông báo giữa các ñối tượng là dị bộ (không ñồng bộ) vì vậy chương trình ñược thiết kế theo hướng ñối tượng có thể ñược thực hiện song song hoặc tuần tự tuỳ theo phương pháp lập trình và những công cụ mà chúng ta thực hiện cài ñặt có cho phép thực hiện song song hay không

Thiết kế hướng ñối tượng là phương pháp thiết kế hệ thống phần mềm không phụ thuộc vào ngôn ngữ lập trình Nhiều ñặc tính như “Che dấu”, “kế thừa” làm cho việc thực hiện thiết kế trở nên dễ dàng hơn, ñơn giản hơn Những thiết kế này cũng có thể ñược cài ñặt bằng ngôn ngữ chưa có ñặc tính ñó như Turbo C, hoặc Pascal, nhưng tốt nhất là nên sử dụng những ngôn ngữ hướng ñối tượng ñể cài ñặt những thiết kế ñược thực hiện theo cách tiếp cận hướng ñối Nhiều ngôn ngữ lập trình hướng ñối tượng như Eiffel, Object Pascal, Smalltalk, C++ có những ñặc tính hướng ñối tượng hỗ trợ cho việc mô tả và thực hiện cài ñặt trực tiếp những thiết kế hướng ñối tượng hiệu quả hơn

Tóm lại thiết kế hướng ñối tượng có những ưu ñiểm chính sau:

+ Loại bỏ ñược những miền dữ liệu dùng chung thông qua cơ chế trao ñổi thông tin giữa các ñối tượng bằng các thông báo

+ Các ñối tượng ñược thiết kế là các thực thể ñộc lập (theo nghĩa không sử dụng dữ liệu chung), mọi thay ñổi về trạng thái, bổ sung, sửa ñổi các hoạt ñộng chức năng của một ñối tượng chỉ sảy ra bên trong của ñối tượng ñó, không ảnh hưởng ñến các ñối tượng khác Mọi sự thay ñổi trong thiết kế, trong hệ thống phần mềm chỉ sảy ra cục bộ ñối với một số ñối tượng liên quan ðiều này ñảm bảo hệ thống có tính dễ mở rộng và dễ thích nghi, ñáp ứng ñược nhiều tính chất quan trọng của sản phẩm phần mềm

Trang 8

2.2 Các bước thực hiện trong thiết kế hướng ñối tượng

Nhiện vụ của thiết kế hướng ñối tượng là xác ñịnh các ñối tượng trong không gian bài toán, chuyển chúng sang không gian lời giải, xây dựng mô hình kiến trúc và mô hình tính toán cho hệ thống phần mềm ðể xây dựng kiến trúc tổng thể cho hệ thống chúng ta sử dụng cách tiếp cận dưới - lên (bottom - up) ðiều quan trọng là phải tạo

ra ñược cấu trúc phân cấp, xác ñịnh ñược các lớp ñối tượng trừu tượng và giảm thiểu ñược sự trao ñổi giữa các ñối tượng Ở ñây chúng ta cũng ñề cập ñến khả năng sử dụng lại trong thiết kế, phân loại các ñối tượng thành những hệ thống con trong cấu trúc phân cấp

Cách tiếp cận TKHðT gồm các bước sau:

+ Xác ñịnh các lớp và các ñối tượng, các thành phần cơ bản của lời giải

+ Xây dựng các ñặc tả cho các lớp và mối quan hệ giữa chúng

+ Xây dựng cấu trúc phân cấp cho các lớp

+ Thiết kế các lớp

+ Thiết kế các hàm thành phần của lớp

+ Thiết kế chương trình chính

Xác ñịnh các ñối tượng trong không gian lời giải

Khi phân tích văn bản mô tả bài toán và các yêu cầu của người sử dụng, chúng ta xác ñịnh ñược các thực thể, những ñối tượng trong không gian bài toán Bước tiếp theo là phân tích kỹ các ñối tượng, xác ñịnh các thuộc tính và các hàm ñặc tả cho từng ñối tượng ðồng thời xác ñịnh thêm những ñối tượng mới xuất hiện trong không gian lời giải Khi xây dựng các ñặc tả cho ñối tượng, chúng ta phải xác ñịnh ñược các thuộc tính, dữ liệu mô tả trạng thái của ñối tượng và các hàm mô tả hành vi của ñối tượng Thuộc tính là miền dữ liệu riêng của lớp ñối tượng, là dữ liệu cục bộ trong một lớp Thực hiện nguyên lý che giấu thông tin, trong một lớp dữ liệu có thể tổ chức thành hai vùng: vùng sở hữu riêng, chỉ dành riêng cho những ñối tượng trong cùng lớp và vùng dùng chung, cho phép những ñối tượng trong các lớp có quan hệ với nhau ñược quyền sử dụng Các hàm (nhiều sách còn gọi là thủ tục, dịch vụ, phương thức) có thể dùng chung cho một số ñối tượng Quá trình xác ñịnh các hàm mô tả ñối tượng (còn ñược gọi là hàm thành phần của lớp) ñược thực hiện như sau:

+ Nếu một hàm chỉ cần thiết cho một ñối tượng thì hàm này chỉ hoạt ñộng trong ñối tượng yêu cầu

+ Nếu có hai hoặc nhiều hơn ñối tượng cần yêu cầu về một hàm thì cần phải xác ñịnh vùng hoạt ñộng riêng của hàm trong các ñối tượng ñó

+ Nếu có một hàm cần nhiều hơn một kiểu ñối tượng (liên quan ñến hai hoặc nhiều hơn các lớp ñối tượng) thì hàm ñó không phải là một hàm cố kết, do vậy cần phải phân tách dịch vụ ñó ra thành các hàm mịn hơn

Bằng cách ñó chúng ta xây dựng ñược danh sách các hàm mô tả hành vi của các ñối tượng ðồng thời chúng ta cũng loại bỏ ñược những dư thừa, những thành phần phụ không cần thiết trong cấu trúc và trong các ñối tượng

Trang 9

Sự phụ thuộc giữa các lớp

Mục tiêu của thiết kế là xây dựng cấu trúc phân cấp cho hệ thống Do vậy, nhiệm

vụ tiếp theo của chúng ta là xác ñịnh mối quan hệ giữa các lớp ñối tượng cấu thành

hệ thống Lớp là tập hợp các ñối tượng có chung một số thuộc tính, một số hàm vừa

ñủ ñể phân biệt với những lớp khác ðối tượng là thể hiện của lớp Trong thiết kế, khái niệm lớp ñối tượng và ñối tượng là hầu như không phân biệt, các lớp biểu diễn cho các ñối tượng trong không gian lời giải ðể xây dựng ñược mô hình kiến trúc cho

hệ thống phần mềm, chúng ta cần phân biệt ba loại quan hệ quan trọng giữa các lớp: + Quan hệ kế thừa

+ Quan hệ thành phần

+ Quan hệ về sử dụng

Tổ chức phân cấp các lớp (theo nghuyên lý tổng quát hoá)

Ở trên chúng ta ñã nghiên cứu mối quan hệ mà chủ yếu là quan hệ kế thừa của các lớp ñối tượng Ở ñây chúng ta dựa vào những mối quan hệ ñó ñể xây dựng cấu trúc phân cấp trên nguyên tắc sử dụng lại tối ña các thuộc tính và hàm của những lớp ñã ñược thiết kế trước

Tổ chức phân cấp các lớp là tập trung phân tích từng nhóm lớp có liên quan ñể xác ñịnh ñược những thuộc tính, hàm chung nhất của cả nhóm và sau ñó kết hợp chúng lại ñể tạo ra lớp mới Lớp mới ñược gọi là lớp trừu tượng và cũng là lớp cơ sở ñể cho các lớp trong cùng nhóm kế thừa Lớp trừu tượng có thể có hoặc không có thể hiện là ñối tượng trong không gian bài toán Nó ñược tạo ra thuần tuý bằng cách gộp những thuộc tính chung lại ở nhiều mức trừu tượng khác nhau cho ñến khi cảm thấy chắc chắn không còn một lớp nào mới ñược tạo ra nữa

Thiết kế các lớp

Trong bước phân tích, chúng ta ñã xác ñịnh ñược các lớp với các thuộc tính và tập tối thiểu các hàm chính thực hiện trên các thuộc tính mô tả ñối tượng của lớp ñó ðể xây dựng ñược thiết kế tổng thể cho hệ thống, chúng ta cần xem xét các lớp ở mức ñộ chi tiết, bổ sung thêm những thuộc tính, hàm cần thiết cho các lớp ñối tượng Ngoài những hàm thể hiện ñặc tính cơ bản của ñối tượng trong một lớp, chúng ta cần bổ sung các hàm phục vụ sau:

+ Những hàm quản lý lớp (trả lời cho các câu hỏi sau):

- Một ñối tượng ñược tạo lập như thế nào?

- Một ñối tượng ñược huỷ bỏ như thế nào?

+ Những hàm thực hiện cài ñặt lớp

- Những phép toán nào ñược thực hiện trên dữ liệu kiểu lớp?

+ Những hàm truy nhập vào lớp

- Làm thế nào chúng ta nhận ñược thông tin về các biến nội bộ của một lớp

Trang 10

+ Hàm xử lý lỗi

- Làm thế nào xử lý ñược các lỗi xuất hiện khi thao tác với các ñối tượng

ðể thiết kế các lớp chúng ta cần phải biết rõ cách thức trao ñổi thông tin giữa các ñối tượng, các mối quan hệ về kế thừa, quan hệ thành phần và quan hệ về sử dụng lại trong các lớp

Kết quả thiết kế lớp sẽ ảnh hưởng rất lớp ñến chất lượng phần mềm Vì vậy khi thiết kế lớp chúng ta cần chú ý những vấn ñề sau:

+ Các lớp chỉ trao ñổi với nhau thông qua các hàm

+ Một ñối tượng của một lớp không ñược gửi thông báo trực tiếp cho ñối tượng của lớp khác

+ Hàm ñược khai báo là chung (public) chỉ khi nó ñược sử dụng chung cho nhiều ñối tượng của một lớp

+ Mỗi hàm làm nhiệm vụ truy nhập hoặc làm thay ñổi một số dữ liệu của lớp mà

nó biểu diễn

+ Sự phụ thuộc của một lớp vào các lớp khác càng ít càng tốt

+ Tương tác giữa các lớp phải luôn luôn tường minh

7 Lớp dẫn xuất là một trường hợp của lớp cơ sở, ñược bổ sung thêm một số ñặc tính riêng ñể mô tả chi tiết hơn về lớp con của lớp cơ sở

+ Lớp trên cùng của cấu trúc phân cấp biểu diễn mô hình khái niệm trừu tượng của hệ thống

Thiết kế hàm thành phần

ðến giai ñoạn này chúng ta ñã xây dựng ñược:

+ Các ñối tượng và lớp

+ Các thành phần dữ liệu

+ Giao diện giữa các ñối tượng

+ Sự phụ thuộc của các lớp

+ Cấu trúc phân cấp các lớp

Bây giờ là lúc chúng ta cần xem xét ñến việc thiết kế các hàm thành phần, những phép toán thực hiện trên các dữ liệu của ñối tượng Các hàm này cũng giống như các hàm trong ngôn ngữ lập trình C vì vậy chúng ta có thể sử dụng kỹ thuật phân rã chức năng trên-xuống (top-down) ñể thiết kế chúng

Trong mỗi khối chúng ta lại có thể sử dụng kỹ thuật thiết kế có cấu trúc ñể tạo ra cấu trúc phân cấp về chức năng cho những hàm phức tạp Nhiều ngôn ngữ lập trình phổ dụng, như C, C++ ñã ñược xây dựng ñể hỗ trợ cho phương pháp mô tả thiết kế và lập trình có cấu trúc Chúng ta có thể cài ñặt các ñơn thể ñược cấu thành từ những cấu trúc tuần tự, tuyển chọn và vòng lặp Có thể thiết kế các hàm thành phần theo phương pháp có cấu trúc Kết quả của thiết kế có cấu trúc cho một hàm là một cấu

Ngày đăng: 30/09/2013, 00:20

HÌNH ẢNH LIÊN QUAN

khuơn hình 273 tương ứng bội 191 - Phân tích, thiết kế, lập trình hướng đối tượng
khu ơn hình 273 tương ứng bội 191 (Trang 18)

TỪ KHÓA LIÊN QUAN

w