You are on page 1of 12

Nội dung

„ Biểu diễn Lớp và đối tượng


„ Biểu diễn quan hệ (relationship)
Chương 4 „ Xây dựng Mô hình

Biểu đồ lớp và biểu


đồ đối tượng

UML/NN 1
UML/NN 2

9 Biểu đồ Biểu đồ lớp và đối tượng


1. Biểu đồ Use case (Use Case Diagram)
2. Biểu đồ lớp (Class Diagram)
3. Biểu đồ đối tượng (Object Diagram)
4. Biểu đồ trạng thái (State Diagram)
5. Biểu đồ trình tự (Sequence Diagram)
6. Biểu đồ cộng tác (Collaboration Diagram)
7. Biểu đồ hoạt động (Activity Diagram)
8. Biểu đồ thành phần (Component Diagram)
9. Biểu đồ triển khai (Deployment Diagram)
UML/NN 3 UML/NN 4

1
Lớp và đối tượng Trạng thái (state)
„ Một đối tượng biểu diễn cho một thực thể có thể là „ Trạng thái của một đối tượng là một trong
thực thể vật lý, khái niệm hay là phần mềm… những tình trạng mà đối tượng có thể tồn tại
„ Một đối tượng là một khái niệm, sự trừu tượng hay trong môi trường.
một vật mà có ranh giới rõ ràng, và có nghĩa rõ rệt
cho một ứng dụng
„ Trạng thái của một đối tượng thường sẽ thay
đổi theo thời gian, trạng thái của đối tượng
„ Một lớp là một mô tả cho một nhóm các đối tượng
có chung thuộc tính, ứng xử, mối quan hệ và ngữ thường được được gắn với thời điểm.
nghĩa (semantic). „ Trạng thái của một đối tượng được xác định
„ Lớp là một khuôn mẫu để tạo ra đối tượng qua một tập các thuộc tính, và mối quan hệ
„ Mỗi đối tượng trong một hệ thống đều có ba đặc với các đối tượng khác.
tính: trạng thái, ứng xử và danh định.
UML/NN 5 UML/NN 6

Hành vi (Behaviour) và Danh định (Identity) Biểu tượng lớp – đối tượng
„ Hành vi xác định một đối tượng tác động và „ Một biểu tượng lớp là một hình chữ nhật với 3 phần
đáp ứng với các yêu cầu từ các đối tượng „ Một biểu đồ lớp miêu tả hướng nhìn tĩnh của một
khác, nó tiêu biểu cho những gì mà đối hệ thống bằng các khái niệm lớp và mối quan hệ
tượng này có thể làm. Ứng xử được thực thi giữa chúng với nhau
qua loạt các Phương thức (Operation) của „ Đối tượng biểu diễn bằng một hình chữ nhật với
tên gạch dưới
đối tượng
„ Danh định dùng để phân biệt giữa các đối
tượng ngay cả khi nó có cùng trạng thái và
giá trị các thuộc tính

UML/NN 7 UML/NN 8

2
Tên lớp và thuộc tính …Thuộc tính
„ Tên lớp (class name): Hầu như tên lớp trùng „ Nếu thuộc tính có tính khả kiến là công cộng (public),
thì nó có thể được nhìn thấy và sử dụng ngoài lớp đó
với tên đối tượng thế giới thực mà nó biểu
„ Nếu thuộc tính có tính khả kiến là riêng (private), bạn
diễn sẽ không thể truy cập nó từ bên ngoài lớp đó
„ Thuộc tính (attribute): „ Nếu thuộc tính có tính khả kiến là bảo vệ (protected) thì
cũng giống như thuộc tính có tính khả kiến là riêng
„ Thuộc tính miêu tả những đặc trưng của đối nhưng được thừa kế bởi các lớp dẫn xuất
tượng
„ Giá trị của thuộc tính thường là những dạng dữ
liệu đơn giản được đa phần các ngôn ngữ lập
trình hỗ trợ như Integer, Boolean, Floats, Char…

UML/NN 9 UML/NN 10

Phương thức (method) Nội dung


