Thiết kế chi tiết biểu đồ lớp Thiết kế chi tiết biểu đồ lớp Bởi: Đoàn Văn Ban Mục đích UML Mục đích UML: Mô hình hệ thống (không hệ thống phần mềm) sử dụng tất khái niệm hướng đối tượng cách thống Cho phép đặc tả, hỗ trợ để đặc tả tường minh (trực quan) mối quan hệ khái niệm hệ thống, đồng thời mô tả trạng thái hoạt động hệ thống đối tượng Nghĩa cho phép mô tả mô hình tĩnh lẫn mô hình động cách đầy đủ trực quan Tận dụng khả sử dụng lại kế thừa phạm vi diện rộng để xây dựng hệ thống phức tạp nhạy cảm như: hệ thống động, hệ thống thời gian thực, hệ thống nhúng thời gian thực, v.v Tạo ngôn ngữ mô hình hoá sử dụng cho người lẫn máy tính Tóm lại, UML ngôn ngữ mô hình hoá, ngôn ngữ đặc tả ngôn ngữ xây dựng mô hình trình phát triển phần mềm, đặc biệt phân tích thiết kế hệ thống hướng đối tượng UML ngôn ngữ hình thức, thống chuẩn hoá mô hìnhhệ thống cách trực quan Nghĩa thành phần mô hình thể bởicác ký hiệu đồ hoạ, biểu đồ thể đầy đủ mối quan hệ chúng cách thống có logic chặt chẽ Tuy nhiên cần lưu ý: • UML ngôn ngữ lập trình, nghĩa ta dùng UML để viết chương trình Nó công cụ CASE Một số công cụ CASE Rational Rose [17] sử dụng mô hình UML để phát sinh mã nguồn tự 1/9 Thiết kế chi tiết biểu đồ lớp động sang ngôn ngữ lập trình lựa chọn C++, Java, Visual C++, v.v • UML phương pháp hay trình phát triển phần mềm Các ký hiệu UML sử dụng dự án phát triển phần mềm nhằm áp dụng cách tiếp cận khác cho trình phát triển phần mềm nhằm tách chu kỳ phát triển hệ thống thành hoạt động, tác vụ, giai đoạn bước khác Quá trình phát triển phần mềm thống với UML • UML phát triển để đặc tả trình phát triển phần mềm, nhằm mô hình hoá hệ thống Quá trình phát triển phần mềm gọi trình phát triển phần mềm hợp (USPD) hay trình hợp Rational (RUP [17, 21]), gọi tắt trình hợp (UP) RUP tập qui tắc hướng dẫn phương diện kỹ thuật tổ chức để phát triển phần mềm, nhấn mạnh chủ yếu vào bước phân tích thiết kế RUP cấu trúc theo hai chiều: Chiều thời gian: chia trình thành pha thực bước lặp Chiều thành phần: sản phẩm với hoạt động xác định đầy đủ Cấu trúc dự án theo chiều thời gianbao gồm pha thực hiện: (i)Khởi động (Inception): xác định dự án tổng thể (ii) Soạn thảo dự án tỉ mỉ (Elaboration): + Lập kế hoặch cho hoạt động cần thiết + Xác định tài nguyên cần để thực dự án + Xác định tính chất, đặc trưng dự án + Xây dựng kiến trúc cho hệ thống (iii) Xác định sản phẩm pha thực (iv) Chuyển giao: cung cấp sản phẩm cho cộng đồng người sử dụng Cấu trúc dự án theo chiều thành phầnbao gồm hoạt động: 2/9 Thiết kế chi tiết biểu đồ lớp • Mô hình hoá nghiệp vụ: thiết lập khả hệ thống cần xây dựng nhu cầu NSD • Phân tích yêu cầu: chi tiết yêu cầu chức phi chức hệ thống • Phân tích thiết kế hệ thống: mô tả hệ thống thực yêu cầu hỗ trợ cài đặt • Cài đặt chương trình: lập trình kết thiết kế nêu để hệ thống hoạt động theu yêu cầu • Kiểm thử, kiểm chứng thành phần toàn hệ thống • Triển khai hệ thống: khai thác hệ thống huấn luyện NSD UP bao gồm người, dự án, sản phẩm, qui trình công cụ Con người người tham gia dự án để tạo sản phẩm phần mềm theo trình với hỗ trợ công cụ cung cấp UP trình phát triển phần mềm hướng dẫn ca sử dụng Nghĩa yêu cầu NSD mô tả ca sử dụng, chuỗi hành động thực hệ thống nhằm cung cấp dịch vụ, thông tin cho khách hàng Các ca sử dụng bao gồm chuỗi công việc xem tảng để tạo mô hình thiết kế cài đặt hệ thống UP qui trình tập trung vào kiến trúc, lặp phát triển tăng trưởng liên tục Kiến trúc hệ thống phải thiết kế nhằm đáp ứng yêu cầu cácca sử dụng chính, giới hạn chuẩn phần cứng mà hệ thống chạy cấu trúc hệ thống lẫn hệ thống Tính lặp trình phát triển phần mềm thể chỗ dự án chia thành dự án nhỏ thực lặplại bước thực Mỗi dự án nhỏ thực phân tích, thiết kế, cài đặtvà kiểm thử, v.v Mỗi phần việc phát triển tăng trưởng dự án thực theo tăng trưởng UP không tạo hệ thống phần mềm hoàn chỉnh mà tạo số sản phẩm trung gian mô hình Các mô hình UP mô hình nghiệp vụ (ca sử dụng), mô hình khái niệm, mô hình thiết kế, mô hình triển khai mô hình trắc nghiệm Các mô hình có phụ thuộc theo vết phát triển, nghĩa lần theo mô hình để đến mô hình trước Giới thiệu tổng quát UML UML xây dựng dựa vào: • Cách tiếp cận Booch (Booch Approach), • Kỹ thuật mô hình đối tượng (OMT – Object Modeling Technique) Rumbaugh, 3/9 Thiết kế chi tiết biểu đồ lớp • Công nghệ phần mềm hướng đối tượng (OOSE – Object-Oriented Software Engineering) Jacobson, • Đồng thời thống nhiều ký pháp, khái niệm phương pháp khác Quá trình hình thành UML ngôn ngữ Ada (Booch) trước năm 1990 (hình 2-1) Sự phát triển UML Để hiểu sử dụng tốt UML phân tích, thiết kế hệ thống, đòi hỏi phải nắm bắt ba vấn đề chính: Các phần tử UML, Những qui định liên kết phần tử, qui tắc cú pháp, Những chế chung áp dụng cho ngôn ngữ mô hình hoá hệ thống 4/9 Thiết kế chi tiết biểu đồ lớp Các phần tử UML Các thành phần sở UML Các quan sát Các quan sát (góc nhìn) theo phương diện khác hệ thống cần phân tích, thiết kế Dựa vào quan sát để thiết lập kiến trúc cho hệ thống cần phát triển.Có năm loại quan sát: quan sát theo ca sử dụng, quan sát logic, quan sát thành phần, quan sát tương tranh quan sát triển khai Mỗi quan sát tập trung khảo sát mô tảmột khía cạnh hệ thống (hình 3) thường thể số biểu đồ định Các quan sát hệ thống • Quan sát ca sử dụng (hay trường hợp sử dụng): mô tả chức năng, nhiệm vụ hệ thống Quan sát thể yêu cầu hệ thống, phải xác định từ đầu sử dụng để điều khiển, thúc đẩy thẩm định hay kiểm tra công việc tất giai đoạn trình phát triển phần mềm Nó sở để trao đổi thàn viên dự án phần mềm với khách hàng Quan sát ca sử dụng thể biểu đồ ca sử vài biểu đồ trình tự, cộng tác, v.v • Quan sát logic biểu diễn cách tổ chức logic lớp quan hệ chúng với Nó mô tả cấu trúc tĩnh lớp, đối tượng liên hệ chúng thể mối liên kết động thông qua trao đổi thông điệp Quan 5/9 Thiết kế chi tiết biểu đồ lớp sát thể biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác, biểu đồ biến đổi trạng thái Quan sát logic tập trung vào cấu trúc hệ thống Trong quan sát ta nhận phận cấu thành hệ thống thể trình trao đổi, xử lý thông tin hệ thống • Quan sát thành phần (quan sát cài đặt) xác định mô đun vật lý hay tệp mã chương trình liên hệ chúng để tổ chức thành hệ thống phần mềm Trong quan sát ta cần bổ sung: chiến lược cấp phát tài nguyên cho thành phần, thông tin quản lý báo cáo tiến độ thực công việc, v.v Quan sát thành phần thể biểu đồ thành phần gói • Quan sát tương tranh (quan sát tiến trình) biểu diễn phân chia luồng thực công việc, lớp đối tượng cho tiến trình đồng luồng hệ thống Quan sát tập trung vào nhiệm vụ tương tranh, tương tác với hệ thống đa nhiệm • Quan sát triển khai mô tả phân bổ tài nguyên nhiệm vụ hệ thống Nó liên quan đến tầng kiến trúc phần mềm, thường kiến trúc ba tầng: tầng giao diện (tầng trình diễn hay tầng sử dụng), tầng logic tác nghiệp tầng lưu trữ CSDL tổ chức hay nhiều máy tính khác Quan sát triển khai bao gồm luồng công việc, xử lý thiết bị Biểu đồ triển khai mô tả tiến trình tiến trình máy Các vật (các phần tử mô hình) UML có bốn phần tử mô hình, cấu trúc, hành vi, nhóm thích • Phần tử cấu trúc: danh từ mô hình UML, biểu diễn cho thành phần khái niệm hay vật lý hệ thống UML có bảy phần tử cấu trúc mô tả sau: + Lớp Lớp tập đối tượng chia sẻ với thuộc tính, thao tác, quan hệ ngữ nghĩa + Giao diện Giao diện tập thao tác làm dịch vụ cho lớp hay thành phần Giao diện mô tả hành vi quan sát từ bên thành phần Giao diện khai báo phương thức xử lý không định nghĩa nội dung thực Nó thường không đứng mà thường gắn với lớp hay thành phần + Phần tử cộng tác Phần tử cộng tác mô tả ngữ cảnh tương tác hệ thống Nó thể giải pháp thi hành hệ thống, bao gồm lớp, quan hệ tương tác giưa chúng để thực ca sử dụng mong đợi + Ca sử dụng Ca sử dụng mô tả tập hành động mà hệ thống thực để phục vụ cho tác nhân Tác nhân bên có tương tác, trao đổi với hệ thống 6/9 Thiết kế chi tiết biểu đồ lớp + Lớp tích cực Lớp tích cực xem lớp có đối tượng làm chủ hay nhiểu tiến trình, luồng hành động + Thành phần Thành phần biểu diễn vật lý mã nguồn, tệp nhị phân trình phát triển hệ thống + Nút Nút thể thành phần vật lý tồn chương trình chạy biểu diễn cho tài nguyên sử dụng hệ thống • Phần tử mô tả hành vi: động từ mô hình, biểu diễn hành vi tương tác thành phần biến đổi trạng thái hệ thống Có hai loại tương tác máy biến đổi trạng thái + Sự tương tác Sự tương tác hành vi bao gồm tập thông điệp trao đổi đối tượng ngữ cảnh cụ thể để thực ca sử dụng + Máy biến đổi trạng thái.Máy biến đổi trạng thái (ôtômát hữu hạn trạng thái) trật tự thay đổi trạng trái đối tượng hay tương tác phải qua để đáp ứng kiện xảy • Phần tử nhóm: phận tổ chức mô hình UML Phần tử nhóm có gói, mô hình khung công việc + Gói (package) Gói phần tử đa sử dụng để tổ chức lớp, hay số nhóm khác vào nhóm Không giống với thành phần (component), phần tử gói hoàn toàn khái niệm, có nghĩa chúng tồn mô hình vào thời điểm phát triển hệ thống không tồn vào thời điểm chạy chương trình Gói giúp ta quan sát hệ thống mức tổng quát + Mô hình Mô hình mô tả đặc tính tĩnh và/hoặc động chủ thể hệ thống + Khung công việc Khung công việc tập lớp trừu tượng hay cụ thể sử dụng khuôn mẫu để giải họ vấn đề tương tự Là phận giải mô hình, giải thích phần tử, khái niệm cách sử dụng chúng mô hình Các mối quan hệ UML cho phép biểu diễn bốn mối quan hệ đối tượng hệ thống Đó quan hệ: phụ thuộc, kết hợp, tổng quát hoá thực hoá 7/9 Thiết kế chi tiết biểu đồ lớp + Quan hệ phụ thuộc Đây quan hệ ngữ nghĩa hai phần tử, sựu thay đổi tử tác động đến ngữ nghĩa phần tử phụ thuộc + Quan hệ kết hợp Kết hợp quan hệ cấu trúc xác định mối liên kết lớp đối tượng Khi có đối tượng lớp gửi/nhận thông điệp đến/từ chỗ đối tượng lớp hai lớp có quan hệ kết hợp Một dạng đặc biệt quan hệ kết hợp quan hệ kết nhập, biểu diễn mối quan hệ toàn thể phận + Quan hệ tổng quát hoá Đây quan hệ mô tả khái quát hoá mà số đối tượng cụ thể (của lớp con) kế thừa thuộc tính, phương thức đối tượng tổng quát (lớp sở) + Hiện thực hoá Hiện thực hoá quan hệ ngữ nghĩa giao diện lớp (hay thành phần) để thực cài đặt dịch vụ khai báo giao diện Các biểu đồ Biểu đồ đồ thị biểu diễn đồ họa tập phần tử mô hình mối quan hệ chúng Biểu đồ chứa đựng nội dung quan sát góc độ khác nhau, thành phần hệ thống xuất hay nhiều biểu đồ UML cung cấp biểu đồ trực quan để biểu diễn khía cạnh khác hệ thống, bao gồm: • Biểu đồ ca sử dụng mô tả tương tác tác nhân hệ thống thông qua ca sử dụng Các ca sử dụng nhiệm vụ chính, dịch vụ, trường hợp sử dụng cụ thể mà hệ thống cung cấp cho người sử dụng ngược lại • Biểu đồ lớp mô tả cấu trúc tĩnh, mô tả mô hình khái niệm bao gồm lớp đối tượng mối quan hệ chúng hệ thống hướng đối tượng • Biểu đồ trình tự thể tương tác đối tượng với nhau, chủ yếu trình tự gửi nhận thông điệp để thực thi yêu cầu, công việc theo thời gian • Biểu đồ cộng tác tương tự biểu đồ trình tự nhấn mạnh vào tương tác đối tượng sở cộng tác với cách trao đổi thông điệp để thực yêu cầu theo ngữ cảnh công việc • Biểu đồ trạng thái thể chu kỳ hoạt động đối tượng, hệ thống hệ thống Nó loại ôtômát hữu hạn trạng thái, mô tả trạng thái, hành động mà đối tượng có kiện gắn với trạng thái theo thời gian • Biểu đồ hành động dòng hoạt động hệ thống, bao gồm trạng thái hoạt động, từ trạng thái hoạt động chuyển sang trạng thái khác sau hoạt động tương ứng thực Nó trình tự bước, 8/9 Thiết kế chi tiết biểu đồ lớp tiến trình thực điểm định rẽ nhánh theo luồng kiện • Biểu đồ thành phần cấu trúc vật lý thành phần hệ thống, bao gồm: thành phần mã nguồn, mã nhị phân, thư viện thành phần thực thi • Biểu đồ triển khai cách bố trí vật lý thành phần theo kiến trúc thiết kế hệ thống Các khái niệm biểu đồ cách xây dựng biểu đồ để phân tích, thiết kế hệ thống giới thệu chi tiết chương sau 9/9