Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
K ngh phn mm
Software Engeneering
B môn Công ngh phn mm – HCN
2
NguynVnV
Ni dung
Bài 7: Thit k hng đi tng
̈ VÊn ®Ò tån t¹i trong h−íng kiÕn tróc
̈ Kh¸i niÖm liªn quan ®Õn ®èi t−îng
̈ Ng«n ng÷ UML
̈ Ph©n tÝch h−íng ®èi t−îng
̈ ThiÕt kÕ h−íng ®èi t−îng
̈ Sö dông mÉu thiÕt kÕ
B môn Công ngh phn mm – HCN
3
NguynVnV
TÀI LiU THAM KHO
1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn
mm. Nhà xut bn i hc Quc gia Hà ni, 2008
2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
3. M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
4. Roger S.Pressman, Software Engineering, a Practitioner’s
Approach. Fifth Edition, McGraw Hill, 2001.
5. Ian Sommerville, Software Engineering. Sixth Edition, Addison-
Wasley, 2001.
6. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi.
Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà
Ni.
B môn Công ngh phn mm – HCN
4
NguynVnV
KiÕn tróc phÇn mÒm truyÒn thèng
B mụn Cụng ngh phn mm HCN
5
NguynVnV
Vấn đề của thiết kế hớng thủ tục
Dữ liệu l chung cho cả hệ thống
Mọi thủ tục thao tác trên CSDL chung, đặc trng
cho trạng thái ton hệ thống
Thao tác sai của 1 thủ tục lên dữ liệu gây sai lan
truyền sang phần khác sử dụng dụng dữ liệu ny
Sửa đổi 1 thủ tục có nguy cơ ảnh hởng tới phần
khác liên quan
Thay đổi cấu trúc dữ liệu dẫn đến thay đổi tổng
thể hệ thống ồ
dữ liệu cần tổ chức tốt
Hệ thống lớn, phức tạp: bảo trì khó khăn
B mụn Cụng ngh phn mm HCN
6
NguynVnV
Thiết kế hớng đối tợng- OOD
Hiện đang trở nên phổ biến
L một cách tiếp cận khác, nhìn nhận hệ
thống theo các quan điểm:
tập các đối tợng có tơng tác với nhau
mỗi đối tợng bao gói cả dữ liệu v các xử lý
trên chúng
Tơng tác giữa các đối tờng bằng truyền
thông báo
Các đối tợng có thể kế thừa nhau
B môn Công ngh phn mm – HCN
7
NguynVnV
VÝ dô kiÕn tróc h−íng ®èi t−îng
issue ()
sendReminder ()
acceptPayment ()
sendReceipt ()
invoice#
date
amount
customer
Invoice
invoice#
date
amount
customer#
Receipt
invoice#
date
amount
customer#
Payment
customer#
name
address
credit period
Customer
B mụn Cụng ngh phn mm HCN
8
NguynVnV
Ưu điểm của OOD
Dễ bảo trì: các đối tợng đợc hiểu nh các
thực thể hoạt động độc lập
Bao gói thông tin
liên kết lỏng lẻo (trao đổi bằng truyền thông báo)
Dễ tái sử dụng:
độ độc lập cao
có khả năng kế thừa
Dễ hiểu: một vi hệ thống, có sự ánh xạ tờng
minh giữa thực thể thực thế giới thực v đối
tợng hệ thống
B mụn Cụng ngh phn mm HCN
9
NguynVnV
Nội dung của OOD
Xác định các tập đối tợng (gọi l lớp) v
các đặc trng của chúng
Phân định vai trò v trách nhiệm của chúng
trong hệ thống
Thiết lập đợc sự tơng tác của chúng để
thực hiện chức năng của hệ thống phần
mềm đặt ra
B mụn Cụng ngh phn mm HCN
10
NguynVnV
Các khái niệm của OOD
d1. Đối tơng
L các trừu tợng hóa thực thể của thế giới thực hoặc
của một hệ thống
Bao gồm: định danh, các thuộc tính v các phơng
thức
thao tác trên các dữ liệu thuộc tính của nó
Độc lập v đóng gói trạng thái thể hiện bằng giá trị
các thuộc tính của nó ở một thời điểm
Cung cấo dịch vụ cho đối tợng khác hay yêu cầu
các đối tợng khác thực hiện một dịch vụ
B mụn Cụng ngh phn mm HCN
11
NguynVnV
Lớp đối tợng
Lớp đối tợng l khuôn mẫu để tạo ra tập đối
tợng có các đặc trng chung
Lớp đối tợng có thể kế thừa thuộc tính v
dịch vụ từ lớp đối tợng khác
Lớp đợc xác định bằng:
Tên
Bộ các thuộc tính
Các phơng thúc
Sinh vien
maSV
hotenSV
diachi
lop
Tao( )
Capnhat( )
Xoa( )
B mụn Cụng ngh phn mm HCN
12
NguynVnV
Trừu tợng hóa
Trừu tợng hóa cung cấp cái nhìn đơn giản
đối với thực thể cần xử lý
chỉ mô tả các tính chất chúng ta quan tâm
che giấu các thông tin không cần thiết
Đợc ci đặt nh l:
kiểu dữ liệu trừu tợng, lớp đối tợng
các kiểu dữ liệu cơ sở có sẵn: int, double
B mụn Cụng ngh phn mm HCN
13
NguynVnV
Bao gói v che giấu thông tin
L khái niệm cơ sở của thiết kế/lập trình
hớng đối tợng
Che giấu thông tin để đối tợng không cần
thiết không thể sử dụng
Chỉ cung cấp chức năng, dịch vụ cần
Che giấu các yếu tố có khả năng thay đổi
cấu trúc dữ liệu
cách thức ci đặt
B mụn Cụng ngh phn mm HCN
14
NguynVnV
Cấu trúc dữ liệu
Mô tả mối quan hệ giữa các khoản mục dữ liệu
Cấu trúc vật lý chỉ ra cách thức chơng trình
thao tác với dữ liệu
Các cấu trúc cơ sở
khoản mục vô hớng
mảng (một chiều, nhiều chiều)
danh sách móc nối
cây phân cấp
B môn Công ngh phn mm – HCN
15
NguynVnV
VÝ dô
struct Date {
int year, mon, day;
};
struct Date {
int year;
int mon_and_day;
}
B mụn Cụng ngh phn mm HCN
16
NguynVnV
Tổng quát hóa v kế thừa
Một lớp có thể l lớp con của 1 lớp các đối tợng
tổng quá hơn, v gọi l kế thừa của lớp tổng quát
trên cây kế thừa, lớp cha (super class) có thể l
tổng quát hóa của 1 số các lớp con (sub-class)
Lớp con kế thừa các thuộc tính v phơng thức
của lớp cha v có thể thêm/thay đổi phơng thức,
thuộc tính
Sử dụng kế thừa giúp ta mô tả lớp con chỉ gồm
các đặc trung khác lớp cha
B môn Công ngh phn mm – HCN
17
NguynVnV
VÝ dô c©y kÕ thõa
Employee
Programmer
project
progLanguage
Manager
Project
Manager
budgetsControlled
dateAppointed
projects
Dept.
Manager
Strategic
Manager
dept responsibilities
B mụn Cụng ngh phn mm HCN
18
NguynVnV
Ưu điểm của kế thừa
L cơ chế trừu tợng để phân loại các lớp (thực
thể)
Tái sử dụng cả ở mức thiết kế v mức lập trình
tái sử dụng cấu trúc dữ liệu
tái sử dụng phơng thức:
giao diện
ci đặt (mã)
Biểu đồ kế thừa l nguồn thông tin mang tính tổ
chức về bi toán
B môn Công ngh phn mm – HCN
19
NguynVnV
T−¬ng t¸c gi÷a c¸c ®èi t−îng
state o3
o3:C3
state o4
o4: C4
state o1
o1: C1
state o6
o6: C1
state o5
o5:C5
state o2
o2: C3
ops1()
ops3 ()
ops4 ()
ops3 ()
ops1 ()
ops5 ()
B mụn Cụng ngh phn mm HCN
20
NguynVnV
Tơng tác giữa các đối tợng
Các đối tợng giao tiếp bằng trao đổi thông báo
Thông báo
Tên dịch vụ đợc yêu cầu
Thông tin dùng để thực hiện dịch vụ
Các loại đối tợng
actor: chỉ gửi thông báo
agent: gửi v nhận thông báo
server: chỉ nhận thông báo
Thực tế, thông báo đợc ci đặt bằng lời gọi hm
Tên = tên hm
Thông tin = danh sách tham số
B mụn Cụng ngh phn mm HCN
21
NguynVnV
Một số vấn đề dùng kế thừa
Đối tợng không tự chứa, không thể hiểu nếu
không tham chiếu đến lớp cha
Lạm dụng các sơ đồ kế thừa trong bớc phân
tích có thể dẫn đến sự kém hiệu quả
B mụn Cụng ngh phn mm HCN
22
NguynVnV
Kế thừa v OOD
Có hai quan niệm
1. Kế thừa l yếu tố cơ bản của OOD v đợc ci
đặt thông qua các ngôn ngữ hớng đối tợng
2. Kế thừa sử dụng cơ chế đặc biệt để tái sử
dụng thuộc tính v phơng thức. Thiết kế kế
thừa sẽ tạo ra các rng buộc cho ci đặt
Kế thừa không dễ hiểu v do đó nên tránh,
nhất l đối với các hệ thống đặc biệt quan
trọng.
B môn Công ngh phn mm – HCN
23
NguynVnV
e. Ng«n ng÷ m« h×nh hãa thèng nhÊt
Unified Modeling Language
̈ Là mt ngôn ng mô hình đ phát trin
phn mm hmg đi tng
̈ Các đc trng: UML là ngôn ng:
̇ đ ha
̇ làm trc quan hóa
̇ đc t
̇ xây dng mô hình
̇ làm tài liu
B môn Công ngh phn mm – HCN
24
NguynVnV
̈ Gåm 3 khèi c bn:
A. C¸c sù vËt (things)
1. C¸c sù vËt cÊu tróc (structural)
2. C¸c sù vËt hμnh vi (behavioral)
3. C¸c sù vËt nhãm gép(grouping)
4. C¸c sù vËt gi¶i thÝch (annotational
)
B. C¸c quan hÖ (Relationships)
C. C¸c biu ®å (Diagrams)
Ng«n ng÷ m« h×nh hãa thèng nhÊt
B môn Công ngh phn mm – HCN
25
NguynVnV
Ng«n ng÷ m« h×nh hãa thèng nhÊt
̈ C¸c sù vËt cÊu tróc (structural)
Class –lp use ase –ca s dng Collaboration
sù cng t¸c
Node - nótActor Interface Component-thμnhfn
t hàng
Window
origin
open()
t hàng
orderform.java
Server