Video: UML Use Case Diagram Tutorial 2025
Phân loại các đối tượng trong danh mục và sắp xếp danh mục thành các phân mục con là điều tự nhiên. Nếu bạn tìm kiếm một nơi để sinh sống, bạn sẽ thấy mình đang phân loại đơn vị ở như nhà, chung cư, nhà phố, chung cư, biệt thự và vân vân. Nhà cửa có thể được sắp xếp theo phong cách như nông trại, tầng chia tách, thuộc địa, và muối. UML cung cấp cho bạn các ký hiệu để nắm bắt những loại phân loại này - còn được gọi là khái quát hóa và chuyên môn hóa - và tận dụng chúng như là một người mẫu và một lập trình viên.
Một số nhà phát triển hướng đối tượng sẽ đi đến độ dài tuyệt vời để tiết kiệm một ít công việc. Khi họ có thể mô hình một cái gì đó một lần và sử dụng lại nó, họ quan tâm. Nếu họ có thể viết một phương pháp (mã chương trình cho một hoạt động) cho một lớp học chỉ một lần và sử dụng nó nhiều lần, sau đó đăng ký cho họ cho năng suất cao hơn. Nếu bạn muốn tiết kiệm thời gian bằng cách chỉ định thuộc tính và hoạt động một lần và sau đó sử dụng lại nhiều lần, hãy đọc tiếp.
Khi bạn định nghĩa các lớp, bạn có thể nhận thấy rằng một số lớp có các thuộc tính giống nhau hoặc các hoạt động tương tự. Trong trường hợp này, bạn đặt các tính năng chung này (các thuộc tính, hoạt động, v.v.) vào một lớp chung chung được gọi là lớp . Các lớp có chung các tính năng chung được gọi là lớp con của lớp bậc cao. Ví dụ: chiều dài của vật liệu đã ghi trên băng video, băng ghi âm, đĩa compact hoặc phim điện ảnh là thuộc tính của cả bốn loại phương tiện đã ghi. Các lớp này cũng có thể chia sẻ các thuộc tính khác, chẳng hạn như kích thước vật lý của chúng và ngày mà mỗi lớp được sử dụng để ghi âm. Trong trường hợp này siêu lớp sẽ là RecordedMedia, các lớp con sẽ là băng thâu hình, thính giác, CompactDisc và MovieFilm, và một số thuộc tính chia sẻ có thể bao gồm các kết quả ghi lại được ghi lại và toàn bộ độ dài.
Quá trình tìm kiếm các thuộc tính hoặc hoạt động tương tự trên các lớp học được gọi là sự khái quát . Ví dụ bạn nói khái quát thuộc tính recordLength vào một lớp generic hơn gọi là RecordedMedia. Quá trình cho thấy một khái quát trong UML rất đơn giản:
1. Xác định các lớp con.
Xác định vị trí các lớp có cùng thuộc tính và / hoặc hoạt động. Các lớp này là các lớp con của bạn.
2. Tạo ra một siêu lớp.
Cung cấp một siêu lớp để giữ các thuộc tính chung và / hoặc hoạt động của các lớp con. Cho superclass một tên phân loại tất cả các lớp con. Đặt siêu lớp ở trên các lớp con trong sơ đồ làm cho việc đọc dễ dàng hơn nhưng không bắt buộc.)
3. Thêm các tính năng chung cho siêu lớp.
Loại bỏ các thuộc tính và hoạt động chung khỏi các lớp con và đặt chúng (một lần) trong lớp cha của lớp cha.
4. Vẽ một mối quan hệ tổng quát.
Bạn vẽ một đường tổng quát từ mỗi phân lớp cho lớp siêu lớp. Trong UML, đường tổng quát được biểu diễn dưới dạng một đường kẻ cố định với mũi tên rỗng ở đầu lớp. Trong UML, một đường thẳng có mũi tên rỗng kết nối lớp con với lớp siêu lớp được gọi là mối quan hệ tổng quát.
Sau khi bạn tạo một superclass với các tính năng phổ biến như các thuộc tính và hoạt động, các lớp con kế thừa những tính năng từ lớp cha superclass. Bằng cách này bạn chỉ phải viết các tính năng phổ biến một lần trong lớp cha thay vì nhiều lần trong mỗi lớp con.
Bạn có thể cho biết bạn có khái quát bằng cách nhìn vào ngôn ngữ mà bạn (hay những người khác) sử dụng để mô tả mối quan hệ giữa các lớp. Chú ý rằng khi mô tả phương tiện đã ghi và các loại khác nhau của nó như băng video trước đó trong phần này, cụm từ "bốn loại phương tiện đã ghi" xuất hiện. Nếu bạn thấy mình sử dụng các cụm từ như "loại" hoặc "loại", thì rất có thể bạn có một khái quát trên tay của bạn.
Nói rằng một trong những khách hàng của bạn liên quan đến việc theo dõi các tài liệu trong kho lưu trữ. Khách hàng này đã tích lũy được loại phương tiện ghi hình khác nhau như băng video và băng đĩa. Là người lập mô hình, bạn cần phải nắm bắt được sự khác biệt giữa các phương tiện này cũng như sự tương đồng của chúng. Biểu đồ trong Hình 1 cho thấy sự khởi đầu của một số khái quát hoá, được sắp xếp trong một thừa kế phân cấp.
Hình 1: Phân cấp thừa kế đơn giản.
Các nhà phát triển sử dụng khái niệm tổng quát hóa hoặc kế thừa để đề cập tới khái niệm tái sử dụng các thuộc tính và hoạt động chia sẻ mà bạn thể hiện trong lớp siêu lớp và sử dụng lại trong các lớp con. Tổng quát đề cập đến khái niệm khái quát hóa từ các chi tiết cụ thể (các lớp con) sang chung chung (siêu lớp). Thừa kế đề cập đến hiệu quả của việc khái quát hoá các lớp con.
Khi bạn nhìn thấy khái quát mối quan hệ giữa các lớp học, ý nghĩa của nó rất khác với mối quan hệ liên kết giữa các lớp học. Một hiệp hội cuối cùng là một mối quan hệ giữa nhiều đối tượng - một số trường hợp của một lớp có một mối quan hệ (liên kết) với trường hợp của lớp kia. Trong mối quan hệ tổng quát giữa các lớp , mối quan hệ thực sự là về các lớp học. Tốt nhất bạn có thể nói là một đối tượng được tạo ra từ một phân lớp con chứa tất cả các đặc tính của phân lớp và lớp siêu lớp.
Bạn chỉ có một đối tượng từ lớp trong mối quan hệ tổng quát. Mặc dù bạn hiển thị hai lớp, phân lớp và siêu lớp, bạn chỉ có một đối tượng được tạo ra. Bạn có thể nghĩ về một đối tượng của lớp Videotape cũng là một đối tượng của lớp RecordedMedia vì sự thừa kế. Hình 2 cho thấy một đối tượng được tạo ra từ lớp băng Videotape với tất cả các thuộc tính của nó.(Ví dụ của một lớp được biểu diễn dưới dạng một đối tượng.) Bạn không có hai đối tượng khác nhau (một cho RecordedMedia và một cho Videotape), chỉ một đối tượng. Khi đối tượng vtu83-1023 được tạo ra, tất cả giá trị thuộc tính của nó đã được thiết lập. Việc ghi âm trên băng là 57 phút. Tổng chiều dài băng vật lý là 60 phút. Băng là một băng video vệ tinh Umatic với độ cao 10 inch, chiều rộng 7 inch, và chiều sâu 1,5 inch. Việc ghi âm là tương tự, và một bản ghi của các nội dung băng được gắn vào băng để các nhà lưu trữ để tham khảo.
Hình 2: Một thể hiện hiển thị tất cả các thuộc tính được thừa kế.
Bạn chỉ có một trường hợp xác định bởi một phân lớp và lớp cha của nó. Lớp con và siêu lớp có thể có một thao tác xây dựng (để tạo ra các ví dụ) và một hoạt động destructor (để tiêu diệt các dụ). Khi phần mềm của bạn chạy, và bạn tạo một thể hiện của một phân lớp, constructor của superclass được thực hiện đầu tiên, tiếp theo là constructor của phân lớp. Khi cần thời gian để loại bỏ các thể hiện bạn tạo ra, destructor của phân lớp được gọi là đầu tiên, theo sau là destructor của superclass. Nếu mọi thứ phức tạp hơn bởi vì bạn có các lớp con của các lớp con, chỉ cần nhớ: Constructor được gọi từ phía trên của phân cấp thừa kế đến dưới cùng; destructors được gọi theo thứ tự từ lớp phụ thấp nhất đến lớp cao nhất.