Bài giảng UML - Chương 2: Mô hình hóa hệ thống thông tin theo hướng đối tượng

pdf 45 trang Gia Huy 17/05/2022 1690
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng UML - Chương 2: Mô hình hóa hệ thống thông tin theo hướng đối tượng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_uml_chuong_2_mo_hinh_hoa_he_thong_thong_tin_theo_h.pdf

Nội dung text: Bài giảng UML - Chương 2: Mô hình hóa hệ thống thông tin theo hướng đối tượng

  1. Vũ Chí Cường, 2017
  2. Giới thiệu về UML Các biểu đồ trong UML Giới thiệu các phần mềm
  3. Lịch sử phát triển Ngôn ngữ UML Các khái niệm cơ bản trong UML
  4. Giai đoạn (1960s – 1970s) . Cobol, Fortran, C . Structed analysis and design technique Giai đoạn (1980s – đầu 1990s) . Smalltalk, Ada, C#, Visual Basic . Early generation – OO methods Giai đoạn (cuối 1990) . Ngôn ngữ lập trình Java . UML (Unified Modelling Language) (tháng 11/1997) . Unified Process
  5. UML làngôn ngữ mô hình hóa tổng quát được xây dựng để đặc tả, phát triển và viết tài liệu cho các khía cạnh (view- hướng nhìn) trong phát triển phần mềm hướng đối tượng. UML giúp người phát triển hiểu rõ và ra quyết định liên quan đến phần mềm cần xây dựng. UML bao gồm tập các khái niệm, ký hiệu, các biểu đồ và hướng dẫn. UML hỗ trợ xây dựng hệ thống hướng đối tượng dựa trên việc nắm bắt khía cạnh cấu trúc tĩnh và các hành vi động của hệ thống. . Các cấu trúc tĩnh định nghĩa các kiểu đối tượng quan trọng của hệ thống, nhằm cài đặt và chỉ ra mối quan hệ giữa các đối tượng. . Các hành vi động (dynamic behavior) định nghĩa các hoạt động của các đối tượng theo thời gian và tương tác giữa các đối tượng hướng tới đích.
  6. Khái niệm mô hình . Mô hình (model) là một biểu diễn của sự vật, đối tượng hay một tập các sự vật trong một lĩnh vực ứng dụng nào đó theo một quan điểm nhất định. . Mục đích của mô hình là nhằm nắm bắt các khía cạnh quan trọng của sự vật mà mình quan tâm và biểu diễn theo một tập kýhiệu hoặc quy tắc nào đó. . Các mô hình thường được xây dựng sao cho có thể vẽ đượcthành các biểu đồ dựa trên tập ký hiệu và quy tắc đã cho.
  7. Kiến trúc hệ thống . Kiến trúc hệ thống là trừu tượng hóa các khía cạnh quan trọng nhất của hệ thống. Cung cấp khung trong đó thiết kế được xây dựng . Thể hiện phần mềm sẽ được tổ chức như thế nào vàcung cấp các giao thức trao đổi dữ liệu vàgiao tiếp giữa các modul. . Là vật phẩm quan trong nhất, được sử dụng để quản lý các hướng nhìn (view) khác nhau và điều khiển hệ thống tăng dần và lặp trong suốt chu kỳ sống
  8. Các hướng nhìn . Hướng nhìn user case ( user case view) ▪ Miêu tả chức năng của hệ thống sẽ phải cung cấp . Hướng nhìn logic ( logic view) ▪ Miêu tả phương thức mà các chức năng của hệ thống sẽ được cung cấp . Hướng nhìn thành phần ( component view) ▪ Miêu tả việc thực thi của các modul cũng như sự phụ thuộc giữa chúng . Hướng nhìn song song ( concurrency view) ▪ Nhằm tới việc chia hệ thống thành các qui trình (process) và các bộ xử lí(processor )
  9. Các phần tử của mô hình . Phần tử cấu trúc (lớp, giao diện, phần tử cộng tác, ca sử dụng, thành phần, nút) . Phần tử hành vi (tương tác, trạng thái) . Phần tử nhóm (gói) . Chú thích Các dạng quan hệ . Quan hệ phụ thuộc (dependency) . Quan hệ liên kết (association) . Quan hệ kết hợp (aggregation) . Quan hệ hợp thành (composittion) . Khái quát hóa (generalization) . Hiện thực hóa (realization)
  10. Tên quan hệ Ý nghĩa Ký hiệu Quan hệ phụ Là quan hệ ngữ nghĩa giữa 2 phần tử trong đó thuộc thay đổi của phần tử độc lập sẽ tác động đến ngữ (dependency) nghĩa của phần tử phụ thuộc Quan hệ liên kết Là quan hệ cấu trúc để mô tả tập liên kết (kết nối (association) giữa các đối tượng). Đối tượng của lớp này có thể gửi/nhận thông điệp đến/từ lớp kia Quan hệ kết hợp Là dạng đặc biệt của quan hệ liên kết, nó biểu diễn (aggregation) quan hệ giữa cấu trúc và bộ phận Quan hệ hợp Là dạng đặc biệt của tập hợp, nếu đối tượng toàn thành thể bị hủy bỏ thì các đối tượng bộ phận của nó (composittion) cũng bị hủy bỏ Khái quát hóa Đối tượng cụ thể sẽ kế thừa các thuộc tính và (generalization) phương thức của đối tượng tổng quát Hiện thực hóa Là quan hệ ngữ nghĩa giữa giao diện và lớp (realization)
  11. Biểu đồ cấu trúc . Biểu đồ lớp (class diagram) . Biểu đồ đối tượng (object diagram) . Biểu đồ thành phần (component diagram) . Biểu đồ gói (package diagram) . Biểu đồ triển khai (deployment diagram) . Biểu đồ cấu trúc phức hợp (composite structure diagram) . Biểu đồ gói mở rộng (profile package) Biểu đồ hành vi . Biểu đồ ca sử dụng (use case diagram) . Biểu đồ hoạt động (activity diagram) . Biểu đồ tuần tự (sequence diagram) . Biểu đồ cộng tác( collaboration diagram) . Biểu đồ trạng thái (state diagram) . Biểu đồ bao quát tương tác (interaction overview diagram) . Biểu đồ thời khắc (timing diagram)
  12. Ý nghĩa . Biểu đồ ca sử dụng (use case diagram) biểu diễn các chức năng của hệ thống . Biểu đồ ca sử dụng chỉ ra sự tương tác giữa các tác nhân (actor) vàhệ thống thông qua các ca sử dụng (use case) . Bao gồm một tập hợp các tác nhân (actor), các ca sử dụng (use case) và các mối quan hệ (relationship) giữa các ca sử dụng . Đi kèm với biểu đồ ca sử dụng là các kịch bản (scenario) nhằm mô tả chi tiết quá trình thực hiện ca sử dụng đó.
  13. Tên gọi Ý nghĩa Ký hiệu Hệ thống biểu diễn ranh giới bên trong vàbên (system) ngoài của phần mềm đang xây dựng System Tác nhân là người dùng của hệ thống, một actor (actor) có thể là tmộ người dùng thực hoặc các hệ thống máy tính khác giữ vai trò nào đó trong hoạt động của hệ thống Customer Các ca sử là thành phần cơ bản trong biểu đồ use dụng (use case, mô tả các chức năng xác định System Shutdown case) của hệ thống
  14. Tên gọi Ý nghĩa Ký hiệu Bao hàm use case này sử dụng lại chức (Include) năng của use case kia. > Mở rộng use case này mở rộng từ use (Extend) case kia bằng cách thêm vào một > chức năng cụ thể Đặc biệt hóa Đặc biệt hóa (Specialization): (Specialization) use case này kế thừa các chức năng từuse case kia, use case Tổng quát hóa sau được gọi là Tổng quát hóa (Generalization) (Generalization) của use case đầu
  15. System System Startup Operator System Shutdown Invalid PIN Session Customer > > Transaction Bank Withdrawal Inquiry Deposit Transfer
  16. Ý nghĩa . Biểu đồ lớp là một biểu đồ mô tả cách nhìn tĩnh về một hệ thống bằng các khái niệm lớp, các thuộc tính, phương thức của lớp và mối quan hệ giữa chúng. Ký hiệu . Lớp (class): được biểu diễn bởi hình chữ nhật gồm 3 phần: tên lớp, các thuộc tính và các phương thức.
  17. Phạm_vi Tên_thuộc_tinh: Kiểu[Số_đối_tượng] = Mặc_định (Giá_trị_giới_hạn) Phạm vi: cho biết phạm vi truy nhập của thuộc tính . +: thuộc tính kiểu public . #: thuộc tính kiểu protected . -: thuộc tính kiểu private. . ~: thuộc tính được phép truy nhập tới từ các lớp trong cùng package Tên_thuộc_tính: là xâu ký tự biểu diễn tên thuộc tính. Kiểu: là kiểu dữ liệu của thuộc tính. Số_đối_tượng: chỉ ra số đối tượng khai báo cho thuộc tính ứng với một Mặc_định: là giá trị khởi đầu mặc định (nếu có) của thuộc tính. Giá_trị_giới_hạn: là giới hạn các giá trị cho thuộc tính (thông tin này không bắt buộc). Ví dụ: purchaseDate:Date[1] =”01-01-2000” (Saturday)
  18. Phạm_vi Tên_phương_thức(danh_sách_tham_số): Kiểu_trả_lại {Kiểu_phương thức} Phạm_vi: giống thuộc tính Tên_phương thức: là xâu ký tự xác định tên của phương thức Kiểu_trả_lại: chỉ ra kiểu giá trị trả về của phương thức danh_sách_tham_số: biểu diễn danh sách các tham số. Mỗi tham số có dạngTên_tham_số : Kiểu_giá_trị = Giá_trị_mặc_định. Kiểu_phương_thức: cho biết kiểu phương thức . abstract: phương thức kiểu trừu tượng . query: phương thức kiểu truy vấn Ví dụ: generatePurchaseList(prodID:int): String
  19. Tên gọi Ý nghĩa Ký hiệu Lớp thực thể là lớp đại diện cho các thực thể chứa (entity class) thông tin về các đối tượng xác định nào đó. Ví dụ, lớp Khách hàng, Hóa đơn. Lớp biên là lớp nằm ở ranh giới giữa hệ thống (boundary class) với môi trường bên ngoài nhằm thực hiện vai trò nhận yêu cầu trực tiếp từ các tác nhân và chuyển các yêu cầu đó cho các lớp bên trong hệ thống. Lớp điều khiển thực hiện các chức năng điều khiển (controller class) hoạt động của hệ thống tương ứng với các chức năng cụ thể nào đó của một nhóm các lớp biên hoặc nhóm các lớp thực thể.
  20. Tên quan hệ Ví dụ Quan hệ liên kết (association) Kế thừa (inheritance) Quan hệ kết hợp (aggregation)
  21. Tên quan hệ Ví dụ Quan hệ hợp thành (composition) Quan hệ phụ thuộc (dependency) Quan hệ thực thi (realization)
  22. Money Balances Message Log Status 1 1 Receipt 1 1 1 1 1 CashDispenser EnvelopAcceptor NetworkToBank 1 1 OperatorPanel CustomConsole 1 1 1 1 1 1 ReceiptPrinter 1 ATM 1 CardReader 1 1 1 1 1 * * Session 1 * Transaction Card Withdrawal Deposit Transfer Inquiry AccountInformation
  23. Ý nghĩa . Biểu đồ trạng thái được sử dụng để biểu diễn các trạng thái và sự chuyển tiếp giữa các trạng thái của các đối tượng trong một lớp xác định. . Mỗi lớp có một biểu đồ trạng thái (trừ trường hợp là lớp không có đối tượng). . Biểu đồ trạng thái biểu diễn dưới dạng máy trạng thái hữu hạn với các trạng thái và sự chuyển tiếp giữa các trạng thái đó. Có hai dạng biểu đồ trạng thái: . Biểu đồ trạng thái cho một use case . Biểu đồ trạng thái hệ thống mô tả tất cả các trạng thái của các đối tượng trong toàn bộ các hoạt động của hệ thống.
  24. Tên gọi Ý nghĩa Ký hiệu Trạng thái Biểu diễn một trạng thái của đối (state) tượng trong vòng đời của đối tượng Trạng thái Trạng thái đầu tiên khi kích hoạt khởi đầu đối tượng (initial state) Trạng thái kết Kết thúc vòng đời đối tượng thúc (final state) Chuyển tiếp Biểu diễn các chuyển đổi giữa các (transition) trạng thái Sự kiện Sự kiện tác động gây ra sự (Event) chuyển đổi trạng thái.
  25. Tên gọi Ý nghĩa Sự kiện gọi (call Yêu cầu thực hiện một hành động (một phương thức) event) Sự kiện tín hiệu Gửi thông điệp (chứa các giá trị thuộc tính tham số liên (signal event) quan) giữa các trạng thái Sự kiện thời gian Biểu diễn quá trình chuyển tiếp theo thời gian, (time event) thường kèm theo từ mô tả thời gian cụ thể
  26. OFF entry/display "Not available" switch turned on : / perform Startup switch turned off : / perform Shutdown card inserted : / create session SERVING CUSTOMER IDLE do/Secsion entry/display "Please insert card" session complete or aborted
  27. READING CARD Card read successfully Card not readable : / display "Card not readable" READING PIN PIN read successfully CANCEL pressed CHOOSING TRANSACTION Customer wants to do another Tracsaction chosen CANCEL pressed PERFORM TRANSACTION Customer finished EJECTING CARD Aborted due to too many invalid PINs - card retained
  28. Ý nghĩa . Biểu diễn mối quan hệ giữa các đối tượng; giữa các đối tượng và tác nhân theo thứ tự thời gian. . Biểu đồ trình tự nhấn mạnh thứ tự thực hiện của các tương tác.
  29. Tên gọi Ý nghĩa/ký hiệu Các đốitượ ng (object) Được biểu diễn bởi các hình chữ nhật, bên trong là tên của đối tượng. Cách viết chung của đối tượng là: tên đối tượng: tên lớp Các thông điệp (message) Được biểu diễn bằng các mũi tên hướng từ đối tượng gửi sang đối tượng nhận (xem các loại thông điêp ở slide sau). Đường vòng đời (lifeline) Là một đường kẻ nối dài phía dưới đối tượng, mô tả quá trình của đối tượng trong tương tác thuộc biểu đồ. Chú thích Để người đọc dễ dàng hiểu được nội dung
  30. Tên gọi Ý nghĩa Ký hiệu Gọi (call) Mô tả một lời gọi từ đối tượng này đến đối tượng kia Trả về (return) Trả về giá trị ứng với lời gọi Gửi (send) Gửi một tín hiệu tới một đối tượng Tạo (create) Tạo một đối tượng Hủy (destroy) Hủy một đối tượng
  31. Ý nghĩa . Làbiể u đồ tương tác biểu diễn mối quan hệ giữa các đối tượng, giữa các đối tượng và tác nhân, . Giống với biểu đồ tuần tự nhưng nhấn mạnh đến vai trò của các đối tượng trong tương tác. . Các thông điệp được đánh số thể hiện thứ tự thời gian Tập các ký hiệu . Các đối tượng: biểu diễn bởi hình chữ nhật, bên trong là tên đối tượng . Các liên kết: giữa hai đối tượng có tương tác sẽ có một liên kết nối 2 đối tượng đó. . Các thông điệp: được biểu diễn bằng các mũi tên hướng từ đối tượng gửi sang đối tượng nhận bên cạnh liên kết giữa hai đối tượng.
  32. Ý nghĩa . Biểu diễn các hoạt động và sự đồng bộ, chuyển tiếp các hoạt động của hệ thống trong một lớp hoặc kết hợp giữa các lớp với nhau trong một chức năng cụ thể. . Biểu đồ hoạt động được sử dụng để: ▪ Xác định các hành vi phải thực hiện trong phạm vi một phương thức. ▪ Xác định công việc của một đối tượng. ▪ Chỉ ra một nhóm các hành động liên quan của các đối tượng được thực hiện như thế nào và chúng sẽ ảnh hưởng đến các đối tượng nằm xung quanh.
  33. Tên gọi Ý nghĩa Ký hiệu Hoạt động là một qui trình được định (activity) nghĩa rõ ràng, có thể được thực hiện bới hàm hoặc một nhóm đối tượng Thanh đồng bộ cho phép mở ra hoặc đóng lại hóa các nhánh chạy song song của (synchronisation tiến trình bar) Điều kiện (guard các biểu thức logic có giá trị condition) đúng hoặc sai Các luồng Phân tách các đối tượng khác (swimlance) nhau tồn tại trong biểu đồ
  34. Ý nghĩa . Được sử dụng để biểu diễn các thành phần phần mềm cấu thành hệ thống. . Mỗi thành phần có thể xem như một phần mềm nhỏhơn , cung cấp một khối dạng hộp đen trong quá trình xây dựng phần mềm lớn. . Các thành phần có thể là các gói được xây dựng cho quá trình phát triển hệ thống. Ví dụ . Java Bean, các gói thư viện liên kết động, lớp và các thư viện chức năng
  35. Tên gọi Ý nghĩa Ký hiệu Thành phần Mô tả thành phần của biểu đô Giao tiếp Mô tả giao tiếp với mỗi thành phần Mối quan hệ Mô tả quan hệ giữa các thành phần Gói Được sử dụng để nhóm một số (package) thành phần lại với nhau
  36. Ý nghĩa . Biểu đồ triển khai hệ thống biểu diễn kiến trúc cài đặt và triển khai hệ thống dưới dạng các nodes và các mối quan hệ giữa các node. . Các node được kết nối với nhau thông qua các liên kết truyền thông như các kết nối mạng, liên kết TCP-IP, microware .và được đánh số thứ tựtheo thời gian tương tựnhư biểu đồ cộng tác.
  37. Tên gọi Ý nghĩa Ký hiệu Các node (thiết Biểu diễn các thành phần không bị) có bộ xử lí trong biểu đồ triển khai hệ thống Các bộ xử lý Biểu diễn các thành phần có bộ xử lí trong biểu đồ triển khai hệ thống Các liên kết Nối các thành phần của biểu đồ truyền triển khai hệ thống. Thường mô thông tả một giao thức truyền thông cụ thể
  38. Rational Rose StarUML Visual Paradigm Enterprise Architect