Đề tài Phân tích thiết kế hướng đối tượng bằng UML

Ngày nay, Công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế xã hội của nhiều quốc gia trên thế giới, hệ thống tin học phát triển nhanh chóng và ngày càng trở nên phức tạp. Viêc phát triển các hệ thống phần mềm ngày càng trở nên phức tạp không chỉ về quy mô và phạm vi ứng dụng mà còn cả sự thay đổi về nội dung. Nếu trước đây, các hệ thống phần mềm sử dụng giao diện dòng lệnh từ các xâu kí tự thì ngày nay đã được thay thế bằng giao diện đồ hoạ xu thế sự kiện: Kiến trúc hệ thống đa tầng khách/chủ, cơ sở dữ liệu(CSDL) phân tán, Internet phát triển mạnh mẽ. làm cho các hệ thống phần mềm càng trở nên phức tạp hơn. Vấn đề đặt ra là việc xây dựng hệ thống phần mềm hiện nay, khó khăn lớn nhất không phải là tốc độ thực hiện chương trình, kinh phí hay cái gì khác mà là độ phức tạp. Vì thế hướng giải quyết là làm giảm bớt độ phức tạp của hệ thống phần mềm. Các phương pháp tiếp cận khác nhau đều có thể giải quyết vấn đề này nhưng ở các mức độ khác nhau. Hiện nay, có hai cách tiếp cận phổ biến là tiếp cận hướng chức năng (truyền thống) và tiếp cận hướng đối tượng. Cách tiếp cận hướng chức năng cho phép xây dựng phần mềm là thực hiện dãy tương tác chia nhỏ và hợp nhất. Chia nhỏ để hiểu rõ vấn đề và hợp nhất để xây dựng hệ thống. Các chức năng của hệ thống được nhân diện sau đó lại được tách thành các chức năng con. Tiến trình này được lặp đi lặp lại đến khi được các thành phần đơn giản đến mức chúng được biểu diễn trực tiếp bằng các hàm hay thủ tục của ngôn ngữ lập trình.[1] Kiến trúc phần mềm được cài đặt theo cách tiếp cận hướng chức năng sẽ phản ánh các chức năng hệ thống. Tiếp cận hướng chức năng và cơ chế phân cấp chỉ cho lại kết quả mong muốn khi các chức năng được nhận biết đầy đủ và không được thay đổi theo thời gian. Tuy nhiên trong thực tế phát triển phần mềm luôn là tiến trình động, CSDL động không bao giờ kết thúc hoàn toàn và luôn có những thay đổi, nâng cấp. Sửa đổi hay mở rộng hệ thống quá nhiều làm cho chương trình khác xa so với ban đầu. Phương pháp này thuận tiện cho việc thiết kế CSDL nhưng chỉ được diễn tả bằng một tập hợp các chức năng rời rạc, nên chỉ thích hợp cho sự phân tích bước đầu hoặc cho các hệ thống đơn giản. Sản phẩm hình thành từ giải pháp này khó bảo trì. Mọi chức năng đều chia sẻ khối lượng dữ liệu lớn, các chức năng phải hiểu rõ dữ liệu được lưu trữ thế nào, khi thay đổi cấu trúc dữ liệu kéo theo thay đổi mọi hàm liên quan.Mặt khác tiệm cận này không hỗ trợ lập trình bằng ngôn ngữ hướng đối tượng như C++, JAVA Do đó cần phải có một phương pháp mới có khả năng làm chủ được độ phức tạp, giúp quản lý được chất lượng, độ tin cậy phần mềm ngay cả khi cấu trúc bị tách ra hay tiến hoá. Và phương pháp được mong đợi để giải quyết vấn đề trên là phương pháp tiếp cận hướng đối tượng.

