Tổng quan về UML
Quá trình hình thành và nguyên nhân ra đời
1.1.1 Quá trình hình thành UML
Hướng đối tượng bắt nguồn từ ngôn ngữ lập trình Simula và trở nên phổ biến với C++ và Small Talk vào cuối những năm 80 Khi các ngôn ngữ này được sử dụng rộng rãi, nhu cầu phát triển phần mềm hướng đối tượng gia tăng Vào đầu những năm 90, nhiều phương pháp hướng đối tượng như Booch, OMT và OOSE đã ra đời, mỗi phương pháp có ký pháp và công cụ riêng, gây khó khăn cho người dùng trong việc lựa chọn Nhằm giải quyết vấn đề này, vào năm 1994, các tác giả đã hợp tác để phát triển phương pháp mới, bắt đầu bằng việc thống nhất Booch và OMT-2 thành Unified Method 0.8 tại Rational Rose Corporation Tháng 6 năm 1995, Ivar Jacobson gia nhập nhóm, dẫn đến việc hình thành ngôn ngữ mô hình hóa thống nhất, hay UML Các phiên bản UML, bắt đầu từ UML 0.9 vào năm 1995 và UML 1.0 vào năm 1997, được xây dựng trên nền tảng của các phương pháp trước đó và còn bao gồm nhiều khái niệm từ các phương pháp khác UML cũng nhận được sự đóng góp từ các công ty lớn như DEC, HP, và IBM, với phiên bản UML 1.1 được đệ trình lên OMG, và hiện nay đã có nhiều phiên bản khác như UML 2.0, UML 3.0.
Hiện nay, có nhiều phương pháp phân tích thiết kế hướng đối tượng như OOA (Phân tích hướng đối tượng) của Booch và OMT (Kỹ thuật mô hình đối tượng) của Dumbaugh Mỗi phương pháp đều có những đặc điểm mạnh và yếu riêng.
Mỗi phương pháp đều không thể đáp ứng đầy đủ nhu cầu của người sử dụng, vì vậy việc áp dụng một ngôn ngữ mô hình hóa chuẩn trong suốt vòng đời phát triển là rất quan trọng UML, ngôn ngữ mô hình hóa hợp nhất, được coi là công cụ đồ họa giúp biểu diễn trực quan, đặc tả, xây dựng và lập tài liệu cho các thành phần trong hệ thống Nó cung cấp một phương pháp chuẩn để mô tả hệ thống, bao gồm cả các khía cạnh như quy trình kinh doanh và chức năng hệ thống, cũng như các yếu tố cụ thể như các lớp.
Sinh viên Chu Văn Thức - 48K_CNTT 3 đã thực hiện một bài viết về ngôn ngữ lập trình UML UML ra đời như một nhu cầu thiết yếu, đáp ứng đầy đủ các yêu cầu từ người dùng.
Khái quát về UML
UML, hay ngôn ngữ mô hình hóa, là một công cụ quan trọng để mô tả ký pháp thống nhất và định nghĩa metamodel trong phát triển phần mềm Nó không chỉ cung cấp một cách tiếp cận để hiển thị và đặc tả các yếu tố trong phân tích và thiết kế mà còn đóng vai trò quan trọng trong việc xây dựng tài liệu cho hệ thống phần mềm hướng đối tượng UML có thể được áp dụng cho mọi quy trình phát triển phần mềm, từ đầu đến cuối, một cách độc lập với công nghệ cài đặt hệ thống.
UML là ngôn ngữ chuẩn cho việc lập kế hoạch chi tiết phần mềm, phù hợp với việc mô hình hóa các hệ thống như hệ thống thông tin doanh nghiệp và ứng dụng phân tán trên nền web Nó dễ hiểu và dễ sử dụng, phục vụ cho cả con người và máy Giống như các ngôn ngữ mô hình hóa khác, UML có cú pháp và quy tắc sử dụng, bao gồm cú pháp, ngữ nghĩa và luật hình thành câu Để áp dụng UML hiệu quả, cần nắm vững ba nội dung chính.
Các phần tử cơ bản của mô hình trong UML
Các quy đị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à một ngôn ngữ quan trọng trong phát triển phần mềm, tuy nhiên nó không phụ thuộc vào quy trình cụ thể nào Đặc biệt, UML rất thích hợp cho các quy trình phát triển dựa trên trường hợp sử dụng (Use case - UC).
Ngôn ngữ cần có từ vựng và quy tắc kết hợp để giao tiếp hiệu quả Ngôn ngữ mô hình tập trung vào việc biểu diễn các khía cạnh vật lý và khái niệm của hệ thống UML, với vai trò là ngôn ngữ chuẩn công nghiệp, cung cấp hướng dẫn chi tiết cho việc lập kế hoạch phần mềm Từ vựng và quy tắc của UML giúp xác định các mô hình cần thiết và thời điểm thích hợp để xây dựng chúng.
-UML là ngôn ngữ hiển thị:
UML là công cụ hữu ích giúp xây dựng mô hình giao tiếp hiệu quả Một số công việc thích hợp với mô hình hóa bằng văn bản, trong khi những công việc khác lại phù hợp hơn với mô hình hóa đồ họa Là một ngôn ngữ đồ họa, UML giúp dễ dàng truyền đạt ý tưởng, đặc biệt trong các hệ thống phức tạp, nơi mà mô hình đồ họa thường dễ hiểu hơn so với mã nguồn lập trình Mỗi biểu tượng trong UML đều mang ý nghĩa riêng, hỗ trợ việc diễn đạt thông tin rõ ràng.
Khi xây dựng mô hình trong UML, việc đảm bảo ngữ nghĩa rõ ràng là rất quan trọng để các nhà phát triển khác và các công cụ hỗ trợ mô hình hóa có thể hiểu mô hình một cách dễ dàng.
UML là ngôn ngữ đặc tả giúp mô tả rõ ràng và chính xác các điểm mấu chốt của vấn đề Nó cho phép xây dựng mô hình không nhập nhằng và hoàn thiện, phục vụ cho việc thiết kế, phân tích và quyết định cài đặt trong quá trình phát triển và triển khai hệ thống phần mềm.
-UML là ngôn ngữ để xây dựng:
Mô hình của UML có thể kết nối trực tiếp với các ngôn ngữ lập trình khác nhau
Ánh xạ mô hình trong UML cho phép chuyển đổi giữa các ngôn ngữ lập trình như Java, C++ và các hệ quản trị cơ sở dữ liệu quan hệ hoặc hướng đối tượng Quá trình này không chỉ hỗ trợ việc chuyển đổi từ UML sang ngôn ngữ lập trình mà còn cho phép quay ngược lại, đảm bảo tính nhất quán khi làm việc với cả văn bản và đồ họa.
-UML là ngôn ngữ làm 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à chi tiết liên quan Nó cho phép biểu diễn yêu cầu, thử nghiệm, mô hình hóa các hoạt động lập kế hoạch và quản lý sản phẩm một cách hiệu quả.
UML cho biết giới hạn của hệ thống và các chức năng chính của nó thông qua
Trong UML ,các UC được mô tả bằng biểu đồ logic
Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đồ lớp
Mô hình hoá 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
1.2.2 So sánh với các phương pháp khác
UML không hoàn toàn tách biệt khỏi ba phương pháp cơ bản là Booch, OMT và OOSE, mà nó tổng hợp tinh hoa của cả ba phương pháp này Những người đã từng sử dụng Booch, OMT, OOSE vẫn có thể áp dụng kiến thức và công cụ của họ khi chuyển sang UML UML cung cấp khả năng mô tả hệ thống một cách rõ ràng và thống nhất hơn so với các phương pháp và ngôn ngữ khác Điều này mang lại giá trị cho người sử dụng, vì UML cho phép lập mô hình mọi công việc trong dự án, điều mà trước đây chưa có ngôn ngữ nào thực hiện được.
Những người đã từng sử dụng các phương thức và ngôn ngữ mô hình hóa khác sẽ nhận được nhiều lợi ích khi chuyển sang sử dụng ngôn ngữ UML, vì nó giúp họ tối ưu hóa quy trình làm việc và cải thiện khả năng giao tiếp trong phát triển phần mềm.
UML là một ngôn ngữ mô hình hóa mạnh mẽ với hệ thống ký hiệu rõ ràng và tính thống nhất cao, được hỗ trợ bởi nhiều công cụ phát triển phần mềm Người dùng có thể dễ dàng chuyển đổi các mô hình hiện tại sang UML mà không lo mất thông tin Đối với những ai đã quen với phương pháp lập trình hướng đối tượng, việc học UML sẽ diễn ra nhanh chóng, giúp họ đạt được trình độ tương đương với các phương pháp trước đó.
UML là sự kết hợp của các phương pháp lập trình hướng đối tượng, do đó nó kế thừa nhiều khái niệm quan trọng từ những phương pháp này.
Lược đồ Use-case tương tự như trong phương pháp OOSE
Lược đồ lớp được kế thừa từ OMT và Booch và hầu hết các phương pháp hướng đối tượng khác
Cơ chế mở rộng (extension mechanism) trong UML được định nghĩa trên nhiều loại lược đồ và hỗ trợ cho các mô hình khác nhau, giúp tạo ra các thành phần đa dạng với đặc điểm riêng biệt của hệ thống Mục đích của cơ chế này là hỗ trợ các khía cạnh khác nhau trong việc mô hình hóa Nhiều khái niệm bổ sung liên quan đến cơ chế mở rộng, như khuôn mẫu (stereotypes), ràng buộc (constraints) và giá trị đính kèm (tagged values), đã được giới thiệu, điều này trước đây chưa từng được mô tả trong các ngôn ngữ mô hình hóa chủ yếu khác.
Lược đồ State-chart cơ bản được phát triển dựa trên mô hình của David Harel với một số điều chỉnh nhỏ Nó chủ yếu dựa vào các ngữ nghĩa cơ bản để định nghĩa State-chart của UML và tương tự như lược đồ luồng công việc trong nhiều phương pháp khác.
Lược đồ tuần tự được tìm thấy trong nhiều phương pháp hướng đối tượng dưới nhiều tên gọi khác nhau( interaction, message trace hoặc event trace)
Ứng dụng của UML và tiến trình phát triển ứng dụng
Tầm quan trọng của UML
Trong lĩnh vực xây dựng, kiến trúc sư thiết kế toà nhà và người xây dựng sử dụng bảng thiết kế để hiện thực hóa ngôi nhà Sự phức tạp của toà nhà tạo ra thách thức trong giao tiếp giữa kiến trúc sư và người xây dựng Bảng thiết kế đóng vai trò như ngôn ngữ đồ hoạ chuẩn mà cả hai bên cần nắm vững để thực hiện công việc hiệu quả.
Việc phát triển phần mềm khác biệt hoàn toàn so với xây dựng công trình Sự phức tạp của hệ thống cơ sở làm cho giao tiếp giữa các cá nhân liên quan đến quy trình tạo và triển khai phần mềm trở nên khó khăn hơn Trong bối cảnh này, UML đã ra đời như một ngôn ngữ thiết kế phần mềm, phục vụ cho các nhà phân tích, nhà thiết kế và lập trình viên UML hỗ trợ mọi người, từ nhà phân tích nghiệp vụ đến lập trình viên, trong việc hiểu rõ hơn về quy trình thiết kế phần mềm.
UML là công cụ hiệu quả trong việc giải quyết các vấn đề hướng đối tượng, bắt đầu từ việc xây dựng mô hình Mô hình này đóng vai trò là sự trừu tượng hóa của vấn đề, trong khi phạm vi của nó phản ánh thế giới thực mà vấn đề đó liên quan đến.
Mô hình này bao gồm các đối tượng tương tác với nhau thông qua việc truyền tải thông tin khác nhau Mỗi đối tượng tồn tại đều sở hữu các thuộc tính và hành vi riêng Giá trị của các thuộc tính trong mỗi đối tượng được xác định dựa trên trạng thái hiện tại của nó.
Lớp là cấu trúc thiết kế cho các đối tượng, bao gồm các thuộc tính và hành vi (phương thức hoặc hàm) của một thực thể riêng biệt Các đối tượng được tạo ra từ các lớp, đóng vai trò là các thể hiện cụ thể của chúng.
Tiến trình phát triển phần mềm RUP và mối quan hệ với UML
Phát triển phần mềm có nhiều phương pháp khác nhau, bao gồm các tiến trình như thác nước, lặp và tăng dần Một trong những quy trình phần mềm nổi tiếng là quy trình do hãng Rational phát triển, có mối liên hệ chặt chẽ với UML.
RUP (Rational Unified Process) là quy trình phát triển phần mềm do hãng Rational phát triển, hỗ trợ các hoạt động làm việc nhóm và phân chia công việc cho từng thành viên trong các giai đoạn khác nhau của quy trình RUP sử dụng ngôn ngữ UML để mô hình hóa và cung cấp hướng dẫn tối ưu hóa việc sử dụng UML trong phát triển phần mềm.
Mục tiêu chính của RUP là phát triển phần mềm chất lượng cao, đáp ứng nhu cầu của người dùng cuối trong giới hạn về thời gian và ngân sách.
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 20
RUP, hay quy trình phát triển phần mềm Rational Unified Process, được phát triển và duy trì bởi hãng Rational Quy trình này liên tục được cải tiến dựa trên phản hồi từ người dùng, sự tiến hóa của công nghệ và các phương pháp thực tiễn tốt nhất.
RUP giúp tăng cường năng suất làm việc của nhóm bằng cách cung cấp hướng dẫn, khuôn mẫu và công cụ hỗ trợ Tất cả các thành viên đều sử dụng một ngôn ngữ chung và quy trình thống nhất, từ đó tạo ra sự đồng nhất trong cách nhìn nhận và định hướng phát triển phần mềm.
Sử dụng UML trong quy trình phát triển phần mềm giúp hỗ trợ tất cả các giai đoạn, với RUP tập trung vào việc tạo, cải tiến và quản lý các loại mô hình RUP cũng cung cấp hướng dẫn cho việc tạo ra nhiều tài liệu cần thiết cho phần mềm, nhấn mạnh tầm quan trọng của việc phát triển các mô hình giàu ngữ nghĩa để biểu diễn hệ thống từ góc nhìn của người phát triển.
Ngày nay, RUP được hỗ trợ bởi các công cụ tự động hóa quy trình phát triển phần mềm, bao gồm quản lý đề án, phân công nhân sự, tạo lập và quản lý mô hình, cũng như kiểm chứng Không có quy trình nào phù hợp cho tất cả các tổ chức phát triển phần mềm, nhưng RUP được thiết kế với cấu trúc đơn giản và rõ ràng, cho phép cấu hình lại để đáp ứng nhu cầu cụ thể của từng tổ chức RUP phù hợp cho cả những nhóm phát triển nhỏ lẫn các tổ chức lớn.
RUP là phương pháp tập hợp những công việc và kinh nghiệm hiệu quả nhất trong thực tế Việc áp dụng RUP giúp các nhóm phát triển đạt được nhiều lợi thế so với các nhóm khác.
Hình 2.1 Ảnh hưởng của UML đối với các gai đoạn phát triển phần mềm
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 21
RUP (Rational Unified Process) là quy trình phát triển phần mềm bao gồm nhiều chu kỳ lặp để xây dựng hệ thống Mỗi chu kỳ tạo ra một phiên bản release của phần mềm, bao gồm mã nguồn có thể biên dịch và thực thi Quy trình này được chia thành bốn giai đoạn chính: khởi đầu, triển khai, xây dựng và chuyển giao.
Khởi đầu: xác định phạm vi dự án, các tài nguyên cần thiết và phác thảo chức năng cho người sử dụng (business case)
Triển khai: phân tích vấn đề, lập kế hoạch dự án, đánh giá rủi ro và xác định kiến trúc hệ thống
Xây dựng: phát triển các thành phần, tích hợp vào sản phẩm và kiểm chứng các chức năng
Chuyển giao: chuyển giao sản phẩm đến khách hàng, huấn luyện khách hàng cách sử dụng, bảo trì đồng thời điều chỉnh một số chức năng cần thiết
Trong một chu kỳ, có nhiều bước lặp con, mỗi iteration tạo ra một phiên bản phát hành Quá trình này được hoàn thành thông qua việc thực hiện một chuỗi công việc cụ thể, được gọi là luồng công việc.
Các công việc được tổ chức thành các luồng công việc để phát triển phiên bản phát hành qua nhiều bước lặp, bao gồm các luồng cơ bản như mô hình hóa nghiệp vụ, xác định yêu cầu, phân tích, thiết kế, cài đặt và triển khai Bên cạnh đó, còn có các luồng hỗ trợ như quản lý dự án, quản lý cấu hình và thay đổi, cũng như quản lý môi trường.
Khác với mô tả chức năng truyền thống, RUP áp dụng mô hình Use Case để mô hình hóa chức năng cho từng loại người sử dụng Các chức năng này không chỉ dẫn dắt quy trình phát triển mà còn giúp trong các bước phân tích, thiết kế và kiểm chứng Dựa vào use case, nhà phát triển sẽ tạo ra một loạt mô hình phân tích và thiết kế cài đặt, đồng thời kiểm tra xem các mô hình này có đầy đủ các thành phần cần thiết cho việc thực hiện chức năng hệ thống hay không Quy trình phát triển sẽ được thực hiện dựa trên các use case đã xác định.
Thiết kế Cài đặt Kiểm chứng
Phân tích Xác định yêu cầu
Các use case liên kết các luồng dữ liệu này với nhau
UML xuất hiện trong nhiều giai đoạn của quy trình phát triển phần mềm, nhưng nó chủ yếu tập trung vào giai đoạn xây dựng, giai đoạn quan trọng và tốn nhiều thời gian nhất.
Các kỹ thuật mô hình hoá hợp nhất (Unified modeling)
Trong lĩnh vực phần mềm, có hai phương pháp tiếp cận mô hình phổ biến là mô hình hóa hướng chức năng và mô hình hóa hướng đối tượng.
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 22
Mô hình hóa hướng chức năng tập trung vào các chức năng như phần tử cơ bản của mô hình Quan điểm này khuyến khích việc xây dựng hệ thống với sự chú trọng vào yếu tố điều khiển và phân chia các chức năng lớn thành các chức năng nhỏ hơn Tuy nhiên, nhược điểm lớn của phương pháp này là sự khó khăn trong việc bảo trì hệ thống phần mềm khi có thay đổi về yêu cầu.
Mô hình hóa hướng đối tượng coi lớp và đối tượng là các thành phần cơ bản của hệ thống Các đối tượng được xác định từ không gian vấn đề và giải pháp, thường ít thay đổi khi hệ thống đối mặt với yêu cầu mới Phần này giới thiệu các kỹ thuật mô hình hóa hướng đối tượng nhằm xây dựng mô hình hệ thống trên UML.
2.3.1 Xây dựng lược đồ Use case
Việc xây dựng lược đồ use case đòi hỏi các kỹ thuật mô hình hoá sau:
- Mô hình hoá ngữ cảnh của hệ thống
Ngữ cảnh của hệ thống bao gồm tất cả các yếu tố bên ngoài tương tác với nó, xác định môi trường tồn tại của hệ thống Để mô hình hóa ngữ cảnh của hệ thống, chúng ta cần thực hiện một số công việc cụ thể.
Để nhận biết các tác nhân xung quanh hệ thống, cần xác định các nhóm yếu tố cần sự hỗ trợ của hệ thống để hoàn thành nhiệm vụ, các nhóm thực hiện chức năng chính của hệ thống, các nhóm tương tác với các hệ thống phần cứng hoặc phần mềm khác, và các nhóm thực hiện các chức năng phụ như bảo trì và quản trị.
Tổ chức các tác nhân theo quan hệ tổng quát hoá
Cung cấp các stereotype cho các tác nhân
Nhận biết lược đồ use case với các tác nhân này và xác định đường truyền thông giữa các tác nhân và use case của hệ thống
-Mô hình hoá các đòi hỏi của hệ thống
Xác định xem hệ thống làm gì chứ không phải là nó làm như thế nào Kỹ thuật mô hình hoá được mô tả như sau:
Thiết lập ngữ cảnh của hệ thống bằng các xác định các tác nhân tồn tại xung quanh hệ thống
Với mỗi tác nhân, xác định các hành vi mà các tác nhân đó đòi hỏi ở hệ thống
Đặt tên cho các hành vi này và xem chúng như là các use cases
Phân chia các hành vi chung thành các use case mới như là một trình cung cấp tính năng
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 23
2.3.2 Xây dựng lược đồ lớp
- Mô hình từ điển hệ thống
Chúng tôi sử dụng các lớp để mô hình hóa các trừu tượng chính trong không gian bài toán và giải pháp, phản ánh công nghệ được áp dụng để giải quyết vấn đề Mỗi trừu tượng đóng vai trò là một phần tử trong từ điển hệ thống, thể hiện những yếu tố quan trọng đối với cả khách hàng và nhà phát triển Để xây dựng từ điển này, chúng tôi thực hiện một loạt các công việc cần thiết.
Để nhận diện các yếu tố mà khách hàng và phát triển viên sử dụng để mô tả vấn đề và giải pháp, chúng ta áp dụng kỹ thuật thẻ CRC và phân tích dựa trên các trường hợp sử dụng (use case) Việc này giúp làm rõ các yêu cầu và mong đợi từ cả hai phía, từ đó tạo ra giải pháp hiệu quả hơn.
Để tối ưu hóa hiệu quả trong việc quản lý các trừu tượng, cần xác định rõ các nhiệm vụ liên quan Các lớp học phải được mô tả một cách sinh động, đồng thời các nhiệm vụ cần được phân bổ một cách cân bằng giữa các lớp để đảm bảo tính đồng đều và hiệu quả trong quá trình giảng dạy.
Cung cấp các thuộc tính và thao tác để thực hiện các nhiệm vụ của lớp
- Mô hình hoá các quan hệ
Nhận biết quan hệ phụ thuộc bằng cách nhận biết các thao tác trong lớp mà tham số của các thao tác có chứa các lớp khác
- Quan hệ tổng quát hoá
Trong quá trình xây dựng mô hình từ điển hệ thống, các lớp có cấu trúc và hành vi tương đồng thường xuất hiện Để tổ chức hiệu quả các lớp này, chúng ta cần trích xuất các đặc điểm chung về cấu trúc và hành vi, sau đó đặt chúng vào các lớp tổng quát hơn Việc này giúp mô hình hóa quan hệ thừa kế một cách hợp lý.
Tìm kiếm các điểm chung giữa các lớp như là nhiệm vụ, thuộc tính và thao tác
Đặt các đặc tính chung đó vào một lớp tổng quát hơn Nếu cần thiết có thể tạo một lớp mới (số mức thừa kế không nên nhiều quá)
Xác định các quan hệ tổng quát giữa các lớp tổng quát và các lớp thừa kế nó
- Quan hệ cấu trúc hay liên kết
Quan hệ liên kết xác định cấu trúc tương tác
Quan hệ phụ thuộc là mối quan hệ sử dụng, trong khi quan hệ tổng quát hóa thể hiện mối quan hệ "là một loại của" Đồng thời, quan hệ liên kết xác định cấu trúc tương tác giữa các đối tượng của các lớp Để mô hình hóa quan hệ cấu trúc, ta cần thực hiện các bước cụ thể.
Mỗi cặp lớp được xác định một quan hệ cấu trúc khi có khả năng xác định một lớp từ lớp kia, thể hiện khung nhìn hướng dữ liệu của quan hệ này.
Đối với mỗi cặp lớp, nếu các đối tượng trong một lớp cần tương tác với các đối tượng của lớp khác như tham số trong thao tác, chúng ta cần xác định mối quan hệ giữa chúng.
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 24 cấu trúc giữa cặp lớp này Đây là khung nhìn hướng hành vi của quan hệ cấu trúc
Với mỗi liên kết trên, xác định multiplicity và vai trò ở mỗi đầu của liên kết
Xác định quan hệ kết tập (aggregation) giữa hai lớp nếu quan hệ giữa chúng là toàn thể - bộ phận
- Mô hình các cộng tác đơn giản
Khi mô hình hóa một lược đồ lớp, chúng ta chỉ tập trung vào các yếu tố cấu thành khung nhìn thiết kế của hệ thống, bao gồm các phần tử và mối quan hệ giữa chúng Do đó, mỗi lược đồ lớp nên chú trọng vào một cộng tác cụ thể tại một thời điểm để mô hình hóa hiệu quả.
Nhận diện cơ cấu cần mô hình là bước quan trọng, bởi nó thể hiện chức năng hoặc hành vi của một phần trong hệ thống Cơ cấu này được xây dựng thông qua sự hợp tác giữa các lớp, giao diện và các thành phần khác.
Với mỗi cơ cấu, nhận biết các lớp, giao diện và cộng tác tham gia vào cơ cấu hận biết mối quan hệ giữa chúng
Sử dụng kịch bản để đánh giá tính đúng đắn và đầy đủ của cộng tác này
Xác định nội dung của các phần tử trong cộng tác
- Mô hình hoá lược đồ cơ sở dữ liệu quan niệm
Nhận biết các lớp mà trạng thái của nó phải vượt quá thời gian sống của ứng dụng
Tạo một lược đồ lớp chứa các lớp này và đánh dấu chúng như là persístent (một giá trị nhãn chuẩn)
Mở rộng chi tiết cấu trúc của các lớp này bằng cách chỉ định rõ các thuộc tính và chú trọng vào mối liên kết giữa chúng.
Công cụ(case tool) mô hình hoá hệ thống Rational Rose
Rational Rose là một 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 bắt đầu viết mã.
Sinh viên Chu Văn Thức - 48K_CNTT 28 đã đảm bảo tính đúng đắn và hợp lý của kiến trúc hệ thống từ khi bắt đầu dự án Bài viết mô tả chi tiết hệ thống, bao gồm các thành phần và cách thức hoạt động, giúp các nhà phát triển sử dụng mô hình như một kế hoạch chi tiết để xây dựng hệ thống Rose hỗ trợ giải quyết vấn đề giao tiếp giữa đội ngũ dự án và khách hàng, đồng thời tạo ra tài liệu yêu cầu Qua việc xây dựng các mô hình trong Rose, mọi thành viên liên quan đến dự án đều có thể tiếp cận thông tin cần thiết.
Khách hàng và quản lý dự án sử dụng biểu đồ UC để có cái nhìn tổng quát về hệ thống, giúp thống nhất về phạm vi 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
Thông qua tài liệu UC, người làm tài liệu kĩ thuật có thể bắt đầu viết hướng dẫn sử dụng và kế hoạch huấn luyện sử dụng
Các nhà phân tích và phát triển sử dụng biểu đồ trình tự và biểu đồ cộng tác để hiểu rõ logic hệ thống, các đối tượng trong hệ thống và thông điệp trao đổi giữa các đối tượng.
Đội ngũ kiểm tra chất lượng thu thập thông tin thông qua tài liệu UC và các biểu đồ tương tác để viết mô tả kiểm tra hệ thống
Các nhà phát triển sử dụng biểu đồ lớp và biểu đồ biến đổi trạng thái để nắm bắt rõ ràng các thành phần của hệ thống và mối quan hệ giữa chúng.
Đội ngũ triển khai sử dụng biểu đồ thành phần và biểu đồ triển khai để xác định các tệp thực thi (exe), tệp DLL và các thành phần cần thiết, đồng thời mô tả cách thức triển khai các thành phần này trên mạng.
Đội ngũ dự án áp dụng mô hình nhằm đảm bảo rằng các yêu cầu có thể được chuyển đổi thành mã lập trình và ngược lại, giúp mã lập trình có thể quay trở lại với yêu cầu hệ thống.
Rose gồm các thành phần chính sau đây: mô hình, phần tử mô hình, module tạo lập ứng dụng, cửa sổ duyệt (browser), cửa sổ lược đồ
Một hệ thống trong Rose được mô hình thông qua bốn mô hình:
Mô hình use case: cho phép tạo dựng các lược đồ use case, lược đồ tương tác để mô tả hành vi của hệ thống
Mô hình logic cho phép biểu diễn khung nhìn thiết kế một cách toàn diện, bao gồm cả sắc thái tĩnh và động Qua đó, quá trình tạo lập các lược đồ lớp, tương tác, trạng thái và gói trở nên dễ dàng hơn, giúp cải thiện khả năng quản lý và phát triển hệ thống.
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 29
Mô hình thành phần: cho phép ta biểu diễn sự thực hiện của hệ thống thông qua các thành phần
Hình 2.2 Màn hình giao diện của Rational Rose
Rose cho phép người dùng tạo các phần tử mô hình một cách trực quan, với mỗi phần tử tuân theo chuẩn UML về ký hiệu và ngữ nghĩa Người dùng có thể áp dụng tiêu chuẩn của phương pháp Booch hoặc OMT Tất cả các phần tử trong Rose đều có khả năng lập tài liệu và thay đổi giá trị thuộc tính thông qua cửa sổ đặc tả Hầu hết các phần tử trong UML đều có thể được tạo ra dễ dàng bằng Rose.
- Module tạo lập ứng dụng
Rose hỗ trợ việc tham chiếu các mô hình sang nhiều ngôn ngữ lập trình khác nhau, bao gồm Java, Visual Basic, C++, Oracle, DDL, và CORBA Đồng thời, Rose cũng cho phép tạo lập các mô hình từ mã nguồn, giúp tối ưu hóa quy trình phát triển phần mềm.
Là công cụ duyệt phân cấp cho phép ta quan sát các lược đồ và phần tử mô hình dưới thông qua biểu tượng và tên
Mỗi lược đồ trong rose được hiển thị trong một cửa sổ, cho phép người dùng quan sát lược đồ một cách trực quan Cửa sổ cũng đóng vai trò quan trọng trong việc tạo lập lược đồ.
Sinh viên thực hiện: Chu Văn Thức - 48K_CNTT 30