Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ

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ế

 

pdf 54 trang yennguyen 3140
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ

Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ
Bộ môn Công nghệ phần mềm- Khoa CNTT- ĐHCN
Email: vynv@coltech.vnu.vn
Kỹ nghệ phần mềm
Software Engeneering
Nguyễn Văn Vỵ
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ệ phần mềm – ĐHCN 5
NguyễnVănVỵ
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 tr−ng 
cho trạng thái toμn 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 nμy
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ệ phần mềm – ĐHCN 6
NguyễnVănVỵ
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ệ phần mềm – ĐHCN 8
NguyễnVănVỵ
Ư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 vμi 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ệ phần mềm – ĐHCN 9
NguyễnVănVỵ
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 tr−ng 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ệ phần mềm – ĐHCN 10
NguyễnVănVỵ
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ệ phần mềm – ĐHCN 11
NguyễnVănVỵ
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 tr−ng 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ệ phần mềm – ĐHCN 12
NguyễnVănVỵ
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 cμi đặ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ệ phần mềm – ĐHCN 13
NguyễnVănVỵ
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 cμi đặt
Bộ mụn Cụng nghệ phần mềm – ĐHCN 14
NguyễnVănVỵ
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ệ phần mềm – ĐHCN 16
NguyễnVănVỵ
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ệ phần mềm – ĐHCN 18
NguyễnVănVỵ
Ư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:
ygiao diện
ycμi đặt (mã)
„ Biểu đồ kế thừa lμ nguồn thông tin mang tính tổ
chức về bμi 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ệ phần mềm – ĐHCN 20
NguyễnVănVỵ
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 cμi đặt bằng lời gọi hμm
 Tên = tên hμm
 Thông tin = danh sách tham số
Bộ mụn Cụng nghệ phần mềm – ĐHCN 21
NguyễnVănVỵ
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ệ phần mềm – ĐHCN 22
NguyễnVănVỵ
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 cμi 
đặ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 rμng buộc cho cμi đặ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
Bộ mụn Cụng nghệ phần mềm – ĐHCN 26
NguyễnVănVỵ
Ngôn ngữ mô hình hóa thống nhất
„ Các sự vật hμnh vi , nhóm gộp, giải thích
interaction state machine package
Note 
display đợi + OrderForm
+ Tracking FormOrde
Client
Class
Tự tạo
Bộ mụn Cụng nghệ phần mềm – ĐHCN 27
NguyễnVănVỵ
Ngôn ngữ mô hình hóa thống nhất
B. Các mối quan hệ
dependence assosiation generalization
compositerealization aggregation
0..1 1..*
Bộ mụn Cụng nghệ phần mềm – ĐHCN 28
NguyễnVănVỵ
Ngôn ngữ mô hình hóa thống nhất
C. Các biểu đồ
Gọiđiệnthoại đặt hội nghi
Trảlời
“use”
“extend”
Biểu đồ cửa sa sử dụng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 29
NguyễnVănVỵ
Ngôn ngữ mô hình hóa thống nhất
C. Các biểu đồ
Biểu đồ cửa công tác phân tích
Giaodiện rúttiền
Giaodiệnnhậntiền
tμi khoản
lịch sử tμi 
khoản
điều khiển rút 
tiền
Bộ mụn Cụng nghệ phần mềm – ĐHCN 30
NguyễnVănVỵ
TransportAgent
Message
IncomingQueue OutgoingQueue
Queue
c:company
d1:Department
name =“Sale”
d2:Department
name=“R&D”
d3:Department
name = “US Sales”
p: Person
name=“Exin”
Biểu đồ lớp Biểu đồ đối t−ợng
Ngôn ngữ mô hình hóa thống nhất
Bộ mụn Cụng nghệ phần mềm – ĐHCN 31
NguyễnVănVỵ
C. Các biểu đồ
Biểu đồ tuần tự
:message :OutgoingQueue
create
ad dMessage
:TranAgent
RemoveMessage
Ngôn ngữ mô hình hóa thống nhất
Bộ mụn Cụng nghệ phần mềm – ĐHCN 32
NguyễnVănVỵ
C. Các biểu đồ
waiting
GettingToken
GettingBody
Biểu đồ trạng thái
Ngôn ngữ mô hình hóa thống nhất
Bộ mụn Cụng nghệ phần mềm – ĐHCN 33
NguyễnVănVỵ
Phân tích/thiết kế h−ớng đối t−ợng
„Mô hình phân tích
 Mô hình nghiệp vụ
