[r]
(1)Thiết kế hướng ñối
tượng - Sử dụng
UML (7)
Nguyễn Thanh Bình
Khoa Cơng nghệ Thơng tin
Trường ðại học Bách khoa
ðại học ðà Nẵng
2
Nội dung
Khái niệm cơ bản hướng ñối tượng Biểu ñồ ca sử dụng
(2)3
Hướng chức năng
Dựa vào chức hệ thống
Hệthống tập hợp chức
Chia nhỏcác chức làm mịn dần
Hệthống gồm hệthống Làm chủ ñộphức tạp
Các chức trao ñổi với
truyền tham sốhoặc dữliệu (chẳng hạn biến toàn cục) dùng chung
Hướng chức năng
Phân cấp chức năng
Hệthống
Chức Chức năng 2
(3)5
Hướng chức năng
Ưu ñiểm
Phân tích chức hệthống ðưa lại kết mong ñợi
Nhược ñiểm
Chức cấu trúc
Thay ñổi vềchức khó khăn thay đổi cấu trúc Tính mởcủa hệthống thấp
Khó tái sửdụng
Chi phí sửa chữa lỗi lớn
6
Hướng đối tượng
Lấy ñối tượng làm trung tâm
Hệthống = tập hợp ñối tượng + quan
hệgiữa ñối tượng
Các ñối tượng trao đổi thơng điệp
(message)
Khơng sửdụng biến toàn cục
(4)7
Hướng đối tượng
Phân biệt
Lập trình cấu trúc
• Thuật tốn + cấu trúc liệu = chương
trình
Lập trình HðT
• Σđối tượng = chương trình
• đối tượng = thuật tốn + cấu trúc dữliệu
Hướng đối tượng
Ưu điểm chính
Gần gũi với thế giới thực Tái sử dụng dễ dàng
ðóng gói, che dấu thơng tin làm cho hệ thống tin cậy hơn
(5)9
ðối tượng
ðối tượng (object) khái niệm cho
phép mô tả các sự vật/thực thể trong thế giới thực
Các ñối tượng trì quan hệ
giữa chúng
Nguyễn Văn A một ñối tượng
10
ðối tượng
Các tính chất của đối tượng
ðối tượng = trạng thái + hành vi + ñịnh danh
• Trạng thái đặc tính đối tượng thời điểm
• Hành vi thểhiện chức ñối tượng
(6)151
Sinh mã
Mã phương thức total()
:ListOfOrders :OneOrder
:AirPlane : total() : *[for each] subtotal()
3 : getPrice() public double total()
{
double sum = 0;
for (int i=0; i<orderList.size(); i++) sum += orderList.elementAt(i).subtotal(); return sum;
}
Sinh mã
Mã phương thức subTotal()
:ListOfOrders :OneOrder
1 : total() : *[for each] subtotal()
3 : getPrice() public double subtotal()
{
(7)153
Sinh mã
Mã phương thức getPrice()
:ListOfOrders :OneOrder
:AirPlane : total() : *[for each] subtotal()
3 : getPrice()
public float getPrice() {
return price; }
154
Công cụ
Phần mềm Rational Rose, Poisedon
for UML, Umbrello
Thiết kếcác biểuđồ UML Sinh mã chương trình
• C++
• Java
• VB