doc55 trang | Chia sẻ: tuandn | Ngày: 21/05/2013 | Lượt xem: 1723 | Lượt tải: 7download
Tóm tắt tài liệu Đề tài Phân tích thiết kế hướng đối tượng bằng UML, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 1 MỞ ĐẦU Đặt vấn đề Ngày nay, Công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế xã hội của nhiều quốc gia trên thế giới, hệ thống tin học phát triển nhanh chóng và ngày càng trở nên phức tạp. Viêc phát triển các hệ thống phần mềm ngày càng trở nên phức tạp không chỉ về quy mô và phạm vi ứng dụng mà còn cả sự thay đổi về nội dung. Nếu trước đây, các hệ thống phần mềm sử dụng giao diện dòng lệnh từ các xâu kí tự thì ngày nay đã được thay thế bằng giao diện đồ hoạ xu thế sự kiện: Kiến trúc hệ thống đa tầng khách/chủ, cơ sở dữ liệu(CSDL) phân tán, Internet phát triển mạnh mẽ... làm cho các hệ thống phần mềm càng trở nên phức tạp hơn. Vấn đề đặt ra là việc xây dựng hệ thống phần mềm hiện nay, khó khăn lớn nhất không phải là tốc độ thực hiện chương trình, kinh phí hay cái gì khác mà là độ phức tạp. Vì thế hướng giải quyết là làm giảm bớt độ phức tạp của hệ thống phần mềm. Các phương pháp tiếp cận khác nhau đều có thể giải quyết vấn đề này nhưng ở các mức độ khác nhau. Hiện nay, có hai cách tiếp cận phổ biến là tiếp cận hướng chức năng (truyền thống) và tiếp cận hướng đối tượng. Cách tiếp cận hướng chức năng cho phép xây dựng phần mềm là thực hiện dãy tương tác chia nhỏ và hợp nhất. Chia nhỏ để hiểu rõ vấn đề và hợp nhất để xây dựng hệ thống. Các chức năng của hệ thống được nhân diện sau đó lại được tách thành các chức năng con. Tiến trình này được lặp đi lặp lại đến khi được các thành phần đơn giản đến mức chúng được biểu diễn trực tiếp bằng các hàm hay thủ tục của ngôn ngữ lập trình.[1] Kiến trúc phần mềm được cài đặt theo cách tiếp cận hướng chức năng sẽ phản ánh các chức năng hệ thống. Tiếp cận hướng chức năng và cơ chế phân cấp chỉ cho lại kết quả mong muốn khi các chức năng được nhận biết đầy đủ và không được thay đổi theo thời gian. Tuy nhiên trong thực tế phát triển phần mềm luôn là tiến trình động, CSDL động không bao giờ kết thúc hoàn toàn và luôn có những thay đổi, nâng cấp. Sửa đổi hay mở rộng hệ thống quá nhiều làm cho chương trình khác xa so với ban đầu. Phương pháp này thuận tiện cho việc thiết kế CSDL nhưng chỉ được diễn tả bằng một tập hợp các chức năng rời rạc, nên chỉ thích hợp cho sự phân tích bước đầu hoặc cho các hệ thống đơn giản. Sản phẩm hình thành từ giải pháp này khó bảo trì. Mọi chức năng đều chia sẻ khối lượng dữ liệu lớn, các chức năng phải hiểu rõ dữ liệu được lưu trữ thế nào, khi thay đổi cấu trúc dữ liệu kéo theo thay đổi mọi hàm liên quan.Mặt khác tiệm cận này không hỗ trợ lập trình bằng ngôn ngữ hướng đối tượng như C++, JAVA…Do đó cần phải có một phương pháp mới có khả năng làm chủ được độ phức tạp, giúp quản lý được chất lượng, độ tin cậy phần mềm ngay cả khi cấu trúc bị tách ra hay tiến hoá. Và phương pháp được mong đợi để giải quyết vấn đề trên là phương pháp tiếp cận hướng đối tượng. Chức năng chính Chức năng con 1 Chức năng con 2 Chức năng con 1.1 Chức năng con 1.2 Chức năng con 2.1 Chức năng con 2.2 Hình 1. Cách tiếp cận hướng đối tượng. Phương pháp phát triển phần mềm hướng đối tượng tuy là một phương pháp mới trong những năm gần đây nhưng đã chứng tỏ được ưu thế khi lập trình các hệ thống phức tạp, đem lại những thành quả to lớn. Các nhà phát triển phần mềm nhận thấy rằng phát triển phần mềm hướng đối tượng mang lại một phần mềm thương mại có chất lượng cao với độ tin cậy cao, dễ mở rộng và dễ sử dụng lại, chạy trơn tru, phù hợp với yêu cầu của người dùng và đặc biệt là khả năng phát triển cao. Phát triển phần mềm hướng đối tượng là cách xây dựng các modul hoặc các đối tượng có thể thay thế, hiệu chỉnh và sử dụng lại dễ dàng. Hướng phát triển này coi thế giới thực là một hệ thống các đối tượng. Mô tả các đối tượng của thế giới thực bằng một tập rời rạc các đối tượng bao gói cả dữ liệu và chức năng của nó. Phương pháp phát triển phần mềm truyền thống chủ yếu tập trung vào chức năng của hệ thống - Hệ thống làm được những gì? Còn phát triển theo hướng đối tượng thì tập trung vào đối tượng, cả thông tin và hành vi, chúng kết hợp giữa dữ liệu và chức năng. Cho khả năng xây dựng hệ thống mềm dẻo. Phương pháp tiệm cận hướng đối tượng cho khả năng xây dựng phần mềm để mô tả các lĩnh vực, vấn đề tốt hơn phương pháp truyền thống. Các hệ thống tạo ra sẽ dễ dàng tương thích với việc thay đổi các yêu cầu , dễ dàng bảo trì hơn, dễ dàng nâng cấp và khả năng sử dụng lại mã lệnh cao hơn. Cho phép chúng ta tạo ra các modul chức năng. Với phương pháp này , chúng ta quan tâm đến việc hệ thống làm được gì chứ không phải hệ thống làm như thế nào. Có nhiều lý do để lựa chọn phương pháp hướng đối tượng, vì ngoài những ưu điểm trên nó còn có một số đặc điểm sau: Xoá bỏ ranh giới giữa các pha trong phát triển phần mềm: Phát triển phần mềm theo phương pháp truyền thống đối với mỗi bước của tiến trình phát triển phần mềm nó đòi hỏi các kiểu và các phương pháp khác nhau. Việc chuyển từ pha này sang pha khác là một sự chuyển tiếp phức tạp giữa các mô hình gần như khác nhau hoàn toàn. Sự chuyển giao đó không những làm chậm tiến trình phát triển phần mềm mà còn làm tăng cỡ của dự án và lỗi trong việc chuyển từ ngôn ngữ này sang ngôn ngữ khác cũng phát sinh nhiều hơn. Tiếp cận hướng đối tượng sử dụng cùng một ngôn ngữ trong phân tích, thiết kế, lập trình và thiết kế cơ sở dữ liệu làm cho hệ thống rõ rang, rành mạch hơn. Khuyến khích các kỹ thuật lập trình tốt: Một lớp trong hệ thống lập trình hướng đối tượng mô tả rõ rang giao diện. Các phương thức và thuộc tính trong một lớp liên hệ chặt chẽ với nhau. Một hệ thống được thiết kế tốt, các lớp sẽ được gộp lại thành hệ thống con, nhưng vẫn giữ được tính độc lập, sự thay đổi của lớp này không ảnh hưởng đến lớp khác. Tăng cường khả năng sử dụng lại: Vì các đối tượng được mô tả trực tiếp ngoài lĩnh vực vấn đề thế giới thực nên có thể sử dụng lại. Mỗi đối tượng có thể tồn tại độc lập hoặc trong sự liên kết với một số với số ít các lớp khác. Ngoài ra phương pháp hướng đối tượng còn có tính kế thừa, cho phép các lớp xây dựng trong mỗi lớp khác do đó chỉ những phần khác nhau và những phần cải tiến được thiết kế và mã hoá. Tất cả các chức năng được xây dựng trước đó vẫn được giữ lại và sử dụng lại mà không cần thay đổi. Đối với thế giới công nghệ hướng đối tượng đã triển khai ứng dụng rộng rãi. Tuy nhiên, ở Việt Nam thì vẫn còn mới. Gần đây, một số cơ quan đã ứng dụng phương pháp mới này vào thiết kế phần mềm nhưng vẫn còn hạn chế. Mục đích nghiên cứu và nội dung thực hiện. 2.1 Mục đích nghiên cứu Tìm hiểu một số quy trình trong phân tích thiết kế hướng đối tượng sử dụng UML Áp dụng quy trình phân tích thiết kế hướng đối tượng vào bài toán ứng dụng “Phân tích thiết kế hệ thống quản lý cửa vào ra “ Nội dung thực hiện Tìm hiểu ngôn ngữ UML và sử dụng phần mềm Rational Rose để mô hình hoá hệ thống. Tìm hiểu một số quy trình trong phân tích thiết kế hướng đối tượng. Trình bày một số quy trình phân tích thiết kế hướng đối tượng sử dụng UML vào hệ thống quản lý cửa vào ra. Phương pháp nghiên cứu Chủ yếu nghiên cứu phương pháp luận, nghiên cứu thử nghiệm ứng dụng công nghệ. Giới hạn đề tài Cấu trúc đồ án: Chưong 1. Mở đầu Chương này trình bày những ưu điểm của phương pháp phát triển phần mềm hướng đối tượng so với phương pháp hướng chức năng truyền thống và lý do lựa chọn phương pháp hướng đối tượng trong phát triển phần mềm. Ngoài ra, còn trình bày mục đích nghiên cứ, nội dung và phương pháp nghiên cứu, giới hạn đề tài. Chương 2. Quy trình phát triển phần mềm hướng đối tượng sử dụng UML. Chương này giới thiệu về ngôn ngữ mô hình hoá thống nhất UML, giới thiệu tiến trình phát triển phần mềm RUP và giới thiệu công cụ hỗ trợ quá trình phân tích, thiết kế hướng đối tượng Rational Rose. Chương 3. Giới thiệu bài toán Mô tả nội dung bài toán đặt ra, xác định các yêu cầu. Chương 4. Mô hình ca sử dụng Đi sâu vào việc xác định và mô tả chi tiết ca sử dụng của hệ thống, các tác nhân tham gia vào các ca sử dụng này và xây dựng mô hình ca sử dụng của hệ thống. Chương 5. Mô hình phân tích. Phân tích chi tiết các hoạt động trong các ca sử dụng, xây dựng các lớp, phân tích và mối quan hệ giữa chúng. Chương 6. Mô hình thiết kế. Mô tả tương tác giữa các đối tượng khi thực hiện các ca sử dụng bằng các biểu đồ tuần tự đối tượng, xác định các lớp, các phương thức, thuộc tính của lớp và mô hình hoá dữ liệu. Chương 7. Mô tả hệ thống cài đặt. Chương này giới thiệu một số giao diện chính của chương trình. CHƯƠNG 2. QUY TRÌNH PHÁI TRIỂN PHẦN MỀM HƯỚNG ĐỐI TƯỢNG SỬ DỤNG UML Giới thiệu ngôn ngữ mô hình hoá thống nhất UML (Unified Modeling Language) UML là ngôn ngữ mô hình hợp nhất, nó được hiểu như một ngôn ngữ thống nhất những xu hướng và hình thái của cuộc cách mạng tri thức trong lĩnh vực công nghệ thông tin. Nó là một phương tiện giúp cho các tổ chức có thể nhận thức một cách tốt nhất lợi thế cạnh tranh thông qua việc nắm bắt, truyền đạt, trao đổi và nâng cao tri thức trong lĩnh vực công nghệ phần mềm. Chính xác hơn UML là ngôn ngữ mô hình hoá chuẩn để thiết kế phần mềm hướng đối tượng, được dùng để đặc tả, trực quan hoá, xây dựng và làm tài liệu cho các hệ thống phần mềm[2] . UML là ngôn ngữ đồ hoạ với các tập quy tắc và ngữ nghĩa. Các quy tắc và ngữ nghĩa của một mô hình được thể hiện bằng tiếng anh gọi là Ngôn ngữ rang buộc đối tượng (OCL – Object Constraint Language). OCL là ngôn ngữ đặc tả sử dụng logic đơn giản để đặc tả các đặc tính của hệ thống. Mục đích của UML Mô hình hoá các hệ thống và sử dụng các khái niệm hướng đối tượng một cách thống nhất. Cho phép đặc tả, hỗ trợ đặc tả tường minh mối quan hệ giữa các khái niệm trong hệ thống, đồng thời mô tả được mọi trạng thái hoạt động (tĩnh và động ) của hệ thống. Hỗ trợ khả năng sử dụng lại và kế thừa ở phạm vi rộng để xây dựng những hệ thống phức tạp và nhạy cảm như : hệ thống tự động, hệ thống thời gian thực. Tạo ra ngôn ngữ mô hình hoá sử dụng được cho cả người và máy tính. Công dụng của UML UML là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm. Vạch ra cho hệ thống những chức năng chính của nó sử dụng các mô hình tình huống sử dụng và các tác nhân. Minh hoạ các use case bằng các biểu đồ tương tác (interaction diagram) Mô tả cấu trúc tĩnh của một hệ thống sử dụng các biểu đồ lớp (class diagram). Mô hình hoá trạng thái của đối tượng bằng các biểu đồ chuyển tiếp trạng thái. Minh hoạ cấu trúc thi hành vật lý bằng các biểu đồ thành phần và triển khai Mở rộng chức năng bằng các mầu cung cấp sẵn (stereotype) Các đặc trưng và khả năng của UML UML là ngôn ngữ mô hình đồ hoạ Ngôn ngữ cung cấp bảng từ vựng và tập các quy tắc để kết hợp các từ trong bảng từ vựng để giao tiếp. Ngôn ngữ mô hình là ngôn ngữ có từ vựng và quy tắc tập trung vào các biểu diễn về mặt vật lý và khái niệm của hệ thống. UML là ngôn ngữ chuẩn công nghiệp để lập kế hoạch chi tiết phần mềm. Ngôn ngữ phải cho phép biểu diễn nhiều khung nhìn (views) khác nhau của kiến trúc hệ thống trong suốt quá trình phát triển phần mềm. Từ vựng và quy tắc ngôn ngữ UML cho ta cách thức xây dựng mô hình và đọc mô hình, nhưng không cho biết mô hình nào cần phải được lập và khi nào lập chúng mà phải dựa vào quy trình phát triển phần mềm. Các biểu diễn mô hình trong UML là các biểu diễn bằng đồ hoạ. UML là ngôn ngữ đặc tả có cấu trúc Đặc tả là xây dựng mô hình chính xác, rõ rang, không nhập nhằng, hoàn thiện và đầy đủ những điểm mấu chốt của vấn đề. UML hướng tới đặc tả 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ữ trực quan Bằng hệ thống các kí hiệu đồ hoạ và các biểu đồ với các chú giải đi kèm, UML cho ta hình dung được hệ thống đang cần xây dựng từ nhiều góc độ khác nhau. UML là ngôn ngữ làm tài liệu UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó. UML cho khả năng biểu diễn yêu cầu, thử nghiệm, mô hình hoá các hoạt động lập kế hoạch và quản lý sản phẩm. Thông qua UC biểu đồ trường hợp sử dụng , tác nhân để biết giới hạn và các chức năng chính của hệ thống. Trong UML UC (User case) được miêu tả bằng biểu đồ logic. Sử dụng biểu đồ UC, tác nhân (Actor) có thể chia dự án thành các dự án nhỏ có thể quản lý được. Nhìn vào biểu đồ đó và các tài liệu mô tả, người phân tích có thể biết hệ thống có khả năng làm gì. Biểu diễn cấu trúc tĩnh của hệ thống bằng biểu đồ lớp. Sử dụng biểu đồ trình tự và cộng tác để thấy được trình tự và logic toàn bộ hệ thống và các thông báo giữa các đối tượng. 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 chức năng bằng stereotypes. Mô hình khái niệm của UML Để hiểu, đọc được UML và tạo ra một số mô hình cơ bản ta phải hình dung được mô hình khái niệm của ngôn ngữ. Muốn vậy đòi hỏi chúng ta phải nắm được ba vấn đề chính bao gồm : Các khối cơ bản để xây dựng mô hình Các quy tắc liên kết Các cơ chế chung được sử dụng cho ngôn ngữ 2.1.4.1. Các khối cơ bản xây dựng mô hình Các khối để hình thành mô hình UML gồm ba loại: Phần tử Quan hệ (relationships) Biểu đồ (diagram) Phần tử trong mô hình là căn bản, các quan hệ gắn các phần tử lại với nhau, còn biểu đồ nhóm tập hợp các phần tử. Trong UML có 4 loại phần tử mô hình đó là cấu trúc, hành vi, nhóm và chú thích. Phần tử cấu trúc Phần tử cấu trúc là các danh từ trong mô hình UML, là bộ phận tĩnh của mô hình để biểu diễn các thành phần khái niệm hay vật lý. Lớp (Class) Lớp là mô tả tập các đối tượng cùng chung thuộc tính, thao tác, quan hệ và ngữ nghĩa. Một lớp cài đặt một hay nhiều mô hình ghép nối, biểu diễn bằng hình chữ nhật có 3 phần tên, thuộc tính và thao tác. Tên lớp Thuộc tính Thao tác Open() Close() Hình 2. Lớp Giao diện (Interface) Giao diện là một tập hợp các thao tác đặc tả một dịch vụ của lớp hay thành phần. Giao diện mô tả hành vi thấy được từ ngoài của thành phần. Biểu diễn toàn bộ hay một phần hành vi của lớp và được gắn vào lớp hay thành phần thực hiện. Hình 3. Giao diện Cộng tác (Collaboration) Sự cộng tác định nghĩa một tương tác và một bộ các nguyên tắc và các phần tử khác làm việc cùng nhau để tạo ra một hành vi cộng tác lớn hơn tổng hành vi của các phần tử. Tên cộng tác Hình 5. Cộng tác Ca sử dụng (Use case) Tên Use case Ca sử dụng là tậo hợp các hành động mà hệ thống thực hiện để đạt được một kết quả cho tác nhân cụ thể. Hình 6. Ca sử dụng Lớp hoạt động (Active class) Lớp tích cực là lớp có đối tượng làm chủ một hay nhiều tiến trình hay luồng. Đối tượng của nó biểu diễn các thành phần có hành vi đang tương tranh với các thành phần khác. Kí pháp đồ hoạ giống lớp thông thường nhưng biên hình chữ nhật tô đậm. Hình 7. Lớp hoạt động Thành phần (Component) Thành phần biểu diễn vật lý mã nguồn, các tệp nhị phân trong quá trình phát triển hệ thống. File.cpp Hình 7. Thành phần Nút (Node) Máy chủ Là thể hiện 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. Có thể đặt tập các thành phần trên nút và chuyển từ nút này sang nút khác. Hình 8. Nút Phần tử hành vi Phần tử hành vi là bộ phận động của mô hình UML. Là các động từ của mô hình, biểu diễn hành vi theo thời gian và không gian. Có 2 loại Tương tác (Interaction) Là hành vi bao gồm tập các thông điệp trao đổi giữa các đối tượng trong ngữ cảnh cụ thể nhằm thực hiện mục đích cụ thể. Hiển thị Hình 9. Thông điệp Máy trạng thái (State machine) Máy trạng thái là hành vi chỉ ra trật tự các trạng thái mà đối tượng hay tương tác sẽ đi qua để đáp ứng sự kiện. Hành vi của lớp hay cộng tác của lớp có thể được xác định bằng máy trạng thái. Máy trạng thái kích hoạt nhiều phần tử, bao gồm trạng thái, chuyển tiếp từ trạng thái này sang trạng thái khác, sự kiện và các hoạt động (đáp ứng sự kiện). Chờ Hình 10. Máy trạng thái Phần tử nhóm Các đối tượng GUI Phần tử nhóm là bộ phận tổ chức của mô hình UML. Chỉ có một phần tử thuộc nhóm này đó là gói (package). Gói là một cơ chế để tổ chức các phần tử vào các nhóm. Các phần tử cấu trúc, phần tử hành vi thậm chí là cả phần tử nhóm khác nhau có thể được đặt vào trong một gói. Chỉ tồn tại vào thời điểm phát triển hệ thống chứ không tồn tại vào thời gian chạy chương trình. Hình 11. Gói Chú thích (Annotational) Phần tử chú thích là bộ phận chú giải của một mô hình UML. Là lời giải thích áp dụng để mô tả các phần tử khác trong mô hình. Hay còn gọi là lời ghi chú. Các quan hệ trong UML Quan hệ phụ thuộc (dependency) Phụ thuộc là quan hệ ngữ nghĩa giữa hai phần tử trong đó thay đổi phần tử độc lập sẽ tác động đến ngữ nghĩa của phần tử phụ thuộc. Quan hệ kết hợp (association) Kết hợp là quan hệ cấu trúc để mô tả tập liên kết (một liên kết là kết nốigiữa các đối tượng). Khi đối tượng của lớp này gửi / nhận thông điệp thì gọi chúng có quan hệ kết hợp. Khái quát hoá (generalization) Khái quát hoá là quan hệ đặc biệt hoá / khái quát hoá mà trong đó đối tượng cụ thể sẽ kế thừa các thuộc tính và phương pháp của đối tượng tổng quát hoá. Hiện thực hoá (realization) Hiện thực hoá là quan hệ ngữ nghĩa giữa giao diện và lớp (hay thành phần) hiện thực lớp. 2.1.4.2. Kiểu dữ liệu Kiểu dữ liệu không phải là phần tử mô hình trong UML. kiểu dữ liệu cơ sở là kiểu dữ liệu không có cấu trúc. Có các kiểu sau: - Boolean: kiểu đếm với true/false - Biểu thức(Expression): là xâu ký tự có cú pháp. - Tính nhiều (Multiplicity): tập không rỗng của các số nguyên dương và ký tự * . - Tên (Name): là xâu ký tự có khả năng đẩct phần tử. - Số nguyên (Integer): Là kiểu cơ bản và là phần tử của tập vô hạn các số nguyên âm và dương. - Xâu (String): là trật tự của các ký tự, được sử dụng làm tên. - Thời gian (Time): xâu ký tự biểu diễn giá trị tuyệt đối hay khoảng tương đối. - Không lý giải (Unintepreted): là cái gì đó mà ý nghĩa của nó phụ thuộc vào lĩnh vực. 2.1.4.3. Biểu đồ trong UML Biểu đồ là biểu diễn đồ hoạ tập các phần tử mô hình. Vẽ biểu đồ để biểu diễn hệ thống đang xây dựng dưới các góc độ quan sát khác nhau. UML cho khả năng xây dựng một vài kiểu biểu đồ trực quan để biểu diễn các khía cạnh khác nhau của hệ thống, bao gồm : Biểu đồ ca sử dụng (Use case diagram) Chỉ ra tương tác giữa các UC và các tác nhân. UC biểu diễn các chức năng hệ thống. Tác nhân là con ngườig hay hệ thống khác cung cấp hay thu nhận thông tin từ hệ thống đang được xây dựng. Chỉ ra tác nhân nào khởi độngUC và khi nào tác nhân nhận thông tin từ hệ thống. Biểu đồ UC chỉ ra chức năng tổng thể của hệ thống đang phát triển. VD: Biểu đồ tương tác (Interaction diagram) Biểu đồ tương tác bao gồm hai dạng là biểu đồ trình tự và cộng tác Biểu đồ trình tự (sequence) Biểu đồ trình tự chỉ ra luồng chức năng xuyên qua các UC, nó là biểu đồ mô tả tương tác giữa các đối tượng và tập trung vào mô tả trật tự các thông điệp theo thời gian. Biểu đồ trình tự là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng thông điệp giữa các đối tượng. Biểu đồ được đọc từ đỉnh xuống đáy . Mỗi UC có nhiều luồng dữ liệu. Mỗi biểu đồ trình tự biểu diễn một luồng. Biểu đồ cộng tác (Collaboration) Biểu đồ cộng tác chỉ ra các thông tin như biểu đồ trình tự nhưng theo cách khác, nó tập trung vào tổ chức cấu trúc các đối tượng gửi và nhận thông điệp. Biểu đồ cộng tác và trình tự có thể biến đổi qua lại.Biểu đồ cộng tác đối tượng được đặt trong hình chữ nhật , tác nhân là người hình cây như biểu đồ trình tự. Biểu đồ cộng tác không quan tâm đến thời gian. Các đối tượng giao tiếp với nhau thể hiện bằng đường nối Biểu đồ cộng tác chỉ ra luồng sự kiện xuyên qua kịch bản của UC. Biểu đồ này cho khả năng dễ quan sát các đối tượng nhưng khó quan sát về trình tự thông tin. Biểu đồ lớp (Class diagram) Biểu đồ lớp chỉ ra tương tác giữa các lớp trong hệ thống. Các lớp được xem như kế hoạch chi tiết của các đối tượng. Đường nối giữa các phần tử biểu đồ lớp là quan hệ giao tiếp giữa chúng. Phía trái của một số thuộc tính và thao tác có gắn biểu tượng khoá, có nghĩa rằng đó là các thuộc tính và thao tác riêng. Trong biểu đồ lớp có các loại lớp sau; - Lớp tham số: là lớp được sử dụng để tạo ra họ các lớp khác. Còn có tên là lớp mẫu (template) - Lớp