„ Phương thức được sử dụng để xử lý thay đổi „ Biểu diễn Lớp và đối tượng
các thuộc tính cũng như thực hiện các công „ Biểu diễn quan hệ (relationship)
việc khác
„ Xây dựng Mô hình
„ Dấu cộng và trừ tương tự như thuộc tính

UML/NN 11 UML/NN 12

3
Quan hệ (relationship) Kết hợp (Association)
„ Kết hợp (Association)
„ Kết tập (aggregation)
„ Composition (kết cấu)
„ Phụ thuộc (Dependency)
Association Name
„ Chuyên biệt và tổng quát hóa
(Specialization/Generalization) Professor
Works for
University

Role Names
Class Professor University
Employee Employer

UML/NN 13 UML/NN 14

Những ràng buộc của kết hợp Kết hợp đệ qui


„ Một kết hợp phải có một tên đặt bên trên hay kề „ Tên vai trò là bắt buộc
với đường liên hệ
„ Tên của kết hợp phải phản ảnh nội dung, là cụm
động từ, tên có thể bỏ qua đặc biệt khi tên vai trò
của nó được dùng, tránh dùng tên không cộng
thêm thông tin
„ Mỗi đầu của kết hợp là một vai trò (role) chỉ ra vai
trò của lớp trong kết hợp, tên vai trò phải là duy
nhất ứng với một lớp, tên vai trò phải là một danh
từ đặt cuối đường kết hợp
„ Chọn một trong hai: tên kết hợp hay tên vai trò
UML/NN 15 UML/NN 16

4
Lượng số (Multiplicity) Chiều (Navigation)
„ Xác định bao nhiêu đối tượng tham gia kết
hợp
Multiplicity

Student Schedule
1 0..*

Navigation
One or more

UML/NN 17 UML/NN 18

Kết tập (aggregation) Composition (kết cấu)


„ Kết tập là quan hệ giữa toàn bộ và bộ phận „ Kết cấu là một dạng của kết tập, thời gian sống của
„ Một đối tượng được tạo từ những đối tượng khác có tính đối tượng bộ phận không vượt quá thời gian sống
vật lý của đối tượng toàn bộ
„ Một đối tượng là tập hợp của những đối tượng khác có „ Khi toàn bộ bị xóa thì bộ phận cũng bị xóa
tính logic
„ Một đối tượng chứa những đối tượng khác có tính vật lý
„ Bộ phận có thể bị xóa trước khi toàn bộ bị xóa

Whole Part

Student Schedule
Whole
Part
Student Schedule Aggregation

Aggregation
UML/NN 19 UML/NN 20

5
Aggregation và composition Phụ thuộc (Dependency)
„ Một biến đổi trên một thành phần sẽ gây ra sự biến
đổi trong thành phần khác

Client Supplier Component


Class

Package Client Supplier


Dependency
relationship

ClientPackage SupplierPackage
Dependency
relationship

UML/NN 21 UML/NN 22

Specialization/Generalization Thừa kế (Inheritance) và tổng quát hóa

„ Chuyên biệt hóa(/tổng quát hóa): là quá trình


tinh chế một lớp thành những lớp chuyên biệt hơn.
Chuyên biệt hóa bổ sung thêm chi tiết và đặc tả
cho lớp kết quả. Lớp mang tính khái quát được gọi
là lớp cha (superclass), kết quả chuyên biệt hóa
là việc tạo ra các lớp con (Subclass).
„ Tổng quát hóa và chuyên biệt liên quan tới Thừa
kế (Inheritance)
„ Lớp con thừa kế attributes, operations, và relationships
„ Lớp con có thể:
„ Cộng thêm attributes, operations, relationships

„ Xác định lại tác vụ được thừa kế (caution!)

UML/NN 23 UML/NN 24

6
Thừa kế đơn Đa thừa kế

Ancestor

Account FlyingThing Animal


balance
name
Superclass number
(parent) multiple
Withdraw()
CreateStatement()
inheritance
Generalization
Relationship
Airplane Helicopter Bird Wolf Horse

Checking Savings

Subclasses Withdraw() GetInterest() Use multiple inheritance only when needed, and
Withdraw() always with caution !
Descendents
UML/NN 25 UML/NN 26

