Thiết kế hướng đối tượng

Một phần của tài liệu Chương V: Quy trình làm phần mềm docx (Trang 46 - 48)

V – PHA PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG

5. Thiết kế hướng đối tượng

Thiết kế hướng đối tượng (object-oriented design, OOD) chính là thiết kế phần mềm dựa trên các đối tượng, là thể hiện của các lớp được xây dựng trong pha phân tích. Các ngôn ngữ lập trình cổ điển như COBOL, FORTRAN, PASCAL, C... không cung cấp các kiểu biến đối tượng như thế này. Như thế, có vẻ như OOD không thực hiện được trong các ngôn ngữ lập trình cổ điển, mà chỉ có thể thực hiện trong các ngôn ngữ lập trình hỗ trợ hướng đối tượng như C++, Java...?

Tuy nhiên không phải như vậy.

Bản chất của việc phân tích thiết kế là thể hiện quan điểm nhìn nhận hệ thống. Một phần mềm bất kỳ bao giờ cũng gồm hai loại thành phần: các hành động và dữ liệu. Với kỹ thuật cấu trúc (structured technique) thì chỉ lấy một trong hai yếu tố trên làm tiêu chuẩn để phân chia hệ thống thành các thành phần. Điều khác biệt của kỹ thuật HĐT so với kỹ thuật cấu trúc là xem vai trò hành động và dữ liệu là ngang nhau và cả hai cùng tham gia vào việc phân chia hệ thống. Tuy nhiên, để việc phân chia có ý nghĩa, các hành động và dữ liệu được nhóm lại thành các lớp, sao cho lớp mang một ý nghĩa nào đó trong thực tế. Một cách tự nhiên, người ta thấy rằng nên xây dựng các lớp sao cho nó đại diện cho các đối tượng trong thực tế.

Với cách nhìn nhận như vậy thì có thể tiến hành phân tích và thiết kế hướng đối tượng mà không cần dựa vào một ngôn ngữ lập trình HĐT cụ thể.

Chúng ta có thể cài đặt bằng một ngôn ngữ lập trình khác, miễn sao các biểu đồ trong phân tích thiết kế vẫn có thể được sử dụng để kiểm tra chương trình: việc lập trình thực hiện đúng những công việc mà phân tích thiết kế yêu cầu.

Lúc này lớp trong lập trình có thể là một khối công việc thực hiện đúng những gì mà lớp trong thiết kế đòi hỏi. Ví dụ, các dữ liệu thành phần chẳng hạn, trong ngôn ngữ lập trình HĐT thì đó là các thành phần của lớp, có thể được che dấu sao cho các hàm bên ngoài không truy cập được. Nhưng trong thực tế, dữ liệu rất lớn, phải lưu trữ trên các tệp bên ngoài như các tệp của Foxpro, Access...

Các hàm thành phần cũng vậy. Điều quan trọng là các hàm đó xử lý cái gì. Với một ngôn ngữ lập trình HĐT thì nên để trong một lớp. Tuy nhiên nếu một lớp quá lớn, có hàng trăm hàm thành phần thì có thể để các hàm đó bên ngoài lớp, miễn là chức năng xử lý của nó không thay đổi.

Với cách nhìn nhận như vậy, có thể dùng một hàm bình thường trong ngôn ngữ không hỗ trợ HĐT để thực hiện vai trò của nó như một hàm thành phần của một lớp, cũng giống như dữ liệu vậy. Cần đặt tên các hàm sao cho chúng ta có thể biết được hàm nào thuộc lớp nào. Khi cần sử dụng lại, ta sẽ đưa các hàm và dữ liệu liên quan đến một lớp sang phần mềm mới.

OOD gồm bốn bước sau đây:

1. Xây dựng các biểu đồ tương tác cho các scenario (interaction diagrams). 2. Xây dựng biểu đồ lớp chi tiết (detailed class diagram).

3. Xây dựng sơ đồ biễn diễn các quan hệ đối tượng-khách (client-object relation).

4. Tiến hành thiết kế chi tiết.

Sau đây OOD được minh họa bằng một ví dụ cụ thể là thiết kế HĐT phần mềm Air gourmet.

Bước 1. Xây dựng biểu đồ tương tác (interaction diagram) cho từng scenario. Biểu đồ tương tác bao gồm biểu đồ tuần tự (sequence diagram) và biểu đồ cộng tác (collaboration diagram). Có thể với một scenario, người ta sử dụng cả hai loại biểu đồ. Biểu đồ tuần tự mô tả các hành động thực hiện tuần tự theo thời gian, còn biểu đồ cộng tác ngoài các hành động còn chỉ rõ vai trò của các lớp hay tác nhân.

Biểu đồ tuần tự cho scenario của use-case đặt chỗ được thể hiện trong hình sau:

Hình 5.19. Biểu đồ tuần tự của scenario đặt chỗ

Để xây dựng biểu đồ tuần tự trước hết cần xác định các tác nhân của scenario: hành khách, điện thoại viên, và cơ sở dữ liệu của AG. Tên các tác nhân được viết trong các hộp hình chữ nhật và đặt ở hàng trên cùng, nếu là tác nhân thực sự trong mô hình use-case thì viết tên bình thường, không có gạch dưới, còn nếu tác nhân thực ra là thể hiện của lớp (đối tượng) thì có gạch dưới, như trong trường hợp trên đây thì khách hàng và điện thoại viên là các tác nhân thực sự, còn cơ sở dữ liệu AG là một đối tượng. Tiếp theo vẽ các đường thẳng kép theo chiều thẳng đứng xuất phát từ các hộp tác nhân như hình vẽ. Đường kép ám chỉ rằng tác nhân hay đối tượng đang ở trạng thái hoạt động. Bây giờ, mỗi sự kiện của scenario được xem xét và lần lượt đưa vào biểu đồ theo trình tự thời gian. Ví dụ, sự kiện (event) đầu tiên là hành khách gọi cho điện thoại viên và yêu cầu đặt chỗ. Sự kiện này được biểu diễn bởi một mũi tiên nằm ngang đi từ đường thẳng đứng hành khách đến đường thẳng đứng điện thoại viên và được gán nhãn là: 1.

Yêu cầu đặt chỗ, ám chỉ rằng hành động này được kích hoạt bởi khách hàng và hướng tác động là điện thoại viên. Các sự kiện tiếp theo được biểu diễn tương tự.

Hành khách Điện thoại viên

kh¸ch Cơ sở dữ liệu AG

Một phần của tài liệu Chương V: Quy trình làm phần mềm docx (Trang 46 - 48)

Tải bản đầy đủ (DOC)

(64 trang)
w