Phát triển phần mềm bằng UML trang | 8 Hình 1.2 Tiếp cận hướng đối tượng Quan điểm hướng đối tượng hình thành trên cơ sở tiếp cận hướng hệ thống, nó coi hệ thống như thực thể được tổ ch
KHÁI QUÁT VỀ UML
GIỚI THIỆU UML
UML là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm, phù hợp cho các hệ thống như hệ thống thông tin doanh nghiệp, ứng dụng phân tán trên nền Web và hệ thống nhúng thời gian thực Các khung nhìn của UML phản ánh từ góc độ phát triển và triển khai hệ thống, dễ hiểu và dễ sử dụng, vì nó là ngôn ngữ mô hình phù hợp cho cả con người và máy móc Phương pháp là cách cấu trúc rõ ràng suy nghĩ và hành động của người dùng, giúp xác định rõ làm gì, làm như thế nào, khi nào và tại sao thực hiện các hành động đó Các mô hình trong phương pháp mô tả các khía cạnh cụ thể của hệ thống, trong khi ngôn ngữ mô hình hóa như UML thiếu phần thể hiện tiến trình về cách thức, thời điểm, và lý do thực hiện các hoạt động Sau cùng, UML có các ký pháp và luật sử dụng gồm cú pháp, ngữ nghĩa và pragmatic, giúp đảm bảo việc xây dựng và diễn giải mô hình chính xác và có ý nghĩa.
Ngay cả khi nắm chắc ngôn ngữ UML, không có gì đảm bảo sẽ tạo ra một mô hình tốt Giống như nhà văn viết tiểu thuyết bằng ngôn ngữ tự nhiên, ngôn ngữ UML chỉ là công cụ hỗ trợ, còn chất lượng của mô hình phụ thuộc hoàn toàn vào người sử dụng Để sử dụng UML hiệu quả trong phát triển hệ thống, cần hiểu rõ ba vấn đề chính sau [BRJ99], giúp tối ưu hóa khả năng mô hình hóa và đạt được kết quả mong muốn.
Các phần tử cơ bản của mô hình UML
Các qui định liên kết các phần tử mô hình
Một số cơ chế chung áp dụng cho ngôn ngữ này.
UML là ngôn ngữ mô hình hóa phần mềm quan trọng, nhưng chỉ đóng vai trò là một phần trong quy trình phát triển phần mềm độc lập UML đặc biệt phù hợp với các phương pháp phát triển hướng trường hợp sử dụng (Use Case - UC), kiến trúc trung tâm và mô hình hóa tương tác tăng dần để tối ưu hóa quá trình thiết kế và triển khai phần mềm.
Ngôn ngữ cần có từ vựng và quy tắc tổ hợp từ để phục vụ giao tiếp hiệu quả Ngôn ngữ mô hình, như UML, tập trung vào biểu diễn vật lý và khái niệm của hệ thống, giúp lập kế hoạch chi tiết phần mềm Trong quá trình phát triển phần mềm, không có mô hình nào phù hợp cho toàn bộ hệ thống, nên cần xây dựng nhiều mô hình để phản ánh các khung nhìn khác nhau của kiến trúc hệ thống Ngôn ngữ UML cung cấp cách thức xây dựng và đọc mô hình, nhưng việc xác định mô hình nào cần lập và thời điểm lập lại phụ thuộc vào quy trình phát triển phần mềm Quy trình này hướng dẫn chúng ta xác định các mốc phát triển mô hình phù hợp để đảm bảo tiến trình phát triển hệ thống hiệu quả.
Phát triển phần mềm bằng UML giúp xác định rõ các quyết định về hình thành vật phẩm, hoạt động và nhân viên tham gia vào quá trình tạo ra, sử dụng và quản lý chúng UML đóng vai trò quan trọng trong việc lập kế hoạch và kiểm soát toàn bộ dự án phần mềm, tăng cường hiệu quả quản lý và giảm thiểu rủi ro Việc sử dụng UML trong quản lý dự án giúp các nhà phát triển dễ dàng theo dõi tiến độ, tối ưu hóa quy trình và đảm bảo chất lượng sản phẩm cuối cùng.
2.1.1.2 - UML là ngôn ng ữ để hi ể n th ị
Nhiều lập trình viên thường chuyển trực tiếp từ ý tưởng sang viết mã mà không sử dụng mô hình để trình bày Tuy nhiên, việc giao tiếp giữa các thành viên trong vòng đời phát triển phần mềm gặp khó khăn nếu không có ngôn ngữ chung hoặc mô hình rõ ràng UML giúp xây dựng các mô hình đồ họa dễ hiểu, tăng khả năng giao tiếp và hiểu rõ hơn về cấu trúc hệ thống Các mô hình của UML thể hiện rõ ý nghĩa của các thành phần, giúp các nhà phát triển và công cụ mô hình hóa hiểu chính xác hệ thống đang xây dựng Nhiều công việc phù hợp với mô hình hóa bằng văn bản, nhưng các hệ thống phức tạp thường dễ hiểu hơn qua sơ đồ đồ họa UML Do đó, UML là ngôn ngữ hình ảnh mạnh mẽ, hỗ trợ tốt cho việc mô hình hóa hệ thống phần mềm, giúp mọi người hiểu và cộng tác hiệu quả hơn.
UML là ngôn ngữ đặc tả giúp mô tả rõ ràng các điểm mấu chốt của vấn đề, đảm bảo mô hình chính xác, không nhập nhằng và hoàn thiện UML hướng tới việc đặc tả thiết kế, phân tích và ra quyết định trong quá trình phát triển và triển khai hệ thống phần mềm, hỗ trợ quá trình xây dựng phần mềm hiệu quả và chính xác.
2.1.1.4 - UML là ngôn ng ữ đễ xây d ự ng
UML không phải là một ngôn ngữ lập trình trực quan nhưng có thể kết nối trực tiếp với nhiều ngôn ngữ lập trình khác nhau như Java, C++ và các hệ quản trị cơ sở dữ liệu quan hệ hoặc hướng đối tượng Khả năng ánh xạ mô hình UML sang các ngôn ngữ lập trình giúp chuyển đổi linh hoạt giữa mô hình và mã nguồn một cách dễ dàng Ngoài ra, UML còn cho phép chuyển đổi ngược trở lại từ mã hoặc cài đặt về mô hình UML, đảm bảo tính nhất quán trong công việc với văn bản và đồ họa.
2.1.1.5 - UML là ngôn ng ữ tài liêu
UML là công cụ quan trọng trong việc tạo tài liệu kiến trúc hệ thống và mô tả các chi tiết kỹ thuật phù hợp UML giúp biểu diễn rõ ràng các yêu cầu hệ thống, hỗ trợ thử nghiệm và mô hình hóa hoạt động lập kế hoạch cũng như quản lý sản phẩm một cách hiệu quả.
Trong UML, Use Case (UC) thể hiện rõ ràng giới hạn của hệ thống cùng các chức năng chính của nó thông qua các tác nhân Các UC được mô tả bằng biểu đồ logic, giúp xác định các tương tác chính giữa người dùng và hệ thống Việc này đảm bảo việc phân tích và thiết kế hệ thống chính xác, rõ ràng và phù hợp với yêu cầu của dự án.
Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đồ lớp
Mô hình hóa các hành vi đối tượng bằng biểu đồ chuyển trạng thái
Phản ảnh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đồ triển khai
Mở rộng các chức năng bằng stereotypes
Phát triển phần mềm bằng UML trang | 26
MÔ HÌNH KHÁI NIỆM CỦA UML
Để hiểu UML, bạn cần hình dung mô hình khái niệm của ngôn ngữ, bao gồm ba yếu tố chính: các phần tử cơ bản để xây dựng mô hình, quy tắc liên kết các phần tử này, và các cơ chế chung được sử dụng trong ngôn ngữ Khi nắm vững các vấn đề này, bạn sẽ có khả năng đọc hiểu các mô hình UML và tạo ra các mô hình cơ bản một cách dễ dàng.
2.2.1 - Phần tử mô hình trong UML
Trong mô hình UML, các khối hình thành gồm ba loại chính: phần tử, quan hệ và biểu đồ Phần tử là các thành phần trừu tượng cơ bản, còn quan hệ liên kết các phần tử lại với nhau nhằm thể hiện mối liên hệ trong mô hình Biểu đồ trong UML giúp nhóm các phần tử thành các tập hợp để dễ dàng phân tích và trình bày Bạn nên chú ý rằng UML có bốn loại phần tử mô hình chính gồm cấu trúc, hành vi, nhóm và chú thích, đây là các khối xây dựng nền tảng cho phương pháp phát triển dựa trên hướng đối tượng của UML.
Trong mô hình UML, phần từ cấu trúc chính là các danh từ biểu thị các thành phần tĩnh của hệ thống, giúp mô tả các khái niệm hoặc vật lý liên quan Có bảy loại phần tử cấu trúc chính, bao gồm các thành phần quan trọng để xây dựng và trực quan hóa mô hình một cách rõ ràng và chính xác Những phần tử này đóng vai trò cốt lõi trong việc thể hiện cấu trúc và mối quan hệ giữa các thành phần trong hệ thống UML.
Lớp mô tả tập hợp các đối tượng có chung tính chất, thao tác và quan hệ Một lớp có thể cài đặt một hoặc nhiều ghép nối để thể hiện các mối liên kết trong hệ thống Trong sơ đồ lớp, các lớp thường được biểu diễn bằng hình chữ nhật, trong đó ghi rõ tên lớp, thuộc tính và các thao tác, giúp dễ dàng hình dung cấu trúc và chức năng của hệ thống phần mềm.
Giao diện là tập hợp các thao tác dịch vụ của lớp hoặc thành phần, thể hiện hành vi bên ngoài của thành phần đó Nó mô tả toàn bộ hoặc một phần hành vi của lớp, giúp người dùng hiểu rõ các chức năng có thể thực hiện Giao diện chủ yếu định nghĩa tập đặc tả các thao tác, trong khi không đề cập đến cách cài đặt của chúng, giúp tách biệt giữa giao diện và triển khai nội bộ.
Ký pháp đồ họa của giao diện được mô tả rõ ràng trên hình 2.2 Thường thì giao diện không hoạt động độc lập mà được tích hợp vào các lớp hoặc thành phần thực hiện chức năng giao diện, giúp đảm bảo tính linh hoạt và dễ quản lý trong quá trình phát triển phần mềm.
Hình 2.1 Lớp Hình 2.2 Giao diện
Phần tử cộng tác mô tả ngữ cảnh của tương tác trong hệ thống, giúp thể hiện các lớp, quan hệ và tương tác giữa chúng để đạt được chức năng mong đợi của Use Case Ký pháp đồ họa của phần tử cộng tác là hình elíp có đường vẽ nét đứt, kèm theo tên như đã trình bày trong hình 2.3 Nó thể hiện giải pháp thi hành bên trong hệ thống, hỗ trợ hình dung rõ ràng về quá trình tương tác và phối hợp các thành phần để thực hiện mục tiêu đề ra.
Phát triển phần mềm bằng UML trang | 27
Hình 2.3 Cộng tác Hình 2.4 Use case
Trường hợp sử dụng (Use case) mô tả trình tự các hành động hệ thống thực hiện để đạt được kết quả mong muốn cho tác nhân bên ngoài tương tác Tập hợp các UC tạo thành các tình huống sử dụng của hệ thống, giúp tổ chức các phần tử hành vi trong mô hình UC được hiện thực hóa qua các phần tử cộng tác, như đã trình bày trong ký pháp đồ họa của Use case (Hình 2.4), nhằm mô tả rõ ràng các tương tác giữa hệ thống và tác nhân.
Lớp tích cực (active class) là lớp có đối tượng làm chủ một hoặc nhiều lớp tiến trình hoặc luồng, thể hiện các thành phần có hành vi tương tranh với nhau Ký pháp đồ họa của lớp tích cực tương tự như lớp thông thường, nhưng biên chữ nhật được tô đậm để phân biệt Thông thường, lớp tích cực vẫn có tên, thuộc tính và thao tác giống như lớp thông thường, giúp dễ dàng nhận diện và quản lý các đối tượng trong hệ thống.
Thành phần thể hiện các mã nguồn vật lý và các tệp nhị phân trong quá trình phát triển hệ thống, đóng vai trò quan trọng trong việc xây dựng và vận hành phần mềm Ký pháp đồ họa của thành phần được trình diễn rõ ràng trên hình 2.5, giúp người dùng dễ dàng hình dung cấu trúc và mối liên hệ giữa các thành phần trong hệ thống.
Nút (node) là thành phần vật lý tồn tại khi chương trình chạy và biểu diễn các tài nguyên tính toán Nút có thể là máy tính hoặc thiết bị phần cứng, đóng vai trò chính trong hệ thống mạng Các thành phần trên nút có thể chuyển đổi từ nút này sang nút khác, giúp tối ưu hóa quá trình xử lý và phân phối tài nguyên Mô hình đồ họa của nút được thể hiện rõ ràng trong hình 2.6, giúp hình dung cấu trúc và chức năng của chúng trong hệ thống mạng.
Hình 2.5 Cộng tác Hình 2.6 Use case
Phần tử hành vi trong mô hình UML đóng vai trò là các động từ quan trọng thể hiện hành vi theo thời gian và không gian Chúng mô tả cách các thành phần tương tác và phản ứng với môi trường hoạt động của hệ thống Hai loại chính của phần tử hành vi bao gồm tương tác và trạng thái, giúp xây dựng mô hình rõ ràng, chính xác và dễ hiểu Việc hiểu rõ các phần tử hành vi hỗ trợ trong việc phân tích và thiết kế hệ thống phần mềm hiệu quả.
Tương tác là hành vi gồm các thông điệp trao đổi giữa các đối tượng trong một ngữ cảnh cụ thể nhằm đạt được mục đích xác định Hành vi của nhóm đối tượng hoặc từng thao tác được thể hiện qua tương tác, giúp làm rõ quá trình giao tiếp Biểu đồ đồ họa thể hiện các thông điệp này qua hình 2.7, gồm các mũi tên và tên thao tác, thể hiện rõ mối liên hệ và chức năng của từng hành động.
Hình 2.7 Thông điệp Hình 2.8 Trạng thái
Máy trạng thái là hệ thống xác định trật tự các trạng thái mà một đối tượng hoặc hệ thống tương tác sẽ trải qua để phản ứng với sự kiện Hành vi của lớp hoặc cộng tác của lớp có thể được mô tả rõ thông qua hiện tượng chuyển đổi trạng thái này Máy trạng thái giúp phân loại hoạt động và hành vi của hệ thống trong quá trình xử lý các sự kiện, từ đó tối ưu hóa thiết kế phần mềm Việc hiểu rõ máy trạng thái là yếu tố quan trọng trong phát triển phần mềm hướng đối tượng và quản lý trạng thái hệ thống hiệu quả.
Phát triển phần mềm bằng UML trang 28 bao gồm việc sử dụng máy trạng thái để mô tả hành vi của hệ thống Máy trạng thái kích hoạt nhiều phần tử, bao gồm các trạng thái, chuyển tiếp giữa các trạng thái, các sự kiện kích hoạt và hoạt động phản hồi sự kiện Ký pháp đồ họa của máy trạng thái thể hiện rõ ràng các trạng thái, chuyển tiếp và các phần tử liên quan, giúp phân tích và thiết kế hệ thống một cách trực quan và chính xác.
KIẾN TRÚC HỆ THỐNG
Kiến trúc hệ thống là yếu tố cốt lõi trong việc định hình các khía cạnh quan trọng nhất của hệ thống, cung cấp khung để xây dựng thiết kế và mô tả tầm cỡ, sức mạnh của hệ thống Nó thể hiện cách phần mềm được tổ chức, các giao thức trao đổi dữ liệu và giao tiếp giữa các mô đun, đồng thời thu thập các yêu cầu ứng dụng và các trường hợp use case quan trọng nhất Việc thiết kế và tài liệu hệ thống đòi hỏi xem xét từ nhiều góc độ khác nhau, phù hợp với các đối tượng sử dụng đa dạng như người dùng cuối, nhà phân tích, nhà phát triển, kiểm thử viên hay quản lý dự án Kiến trúc hệ thống đóng vai trò là công cụ quản lý các điểm nhìn khác nhau nhằm kiểm soát sự phát triển của hệ thống theo các giai đoạn tăng dần và lặp lại trong vòng đời dự án Đây là tập hợp các quyết định quan trọng giúp định hướng xây dựng, phát triển, và duy trì hệ thống phần mềm hiệu quả.
Tổ chức của hệ thống phần mềm
Lựa chọn các phần tử cấu trúc và giao diện cho hệ thống
Hành vi của chúng thể hiện trong hợp tác giữa các phần tử
Tổ hợp các phần tử cấu trúc và hành vị vaò hệ thống con lớn hơn
Kiến trúc phần mềm không chỉ liên quan đến cấu trúc và hành vi mà cả chức năng, tính sử dụng lại, dễ hiểu, ràng buộc công nghệ …
Hình 2.24 Mô hình hóa kiến trúc hệ thống
Kiến trúc hệ thống phần mềm được mô tả qua các khung nhìn khác nhau, giúp biểu diễn tổ chức và cấu trúc của hệ thống một cách rõ ràng Mỗi khung nhìn tập trung vào một khía cạnh cụ thể của hệ thống để đảm bảo hiểu đúng và toàn diện về kiến trúc tổng thể Các khung nhìn này đóng vai trò quan trọng trong quá trình thiết kế, phát triển và duy trì hệ thống phần mềm, tối ưu hóa hiệu suất và khả năng mở rộng (Hình 2.24)
According to Philippe Kruchten's (LIBE98) diagram, software architecture can be viewed through five interconnected perspectives: the Use Case View, Logical View, Implementation View, Deployment View, and Process View Each perspective serves a specific purpose in understanding and designing complex systems, ensuring comprehensive coverage of both functionality and technical details.
Khung nhìn này đứng trước mọi khung nhìn khác (hình 2.24), được hình thành từ giai đoạn phân tích yêu cầu, đóng vai trò quan trọng trong việc điều khiển và thúc đẩy các phần công việc còn lại của quá trình thiết kế.
Khung nhìn UC mô tả các hành vi hệ thống từ góc nhìn của khách hàng, phân tích viên và kỹ sư kiểm tra, thử nghiệm Nó bao gồm các tác nhân, UC, biểu đồ UC (khía cạnh tĩnh) và có thể bổ sung các biểu đồ trình tự, biểu đồ cộng tác (khía cạnh động) cùng các gói Khung nhìn UC tập trung vào chức năng hệ thống sẽ thực hiện, không đi sâu vào cách hệ thống hoạt động hoặc tổ chức bên trong.
Phát triển phần mềm bằng UML trang | 39
Khi dự án bắt đầu, khách hàng, phân tích viên và người quản lý dự án làm việc cùng UC, biểu đồ UC và tài liệu UC để thống nhất yêu cầu hệ thống Sau khi khách hàng đồng ý về các UC và tác nhân, họ sẽ xác định phạm vi hệ thống rõ ràng Hệ thống được phát triển tiếp dựa trên khung nhìn logic để đảm bảo đúng yêu cầu và phạm vi đề ra.
Khung nhìn logic (logical view) do Rose gọi là mô hình thể hiện tổ chức của các lớp và mối quan hệ của chúng, nhằm đảm bảo tính ý nghĩa và rõ ràng Nó tập trung vào cách hệ thống cài đặt hành vi trong Use Case (UC) hoạt động, bao gồm các thành phần như lớp, biểu đồ lớp, biểu đồ đối tượng, biểu đồ tương tác và biểu đồ trạng thái Khung nhìn logic còn trình bày các gói, phản ánh khía cạnh tĩnh và động của hệ thống Hầu hết các thành viên trong dự án đều quan tâm đến khung nhìn logic để hiểu rõ cấu trúc và hành xử của hệ thống.
Thông thường, đội ngũ phát triển phần mềm bắt đầu bằng cách xác định các lớp phân tích, còn gọi là analysis class, đóng vai trò trung tâm trong quy trình phát triển phần mềm Các lớp phân tích này hoạt động độc lập với ngôn ngữ lập trình, giúp xây dựng nền tảng vững chắc cho dự án Trong UML, các lớp phân tích được biểu diễn bằng các biểu tượng đặc trưng, giúp dễ dàng hình dung và phân tích cấu trúc hệ thống một cách rõ ràng và trực quan.
Lớp phân tích có thể xuất hiện trong biểu đồ tương tác của khung nhìn UC, giúp nhận diện các thành phần quan trọng trong hệ thống Khi đã nhận diện được các lớp phân tích, đội ngũ phát triển phần mềm sẽ chuyển chúng sang lớp thiết kế (design class) để đảm bảo cấu trúc rõ ràng và tối ưu Các lớp này thường là những lớp phụ thuộc ngôn ngữ, đóng vai trò quan trọng trong quá trình xây dựng phần mềm hiệu quả.
Khung nhìn logic tập trung vào cấu trúc logic của hệ thống, giúp nhận diện các bộ phận và khảo sát thông tin cùng hành vi của chúng Việc phân tích mối quan hệ giữa các bộ phận, lớp, nhóm các lớp và gói đóng vai trò quan trọng để đảm bảo tính tổ chức rõ ràng và khả năng tái sử dụng của hệ thống Cần cẩn thận khi gán thông tin và hành vi cho các lớp để duy trì tính nhất quán và dễ bảo trì trong quá trình phát triển phần mềm.
Khung nhìn thành phần (component view) được Rose gọi là khung nhìn chính để mô tả các thành phần trong hệ thống Thành phần chính là các mô-đun vật lý hoặc mã trình dùng để lắp ráp thành hệ thống vật lý hoàn chỉnh Khung nhìn thành phần bao gồm các thành phần, biểu đồ thành phần và gói, giúp người thiết kế hiểu rõ cấu trúc và mối quan hệ giữa các phần của hệ thống.
Người quan tâm đến khung nhìn thành phần thường là những người có trách nhiệm quản lý mã nguồn, lập trình và triển khai ứng dụng phần mềm Các thành phần này bao gồm thư viện hỗ trợ, mã trình khả thực (exe) và thư viện động (dll), đóng vai trò quan trọng trong quá trình phát triển và duy trì hệ thống phần mềm.
Khung nhìn triển khai tập trung vào cách phân bổ vật lý của hệ thống, bao gồm các tài nguyên và nhiệm vụ Khung nhìn này liên quan đến việc triển khai vật lý của hệ thống, khác với kiến trúc logic Ví dụ, hệ thống có kiến trúc ba tầng gồm giao diện, logic và tác nghiệp, cùng với bộ quản lý dữ liệu (CSDL) tách biệt Tuy nhiên, trong quá trình triển khai, có thể chỉ còn hai tầng khi logic tác nghiệp và CSDL được đặt trên cùng một máy chủ Khung nhìn triển khai bao gồm các thành phần như tiến trình (luồng thực hiện trong bộ nhớ riêng), bộ xử lý và thiết bị vật lý.
Khung nhìn triển khai mô tả các tiến trình, thiết bị mạng và các kết nối vật lý liên kết chúng Biểu đồ triển khai giúp hình dung rõ ràng cách các thành phần hệ thống tương tác, đồng thời chỉ ra tiến trình nào chạy trên máy chủ nào Việc này hỗ trợ quản lý hệ thống hiệu quả và đảm bảo các tiến trình hoạt động đúng như thiết kế.
Phát triển phần mềm bằng UML trang | 40
Khung nhìn tiến trình mô tả cách các luồng thực hiện trong chương trình được phân tách, đồng bộ, cũng như phân bố các đối tượng và lớp cho từng luồng Nó tập trung vào cách các nhiệm vụ tương tranh và tương tác trong hệ thống đa nhiệm hoạt động như thế nào Trong các biểu đồ của phần mềm Rose 2000, khung nhìn này không được thể hiện.
2.3.6 - Cần bao nhiêu khung nhìn
RATIONAL ROSE LÀ GÌ ?
Rational Rose là phần mềm công cụ mạnh mẽ hỗ trợ phân tích và thiết kế hệ thống phần mềm theo hướng đối tượng, giúp mô hình hóa hệ thống trước khi lập trình để đảm bảo tính chính xác và hợp lý của kiến trúc dự án Mô hình Rose như một bức tranh tổng thể của hệ thống, bao gồm các biểu đồ UML, tác nhân, trường hợp sử dụng, đối tượng, lớp, thành phần và các nút triển khai, mô tả chi tiết cách hệ thống hoạt động và cấu tạo Phần mềm này cung cấp kế hoạch chi tiết để các nhà phát triển có thể xây dựng hệ thống hiệu quả Ngoài ra, Rational Rose còn hỗ trợ giải quyết vấn đề quan trọng trong dự án là giao tiếp giữa đội ngũ phát triển và khách hàng, cũng như tạo tài liệu yêu cầu rõ ràng, chính xác.
Phong cách lập trình truyền thống thường xác định yêu cầu hệ thống, sau đó một số người phát triển quyết định thiết kế và viết mã, dẫn đến khó khăn trong việc hiểu và quản trị toàn bộ hệ thống do thiếu tài liệu thiết kế rõ ràng Dù yêu cầu có đầy đủ tài liệu, nhưng thiết kế thường chỉ tồn tại trong đầu một người, gây khó khăn khi có người rời khỏi dự án hoặc chuyển công tác Phương pháp phát triển hệ thống theo cách tiếp cận hiện đại yêu cầu làm tài liệu chi tiết về thiết kế sau khi xác định yêu cầu, giúp mọi thành viên trao đổi và thống nhất quyết định trước khi lập trình, đảm bảo tính liên tục và dễ dàng chia sẻ thông tin trong nhóm.
Khách hàng và quản lý dự án sử dụng biểu đồ UC để có cái nhìn tổng thể rõ ràng về hệ thống Việc này giúp đảm bảo sự thống nhất về phạm vi dự án, từ đó nâng cao hiệu quả quản lý và phối hợp giữa các bên Sử dụng biểu đồ UC là công cụ quan trọng để truyền đạt rõ ràng các chức năng và phạm vi của hệ thống, đảm bảo mọi người đều hiểu đúng về dự án.
Quản lý dự án sử dụng biểu đồ UC và tài liệu để chia nhỏ dự án thành tiểu dự án có thể quản lý được
Thông qua tài liệu UC, các phân tích viên và khách hàng thấy được các chức năng hệ thống sẽ cung cấp
Các phân tích viên và nhà phát triển sử dụng biểu đồ trình tự và biểu đồ công tác để xác định logic tuân thủ của hệ thống, các đối tượng và thông điệp giữa chúng Đội ngũ kiểm tra chất lượng thu thập dữ liệu từ tài liệu UC và các biểu đồ tương tác nhằm xây dựng mô tả kiểm tra hệ thống chính xác và toàn diện.
Phát triển phần mềm bằng UML trang | 41
Người phát triển sử dụng các biểu đồ lớp và biểu đồ biến đổi trạng thái để có cái nhìn chi tiết về các phần hệ thống và mối quan hệ giữa chúng, giúp hiểu rõ cấu trúc và trạng thái của hệ thống Đội ngũ triển khai vận dụng các biểu đồ thành phần và biểu đồ triển khai để xác định các tệp khả thực (exe), tệp DLL, và các thành phần khác cần tạo lập, cũng như cách các thành phần này được triển khai trên mạng một cách rõ ràng và hiệu quả.
Đội ngũ dự án sử dụng mô hình để đảm bảo khả năng chuyển đổi mượt mà giữa yêu cầu hệ thống và mã trình Việc này giúp các yêu cầu có thể được chuyển sang mã trình dễ dàng và ngược lại, mã trình có thể được chuyển trở lại thành yêu cầu hệ thống chính xác Nhờ đó, quy trình phát triển phần mềm trở nên hiệu quả hơn, giảm thiểu lỗi và tăng tính nhất quán trong toàn bộ dự án.
Hơn nữa, Rational Rose còn hỗ trợ phát sinh mã khung chương trình trong nhiều ngôn ngữ khác nhau như C++, Java, Visual Basic, Oracle8 …
KHẢ NĂNG SỬ DỤNG UML
Mục tiêu của UML là mô tả mọi loại hệ thống thông qua các biểu đồ hướng đối tượng, giúp phần tóm tắt các đặc tính chính của hệ thống một cách trực quan và dễ hiểu.
Các hệ thống thông tin đảm nhiệm việc lưu trữ, truy vấn và biểu diễn dữ liệu một cách hiệu quả, nhằm đáp ứng nhu cầu quản lý khối lượng lớn thông tin Đặc biệt, trong các cơ sở dữ liệu quan hệ hoặc CSDL hướng đối tượng, việc quản lý dữ liệu với mối quan hệ phức tạp đóng vai trò then chốt giúp tối ưu hóa hiệu suất truy cập và xử lý thông tin.
Các hệ thống kỹ thuật đóng vai trò quan trọng trong quản lý và điều khiển các thiết bị như truyền tin, hệ thống quân sự và dây chuyền công nghiệp Thường xuyên yêu cầu quản lý các giao diện người dùng đặc thù mà không có phần mềm chuẩn hóa, đòi hỏi các hệ thống này phải hoạt động theo yêu cầu thời gian thực để đảm bảo hiệu quả và độ chính xác cao trong vận hành.
Các hệ thống nhúng thời gian thực hoạt động trên phần cứng đơn giản, được tích hợp trong các thiết bị như điện thoại di động, xe ô tô và dụng cụ gia đình Những hệ thống này thường thiếu các thiết bị bổ sung như màn hình hoặc ổ đĩa, tập trung vào nhiệm vụ chuyên biệt để đảm bảo hiệu suất và độ tin cậy cao trong môi trường sử dụng hàng ngày.
Các hệ thống phân tán hoạt động trên nhiều máy tính khác nhau, đòi hỏi cơ chế giao tiếp đồng bộ để đảm bảo toàn vẹn dữ liệu Những hệ thống này thường dựa trên cơ chế đối tượng như CORBA hoặc COM/DCOM để quản lý giao tiếp và chia sẻ tài nguyên hiệu quả trong môi trường phân tán.
Các phần mềm hệ thống: Xác dịnh hạ tầng kỹ thuật để phần mềm khác sử dụng như hệ điều hành, CSDL…
Các hệ thống thương mại: Mô tả mục tiêu, tài nguyên (con người, máy tính…) và các quy luật
(chiến lược thương mại, luật …) và qui trình thương mại
Hiện nay, các hệ thống phức hợp thường tích hợp nhiều loại hoặc kết hợp các loại hệ thống khác nhau Tuy nhiên, UML vẫn là công cụ hiệu quả để mô hình hóa và phân tích các hệ thống này, giúp hiểu rõ cấu trúc và hoạt động của chúng một cách rõ ràng và dễ quản lý.
T HỰC HÀNH
Phần mềm Rose có nhiều phiên bản khác nhau Độc giả có thể sử dụng phần mềm Rose 98,
Rose 2000 và Rose v2002 là các phiên bản thử nghiệm dành để thực hành các bài tập trong tài liệu này, giúp người dùng làm quen và nâng cao kỹ năng sử dụng phần mềm Độc giả có thể dễ dàng tìm kiếm các phiên bản thử nghiệm hoặc phiên bản hạn chế dành cho huấn luyện và đào tạo của Rose tại trang web chính thức của Rational Technologies: http://www.rational.com/tryit/rose Việc sử dụng các phiên bản thử nghiệm này hỗ trợ người dùng làm quen với các tính năng của Rose trước khi áp dụng vào thực tế.
Mục tiêu của bài thực hành này là làm quen với các màn hình của phần mềm công cụ Rose
2000, một phiên bản của phần mềm công cụ Rational Rose Hãy thự hiện theo các bước như mô tả dưới đầy để làm quen với Rose:
1 Khởi động Rose 2000 Trên màn hình có các thành phần như hình 2.25
Phát triển phần mềm bằng UML trang | 42
2 Có thể tắt/mở các cửa sổ duyệt (Brower Window) và cửa sổ tài liệu (Document Window) bằng cách chọn thực đơn View>Brower
Hình 2.25 Giao diện của Rational Rose
3 Cửa sổ duyệt chứa danh sách toàn bộ phần tử mô hình trong mô hình hiện hành Browser có thể trôi nổi hay bám dính (docked) bằng cách nhấp đúp chuột trên biên cửa sổ Các phần tử mô hình hiển thì trong Browser dưới dạng cây Các thông tin nén đươc thể hiện bằng dấu + Nếu nhấn chuột trên dấu + ta sẽ có thông tín không nén
Thự hành: tạo lập tệp mô hình mới bằng cách chọn thực đơn File>New, File>Save as với tên tutorial.mdl
4 Cửa sổ tài liệu là nơi tạo lập, sửa đổi văn bản để gắn vào phần tử mô hình (tác nhân, UC, quan hệ, thuộc tính, thao tác, thành phần và nút) Để tạo tài liệu cho phần tử mô hình ta làm như sau: chọn phần tử (nhấn chuột lên phần tử), nhập tài liệu vào cửa sổ tài liệu Cửa sổ tài liệu cũng có thể tắt/mở, trôi nổi hay bám dính như cửa sổ Browse
Thự hành: Nhập tài liệu cho Use case View, Logical View và Component View
Use Case View chứa thông tin về tác nhân và UC cho hệ thống đang phát triển
Logical View chứa thông tin về lớp và quan hệ giữa chúng
Component View chứa thông tin về phần mềm và các phần tử khả thực và thư viện
5 Lưu trữ mô hình vào đĩa từ
Nơi đặt lại thuộc tính của Rose
Phát triển phần mềm bằng UML trang | 43
6 Cửa sổ biểu đồ là nơi cho phép ta tạo lập và sử đổi khung nhìn đồ họa mô hình hiện hành Mỗi biểu tượng trong biểu đồ biểu diễn một thành phần mô hình hóa Mỗi phần tử mô hình có thể hiển thị trong nhiều biểu đồ mô hình khác nhau Cửa sổ biểu đồ xuất hiện khi nhấn đúp chuột trên cửa sổ biểu đồ trong cửa sổ duyệt
Phát triển phần mềm bằng UML trang | 44
MÔ HÌNH HÓA TRƯỜNG HỢP SỬ DỤNG
P HÂN TÍCH TRƯỜNG HỢP SỬ DỤNG (U SE CASE – UC)
UC (Use Case) được Ivar Jacobson đề xuất vào năm 1994 trong quá trình làm việc tại Ericsson, nhằm mô tả cách người dùng tương tác với hệ thống phần mềm để thực hiện các tác vụ cụ thể UC tập trung vào hành vi của người dùng và hệ thống trong phạm vi các bước thực hiện nhiệm vụ, không phô diễn cách hệ thống hoạt động bên trong hay chi tiết thiết kế Đây là một phần quan trọng trong việc phân tích và xác định các yêu cầu của phần mềm, giúp chia nhỏ tiến trình của hệ thống thành các Use Case rõ ràng để dễ quản lý và phân công công việc cho nhóm phát triển Tư duy theo Use Case giúp làm rõ các chức năng cần thiết và nâng cao khả năng cộng tác trong quá trình phát triển phần mềm phù hợp với các tiêu chuẩn SEO về lập trình và phân tích yêu cầu.
UC là nền tảng quan trọng của phân tích hệ thống, giúp đảm bảo hệ thống đáp ứng đầy đủ mọi nhu cầu của người dùng Mỗi UC thể hiện một tập hợp hành động cụ thể, mô tả những gì hệ thống sẽ thực hiện để phục vụ người sử dụng Các hành động trong UC là những bước quan trọng, xác định rõ hệ thống cần hoàn thành hoặc không hoàn thành phần nào của chức năng Việc xác định đầy đủ các UC giúp xây dựng một hệ thống linh hoạt, đáp ứng chính xác các yêu cầu của người dùng.
3.1.2 - Xây dựng UC để làm gì?
Mục tiêu xây dựng UC trong tiến trình phát triển hệ thống phần mềm được tóm tắt như sau:
Hình thành quyết định và mô tả yêu cầu chức năng hệ thống là bước quan trọng trong quá trình phát triển phần mềm, xuất phát từ sự thỏa thuận giữa khách hàng và nhà phát triển hệ thống Quá trình này giúp xác định rõ các yêu cầu cần thiết để đảm bảo hệ thống hoạt động đúng mục đích và đáp ứng mong đợi của khách hàng Việc xây dựng các yêu cầu chức năng hệ thống giúp định hướng phát triển, nâng cao hiệu quả và chất lượng dự án phần mềm.
Hệ thống cần được mô tả rõ ràng và nhất quán để đảm bảo khả năng sử dụng xuyên suốt quá trình phát triển Việc xác định chính xác các chức năng và quy trình giúp mô hình hoạt động hiệu quả và dễ dàng mở rộng trong các giai đoạn tiếp theo Mô tả rõ ràng cũng tạo điều kiện thuận lợi cho các nhóm phát triển phối hợp và kiểm tra hệ thống một cách nhanh chóng, đồng thời nâng cao tính chuẩn hóa của dự án.
Cung cấp cơ sở để kiểm tra, thử nghiệm hệ thống
Cho khả năng dễ thay đổi hay mở rộng yêu cầu hệ thống
Hình 3.1 trình bày quy trình phân tích phần mềm dựa trên phương pháp hướng đối tượng, dựa trên Use Case (UC) Các hoạt động trong các giai đoạn phân tích, thiết kế, cài đặt, kiểm thử và thử nghiệm phần mềm đều liên quan chặt chẽ đến các UC Phương pháp này giúp xác định rõ các hành động và tương tác của người dùng, từ đó xây dựng hệ thống phần mềm linh hoạt, hiệu quả Việc sử dụng UC trong quy trình phát triển phần mềm nâng cao khả năng đáp ứng yêu cầu người dùng và giảm thiểu sai sót trong quá trình thiết kế.
Phát triển phần mềm bằng UML trang | 45
Hình 3.1 UC và tiến trình phát triển
UC (Use Case) là phương pháp giúp người phát triển, người sử dụng cuối cùng và các chuyên gia trong lĩnh vực hiểu rõ và giao tiếp hiệu quả với nhau Hình 3.2 minh họa rõ các bên cần UC và mục đích sử dụng của từng người, bao gồm người sử dụng diễn đạt yêu cầu UC, kiến trúc sư thiết kế UC, phân tích viên phân tích UC, lập trình viên triển khai UC, và nhân viên kiểm tra chất lượng xác nhận UC đúng yêu cầu Việc hiểu chính xác UC đóng vai trò then chốt trong quá trình phát triển phần mềm nhằm đảm bảo sản phẩm phù hợp với mong đợi và yêu cầu của người dùng.
Hình 3.2 Ai quan tâm đến UC?
3.1.3 - Tìm kiếm UC như thế nào ?
Việc xác định và hiểu rõ các yêu cầu hệ thống thường gặp khó khăn do khối lượng thông tin liên quan lớn, dẫn đến các yêu cầu được mô tả không có trật tự, mâu thuẫn nhau, thiếu sót và không chính xác Kết quả là tập yêu cầu trở nên mờ nhạt và khó chỉnh sửa Khái niệm UC (Use Case) ra đời nhằm tập trung biểu thị các yêu cầu từ phía người dùng, phản ánh quan điểm rằng hệ thống chủ yếu được xây dựng để phục vụ người sử dụng Phân chia tập yêu cầu giúp giảm thiểu đáng kể độ phức tạp trong quá trình xác định yêu cầu, từ đó nâng cao hiệu quả trong quá trình phát triển hệ thống.
Thu thập, lọc và đánh giá UC
Thiết kế và cài đặt
Kiểm tra xem UC có thỏa mãn không
UC gắn các bước trong tiến trình phát triển
Phát triển phần mềm bằng UML trang | 46
Hình 3.3 Phân hoạch yêu cầu bằng UC
Trong phương pháp hướng đối tượng, câu hỏi đặt ra khi bắt đầu thực hiện dự án thường là:
Tìm kiếm UC như thế nào? Không thể thiếu sự tham gia của khách hàng vào xây dựng UC
Hiểu rõ hệ thống sẽ được sử dụng như thế nào là yếu tố quan trọng trong quá trình phân tích yêu cầu Để xác định UC chính xác, phương pháp tối ưu là thực hiện phỏng vấn người sử dụng và khảo sát tài liệu của họ, đảm bảo sử dụng ngôn ngữ phù hợp với lĩnh vực và chính người dùng Phân tích lĩnh vực ứng dụng đòi hỏi sự hợp tác chặt chẽ giữa phân tích viên, các chuyên gia lĩnh vực và quản lý dự án, bởi các chuyên gia này có kinh nghiệm sử dụng và thiết kế các sản phẩm tương tự, giúp làm rõ cách người dùng tương tác với hệ thống Chất lượng phân tích phụ thuộc lớn vào việc giao tiếp, trao đổi kỹ lưỡng với chuyên gia lĩnh vực, và thường được thực hiện độc lập để dễ dàng so sánh các nhận thức và cách diễn đạt khác nhau Trong trường hợp có sự khác biệt, cần tổ chức các cuộc họp thảo luận chung để thống nhất hoặc làm rõ các vấn đề còn mâu thuẫn Kết quả ban đầu của hoạt động này là xác định các tác nhân và UC mức cao, mô tả yêu cầu chức năng của hệ thống Tuy nhiên, không phải người sử dụng nào cũng có thể mô tả rõ ràng cách họ muốn sử dụng hệ thống; họ thường biết nhiều hơn những gì họ diễn đạt Do đó, UC và biểu đồ UC là công cụ hiệu quả giúp người dùng thể hiện mong muốn của mình từ góc nhìn của họ đối với hệ thống.
Trong quá trình tìm kiếm UC, việc xác định tác nhân—là thực thể bên ngoài tương tác với hệ thống—là bước đầu quan trọng; tác nhân có thể là con người hoặc hệ thống, thiết bị phần cứng khác qua quá trình trao đổi thông tin Tác nhân con người, như khách hàng trong hệ thống ATM hoặc độc giả trong quản lý thư viện, đóng vai trò chính, nhưng không nhất thiết phải là người dùng cụ thể, mà là lớp thể hiện nhiệm vụ; ví dụ, độc giả là tác nhân, còn Anh Văn hay Chị Đào không phải Trong các hệ thống ngân hàng, hệ thống tín dụng cũng trở thành tác nhân khi giao tiếp với hệ thống rút tiền tự động của ATM để quản lý thông tin tài khoản tín dụng khách hàng Thời gian cũng đóng vai trò là tác nhân, bởi nó xác định thời điểm xảy ra các sự kiện trong hệ thống, góp phần vào quá trình xử lý và phản hồi của hệ thống.
Kỹ thuật tìm kiếm tác nhân giúp xác định ai sẽ sử dụng các chức năng chính của hệ thống và ai hỗ trợ hệ thống vận hành hàng ngày Đồng thời, phương pháp này còn giúp xác định ai quản trị, bảo dưỡng nhằm đảm bảo hệ thống hoạt động liên tục Ngoài ra, việc hiểu rõ hệ thống quản lý thiết bị phần cứng nào và hệ thống đang xây dựng tương tác với hệ thống khác cũng là phần quan trọng của quá trình phân tích tác nhân.
Tập các yêu cầu hệ thống
Phát triển phần mềm bằng UML trang | 47 ã Ai hay cỏi gỡ quan tõm đến kết quả hệ thống cho lại?
Sau khi xác định tác nhân, cần trả lời các câu hỏi để xác định các yêu cầu của Use Case (UC) Đặc biệt, cần làm rõ tác nhân yêu cầu hệ thống thực hiện chức năng gỡ như thế nào Ngoài ra, xác định các thao tác của tác nhân trong hệ thống bao gồm đọc, tạo lập, bỏ, lưu trữ và sửa đổi thông tin Cũng cần xem xét tác nhân có cần thông báo về sự kiện xảy ra trong hệ thống không, hoặc thông báo về những thay đổi nội bộ Cuối cùng, xác định rõ hệ thống cần nhập và xuất dữ liệu từ đâu đến đâu để đảm bảo các chức năng hoạt động trơn tru và phù hợp với quy trình hệ thống.
Sau khi xác định được UC, cần đặt tên cho chúng dựa trên khái niệm tác nghiệp, tránh sử dụng các thuật ngữ chuyên môn kỹ thuật Tên UC nên sử dụng động từ và ngắn gọn để thể hiện rõ hành động thực hiện UC phải độc lập với cài đặt và ngôn ngữ lập trình, có thể mô tả bằng nhiều hình thức như ngôn ngữ lập trình Java, C++, hoặc các công cụ mô hình như Rational Rose, Microsoft Modeler Việc đặt tên rõ ràng và mô tả chính xác giúp quản lý và phát triển hệ thống dễ dàng hơn.
UC bao gồm các phần tử sau đây: ã Khởi đầu UC - sự kiện khởi động UC Nú phải được mụ tả rừ ràng, thớ dụ, “UC bắt đầu khi
X xảy ra” ã Kết thỳc UC – sự kiện dừng UC Nú phải được nhận diện và làm tài liệu rừ ràng, thớ dụ,
Khi Use Case (UC) xảy ra, nó kết thúc đồng thời với kết thúc của tác nhân Mối tương tác giữa UC và tác nhân được mô tả rõ ràng trong hệ thống và bên ngoài hệ thống Việc trao đổi thông tin thể hiện các tham số của tương tác giữa hệ thống và tác nhân, nên được mô tả theo phong cách không phải phần mềm, ví dụ như “Người sử dụng làm việc với hệ thống và nhập tên, mật khẩu” Nền tảng và nguồn gốc của thông tin cần được xác định rõ ràng, chỉ ra khi nào hệ thống yêu cầu thông tin bên trong hoặc bên ngoài và khi nào lưu trữ chúng Hành vi lặp lại trong UC có thể được mô tả bằng giả lập mã (pseudo-code) Tình thế phụ phải được biểu diễn theo cách thống nhất giữa các UC để đảm bảo tính nhất quán trong hệ thống.
Mỗi hệ thống thường có từ 20 đến 50 Use Cases (UC), mỗi UC cần mô tả đầy đủ một giao dịch giữa người dùng và hệ thống để đảm bảo kết quả chính xác Sau khi xác định các UC, việc kiểm tra tính đầy đủ và phát hiện các UC chưa được xác định là vô cùng quan trọng, thông qua các câu hỏi như: Mỗi yêu cầu chức năng có trong ít nhất một UC không? Nếu không, yêu cầu đó sẽ không được triển khai Cần xem xét các yếu tố như các tác nhân tương tác với hệ thống, các thông tin cung cấp và nhận từ hệ thống, cũng như các hệ thống ngoài liên quan Các UC cũng phải xác định rõ các tác nhân bên ngoài nhận và gửi thông tin cho hệ thống Các UC còn lại thể hiện các tác nhân có đặc trưng như hoạt động kích hoạt, ra lệnh trực tiếp hoặc gián tiếp cho hệ thống thực hiện các chức năng cần thiết.
UC UC nối với tác nhân bằng quan hệ kết hợp giao tiếp
Phát triển phần mềm bằng UML là một phương pháp hiệu quả để thể hiện các khía cạnh của hệ thống UML cung cấp các công cụ giúp nhà phân tích và nhà phát triển hiểu rõ hơn về cấu trúc và hành vi của phần mềm, từ đó tối ưu hóa quá trình thiết kế và triển khai Việc sử dụng UML trong phát triển phần mềm mang lại lợi ích lớn, giúp giảm thiểu lỗi và tăng tính linh hoạt trong quá trình phát triển dự án Các biểu đồ UML như sơ đồ lớp, sơ đồ hoạt động và sơ đồ tuần tự giúp truyền tải thông tin rõ ràng, dễ hiểu và dễ bảo trì Tóm lại, phát triển phần mềm bằng UML mang lại giá trị lớn cho các nhà phát triển, giúp họ đạt được mục tiêu dự án một cách nhanh chóng và chính xác.
UC ã UC là hoàn chỉnh, nú được mụ tả đầy đủ, khụng chia UC thành cỏc UC nhỏ hơn
3.1.4 - Luồng sự kiện trong UC
B IỂU ĐỒ TRƯỜNG HỢP SỬ DỤNG
Mô hình UC trong UML được thể hiện qua các biểu đồ UC, là công cụ mạnh để thu thập yêu cầu hệ thống và hiển thị các tác nhân và UC, giúp dễ dàng giao tiếp giữa các bên liên quan Các biểu đồ UC thể hiện mối quan hệ giữa tác nhân và UC, thường tạo nhiều biểu đồ để phản ánh đầy đủ hệ thống, trong đó biểu đồ chính (Main) chỉ rõ nhóm UC lớn, còn các biểu đồ phụ thể hiện các tập UC nhỏ hơn Số lượng biểu đồ UC phù hợp (tốt nhất khoảng 50 cho dự án lớn) giúp đảm bảo đầy đủ thông tin mà không gây rối loạn Mục đích chính của biểu đồ UC là làm tài liệu cho tác nhân bên ngoài, UC bên trong hệ thống và các quan hệ giữa chúng Khi thiết kế, cần lưu ý không tạo hình ảnh giao tiếp rõ ràng chỉ giữa các tác nhân, mà sử dụng biểu đồ luồng công việc nếu cần khảo sát quan hệ này; không hình thành quan hệ trực tiếp giữa hai UC trừ các trường hợp sử dụng quan hệ Uses hoặc mở rộng (extends); và mỗi UC cần được thể hiện rõ sự khởi động, trừ các trường hợp đặc biệt Cơ sở dữ liệu (CSDL) được coi như lớp dưới toàn bộ biểu đồ UC, có thể nhập dữ liệu qua một UC và truy cập bằng UC khác mà không tạo luồng thông tin trực tiếp giữa các UC.
Phát triển phần mềm bằng UML trang | 51
Hình 3.5 Các UC trừu tượng
Trong UML, UC trừu tượng là các Use Case không thể được khởi động trực tiếp bởi tác nhân, nhưng cung cấp các chức năng cho các UC khác sử dụng Chúng thường tham gia vào các quan hệ Uses hoặc extends, giúp tổ chức và mô tả rõ ràng hơn các chức năng chung trong hệ thống Hình 3.5 minh họa ví dụ về sơ đồ sử dụng có sử dụng UC trừu tượng, thể hiện mối liên hệ và vai trò của chúng trong tổng thể hệ thống.
Tác nhân không có hiện thực (tác nhân trừu tượng) được hiểu là các khái niệm tổng quát trong hệ thống quản lý nhân sự Ví dụ, khi chia nhân viên thành các nhóm như nhân viên hưởng lương tháng, nhân viên hưởng lương theo giờ và nhân viên hợp đồng, những nhóm này được xem như các tác nhân trong hệ thống Tuy nhiên, không tồn tại một "nhân viên" chung nào với tất cả đặc điểm này, mà chỉ có các loại nhân viên riêng biệt, tạo thành một tác nhân trừu tượng mang các tính chất chung của các nhóm này Tác nhân trừu tượng này không có hiện thực cụ thể mà chỉ là khái niệm nhằm mô tả các mối quan hệ trong hệ thống quản lý nhân sự, như được thể hiện trong hình 3.6.
Trong UML, các kiểu quan hệ giữa UC (Use Case) và tác nhân gồm có quan hệ giao tiếp, quan hệ sử dụng (Uses), quan hệ mở rộng (extends) và quan hệ tổng quát hóa (generalization) Những mối quan hệ này giúp mô tả cách tác nhân tương tác và liên kết với các chức năng trong hệ thống, nâng cao khả năng phân tích và thiết kế phần mềm một cách rõ ràng, chính xác Các kiểu quan hệ này đóng vai trò quan trọng trong việc xây dựng sơ đồ Use Case xây dựng mô hình nghiệp vụ hiệu quả, đồng thời hỗ trợ việc nhận diện các tác nhân và các hoạt động phù hợp trong hệ thống phần mềm.
Xac thuc khach hang KhachHang
Phát triển phần mềm bằng UML trang | 52
Trong UML, quan hệ giao tiếp được thể hiện bằng mũi tên để làm rõ các mối liên hệ giữa các tác nhân và hệ thống Ví dụ, hình 3.7 mô tả tác nhân Khách hàng có quan hệ với hệ thống để thực hiện chức năng Rút tiền, cho thấy sự tương tác trực tiếp giữa người dùng và hệ thống trong quá trình giao dịch tài chính.
UC Rút tiền kích hoạt tác nhân Hệ thống thanh toán
Quan hệ sử dụng ( Uses ) Trong phiên bản UML 1.3, quan hệ Uses được gọi là quan hệ gộp
Quan hệ Uses cho phép một UC sử dụng chức năng của UC khác, thường để mô hình hóa các chức năng sử dụng lại chung cho nhiều UC Ví dụ, trong hệ thống máy rút tiền tự động ATM, các UC như Rút tiền và Gửi tiền vào ngân hàng cần xác nhận khách hàng và số căn cước cá nhân (PIN) trước khi thực hiện giao dịch Do đó, chức năng xác nhận này có thể được đặt trong một UC riêng gọi là Xác nhận khách hàng, giúp tăng tính tái sử dụng và rõ ràng trong hệ thống.
UC nào cần xác định khách hàng thì sử dụng UC này
Hình 3.7 Quan hệ giao tiếp
Trong UML, quan hệ Uses được thể hiện bằng mũi tên kèm theo từ , như minh họa trong hình 3.8 Trong sơ đồ này, hai Use Case (UC) Rút tiền và Gửi tiền đều sử dụng chức năng của UC Xác nhận khách hàng UC Xác nhận khách hàng là một UC trừu tượng, nhằm phục vụ như một thành phần trung tâm trong quy trình xác thực khách hàng Các UC Rút tiền và Gửi tiền vào là các Use Case cụ thể, dựa trên chức năng được cung cấp bởi UC Xác nhận khách hàng để thực hiện các giao dịch tài chính.
UC cụ thể Các hình chữ nhật gấp góc là các chú thích của biểu đồ
Quan hệ mở rộng ( extends ) Quan hệ mở rộng cho phép UC mở rộng tùy ý chức năng do
Trong UML, quan hệ mở rộng (extends) cho phép mở rộng một Use Case (UC) bằng cách gộp các hành vi tổng quát hơn để tái sử dụng, phù hợp trong những điều kiện nhất định Quan hệ này tương đồng với quan hệ Uses, đều tách phần chức năng chung ra thành một UC trừu tượng, giúp tăng tính linh hoạt và dễ quản lý trong thiết kế hệ thống Trong sơ đồ UML, quan hệ mở rộng được thể hiện bằng mũi tên với từ khóa , như minh họa trong hình 3.9, giúp phân biệt rõ ràng các phần mở rộng của Use Case.
Phát triển phần mềm bằng UML trang | 53
Trong hình 3.9, mô tả UC Rút tiền đôi khi sử dụng chức năng trong UC Rút tiền nhanh, chỉ hoạt động khi khách hàng chọn thuộc tính rút nhanh cho các khoản tiền nhỏ, như không quá 100.000đ, giúp bỏ qua các thao tác không quan trọng UC Rút nhanh cung cấp chức năng mở rộng, là một UC trừu tượng, còn Rút tiền là UC cụ thể, đảm bảo tối ưu hóa quy trình rút tiền cho khách hàng.
Quan hệ tổng quát hóa ( generalization ) tác nhân Quan hệ tổng quát hóa tác nhân
Trong hệ thống, hình 3.9 trình bày quan hệ mở rộng để thể hiện các tác nhân có điểm chung, ví dụ như hệ thống phân chia khách hàng thành khách hàng cá nhân và khách hàng tập thể Hình 3.10 mô tả cụ thể hai loại khách hàng này là các tác nhân cụ thể, trong đó có thể định nghĩa một loại tác nhân tổng quát là "Khách hàng" và sử dụng quan hệ tổng quát hóa để đặc biệt hóa thành các loại cụ thể như khách hàng cá nhân và khách hàng tập thể Tác nhân "Khách hàng" được xem là tác nhân trừu tượng, và có thể tiếp tục phân chia như khách hàng tập thể thành các nhóm nhỏ hơn như công ty tư nhân hoặc tổ chức chính phủ để xây dựng các quan hệ tổng quát hóa một cách rõ ràng và chi tiết hơn.
Hình 3.10 Quan hệ tổng quát hóa tác nhân
Trong quá trình phân tích hệ thống, không bắt buộc phải luôn tạo ra các mối quan hệ theo các kiểu đã trình bày trước đó Khi khách hàng là tập thể tác động đến một số UC nhưng không tác động đến khách hàng cá nhân, cần tổng quát hóa các tác nhân để phản ánh chính xác mối liên hệ Ngược lại, nếu cả khách hàng cá nhân và tập thể đều tác động cùng một UC, việc tổng quát hóa tác nhân không còn cần thiết, như ví dụ về biểu đồ UC của hệ thống ATM đã được mô tả trong hình 2.16 của chương 2.
Phát triển phần mềm bằng UML trang | 54
T HỰC HÀNH
Khởi động phần mềm Rational Rose 2000
Hình 3.11 Bổ sung UC mới
3.3.1.1 - T ạ o l ậ p bi ể u đồ tr ườ ng h ợ p s ử d ụ ng (UC)
Trong Rose các biểu đồ UC được tạo lập trong khung nhìn USE case Rose cung cấp biểu đồ
UC mặc định có tên là Main, và số lượng biểu đồ UC có thể tạo là không giới hạn để phù hợp với nhu cầu phân tích Để truy cập vào biểu đồ Main Use Case, người dùng thực hiện theo các bước hướng dẫn trong hình 3.11, giúp dễ dàng thao tác và tùy chỉnh biểu đồ theo mong muốn.
1 Nhấn chuột vào dấu + cạnh USE Case View trong Browser để mở chúng
2 Nhìn thấy được biểu đồ Main USE Case
3 Nhấp đúp trong Main diagram để mở chúng
Tạo lập biểu đồ USE case mới:
1 Nhấn phím phải trong gói USE Case View trong Browser
2 Chọn New > USE Case Diagram từ thực đơn
3 Đặt tên cho biểu đồ mới
4 Nhấp đúp trên tên của biểu đồ mới để mở chúng
Sử dụng các phím trên thanh công cụ để bổ sung các phần tử biểu đồ vào biểu đồ UC mới
Phát triển phần mềm bằng UML trang | 55
Bạn có thể bỏ biểu đồ UC trong trình duyệt, nhưng cần lưu ý rằng khi xóa biểu đồ UC thì không thể khôi phục lại được Quy trình xóa biểu đồ UC diễn ra theo một trật tự nhất định, đảm bảo quá trình thực hiện diễn ra suôn sẻ và chính xác.
1 Nhấn phím phải trên biểu đồ UC trong Browser
2 Chọn Delete từ thực đơn
Có hai cách để bổ sung Use Case vào mô hình, gồm bổ sung UC vào biểu đồ Use Case hiện có hoặc thêm trực tiếp Use Case mới vào trình duyệt Trong đó, việc bổ sung Use Case mới vào biểu đồ Use Case được thực hiện một cách dễ dàng và hiệu quả, giúp nâng cao khả năng mô hình hóa yêu cầu hệ thống một cách rõ ràng và trực quan Việc cập nhật biểu đồ Use Case đảm bảo mô hình phản ánh đúng các chức năng mới của hệ thống, hỗ trợ quá trình phân tích và thiết kế phần mềm một cách chính xác và tối ưu.
1 Chọn phím USE case trên thanh công cụ
2 Nhấn bất kỳ đâu trên biểu đồ Use case Use case mới có tên là NewUSECase
3 Nhập tên cho USE case mới
4 Use case mới tự động cập nhật vào cửa sổ BROWSER, dưới khung nhìn UC
Bổ sung USE case tồn tại trong mô hính vào biểu đồ USE case:
1 Di USE case từ BROWSER vào biểu đồ USE case đang mở
Bổ sung USE case vào BROWSER được thực hiện như sau:
Nhấn phím chuột phải trên gói khung nhìn Use case trong Browser
3 Use case mới sẽ xuất hiện trong BROWSER
4 Đặt tên cho USE case mới
5 Để gắn USE case vào biểu đồ, di USE case mới từ BROWSER vào biểu đồ
Có khả năng bãi bỏ UC trong một biểu đồ hay trong toàn bộ các biểu đồ của mô hình Việc bỏ
UC khỏi biểu đồ UC như sau:
1 Chọn USE case trong biểu đồ
3 Use case đã chọn sẽ biến mất khỏi biểu đồ USE case nhưng nó còn trong BROWSER và trong các biểu đồ khác
Việc bãi bỏ USE case trong toàn bộ mô hình được thực hiện như sau:
1 Chọn USE case trong biểu đồ
2 Chọn Edit> Delete from Model hay nhấn các phím Ctrl+D
3 Use case vừa chọn bị loại bỏ trong toàn bộ mô hình và BROWSER
Phát triển phần mềm bằng UML trang | 56
Rose cho khả năng đặc tả chi tiểt từng USE case, cho khả năng làm tài liệu thuộc tính như tên, mức ưu tiên, stereotype của USE case
Mở đặc tả Use case theo các bước sau:
1 Nhấn phím chuột phải trên Use case biểu đồ Use case
2 Chọn thực đơn Open Specification
1 Nhấn phím chuột phải trên Use case trong Browser
2 Chọn thực đơn Open Specification
Trong mô hình, mỗi Use Case cần có tên duy nhất và độc lập với cài đặt để đảm bảo rõ ràng và dễ quản lý Thông thường, tên Use Case được đặt dựa trên động từ hoặc các câu ngắn mô tả hành động chính, giúp người đọc dễ hiểu mục đích và chức năng của từng Use Case Việc đặt tên phù hợp và súc tích là phần quan trọng trong quá trình thiết kế hệ thống, góp phần tăng tính rõ ràng và hiệu quả trong phạm vi dự án.
1 Chọn Use case trong Browser hay trong biểu đồ Use case
Bổ sung tài liệu cho Use case:
1 Chọn Use case trong Browser
2 Nhập mô tả Use case trong cửa sổ tài liệu
3.3.1.7 - Quan sát thành viên c ủ a USE case
Rose cho phép liệt kê toàn bộ các lớp và thao tác trong một Use Case (UC) cụ thể, giúp dễ dàng theo dõi ảnh hưởng của các thay đổi yêu cầu đối với từng lớp Chức năng này hỗ trợ quản lý và phân tích các thành phần trong UC một cách rõ ràng và chính xác Để xem các lớp và thao tác tham gia trong Use Case, người dùng chỉ cần thực hiện các bước đơn giản, từ đó có cái nhìn tổng quan về quá trình và các bước liên quan trong hệ thống.
1 Chọn Use case trong biểu đồ Use case
2 Chọn Report> Show Participants trong UC
3 Cửa sổ Participants sẽ hiển thị
3.3.1.8 - Gán Stereotype cho Use case
Trong UML, stereotype được sử dụng để phân nhóm các thành phần mô hình một cách rõ ràng Mặc dù stereotype không thường xuyên được áp dụng cho Use case, nhưng chúng thường được sử dụng để phân loại các lớp hoặc các quan hệ trong hệ thống Ví dụ, ta có thể tạo ra các stereotype cho Use case A và Use case B để phân biệt chúng một cách dễ dàng hơn trong mô hình UML Việc sử dụng stereotype giúp nâng cao tính trực quan và quản lý dễ dàng các thành phần trong sơ đồ hệ thống.
Gán stereotype cho Use case như sau:
1 Nhấn phím chuột phải trên Use case trong Browser hay trong biểu đồ UC
3 Nhập stereotype trong vùng stereotype
Phát triển phần mềm bằng UML trang | 57
3.3.1.9 - Gán m ứ c ư u tiên cho Use case
Bạn có thể gán mức ưu tiên cho các Use Case để xác định trình tự thực hiện các tác vụ, từ đó tối ưu hóa quy trình làm việc Việc gán mức ưu tiên này được thực hiện thông qua Open Specification, tương tự như phương pháp đã áp dụng ở các trường hợp trước Điều này giúp quản lý các Use Case một cách hiệu quả hơn, đảm bảo các tác vụ quan trọng được ưu tiên xử lý trước.
3.3.1.10 - T ạ o l ậ p USE case tr ừ u t ượ ng
Use case trừu tượng là một loại Use case không thể được kích hoạt trực tiếp bởi tác nhân mà thay vào đó cung cấp các chức năng bổ sung để các Use case khác có thể sử dụng Việc tạo Use case trừu tượng giúp tổ chức các chức năng chung, giảm thiểu sự trùng lặp và nâng cao tính mở rộng của hệ thống Đây là bước quan trọng trong việc thiết kế Use case hiệu quả, đảm bảo tính linh hoạt và dễ bảo trì của phần mềm.
1 Tạo Use case trong Browser hay biểu đồ Use case
2 Nhấn phím chuột phải trên biểu đồ Use case hay trong Browser
Sau khi chọn thực đơn đặc tả UC theo chuẩn mở (Open Specification), bạn có thể quan sát các biểu đồ thể hiện ý nghĩa của các UC, các mối quan hệ giữa các UC và giữa UC với tác nhân Bên cạnh đó, bảng Files trong cửa sổ còn cho phép gán tệp tin vào UC, giúp tích hợp tài liệu về luồng sự kiện một cách dễ dàng Đây là quá trình quan trọng để đảm bảo việc phân tích và mô hình hóa hệ thống được rõ ràng, chính xác theo tiêu chuẩn UML.
UC, đặc tả các yêu cầu, các kịch bản… Gán tệp vào UC theo các bước sau:
1 Nhấn phím chuột phải vào vùng trắng của Files tab
2 Chọn thực đơn Insert File để xen tệp
3 Sử dụng hộp thoại Open để tìm tên tệp sẽ gán
4 Chọn Open để gắn tệp vào UC
Trong quá trình xây dựng biểu đồ Use Case (UC), có thể dễ dàng bổ sung tác nhân vào biểu đồ UC hoặc trực tiếp vào trình duyệt nhằm mô tả rõ hơn các vai trò và tương tác của tác nhân trong hệ thống Một tác nhân trong trình duyệt có thể được bổ sung vào nhiều biểu đồ UC khác nhau, giúp thể hiện mối liên hệ và phạm vi hoạt động của tác nhân đó trong các phần khác nhau của hệ thống một cách trực quan, dễ hiểu.
Trình tự bổ sung tác nhân vào biểu đồ UC như sau:
1 Chọn phím Actor trên thanh công cụ
2 Nhấn bất kỳ đâu trong biểu đồ UC Tác nhân mới sẽ được gán tên mặc định là NewClass
3 Nhập tên cho tác nhân mới, nó được tự động gán vào browser
Để hủy bỏ tác nhân khỏi biểu đồ UC, bạn chỉ cần chọn tác nhân đó rồi nhấn phím Delete Nếu muốn loại bỏ tác nhân khỏi mô hình, hãy chọn tác nhân rồi nhấn tổ hợp phím Ctrl+D để thực hiện nhanh chóng.
Tương tự như Use case, tác nhân cũng có cửa sổ đặc tả để đặt tên, stereotype, số yếu tố
(cardinality) và các chi tiết khác
Phát triển phần mềm bằng UML trang | 58
Sau khi nhấn phím phải chuột trên tác nhân trong biểu đồ UML hoặc Browser, người dùng có thể chọn chức năng "Open Specification" để gán tên, stereotype cho tác nhân Đây là thao tác giúp tùy biến và mô tả rõ hơn về tác nhân trong sơ đồ UML, tương tự như việc gán đặc tả cho Use Case (UC) đã đề cập Quá trình này giúp tăng tính trực quan và dễ dàng quản lý, chỉnh sửa sơ đồ UML một cách chuyên nghiệp.
Số yếu tố thể hiện tổng số hiện thực (instance) của tác nhân là một chỉ số quan trọng trong phân tích dữ liệu Ví dụ, số yếu tố có thể phản ánh số lượng khách hàng hoặc số lượng người làm quản trị, giúp xác định quy mô và phạm vi hoạt động của tác nhân trong hệ thống Việc xác định đúng số yếu tố là yếu tố then chốt để nâng cao hiệu quả quản lý và đưa ra các chiến lược phù hợp.
Số yếu tố Ý nghĩa n (mặc định) Nhiều
Nhập số yếu tố trong Detail tab sau khi chọn thực đơn Open Specification
3.3.1.16 - T ạ o l ậ p tác nhân tr ừ u t ượ ng
Tạo tác nhân trừu tượng là tác nhân không có hiện thực (instance), số yếu tố của nó bằng 0 tác nhân trừu tượng được tạo lập như sau:
1 Tạo tác nhân trong Browser hay biểu đồ UC
2 Nhấn phím phải chuột trên tác nhân
3 Chọn thực đơn Open Specification
5 Đánh dấu hộp thoại Abstract
3.3.1.17 - Các quan h ệ trong bi ể u đồ
Bổ sung quan hệ uses vào biểu đồ UC theo các bước sau
1 Chọn phím Generalization trên thanh công cụ
2 Nối UC cụ thể để UC trừu tượng
3 Nhấn phím phải chuột trên đường quan hệ, chọn thực đơn Open Specification
4 Trong cửa sổ Stereotype: nhập uses
5 Mở cửa sổ UC specification của UC trừu tượng
6 Đánh dấu vào hộp thoại Abstract
Bãi bỏ quan hệ uses trong biểu đồ UC theo các bước sau:
Phát triển phần mềm bằng UML trang | 59
1 Chọn quan hệ trên biểu đồ UC
2 Chọn Edit> Delete from ModelI hay nhấn phím Ctrl+D
Việc bổ sung và bãi bỏ quan hệ extends trong biểu đồ UC diễn ra theo quy trình tương tự như việc thêm hoặc loại bỏ quan hệ uses đã được mô tả trước đó Quá trình này giúp cập nhật và điều chỉnh sơ đồ sử dụng một cách linh hoạt và chính xác nhằm phản ánh các mối quan hệ thực tế trong hệ thống phần mềm Việc này đảm bảo tính rõ ràng, dễ hiểu của biểu đồ UC, hỗ trợ quá trình phân tích và thiết kế hệ thống hiệu quả hơn.
Bổ sung quan hệ khái quát hóa tác nhân (actor generalization) như sau:
1 Chọn quan hệ trên biểu đồ UC
2 Chọn phím Generalization trên thanh công cụ
3 Vẽ từ tác nhân cụ thể sang tác nhân trừu tượng
4 Mở cửa sổ đặc tả tác nhân của tác nhân trừu tượng
Quan hệ khái quát hóa tác nhân được hủy bỏ bằng cách nhấn phím Ctrl+D sau khi đã chọn quan hệ trên biểu đồ UC
3.3.1.18 - Làm vi ệ c v ớ i ghi chú (notes)
Khi tạo biểu đồ, nên gắn ghi chú vào UC hoặc tác nhân để làm rõ lý do tại sao tác nhân tương tác với UC, cũng như ý nghĩa của các mối quan hệ như uses hay extends Việc thêm ghi chú giúp minh họa rõ ràng các mối liên hệ và lý do kế thừa giữa các UC hoặc tác nhân khác nhau, từ đó nâng cao tính trực quan và dễ hiểu của sơ đồ Rational Rose cung cấp công cụ trên thanh công cụ để dễ dàng thực hiện việc này, giúp người thiết kế biểu đồ ghi chú trực tiếp và thuận tiện hơn Bổ sung ghi chú vào biểu đồ không chỉ giúp làm rõ mối quan hệ mà còn nâng cao khả năng truyền đạt ý tưởng trong quá trình phân tích hệ thống.
1 Chọn phím Note trên thanh công cụ
2 Nhấn chuột vào nơi muồn đặt ghi chú trên biểu đồ
3 Nhập văn bản cho nó
Gắn ghi chú vào phần tử mô hình sau:
1 Chọn phím Anchor Note to Item trên thanh công cụ
2 Di từ ghi chú đến tác nhân liên quan Rose sẽ vẽ đường nét đứt giữa chúng
Bãi bỏ ghi chú bằng cách thực hiện các bước sau:
1 Chọn ghi chú hay hộp văn bản trong biểu đồ
2 Nhấn phím Delete trên bàn phím