Mô Hình Phân Tích và Thiết Kế Hướng Đối Tượng - Phần 2

Khám phá mô hình phân tích và thiết kế hướng đối tượng phần 2, cung cấp kiến thức sâu sắc và ứng dụng thực tiễn trong phát triển phần mềm.

Trường đại học

Trường Đại Học

Chuyên ngành

Phân Tích và Thiết Kế Hướng Đối Tượng

Người đăng

Ẩn danh

Thể loại

Tài Liệu

2023

77
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

6. CHƯƠNG 6: CÁC MÔ HÌNH THIẾT KẾ TƯƠNG TÁC

6.1. Sơ đồ hoạt động

6.2. Trạng thái và sự chuyển trạng thái

6.3. Nút quyết định và rẽ nhánh

6.4. Thanh tương tranh hay thanh đồng bộ

6.5. Tuyến công việc

6.6. Sơ đồ cộng tác

6.6.1. Danh sách các thành phần trong sơ đồ

6.6.2. Các ký hiệu, cách biểu diễn các thông điệp và một số quy ước trong sơ đồ cộng tác

6.6.2.1. Thể hiện giá trị trả lại (return value)
6.6.2.2. Thể hiện những thông điệp lặp

6.6.3. Tạo lập đối tượng mới

6.6.4. Quy tắc đánh số các thông điệp

6.6.5. Các điều kiện gửi thông điệp

6.6.6. Thiết kế các sơ đồ cộng tác và các lớp đối tượng

6.7. Mẫu gán trách nhiệm

6.7.1. Mẫu gán trách nhiệm theo phương pháp chuyên gia (Expert)

6.7.2. Mẫu gán trách nhiệm theo phương pháp tạo lập (Creator)

Tóm tắt

I. Tổng quan về Mô Hình Phân Tích và Thiết Kế Hướng Đối Tượng

Mô hình phân tích và thiết kế hướng đối tượng (OOAD) là một phương pháp quan trọng trong phát triển phần mềm. Nó giúp xác định các đối tượng trong hệ thống và cách chúng tương tác với nhau. Việc áp dụng mô hình này mang lại nhiều lợi ích, bao gồm khả năng tái sử dụng mã nguồn và dễ dàng bảo trì. Mô hình hướng đối tượng sử dụng các khái niệm như lớp, đối tượng, và mối quan hệ giữa chúng để xây dựng hệ thống phần mềm hiệu quả.

1.1. Khái niệm cơ bản về Mô hình hướng đối tượng

Mô hình hướng đối tượng dựa trên các khái niệm như lớp, đối tượng và mối quan hệ. Lớp là một bản thiết kế cho các đối tượng, trong khi đối tượng là một thể hiện cụ thể của lớp. Mối quan hệ giữa các lớp giúp xác định cách thức tương tác giữa các đối tượng trong hệ thống.

1.2. Lợi ích của việc áp dụng Mô hình hướng đối tượng

Việc áp dụng mô hình hướng đối tượng mang lại nhiều lợi ích như khả năng tái sử dụng mã nguồn, dễ dàng bảo trì và mở rộng hệ thống. Nó cũng giúp giảm thiểu lỗi trong quá trình phát triển phần mềm nhờ vào việc tổ chức mã nguồn một cách rõ ràng và có cấu trúc.

II. Các thách thức trong Mô Hình Phân Tích và Thiết Kế Hướng Đối Tượng

Mặc dù mô hình phân tích và thiết kế hướng đối tượng mang lại nhiều lợi ích, nhưng cũng tồn tại một số thách thức. Việc xác định các đối tượng và mối quan hệ giữa chúng có thể gặp khó khăn, đặc biệt trong các hệ thống phức tạp. Ngoài ra, việc áp dụng các nguyên tắc thiết kế không đúng cách có thể dẫn đến mã nguồn khó hiểu và khó bảo trì.

2.1. Khó khăn trong việc xác định đối tượng

Một trong những thách thức lớn nhất là xác định các đối tượng phù hợp trong hệ thống. Điều này đòi hỏi sự hiểu biết sâu sắc về yêu cầu của hệ thống và cách thức mà các đối tượng tương tác với nhau.