Ví dụ Ràng buộc
„ Cho phép cộng thêm ngữ nghĩa mới
GroundVehicle
owner Person „ Ràng buộc là một String đóng trong ngoặc nhọn
Superclass weight
(parent) licenseNumber 0..* 1 đặt gần thành phần mà nó áp dụng
register( ) „ Dùng quan hệ phụ thuộc nếu có nhiều thành phần
generalization mà ràng buộc áp dụng

Car Truck Trailer


Member Department
Subclass size tonnage Professor
getTax( ) {Subset}
Deparment Head

UML/NN 27 UML/NN 28

7
4 loại Ràng buộc Thừa kế và tổng quát hóa
„ Disjoint
„ Overlapping
„ Complete
„ Incomplete

UML/NN 29 UML/NN 30

Chú thích Nội dung


„ Biểu diễn Lớp và đối tượng
„ Biểu diễn quan hệ (relationship) giữa các lớp
„ Xây dựng Mô hình

UML/NN 31 UML/NN 32

8
Biểu đồ lớp (class diagram) Mục đích của biểu đồ lớp
„ Độc lập với ngôn ngữ „ Làm tài liệu cho các lớp cấu thành hệ thống và hệ thống
con
„ Những ký hiệu cho phép đặc tả lớp, dữ liệu „ Mô tả kết hợp, tổng quát hóa và các quan hệ kết tập giữa
hay thuộc tính của chúng (private) và các lớp trong biểu đồ
phương thức (method), sự thừa kế… „ Chỉ rõ đặc trưng của lớp, các thuộc tính và tác vụ chính của
mỗi lớp
„ Những sơ đồ đưa ra những hình ảnh về quan „ Biểu đồ lớp được dùng khắp nơi trong chu trình phát triển,
hệ cấu trúc và những ứng xử về chức năng từ bài toán đến mô hình cài đặt
của các lớp „ Tư liệu về cách tương tác với với các thư viện lớp có trước
„ Chĩ rõ các thể hiện đối tượng cụ thể bên trong cấu trúc lớp
„ Chỉ rõ các giao diện được các lớp hỗ trợ

UML/NN 33 UML/NN 34

Xác định lớp Xác định lớp


„ Những danh từ trong miền vấn đề „ Xác định từ
„ Kiến thức miền „ Những yêu cầu
„ Các User case „ Use case
„ Những thực thể vật lý „ Những chuyên gia ứng dụng
„ Những thiết bị „ Nghiên cứu hệ thống
„ Những sự kiện „ Nghiên cứu thêm
„ Những vai trò „ Những hệ thống tương tự
„ Những thủ tục hoạt động „ Những hệ thống trước đó
„ Những vị trí (site)
„ Những đơn vị thuộc tổ chức
UML/NN 35 UML/NN 36

9
Các lớp dự tuyển (*) Phương pháp tiếp cận
„ Top-down: các lớp cha được xác định bởi các
nhà phân tích rồi xem xét cấu trúc tổng quát
để đưa ra các lớp con, hướng tiếp cận này
dựa chủ yếu vào kinh nghiệm của những nhà
phân tích
„ Bottom-up: tìm kiếm các trách nhiệm được
chia sẻ, phát triển cấu trúc tổng quát từ thao
tác và các thuộc tính chung

UML/NN 37 UML/NN 38

Phát triển phân cấp lớp Phát triển phân cấp lớp

UML/NN 39 UML/NN 40

10
VD Supermarket

UML/NN 41

Company Biểu đồ đối tượng


„ Class
Diagram

„ Instance
Diagram

UML/NN 43 UML/NN 44

11
Biểu đồ đối tượng Bài tập
„ Captures Instances and Links „ Books and journals The library contains books
and journals. It may have several copies of a given
book.
„ Some of the books are for short term loans only. All
other books may be borrowed by any library
member for three weeks. Members of the library
can normally borrow up to six items at a time, but
members of staff may borrow up to 12 items at one
time. Only members of staff may borrow journals.
„ Borrowing The system must keep track of when
books and journals are borrowed and returned,
enforcing the rules described above.

UML/NN 45 UML/NN 46

UML/NN 47 UML/NN 48

12

You might also like