Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - 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ế

pdf54 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1559 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Kỹ nghệ phần mềm - Nguyễn Văn Vỵ - Bài 7: Thiết kế hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 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:

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