yMô hình miền
yBiểu đồ hoạt động
 Mô hình ca sử dụng
 Mô hình lớp phân tích
 Mô hình gói lớp
„Mô hình thiết kế
ƒMô hình cấu trúc gói 
ƒMô hình cộng tác
ƒMô hình lớp
ƒ đặc tả lớp, giao diện
Bộ mụn Cụng nghệ phần mềm – ĐHCN 34
NguyễnVănVỵ
Tiến trình phân tích-thiết kế DT
Tiến trình phân tích vμ thiết kế h−ớng đối t−ợng
Mô tả
nghiệp vụ
Lập mô hình 
ca sử dụng 
Lập mô hình
kiến trúc-gói
ca sử dụng
Phân tích 1 gói
ca sử dụng
Phân gói các 
lớp phân tích
Thiết kế 
hệ thống
Lập biểu đồ
công tác 1 
gói phân tích
Xây dựng các
giao diện
Lập biểu 
đồ lớp thiết kế
Thiết kế
lớp
Thiết kế 
CSDL
Thiết kế 
giao diện
sử dụng
Nghiệp vụ Phân tích Thiết kế
Bộ mụn Cụng nghệ phần mềm – ĐHCN 35
NguyễnVănVỵ
Phân tích h−ớng đối t−ợng 
1.Mô tả nghiệp vụ
ƒ Bằng lời
ƒ Bằng biểu đồ hoạt đông
2.Xây dựng mô hình nghiệp vụ
ƒ Mô hình miền lĩnh vực
ƒ Mô hình ca sử dụng
3.Phân tích xác định cấu trúc (khởi thảo) 
ƒ Lμm mịn mô hình ca sử dụng
ƒ Xác định các gói ca sử dụng, giao diện
Bộ mụn Cụng nghệ phần mềm – ĐHCN 36
NguyễnVănVỵ
1.Phân tích một ca sử dụng
ƒ Tìm các lớp phân tích
ƒ Xác định liên kết giữa các lớp
2.Phân gói lại các lớp phân tích (tăng c−ờng 
kiến trúc)
ƒ Tách các lớp dịch vụ & ứng dụng
ƒ Phân gói các lớp phân tích theo tầng
3.Xác định vμ mô tả các giao diện 
ƒ Xác đinh giao diện giữa các gói
ƒ Xác định liên kết giữa các gói
Phân tích h−ớng đối t−ợng 
Bộ mụn Cụng nghệ phần mềm – ĐHCN 37
NguyễnVănVỵ
Thiết kế h−ớng đối t−ợng 
1.Thiết kế biểu đồ t−ơng tác mỗi gói
ƒ Xác định lại các lớp
ƒ Xây dựng biểu đồ t−ơng tác
2.Phát triển biểu đồ lớp thiết kế
ƒ Chuyển biểu đồ công tác sang biểu đồ lớp
ƒ Hoμn thiện các quan hệ công tác
3.Thiết kế các lớp 
ƒ Thiết kế các thuộc tính
ƒ Thiết kế các ph−ơng thức
ƒ Thiết kế CSDL
4.Thiết kế giao diện ng−ời dùng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 38
NguyễnVănVỵ
Ví dụ: phân tích h−ớng đối t−ợng
1.Bμi toán: giao dịch tín dụng sử dụng máy ATM
2.Mô hình nghiệp vụ
Giao dịch tín dụng
gửi tiền
rút tiền
Chuyển tiền
Biểu đồ ca sử dụng Mô hình miền
ngân hàng
tài khoảnkhách
dịch vụ
1
1..*1..*
1
1..* 1
1
11
1..*
Bộ mụn Cụng nghệ phần mềm – ĐHCN 39
NguyễnVănVỵ
„ Xác định gói các ca sử dụng 
gửi tiền
Biểu đồ gói ca sử dụng
gửi tiềngửi tiền
Giao dịch tín dụng
Ví dụ: phân tích h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 40
NguyễnVănVỵ
„ Phân tích một gói các ca sử dụng 
Mô hinh ca sử dụng Mô hình phân tích
rút tiền thực thi ca sử dụng rút tiền
>
Máy trả
tiền
giao diện 
thủ quỹ
điều khiển rut 
tiền
tài khoản
Các lớp phân tích thực thi ca sử dụng rút tiền.
Ví dụ: phân tích h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 41
NguyễnVănVỵ
„ Biểu đồ phân tích một gói ca sử dụng 
Các lớp phân tích vμ quan hệ giữa chúng
Tài khoản
giao diện thủ quỹ
điều khiển 
rút tiền
Máy trả tiền
Khách hàng
Ví dụ: phân tích h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 42
NguyễnVănVỵ
giao diện 
thủ quỹ
điều khiển 
chuyển tiền
Máy trả tiền
Máy nhận 
tiền
điều khiển 
nhận tiền
điều khiển 
rút tiền
chuyển đổi
tμi khoản
Tμi 
khoản
Các gói của các lớp phân tích 
khách hμng
„ Biểu đồ gói các 
lớp phân tích 
Ví dụ: phân tích h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 43
NguyễnVănVỵ
„ Thiết kế hệ thống 
Máy 
khách
Máy dịch 
vụ ứng 
dụng
Máy dịch 
vụ ngân 
hàng
internet
intranet
Biểu đồ bố trí các nút của hệ thống
khách hàng
Ví dụ: Thiết kế h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 44
NguyễnVănVỵ
„ Biểu đồ các lớp thiết kế 
Màn hình 
hiển thị
Bàn phím
Máy đọc 
thẻ
cảm ứng 
trả tiền
Máy đẩy 
tiền Máy đếm 
tiền
rút tiền
quản lý 
giao dịch
Tài khoản
lịch sủ tài 
khoản
quản lý 
tài khoản
quản lý 
khách
Các lớp thiết kế tham gia thực hiện ca sử dụng rút tiền
Ví dụ: Thiết kế h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 45
NguyễnVănVỵ
: quản lý 
giao dịch
đưa thẻ vμo
Thông tin thẻ (ID)
Yêu cầu hiển thi PIN
hiện bảng yêu cầu
nhập vμo mã PIN 
hiện bảng yêu cầu
nhập vμo số tiền rút
Yêu cầu số tiền rút
số tiền (A)
Yêu cầu số tiền mặt (A)
Yêu cầu giảm số dư = (A)
đề nghi xác nhận PIN
mã PIN
Biểu đồ tuần tự thực hiện ca sử dụng rút tiền 
: khỏch
hàng
: mỏy 
đếm tiền
: quản lý 
khỏch
: màn hỡnh
hiển thi
: mỏy 
đọc thẻ
: bàn 
phớm 
Ví dụ: Thiết kế h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 46
NguyễnVănVỵ
„Thiết kế lớp: tμi khoản
a. Bảng các thuộc tính :
Tên thuộc tính kiểu Nội dung
IDtaikh string Định danh tμi khoản
sotkh string Số tμi khoản dμnh cho một 
khách hμng gồm chữ, số, dấu
sodu money Số d− có trong tμi khoản, đơn vị
đo lμ tiền tệ
Ví dụ: Thiết kế h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 47
NguyễnVănVỵ
„Thiết kế lớp: Tμi khoản
b. Bảng các thao tác (tác vụ)
Tên thao tác ý nghĩa
taolap() Tạo một tài khoản cho khách hàng mới
gui() Bổ sung tiền gửi vào tài khoản
chuyen() Chuyển một số tiền từ 1 tài khoản sang 1 
tài khoản khác
rut() Rút một số tiền từ tài khoản
dong() Đóng tài khoản
Ví dụ: Thiết kế h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 48
NguyễnVănVỵ
„ Thiết kế lớp
Lớp tμi khoản với các thuộc tính vμ các thao tác 
taolap (sotkh:string, sotien;money)
+ gui(sotkh:string, soien:money)
+ chuyen(sotkh:stringk, sotien:money, 
sotkh2:string)
+ rut (sotk:h:string, sotien;money) 
dong()
Taikhoan
IDtaikh:string
sotaikh: string
sodu: money
Ví dụ: Thiết kế h−ớng đối t−ợng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 49
NguyễnVănVỵ
Mẫu thiết kế - Pattern
„ Mẫu thiết kế: Pattern 
ƒ khi thiết kế có nhiều tr−ờng hợp có sự t−ơng tự
ƒ Mô tả giải pháp của một tr−ờng chung có thể áp cho 
tr−ờng hợp khác t−ơng tự  gọi lμ mẫu thiết kế
„ Mô tả một mẫu bao gồm: 
ƒ Vấn đề đặt ra (ngữ cảnh)
ƒ Giải pháp: phát biểu nh− một châm ngôn
ƒ Kết quả
ƒ Các mẫu liên quan
ƒ Mô hình mẫu
Bộ mụn Cụng nghệ phần mềm – ĐHCN 50
NguyễnVănVỵ
Ví dụ một số mẫu thiết kế
„ Bản chất mẫu
™ Mẫu thiết kế không phải lμ cái gì mới mẻ
™ Mẫu thiết kế lμ một sự đúc kết từ kinh nghiệm
„ 5 mẫu phần mềm gán trách nhiệm chung
GRASP thường được sử dụng nhiều nhất lμ:
ƒ Expert (chuyên gia) 
ƒ Creator (bộ tạo lập) 
ƒ Low Coupling (ghép nối thấp)
ƒ HighCohension (kết dính cao)
ƒ Controller (bộ điều khiển)
„
Bộ mụn Cụng nghệ phần mềm – ĐHCN 51
NguyễnVănVỵ
Ví dụ một số mẫu thiết kế
„ Mô hình mẫu của mẫu chuyên gia
ƒ Vấn đề: Nguyên tắc gán trách nhiệm cho 1 đối t−ơng 
lμ gì?
ƒ Giải pháp: Hãy gán trách nhiệm cho đối t−ợng có đủ
thông tin để thực hiện tráchnhiệm đó
ƒ Kết quả: Giảm sự phụ thuộc vμo lớp khác
ƒ Mẫu liên quan: kết dính cao, ghép nối lỏng
Bộ mụn Cụng nghệ phần mềm – ĐHCN 52
NguyễnVănVỵ
Ví dụ một số mẫu thiết kế
„ Mô hình mẫu chuyên gia: bμi toán bán hμng
ƒ Gán trách nhiệm cho mathangban tính tổng tiền 
bán 1 mặt hμng tienIterm(upc, soluong) vì nó có 
thông tin soluong vμ lấy giá từ danhmuc
ƒ Gán trách nhiệm cho lanban tính tổng tiền một lần 
bán tongtien(sott) vì nó biết số tiền từng mặt hμng 
thuộc lần bán
lanban
sott: int
ngay: date
taoSale( )
tongtien(sott)
mathangban
upc: string
sott: int
soluong: int
taoIterm( )
tienIterm(upc,soluong,p)
danhmuc
upc: string
mota: string
gia: int
taoDM( )
layGia(upc)
Bộ mụn Cụng nghệ phần mềm – ĐHCN 53
NguyễnVănVỵ
Lợi ích sử dụng mẫu thiết kế
ƒ Cho ta giải pháp của vấn đề không cần tìm kiếm
ƒ Dùng lại cái đã có, đỡ tốn thời gian vμ công sức
ƒ Cho thiết kế tốt vμ chất l−ợng hệ thống cao
Bộ mụn Cụng nghệ phần mềm – ĐHCN 54
NguyễnVănVỵ
Câu hỏi và thảo luận

File đính kèm:

  • pdfbai_giang_ky_nghe_phan_mem_bai_7_thiet_ke_huong_doi_tuong_ng.pdf