2.2. Nguyên tắc thiết kế không đúng cách

Việc áp dụng các nguyên tắc thiết kế không đúng cách có thể dẫn đến mã nguồn phức tạp và khó bảo trì. Điều này có thể gây khó khăn cho các lập trình viên trong việc hiểu và phát triển hệ thống.

III. Phương pháp phân tích yêu cầu trong Mô Hình Hướng Đối Tượng

Phân tích yêu cầu là bước quan trọng trong quá trình phát triển phần mềm. Nó giúp xác định các yêu cầu của người dùng và cách thức mà hệ thống sẽ đáp ứng những yêu cầu đó. Việc sử dụng các kỹ thuật như phỏng vấn, khảo sát và phân tích tài liệu có thể giúp thu thập thông tin cần thiết.

3.1. Kỹ thuật phỏng vấn và khảo sát

Phỏng vấn và khảo sát là hai kỹ thuật phổ biến để thu thập yêu cầu từ người dùng. Những kỹ thuật này giúp hiểu rõ hơn về nhu cầu và mong muốn của người dùng, từ đó xác định các yêu cầu cho hệ thống.

3.2. Phân tích tài liệu và mô hình hóa yêu cầu

Phân tích tài liệu giúp xác định các yêu cầu từ các tài liệu hiện có. Mô hình hóa yêu cầu thông qua các sơ đồ như sơ đồ lớp và sơ đồ trình tự giúp hình dung rõ hơn về cách thức hoạt động của hệ thống.

IV. Thiết kế sơ đồ hoạt động trong Mô Hình Hướng Đối Tượng

Sơ đồ hoạt động là một phần quan trọng trong thiết kế hướng đối tượng. Nó mô tả các bước thực hiện và các hoạt động trong hệ thống. Sơ đồ này giúp xác định luồng công việc và các quyết định trong quá trình thực hiện.

4.1. Cấu trúc của sơ đồ hoạt động

Sơ đồ hoạt động bao gồm các hoạt động, nút quyết định và điều kiện rẽ nhánh. Nó giúp mô tả rõ ràng các bước thực hiện và cách thức mà các hoạt động tương tác với nhau.

4.2. Ứng dụng của sơ đồ hoạt động trong phát triển phần mềm

Sơ đồ hoạt động được sử dụng để mô tả quy trình làm việc trong hệ thống. Nó giúp lập trình viên hiểu rõ hơn về cách thức hoạt động của hệ thống và các bước cần thực hiện để hoàn thành một nhiệm vụ.

V. Kết luận về Mô Hình Phân Tích và Thiết Kế Hướng Đối Tượng

Mô hình phân tích và thiết kế hướng đối tượng là một công cụ mạnh mẽ trong phát triển phần mềm. Nó giúp tổ chức mã nguồn một cách rõ ràng và có cấu trúc, từ đó dễ dàng bảo trì và mở rộng. Tuy nhiên, việc áp dụng mô hình này cũng cần phải chú ý đến các thách thức và nguyên tắc thiết kế để đạt được hiệu quả cao nhất.

5.1. Tương lai của Mô hình hướng đối tượng

Mô hình hướng đối tượng sẽ tiếp tục phát triển và thích ứng với các công nghệ mới. Việc áp dụng các nguyên tắc thiết kế hiện đại sẽ giúp nâng cao hiệu quả trong phát triển phần mềm.

5.2. Lời khuyên cho các lập trình viên

Các lập trình viên nên nắm vững các nguyên tắc thiết kế và áp dụng chúng một cách hợp lý trong quá trình phát triển phần mềm. Điều này sẽ giúp tạo ra các hệ thống phần mềm chất lượng cao và dễ bảo trì.

15/07/2025
Mô hình phân tích và thiết kế hướng đối tượng phần 2

Trích đoạn nội dung tài liệu

