Tải bản đầy đủ (.pdf) (54 trang)

Tài liệu Kỹ nghệ phần mềm 07 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (539.72 KB, 54 trang )

Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
K ngh phn mm
Software Engeneering
B môn Công ngh phn mm – HCN
2
NguynVnV
Ni dung
Bài 7: Thit k hng đi tng
̈ 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 phn mm – HCN
3
NguynVnV
TÀI LiU THAM KHO
1. Nguyn Vn V, Nguyn Vit Hà. Giáo trình k ngh phn
mm. Nhà xut bn i hc Quc gia Hà ni, 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. Nguyn Vn V. Phân tích thit k h thng thông tin hin đi.
Hng cu trúc và hng đi tng, NXB Thng kê, 2002, Hà


Ni.
B môn Công ngh phn mm – HCN
4
NguynVnV
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 phn mm – HCN
7
NguynVnV
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 phn mm – HCN
15
NguynVnV
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 phn mm – HCN

17
NguynVnV
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 phn mm – HCN
19
NguynVnV
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 phn mm – HCN

23
NguynVnV
e. Ng«n ng÷ m« h×nh hãa thèng nhÊt
Unified Modeling Language
̈ Là mt ngôn ng mô hình đ phát trin
phn mm hmg đi tng
̈ Các đc trng: UML là ngôn ng:
̇ đ ha
̇ làm trc quan hóa
̇ đc t
̇ xây dng mô hình
̇ làm tài liu
B môn Công ngh phn mm – HCN
24
NguynVnV
̈ Gåm 3 khèi c bn:
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 biu ®å (Diagrams)
Ng«n ng÷ m« h×nh hãa thèng nhÊt
B môn Công ngh phn mm – HCN
25
NguynVnV
Ng«n ng÷ m« h×nh hãa thèng nhÊt
̈ C¸c sù vËt cÊu tróc (structural)

Class –lp use ase –ca s dng Collaboration
sù cng t¸c
Node - nótActor Interface Component-thμnhfn
t hàng
Window
origin
open()
t hàng
orderform.java
Server

×