Phân Tích & Thiết Kế Hướng Đối Tượng Sử Dụng UML
Trang 1
Phân Tích & Thiết Kế
Hướng Đối Tượng Sử Dụng UML
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
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
Trang 4ÁUu21Ð1©IH dp5 upud uuII Ấ1IJÐI"DOIN oUt UOp Yul] 00 9 ae BF UOIIÐInsdb2ua IọB Buọp uưIi 9 one ©) S > — XO G) ©) S S — tac c UOII2D1JSqQV poy Buơn nnII ^^
Giới thiệu về Hướng Đối Tượng
Lá
Dương Anh Đức, 9/2000 OOAD Sử dụng UML - Giới
Trang 5Thế nào là trừu tượng hoa ? @ Ấ \ ww“ 5 Người bán hàng Khách hàng ean pham Quản lý được độ phức tạp OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
Trang 6Encapsulation là gì?
»>
Che dấu cài đặt bên trong với clients
42sClients phu thudéc vao interface
Va Tăng tính mềm dẻo OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
Trang 7Tí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
Hệ théng xu ly
ca a ar
Tinh tién
Quản lý được độ phức tạp OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
Trang 8Sự phân cấp (Hierarchy) là ắ ( Mức độ trừu tượng hố
Tăng mức độ Trừữu tượng
Bria 2
SS
Tài khoản Tài khoản Cổ phiếu Trái phiếu
Tiết kiệm Thanh tố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
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
Trang 12Object la gi 2
œsMột cách khơng hình thức, một đối tượng
biểu diên một thực thể, dạng vật lý, khá: niệm, hoặc phân mềm
zs Thuc thé vat ly Thực thể khái niệm Ị Chemical Process Sa Thực thể phần mềm Linked List OOAD St dung UML — Giới thiệu về Hướng Đối Tượng
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
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
‘ Professor ProfessorClark Chỉ cĩ tên Class Professor Clark ProfessorClark : Tên class và tên đối tượng
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 17Vi du vé Class Properties Ten Dia diém Thời gian Số tín chỉ Giờ bắt đầu Giờ kết thúc
OOAD 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
Trang 18Biểu diễn 0lass »>
Một class biểu diễn bằng một hình chữ nhật
øồm ba phần Professor Professor Clark
Trang 19Các phần trong một Class
Một class bao gồm ba phần
Phần đầu chứa tên class
Phần thứ hai cho thấy cấu trúc của lớp
(attributes)
Phần thứ ba cho thấy các hành vi của lớp
(operations) Professor name emplD create( ) Ssave( delete( ) change( )
Trang 20Các lớp đổi tượng »
Bạn nhìn thay bao nhiéu class?
Trang 21
Quan 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
Objects Class su eu _ Professor _ ` -t ` -ýt
Professor Smith $m Professor Mellon
ar’ | ad — nt |
Professor Jones
Trang 23Thuộc tinh (Attribute) la gi? -CourseOffering number = 101 startTime = 900 endTime = 1100 |CourseOffering number =» startlime : endTime -CourseOffering number = 104 startTime = 1300 endTime = 1500
Trang 25Hanh vi (Operation) la gi? Class a CourseOffering
Operation XÃ deleteStudent ddStudent
getStartTime getEndTime
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 27Polymorphism là gì?
»>
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
Nguyên tắc OO: Dong gol
Trang 28Interface la gi?
slnterface hình thức hố polymorphism
œlnterface hỗ trợ kiến trúc “plug-and-play”
Tube <<interface>> Shape Pyramid Draw Move Scale Rotate
Trang 29
Biểu diễn Interface
"<< 4 ⁄ Biểu diên rút gọn Biểu diễn chính tắc (Class/Stereotype) <<interface>> Shape Draw Move Scale Rotate
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 31
Component 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
Một component cĩ thể là
4s M6t source code component
Nguyên tắc OO:
#2 M6t run time components hoac |
Dong gol
# M6t executable component
Source File Ï— <<EXE>> <<DLL>> Name hcc] kxecutable Component
—_Namoe——_ Component Name
Interface
Trang 33
Package là gì?
»>
Một package là một cơ chế để tổ chức các
phẫn tử vào thành các nhĩm
Một phần tử trong mơ hình cĩ thể chứa các `
phân tử khác
Nguyên tắc OO:
Package Name NI, thể
Dùng để
œ Tổ chức mơ hình đang phát triển
«Một đơn vị trong quản trị cấu hình
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 hố một hoặc nhiều interface
định nghĩa cho hành vi của nĩ
| C) <<subsystem>> Subsystem Name Interface
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 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ế
Design Model Implementation Model
Ld
o= <<subsystem>> Component
Component Name Name
Component
Component
Interface Interface
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 38Association (Kết hợp)
Aøøregation (Thu nạp)
Composition (Cấu thành)
zsDependency (Phu thudc)
0.1 Employs
A
e : employer employee
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng
Trang 39Mối quan hệ: Association
Mơ hình hố một liên kết ngữ nghĩa giữa
cac class Professor University Professor University Employee Employer
OOAD St dung UML — Giới thiệu về Hướng Đối Tượng Dương Anh Đức, 9/2000
Trang 40
Mối quan hệ: Aggregation
Trang 41
Mối quan hệ: Composition
Một dạng aggregation cĩ tính sở hữu cao và cùng chu kỳ sống
Các bộ phận khơng thể sống lâu hơn thực thể
Trang 42Association: Bản số và 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ệ
Trang 43Association: Bản số
Khơng xác định zChi mot
Khơng hoặc nhiều
Một hoặc nhiều Khơng hoặc một Khoảng được chỉ định
«Các khoảng khơng liên tục
Trang 44
Ví dụ: Bản số và Chiêu Multiplicity by ⁄ ` ne: schedule Student ea Navigation
Trang 45Mố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
Client || ————> Supplier = Client = Supplier ClientPackage
¡ thiệu về Hướng Đối Tượng
SupplierPackage
Trang 46
Moi 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
Đơn kế thừa
œ< Đa kế thừa
«Generalization la quan hé “la mot dang của”
Trang 47Ví dụ: Đơn kế thừa
Một class kế thừa từ một class khác
Account balance name number Withdraw() CreateStatement Checking Savings Withdraw(} Getinterest() Withdraw()
Trang 48Ví dụ: Đa kể thừa »>
Một class kế thừa từ nhiều class khác
Flying Thing Animal
Đa kê thừa
AIrplane Helicopter
Chi su dung đa kế thừa khi thật cần, và luơn
phải cẩn thận !
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
Trang 50Ví dụ: Gái gì được kế thừa Superclass (cha) GroundVehicle weight licenseNumber Person Subclass
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 @ ()— äSS Component ubsystem ấ Interface interface Interface
Cac Use case va cac collaboration hién thuc
Use Case Use-Case Realization
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
Trang 53Sức mạnh của Hướng đối tượng
Một mơ hình chung
Cĩ tính dễ dùng lại
Mơ hình phản ánh chính xác thế giơi thực
Na tả chính xác hơn các tập dữ liệu và các xử
s‹ Được phân rã dựa trên các phân chia tự nhiên
Dễ hiểu và dễ bảo trì
Tính ổn định
Trang 54Một ví dụ đơn giản: SaleS Order System
¬ Ww
Trang 55Class Diagram cua vi du “ban hang”
SIÍÍ=), buyer item sold shipoing mechanism
Salesperson
Individual OOAD Sử dụng UML - Giới thiệu về Hướng Đối Tượng
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
seller buyer item sold hipping mechanism
Salesperson | | a | | a J 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
Trang 58ác khuơn mẫu (Stereotype)
Phân 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
Trang 59Vi du: Stereotype <<boundary>> .°" > " <<boundary>> `, ` <<trace>> “sd DesignClass <<Processor>> Processor #1 Frocessor #1
Trang 60Cac ghi chu (note) »>
Cĩ thể đặt ghi chú cho mọi phần tử UML Ghi chú dùng để thêm thơng tin cho các
lược đồ
Nĩ là hình chữ nhật bị bẻ gĩc
Ghi chú cĩ thể mĩc nối với một phần tử
bằng một đường đứt nét
Trang 61
Cac gia trị đính (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 hố UML phục vụ cho mục
đích bất kỳ
PersistentClass
Trang 62ác ràng buộc (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
Member | Professor 1 * x Department : { subset} Department Head | |
Trang 63Cau hoi ơn tập »>
Bốn nguyên tắc cơ bản của OO là gì ‡ Mơ tả
ngắn gọn về mối nguyên tắc
Đối tượng là gì ‡ Class là gì ¿ Những điểm
khác nhau giữa chúng ¢
zsThudéc tinh (Attribute) la øì ‡ zsHanh vi (Operation) la gi ?
zlinterface la gi ? Polymorphism la gi ? zsComponent la gi ?
Trang 64Câu hỏi ơn tập (tt)
«Package la gi?
zsSubsystem la gi 2? NO
nao vd! Component? nào với package? No nao VGi class?
2Tén cua 4 quan hé UML co ba từng quan hệ
œ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ố