142 CÁC MÔ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 6 CÁC MÔ HÌNH THIẾT KẾ TƯƠNG TÁC 6. SƠ ĐỒ HOẠT ĐỘNG Sơ đồ hoạt động (Activity Diagram) trong UML gần giống với lưu đồ (Flow Chart) mà chúng ta đã quen sử dụng trong phân tích thiết kế có cấu trúc. Nó chỉ ra các bước thực hiện, các hoạt động, các nút quyết định và điều kiện rẽ nhánh để điều khiển luồng thực hiện của hệ thống. Sơ đồ hoạt động mô tả các hoạt động và các kết quả của những hoạt động đó và: ♦ Nhấn mạnh hơn về công việc thực hiện khi cài đặt một thao tác của từng đối tượng, ♦ Tương tự như sơ đồ trạng thái, nhưng khác chủ yếu ở chỗ nó tập trung mô tả về các hoạt động (công việc và những thao tác cần thực thi) cùng những kết quả thu được từ việc thay đổi trạng thái của các đối tượng.

♦ Trạng thái trong sơ đồ hoạt động là các trạng thái hoạt động, nó sẽ được chuyển sang trạng thái sau, nếu hoạt động ở trạng thái trước được hoàn thành. CHƯƠNG 6: CÁC MÔ HÌNH THIẾT KẾ TƯƠNG TÁC 143 6. Trạng thái và sự chuyển trạng thái Trạng thái và sự chuyển đổi trạng thái được ký hiệu và cách sử dụng hoàn toàn giống như trong sơ đồ trạng thái. Nút quyết định và rẽ nhánh Một đối tượng khi hoạt động thì từ một trạng thái có thể rẽ nhánh sang những trạng thái khác nhau tùy thuộc vào những điều kiện, những sự kiện xảy ra để quyết định.

Điều kiện rẽ nhánh thường là các biểu thức Boolean. Trong UML, nút quyết định rẽ nhánh được biểu diễn bằng hình thoi có các đường rẽ nhánh với những điều kiện đi kèm để lựa chọn như hình 6. Nút rẽ nhánh trong sơ đồ hoạt động 6. Thanh tương tranh hay thanh đồng bộ Trong hoạt động của hệ thống, có thể có nhiều luồng hoạt động được bắt đầu thực hiện hay kết thúc đồng thời.

Trong UML, thanh đồng bộ được vẽ bằng đoạn thẳng đậm được sử dụng để kết hợp nhiều luồng hoạt động đồng thời và để chia nhánh cho những luồng có khả năng thực hiện song song. Ví dụ: Vẽ sơ đồ hoạt động mô tả các hoạt động “Đun nước và pha một tách chè Lipton”. Chúng ta thấy một số hoạt động có thể thực hiện song hành như “Đun nước”, “Tìm một gói chè Lipton”, “Tìm tách”,. Sơ đồ hoạt động cho các hoạt động trên có thể mô tả như hình 6.

144 CÁC MÔ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Đổ nước vào Tìm một gói Tìm tách ấm đun nước chè Lipton Đun nước sôi Bỏ gói chè vào tách Đổ nước sôi vào tách có chè Pha thêm sữa Ghi chú: Hình này biểu diễn một hoạt động Hình 6. Sơ đồ hoạt động “Đun nước và pha chè” 6. Tuyến công việc Tuyến công việc (đường bơi) được sử dụng để phân hoạch các hoạt động (trạng thái) theo các nhóm đối tượng hay theo tuyến hoạt động của từng đối tượng. Giống như trong một cuộc thi bơi, trong bể bơi mỗi vận động viên bơi lội chỉ được bơi theo một tuyến đã được xác định.

Trong hệ thống phần mềm cũng vậy, mỗi đối tượng hoạt động theo tuyến đã được xác định, nhưng có khác là giữa các tuyến này có sự chuyển đổi thông tin với nhau. Ví dụ: Xét các hoạt động xảy ra khi khách mua hàng chọn phương thức thanh toán bằng thẻ tín dụng (Credit). Người bán hàng CHƯƠNG 6: CÁC MÔ HÌNH THIẾT KẾ TƯƠNG TÁC 145 nhận thẻ từ khách hàng, chuyển thẻ cho bộ phận kiểm duyệt. Nếu là thẻ hợp lệ thì trừ vào thẻ số tiền mua hàng của khách phải trả và giao lại thẻ cho khách.

