Cỏc khỏi niệm trong UML
15.3- Hướng nhỡn (View)
Mụ hỡnh húa một hệ thống phức tạp là một việc làm khú khăn. Lý tưởng nhất là toàn bộ hệ thống được miờu tả chỉ trong một bản vẽ, một bản vẽ định nghĩa một cỏch rừ ràng và mạch lạc toàn bộ hệ thống, một bản vẽ ngoài ra lại cũn dễ giao tiếp và dễ hiểu. Mặc dự vậy, thường thỡ đõy là chuyện bất khả thi. Một bản vẽ khụng thể nắm bắt tất cả cỏc thụng tin cần thiết để
G
miờu tả một hệ thống. Một hệ thống cần phải được miờu tả với một loạt cỏc khớa cạnh khỏc nhau: Về mặt chức năng (cấu trỳc tĩnh của nú cũng như cỏc tương tỏc động), về mặt phi chức năng (yờu cầu về thời gian, về độ đỏng tin cậy, về quỏ trỡnh thực thi, v.v. và v.v.) cũng như về khớa cạnh tổ chức (tổ chức làm việc, ỏnh xạ nú vào cỏc code module, ...). Vỡ vậy một hệ thống thường được miờu tả trong một loạt cỏc hướng nhỡn khỏc nhau, mỗi hướng nhỡn sẽ thể hiện một bức ảnh ỏnh xạ của toàn bộ hệ thống và chỉ ra một khớa cạnh riờng của hệ thống.
Hỡnh 15.1- Cỏc View trong UML
Mỗi một hướng nhỡn được miờu tả trong một loạt cỏc biểu đồ, chứa đựng cỏc thụng tin nờu bật khớa cạnh đặc biệt đú của hệ thống. Trong thực tế khi phõn tớch và thiết kế rất dễ xảy ra sự trựng lặp thụng tin, cho nờn một biểu đồ trờn thật tế cú thể là thành phần của nhiều hướng nhỡn khỏc nhau. Khi nhỡn hệ thống từ nhiều hướng nhỡn khỏc nhau, tại một thời điểm cú thể người ta chỉ tập trung vào một khớa cạnh của hệ thống. Một biểu đồ trong một hướng nhỡn cụ thể nào đú cần phải đủ độ đơn giản để tạo điều kiện giao tiếp dễ dàng, để dớnh liền với cỏc biểu đồ khỏc cũng như cỏc hướng nhỡn khỏc, làm sao cho bức tranh toàn cảnh của hệ thống được miờu tả bằng sự kết hợp tất cả cỏc thụng tin từ tất cả cỏc hướng nhỡn. Một biểu đồ chứa cỏc kớ hiệu hỡnh học mụ tả cỏc phần tử mụ hỡnh của hệ thống. UML cú tất cả cỏc hướng nhỡn sau:
Hướng nhỡn Use case (use case view) : đõy là hướng nhỡn chỉ ra khớa cạnh chức năng của một hệ thống, nhỡn từ hướng tỏc nhõn bờn ngoài.
Hướng nhỡn logic (logical view): chỉ ra chức năng sẽ được thiết kế bờn trong hệ thống như thế nào, qua cỏc khỏi niệm về cấu trỳc tĩnh cũng như ứng xử động của hệ thống.
Hướng nhỡn thành phần (component view): chỉ ra khớa cạnh tổ chức của cỏc thành phần code.
Hướng nhỡn song song (concurrency view): chỉ ra sự tồn tại song song/ trựng hợp trong hệ thống, hướng đến vấn đề giao tiếp và đồng bộ húa trong hệ thống.
Hướng nhỡn triển khai (deployment view): chỉ ra khớa cạnh triển khai hệ thống vào cỏc kiến trỳc vật lý (cỏc mỏy tớnh hay trang thiết bị được coi là trạm cụng tỏc).
Khi bạn chọn cụng cụ để vẽ biểu đồ, hóy chọn cụng cụ nào tạo điều kiện dễ dàng chuyển từ hướng nhỡn này sang hướng nhỡn khỏc. Ngoài ra, cho mục đớch quan sỏt một chức năng sẽ được thiết kế như thế nào, cụng cụ này cũng phải tạo điều kiện dễ dàng cho bạn chuyển sang hướng nhỡn Use case (để xem chức năng này được miờu tả như thế nào từ phớa tỏc nhõn), hoặc chuyển sang hướng nhỡn triển khai (để xem chức năng này sẽ được phõn bố ra sao trong cấu trỳc vật lý - Núi một cỏch khỏc là nú cú thể nằm trong mỏy tớnh nào).
G
Ngoài cỏc hướng nhỡn kể trờn, ngành cụng nghiệp phần mềm cũn sử dụng cả cỏc hướng nhỡn khỏc, vớ dụ hướng nhỡn tĩnh-động, hướng nhỡn logic-vật lý, quy trỡnh nghiệp vụ (workflow) và cỏc hướng nhỡn khỏc. UML khụng yờu cầu chỳng ta phải sử dụng cỏc hướng nhỡn này, nhưng đõy cũng chớnh là những hướng nhỡn mà cỏc nhà thiết kế của UML đó nghĩ tới, nờn cú khả năng nhiều cụng cụ sẽ dựa trờn cỏc hướng nhỡn đú.