Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Thiết kế hướng đối tượng
Phát triển hướng đối tượng
! Phân tích, thiết kếvà lập trình hướng đối
tượng có liên quan với nhau nhưng tách rời
nhau.
! Phân tích hướng đối tượng liên quan đến việc
phát triển mô hình đối tượng của miền ứng
dụng.
! Thiết kếhướng đối tượng liên quan đến việc
phát triển mô hình hệthống hướng đối tượng
đểcài đặt các yêu cầu.
! Lập trình hướng đối tượng liên quan đến việc
hiện thực hóa thiết kếhướng đối tượng sử
dụng ngôn ngữlập trình hướng đối tượng, ví
dụnhưJava hoặc C++.
ures
windSpeeds
windDirections
pressures
rainfall
collect ( )
summarize ( )
gt_Ident
an_Ident bar_Ident
24
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Bài tập
v Sử dụng các ký hiệu đồ họa UML cho
lớp đối tượng, thiết kế các lớp đối
tượng, nhận diện các thuộc tính và thao
tác. Sử dụng kinh nghiệm của bản thân
để quyết định thuộc tính và thao tác
trong những đối tượng này.
§ Điện thoại
§ Máy in cho máy tính cá nhân
§ Máy nghe nhạc cá nhân
§ Tài khoản ngân hàng
§ Danh mục thư viện
25
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các giai đoạn của quy trình
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống
• Thiết kế kiến trúc hệ thống
• Nhận diện các đối tượng hệ thống quan trọng
• Phát triển các mô hình thiết kế
• Đặc tả giao diện đối tượng.
26
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các mô hình thiết kế
v Chỉ ra các đối tượng và lớp đối tượng và
mối quan hệ giữa các thực thể này.
v Mô hình tĩnh
§ mô tả cấu trúc tĩnh của hệ thống về các lớp đối
tượng và quan hệ.
v Mô hình động
§ mô tả tương tác động giữa các đối tượng.
27
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các ví dụ về mô hình thiết kế
Mô hình hệ thống con
• Chỉ ra việc gom nhóm các đối tượng vào trong hệ thống con tương ứng
Mô hình tuần tự
• Chỉ ra chuỗi tuần tự các tương tác của các đối tượng.
Mô hình trạng thái
• Chỉ ra cách các đối tượng riêng lẻ thay dổi trạng thái để trả lời các sự
kiện.
Các mô hình khác như mô hình use case, mô hình cộng
gộp, mô hình tổng quát hóa, ...
28
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Mô hình hệ thống con
v Là mô hình tĩnh, chỉ ra cách một thiết kế
được tổ chức thành các nhóm đối tượng
liên quan đến nhau về mặt logic như thế
nào.
v Trong UML, biểu đồ gói được sử dụng để
biểu diễn mô hình hệ thống con.
29
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Hệ thống con Weather station
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Mô hình tuần tự
v Mô hình tuần tự chỉ ra chuỗi tuần tự các
tương tác của đối tượng
§ Đối tượng được đặt ở hàng ngang trên cùng;
§ Thời gian được biểu diễn bằng đường thẳng đứng vì thế
mô hình được đọc từ trên xuống;
§ Tương tác được biểu diễn bằng các đường mũi tên có
đặt tên, các kiểu mũi tên khác nhau biểu diễn các loại
tương tác khác nhau;
§ Ô hình chữ nhật trong một lifeline biểu diễn thời gian khi
đói tượng đang điều khiển một đối tượng khác trong hệ
thống.
31
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Biểu đồ tuần tự biểu diễn việc thu
thập dữ liệu
:SatComms
request (report)
acknowledge
reportWeather ()
get (summary)
reply (report)
acknowledge
:WeatherStation :Commslink
summarize ()
:WeatherData
acknowledge
send (report)
acknowledge
Weather
information system
32
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Biểu đồ trạng thái
v Được sử dụng để chỉ ra cách các đối
tượng trả lời các yêu cầu dịch vụ khác
nhau và việc dịch chuyển trạng thái gây
ra bởi các yêu cầu này.
v Là mô hình mức cao của một hệ thống
hoặc là mô hình hành vi thời gian thực
của đối tượng.
v Không cần biểu đồ trạng thái cho tất cả
các đối tượng trong hệ thống.
§ Nhiều đối tượng trong hệ thống khá đơn giản
và một mô hình trạng thái thêm vào thiết kế các
chi tiết không cần thiết.
33
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Biểu đồ trạng thái của Weather
station
transmission done
remoteControl()
reportStatus()restart()
shutdown()
test complete
weather summary
complete
clock collection
done
Operation
reportWeather()
Shutdown Running Testing
Transmitting
Collecting
Summarizing
Controlled
Configuring
reconfigure()
configuration done
powerSave()
34
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các giai đoạn của quy trình
• Định nghĩa ngữ cảnh và các chế độ sử dụng hệ thống
• Thiết kế kiến trúc hệ thống
• Nhận diện các đối tượng hệ thống quan trọng
• Phát triển các mô hình thiết kế
• Đặc tả giao diện đối tượng.
35
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Đặc tả giao diện
v Giao diện đối tượng phải được đặc tả sao cho
đối tượng và các component có thể được thiết
kế song song với nhau.
v Thiết kế giao diện liên quan đến việc đặc tả chi
tiết giao diện của một đối tượng hoặc một
nhóm đối tượng.
v Giao diện có thể được đặc tả trong UML sử
dụng cùng ký hiệu với biểu đồ lớp.
36
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Đặc tả giao diện
v Không nên chứa chi tiết việc biểu diễn
dữ liệu trong đặc tả giao diện.
v Cùng một đối tượng có thể có vài giao
diện, mỗi giao diện là một góc nhìn khác
nhau về các phương thức mà đối tượng
cung cấp.
v Một nhóm các đối tượng có thể được
truy cập thông qua một interface duy
nhất.
37
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Weather station interfaces
«interface»
Reporting
weatherReport (WS-Ident): Wreport
statusReport (WS-Ident): Sreport
«interface»
Remote Control
startInstrument(instrument): iStatus
stopInstrument (instrument): iStatus
collectData (instrument): iStatus
provideData (instrument ): string
38
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Giao diện Weather station
interface WeatherStation {
public void WeatherStation () ;
public void startup () ;
public void startup (Instrument i) ;
public void shutdown () ;
public void shutdown (Instrument i) ;
public void reportWeather ( ) ;
public void test () ;
public void test ( Instrument i ) ;
public void calibrate ( Instrument i) ;
public int getID () ;
} //WeatherStation
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Bài tập
v Một hệ thống quản lý thời gian và nhật
ký nhóm.
v Trạm xăng tự động.
40
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Nội dung
1. Thiết kế hướng đối tượng sử dụng UML
2. Thiết kế mẫu
41
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các mẫu thiết kế
v Là cách tái sử dụng các kiến thức trừu
tượng về một vấn đề và giải pháp.
v Mẫu là một mô tả của vấn đề và điểm
chính của giải pháp.
v Nên biểu diễn đủ trừu tượng để có thể
tái sử dụng ở các thiết lập khác.
v Các mô tả mẫu thường sử dụng các đặc
tính hướng đối tượng như tính thừa kế
và tính đa hình.
42
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các thành phần của mẫu
v Tên
§ Một tên có nghĩa để nhận diện.
v Mô tả vấn đề.
v Mô tả giải pháp.
§ Không phải là một thiết kế rời rạc mà là một template
cho một giải pháp thiết kế trong đó giải pháp này có thể
được sử dụng theo cách khác.
v Hệ quả
§ Kết quả sau khi áp dụng mẫu này.
43
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Mẫu Observer
v Tên
§ Observer.
v Mô tả
§ Tách rời việc biểu diễn trạng thái ra khỏi đối tượng.
v Mô tả vấn đề
§ Được sử dụng khi có nhiều cách hiển thị trạng thái.
v Mô tả giải pháp
§ Xem slide 44.
v Hệ quả
§ Sẽ không thực tế nếu muốn tối ưu hóa để làm tăng hiệu
suất của việc hiển thị.
44
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Mẫu Observer (1)
Tên mẫu Observer
Mô tả Tách rời việc hiển thị trạng thái ra khỏi vật thể và cho
phép cung cấp các hiển thị thay thế. Khi trạng thái
của đối tượng thay đổi, tất cả các hiển thị được thông
báo và tự động cập nhật sự thay đổi đó.
Mô tả vấn đề Trong nhiều tình huống, ta phải cung cấp nhiều hiển
thị khác nhau về thông tin trạng thái, ví dụ như một
hiển thị đồ họa và một hiển thị bảng. Các biểu diễn
thay thế nên hỗ trợ tương tác, và khi trạng thái bị
thay đổi, tất cả các hiển thị phải được cập nhật.
Mẫu này cũng có thể được sử dụng trong tất cả các
tình huống ở đó nhiều hơn một định dạng hiển thị về
thông tin trạng thái được yêu cầu và ở đó không cần
thiết phải duy trì thông tin trạng thái để biết về định
dạng hiển thị cụ thể được sử dụng.
45
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Mẫu Observer (2)
Tên mẫu Observer
Mô tả giải
pháp
Gồm hai đối tượng trừu tượng: Subject và Observer, và hai đối
tượng cụ thể: ConcreteSubject và ConcreteObject thừa kế thuộc
tính của các đối tượng trừu tượng liên quan.
Các đối tượng trừu tượng chứa các thao tác chung có thể áp dụng
được trong mọi tình huống. Trạng thái được hiển thị được duy trì
trong ConcreteSubject, cho phép thêm hoặc loại bỏ các Observer
(mỗi observer tương ứng với một hiển thị) và đưa ra một thông
báo khi trạng thái bị thay đổi.
ConcreteObserver duy trì một bản copy trạng thái của
ConcreteSubject và cài đặt giao diện Update() của Observer.
ConcreteObserver tự động hiển thị trạng thái và phản ánh sự thay
đổi khi trạng thái được cập nhật.
Hệ quả Subject chỉ biết Observer và không biết về chi tiết của lớp cụ thể.
Vì vậy có ít mối liên hệ giữa các đối tượng này. Vì thiếu thông tin,
việc tối ưu để nâng cao hiệu năng hiển thị là không thực tế. Thay
đổi Subject có thể gây nên một loạt các cập nhật đối với các
Observer được phát sinh một cách không cần thiết.
46
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Đa hiển thị sử dụng mẫu Observer
A: 40
B: 25
C: 15
D: 20
Observer 1
A
B
C
D
Observer 2
Subject
0
50
25
A B C D
47
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Mô hình UML của mẫu Observer
Subject Observer
Attach (Observer)
Detach (Observer)
Notify ()
Update ()
ConcreteSubject
GetState ()
subjectState
ConcreteObserver
Update ()
observerState
observerState =
subject -> GetState ()return subjectState
for all o in observers
o -> Update ()
48
Nguyễn Thị Minh Tuyền Nhập môn CNPM
Các vấn đề về thiết kế
v Bất kỳ vấn đề thiết kế nào đang gặp phải cũng
có một mẫu có thể áp dụng được.
v Ví dụ:
§ Báo cho một vài đối tượng về trạng thái của đối tượng nào đó bị
thay đổi (Observer pattern).
§ Cung cấp một giao diện đơn giản cho cho một tập các giao diện
trong hệ thống con, làm cho hệ thống con dễ sử dụng hơn
(Façade pattern).
§ Cung cấp một phương pháp chuẩn để truy cập vào các phần tử
của một tập hợp, bỏ qua việc tập hợp đó được cài đặt thế nào
(Iterator pattern).
§ Cho phép khả năng mở rộng tính năng của một lớp đã có sẵn tại
thời gian thực (Decorator pattern).
§ ...
49
File đính kèm:
Nhập môn công nghệ phần mềm - Nguyễn Thị Minh Tuyền - Thiết kế hướng đối tượng.pdf