Các hoạt động trên được mô tả trong sơ đồ hoạt động như ở hình 6. Sơ đồ hoạt động sử dụng để thể hiện những hoạt động sẽ thực hiện của mỗi đối tượng và chỉ ra cách thực hiện các hoạt động nghiệp vụ thông qua các dòng công việc, theo tổ chức của các đối tượng. :KháchHàng :NgườiBánHàng :BộPhậnKiểmDuyệtThẻ :HệThống Trình thẻ Nhận thẻ tín dụng tín dụng Kiểm duyệt Hợp lệ Nhận lại Trừ thẻ Không hợp lệ thẻ tín dụng tín dụng Ghi chú: Hình này biểu diễn một hoạt động Hình 6. Các tuyến công việc trong sơ đồ hoạt động 6.

SƠ ĐỒ CỘNG TÁC Sơ đồ cộng tác (collaboration diagram) gần giống như sơ đồ trình tự, mô tả sự tương tác của các đối tượng với nhau, nhưng khác với sơ đồ trình tự là ở đây tập trung vào ngữ cảnh và không gian thực hiện công việc. Sơ đồ trình tự có trật tự theo thời gian, còn sơ đồ cộng tác tập trung nhiều vào quan hệ giữa các đối tượng, tập trung vào các tổ chức cấu trúc của các đối tượng gửi hay nhận thông điệp. Sơ đồ trình tự tập trung vào điều khiển, còn sơ đồ cộng tác lại tập trung vào luồng dữ liệu (data flows). Sơ đồ trình tự và cộng tác chỉ phù hợp với 146 CÁC MÔ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG việc mô tả từng biến thể của thủ tục, không phù hợp với việc xác định đầy đủ các hành vi trên một sơ đồ.

Cả hai sơ đồ trình tự và cộng tác đều liên quan đến các đối tượng cài đặt chức năng thực hiện trong ca sử dụng. Chúng được xây dựng cho đối tượng, lớp, hay cả hai. Sơ đồ cộng tác chính là một đồ thị chỉ ra một số các đối tượng và những sự liên kết giữa chúng, trong đó các đỉnh là các đối tượng còn cạnh thể hiện sự trao đổi thông điệp giữa các đối tượng. Ví dụ: Xét vấn đề thanh toán trong hệ thống bán hàng.

Giả sử khách hàng trả tiền mua hàng bằng tiền mặt. Người bán phải ghi lại số tiền mà khách đưa và qua đó hệ thống bán hàng nhận được thông điệp makePayment(soTien). soTien là số tiền khách đưa, thường là lớn hơn số tiền hàng và hệ thống phải tính số dư để trả lại cho khách. Để thực hiện được yêu cầu thanh toán thì lớp HệBánHàng lại gửi một thông điệp tương tự cho lớp PhiênBánHàng và kết quả là tạo ra một đối tượng của lớp ThanhToan theo thông điệp create(soTien) để thực hiện thanh toán với khách hàng.6 mô tả sơ đồ trình tự trao đổi các thông điệp trên lần lượt theo thời gian.

Sau đây chúng ta sử dụng sơ đồ cộng tác để thể hiện cùng mối tương tác đó nhưng theo ngữ cảnh thực hiện công việc. Một phần Sơ đồ cộng tác để thực hiện thanh toán tiền mặt CHƯƠNG 6: CÁC MÔ HÌNH THIẾT KẾ TƯƠNG TÁC 147 Sơ đồ trên được đọc như sau: ♦ Thông điệp đầu makePayment(soTien) (chính là lời gọi hàm) được gửi tới một đối tượng của hệ thống :HeBanHang. ♦ Đối tượng :HeBanHang gửi tiếp thông điệp tới một đối tượng của PhienBanHang là :PhienBanHang. Hàm này được đánh số là 1.

♦ :PhienBanHang gọi toán tử tạo lập của lớp ThanhToan để tạo ra một đối tượng :ThanhToan theo thông điệp created(soTien) để làm nhiệm vụ thu tiền. Thông điệp này được đánh số là 1. Qua các phân tích trên, chúng ta có thể khẳng định: sơ đồ cộng tác của một hoạt động thể hiện thuật toán để thực thi hoạt động đó. Từ sơ đồ trình tự và sơ đồ cộng tác, người thiết kế và người phát triển có thể xác định các lớp sẽ xây dựng, quan hệ giữa các lớp, thao tác và trách nhiệm của mỗi lớp.

