Hướng đối tượng trong UML
Trang 1Phan Tich & Thiét Ké Hướng Đối Tượng Sử Dụng UML
Giới Thiệu Về Hướng Đối Tượng
Trang 2Mục tiêu: Giới thiệu về Hướng Đối Tượng
zsTim hiểu các nguyên tắc cơ bản của hướng
ddi tugng (object orientation — OO)
Tìm hiểu các khái niệm cơ bản và các thuật
ngữ của hướng đổi tượng kết hợp với hệ thống ký hiệu của UML
Đánh giá chính xác sức mạnh của OO
«Tim hiểu một số cơ chế mô hình hoá cơ bản của UML
Trang 3Giới thiệu về Hướng Đối Tượng: Các chủ đề
«Các nguyên tắc cơ bản của OO
œsCác khái niệm co ban cua OO eSdac manh cua OO
œsCác cơ chế mô hình hoá cơ bản của UML
Trang 5Thé nao la trifu tudng hoa ?
Trang 6Encapsulation la gì?
»>
Che dấu cài đặt bên trong với clients
42sClients phu thudéc vao interface
Trang 7
Tính đơn thể là gì 2
Phân chia nhỏ một vấn đề phức tạp thành
nhiều phân nhỏ, đơn giản hơn quản lý được
Nhân Don dat hang
Trang 8Su phan cap (Hierarchy) là ắ (
Mức độ trừu tượng hoá
Tăng mức độ Trừữu tượng
SS
Tiết kiệm Thanh toán
Giám mức độ Các phân tử trên cùng một mức phải có cùng Trừu tượng mức độ trừu tượng
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
Dương Anh Đức, 9/2000 8
Trang 9Giới thiệu về Hướng Đổi Tượng: Cac chủ đề
Các nguyên tắc cơ bản của OO
œsCác khái niệm cơ bản của OO eSdac manh cua OO
œsCác cơ chế mô hình hoá cơ bản của UML
Trang 10Cac khái niệm cơ bản của Hướng đối tượng
«Relationships
Trang 11Cac khái niệm cơ bản của Hướng đối tượng
zObject
sCÌasS sAttribute
œ@peration
œslnterface (Polymorphism)
2sComponent
œsPackage sSubsystem sRelationships
Trang 13Một định nghĩa hiệu quả hơn
Một đối tượng là một khái niệm, sự trừu
tượng, hoặc một vật với giới han ro ràng và
có ý nghĩa với một ứng dụng cụ thể Một đối tượng có:
Trạng thái
s Hành vi
2 Dinh danh (Identity)
Trang 14Biểu diễn đối tượng
»>
Một đối tượng được biểu diễn bởi một hình
chữ nhật với tên được gạch dưới
Tên class và tên đối tượng
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 15Cac khái niệm cơ bản của Hướng đối tượng
eObject
4 GETS sAttribute
œ@peration
œslnterface (Polymorphism)
2sComponent
œsPackage sSubsystem sRelationships
Trang 16Class la gi?
»>
Class là mô tả của một nhóm đối tượng có
chung các thuộc tính (attributes), hành vị
(operations), các mối quan hệ và ngữ nghĩa
Một đối tượng là một thể hiện của class
#MOt class là sự trừu tượng mà trong đó:
Nhấn mạnh các tính chất quan trọng
œ Bỏ qua các tính chất khác
Nguyên tắc OO : Tritu tuong hod
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng
Trang 17OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Class Course
Behavior
Thêm một sinh viên
Huỷ một sinh viên
Lấy danh sách giáo sư Xác định hết chỗ chưa
Trang 18Biểu diễn 0lass
Trang 19OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 21Quan hệ giữa class và đối tượng
Một class là một định nghĩa trừu tượng của một đổi tượng
Nó định nghĩa cấu trúc và hành vi của mỗi đối
tượng trong lớp
Nó được dùng như khuôn mẫu để tạo đối tượng
Các đối tượng được nhóm thành các class
Trang 22Cac khái niệm cơ bản của Hướng đối tượng
Trang 23Thuộc tinh (Attribute) la gi?
Trang 24Cac khái niệm cơ bản của Hướng đối tượng
eObject
sCÌasS sAttribute
œsÁperation
œslnterface (Polymorphism)
2sComponent
œsPackage Subsystem sRelationships
Trang 25Hanh vi (Operation) la gi?
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 26
Cac khái niệm cơ bản của Hướng đối tượng
eObject
sCÌasS sAttribute
œ@peration
<slnterface (Polymorphism)
2sComponent
œsPackage Subsystem sRelationships
Trang 27Polymorphism la gi?
»>
askha nang che dau nhiều cài đặt khác nhau
bên dưới một giao diện (interface) duy nhất
Trang 28
Interface la gi?
slnterface hình thức hoá polymorphism
œlnterface hỗ trợ kiến trúc “plug-and-play”
Tube
<<interface>>
Pyramid
Draw Move Scale Rotate
Trang 29
Draw Move Scale
Trang 30Cac khái niệm cơ bản của Hướng đối tượng
eObject
sCÌasS sAttribute
œ@peration
œslnterface (Polymorphism)
zsComponent
œsPackage Subsystem sRelationships
Trang 31Component la gi?
»>
Một phần không tầm thường của hệ thống,
gần như độc lập và có thể thay thế được, øiữ một chức năng rõ ràng trong hệ thống
—_Namoe——_ Component Name
Trang 32Cac khái niệm cơ bản của Hướng đối tượng
eObject
sCÌasS sAttribute
œ@peration
œslnterface (Polymorphism)
2sComponent
«Package zsSubsystem
«Relationships
Trang 33œ Tổ chức mô hình đang phát triển
«Một đơn vị trong quản trị cấu hình
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 34Cac khái niệm cơ bản của Hướng đối tượng
eObject
sCÌasS sAttribute
œ@peration
œslnterface (Polymorphism)
2sComponent
œsPackage zsSubsystem
«Relationships
Trang 35subsystem la gi?
Tổ hợp của một package (có thể chứa các
phân tử khác trong mô hình) và một class
(có hành vi)
<Hiện thực hoá một hoặc nhiều interface
định nghĩa cho hành vi của nó
Nguyên tắc OO: Đóng gói và Tính đơn thể
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 36subsystem va Com ponent
zsComponent là thể hiện ở mức vật lý của
một khái niệm trừu tượng trong thiết kế
<Subsystem có thể dùng để biểu diễn các
component trong thiét kế
Nguyên tắc OO: Đóng gói và Tính đơn thể
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
Trang 37Cac khái niệm cơ bản của Hướng đối tượng
eObject
sCÌasS sAttribute
œ@peration
œslnterface (Polymorphism)
2sComponent
œsPackage Subsystem
«Relationships
Trang 39Mối quan hệ: Association
Trang 40Moi quan hé: Aggregation
Một dạng đặc biét cua association md hinh hoá mối quan hệ toàn thể-bộ phận giữa một thực thể và các bộ phận của nó
Trang 41
Moi quan hé: Composition
Trang 42Association: Ban sO va Chié@u
œsBản số xác định số đối tượng tham gia vào
một mối quan hệ
Số các thể hiện của một class quan hệ với MỘT
thể hiện của một class khác
œ Được chỉ ra ở mỗi đầu của quan hệ association
Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiêu
Mũi tên được thêm vào để chỉ chiều của mối quan hệ
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 43Association: Ban sé
Không xác định zChi mot
Không hoặc nhiều
«Các khoảng không liên tục
Trang 45
Mối quan hệ: Dependency
œQuan hệ giữa hai phần tử trong mô hình mà
thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia
Quan hệ “sử dụng”, không cấu trúc
Trang 46Moi quan hé: Generalization
(Quan hệ giữa các class trong đó một lớp
chia sẻ cậu trúc và/hoặc hành vi cua mot hoặc nhiều class khác
Xác định một sự phân cấp các mức độ trừu
tượng trong đó một subclass kể thừa từ một
hoac nhiéu superclass
Trang 49Cai gi được kế thừa?
»>
œsMột subclass kế thừa các thuộc tính, hành
vi và các mối quan hệ từ cha nó
Một subclass có thể:
Bổ sung thuộc tính, hành vi và các mối quan hệ
Định nghĩa lại các hành vi (nên cẩn thận!)
asCac thuộc tính, hành vi và các mối quan hệ
chung được đặt ở mức cao nhất có thể trong
cấu trúc phân cấp
Sự kế thừa làm nổi bật các điểm tương đồng giữa các class
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 50Vi du: Cai gì được kế thừa
Superclass (cha)
Trang 51Mối quan hệ: Realization
Một classifier đóng vại trò một hợp đồng mà
một classifier khác đồng ý thực hiện
Xuất hiện giữa:
Cac Interface va cac classifier hién thuc ching
Cac Use case va cac collaboration hién thuc
Use Case Use-Case Realization
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 52Giới thiệu về Hướng Đổi Tượng: Cac chủ đề
Các nguyên tắc cơ bản của OO
œsCác khái niệm co ban cua OO eSdac manh cua OO
œsCác cơ chế mô hình hoá cơ bản của UML
Trang 53Sức mạnh của Hướng đối tượng
Một thay đổi nhỏ trong yêu cầu không gây ra sự thay đổi lớn trong hệ thống đang phát triển
Trang 54Một ví dụ đơn giản: SaleS Order System
Trang 55Class Diagram cua vi du “ban hang”
Salesperson
Individual
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 56Hiệu ứng của sự thay đổi yêu cầu
Giả sử bạn cần
phương tiện vận chuyển mới
Individual |
|
Việc thay đổi liên quan đến việc thêm 1 subclass mới
OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
Trang 57Giới thiệu về Hướng Đổi Tượng: Cac chủ đề
Các nguyên tắc cơ bản của OO
œsCác khái niệm co ban cua OO eSdac manh cua OO
œ<Các cơ chế mô hình hoá cơ bản của UML
Trang 58Cac khu6n mau (Stereotype)
asPhan lớp và mở rộng các phần tử trong hệ
thống ký hiệu UML
Định nghĩa một phần tử của mô hình mới
dựa trên mot phan tu khac
Có thể áp dụng cho mọi phần tử mô hình
Được biểu diễn với tên đặt trong dấu << >>
hoặc băng các Icon khác
<<boundary>>
MyBoundaryClass MyBoundaryClass
Trang 60Cac ghi chu (note)
Trang 61Cac gia tri dinh (Tagged Values)
1à sự mở rộng của các thuộc tính hoặc của
các phần tử UML
Là một số thuộc tính được định nghĩa sẵn
bởi UIML
#5 Persistence
zs Location (chang han client, server)
Là các thuộc tính có thể được tạo bởi các
nhà mô hình hoá UML phục vụ cho mục
Trang 62Cac rang budc (bConstrain†S)
z<Hỗ trợ việc thêm các luật mới hoặc hiệu
chỉnh các luật đang tồn tại
Trang 63
Cau hoi ôn tập
(con tiép)
Trang 64Câu hỏi ôn tập (tt)
œsMô tả sức mạnh của OO
asCho biết tên và mô tác một số cơ chế tổng
quat trong UML
zStereotype là øì? Cho biết tên của một số
stereotype dung chung