Hai loại sơ đồ này trở thành nền tảng cho các công việc còn lại khi thiết kế. Sơ đồ trình tự có ích cho việc quan sát luồng logic kịch bản, còn sơ đồ cộng tác có ích cho việc quan sát giao tiếp giữa các đối tượng. Các cấu phần trong sơ đồ cộng tác 1. Danh sách các thành phần trong sơ đồ Tổng quát, sơ đồ cộng tác chứa các thành phần sau: - Đối tượng - Liên kết: thể hiện của kết hợp - Thông điệp: giúp lớp hay đối tượng có thể yêu cầu lớp hay đối tượng khác thực hiện chức năng cụ thể.

Ví dụ: form có thể yêu cầu đối tượng report tự in. - Chú thích (notes) và các ràng buộc như các sơ đồ khác. 148 CÁC MÔ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 2. Các ký hiệu, cách biểu diễn các thông điệp và một số quy ước trong sơ đồ cộng tác a.

Thể hiện giá trị trả lại (return value) Một số thông điệp được gửi đến cho một đối tượng và yêu cầu có giá trị trả lại cho đối tượng gửi. Giá trị này có thể chỉ ra thông qua phép gán cho một tên biến và tên của thông điệp đó. Trong lập trình, thực chất đây là lời gọi hàm có kiểu giá trị trả lại (trong C, đó là những hàm có kiểu trả lại khác void). Cú pháp chung của thông điệp này có dạng: ReturnVariableName:= message(parameter:ParameterType): ReturnType Ví dụ: Kiểu giá trị trả lại msg() 1: tong := total() : int :HeBan :PhienBanHang Hang Biến giá trị trả lại Hình 6.

Thông điệp có giá trị trả lại b. Thể hiện những thông điệp lặp Một đối tượng có thể gửi một thông điệp lặp lại một số lần cho đối tượng khác. Thông điệp được gửi lặp lại nhiều lần có thể biểu diễn bằng dấu ‘*’ trước thông điệp. CHƯƠNG 6: CÁC MÔ HÌNH THIẾT KẾ TƯƠNG TÁC 149 Ví dụ: msg() 1: *dong := dongBanTiep() :HeBan :PhienBanHang Hang Ký hiệu lặp lại Hình 6.

Thông điệp lặp lại với số lần không xác định msg() 1: *[i := 1.10] dong[i] := dongBanTiep() :HeBan phienBH Hang :PhienBanHang Lặp lại 10 lần Hình 6. Thông điệp lặp lại với số lần xác định Có một số cách khác nhau để biểu diễn cho chu trình lặp, ví dụ thay vì viết: *[i := 1.10] ta có thể viết *[ i < 11]. Như đã khẳng định từ trước, khi một đối tượng nhận được một thông điệp, ví dụ đối tượng :HeBanHang nhận được msg() như hình 6.7, thì lớp HeBanHang phải có hàm thành phần msg(). Mặt khác, sơ đồ cộng tác thể hiện thuật toán mô tả hoạt động của hệ thống.

Vậy dựa vào sơ đồ cộng tác ở hình 6.4, người lập trình có thể viết hàm msg() (trong C) cho lớp HeBanHang như sau: void msg(){ for(int i = 1; i < 11; i++) 150 CÁC MÔ HÌNH CƠ BẢN TRONG PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG dong[i] = phienBH.dongBanTiep(); } Hàm này gọi tới hàm dongBanTiep() của lớp PhienBanHang thông qua đối tượng phienBH của nó để đọc liên tiếp 10 dòng bán hàng. Lưu ý: Một đối tượng có thể gửi thông điệp cho chính nó, nghĩa là thông điệp có thể quay vòng tròn. Tạo lập đối tượng mới UML sử dụng thông điệp create() để tạo lập một đối tượng mới (một thể hiện nào đó của một lớp).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