You are on page 1of 34

Machine Translated by Google

Phân tích và thiết kế hướng đối


tượng
Mô-đun 12: Xác định cơ chế thiết kế
Machine Translated by Google

Mục tiêu: Xác định thiết kế


Cơ chế

• Xác định mục đích của Thiết kế nhận diện


Hoạt động của cơ chế và giải thích khi nào nó
được thực hiện trong vòng đời

• Giải thích cơ chế thiết kế và thực hiện


là gì cũng như cách chúng ánh xạ từ
Cơ chế phân tích
• Mô tả một số cơ chế chính sẽ được sử
dụng trong nghiên cứu điển hình
Machine Translated by Google

Xác định cơ chế thiết kế trong bối cảnh

[Sớm
Xây dựng
[Khởi đầu
Lặp lại] Lặp lại (Tùy chọn)]

Xác định một ứng viên Trình diễn


Ngành kiến trúc Kiến trúc
tổng hợp

Phân tích hành vi

Xác định thiết kế


(Không bắt buộc)
Kiến trúc sư cơ chế Tinh chỉnh
Ngành kiến trúc

Thiết kế Thiết kế
Các thành phần Cơ sở dữ liệu
Machine Translated by Google

Xác định cơ chế thiết kế Tổng quan

bổ sung Phần mềm


Thông số kỹ thuật Ngành kiến trúc

Tài liệu

Nhận dạng
Thiết kế
Cơ chế
Mẫu thiết kế

Lớp phân tích


Machine Translated by Google

Xác định cơ chế thiết kế:


bước
• Phân loại khách hàng theo cơ chế phân tích
• Cơ chế kiến trúc tài liệu
Machine Translated by Google

Xác định cơ chế thiết kế: Các bước

Phân loại khách hàng cơ chế phân tích

Tài liệu hóa cơ chế kiến trúc


Machine Translated by Google

Đánh giá: Các mẫu và

Khung
• Mẫu
– Cung cấp giải pháp chung cho một vấn đề
chung trong một ngữ
cảnh • Mẫu phân tích/thiết kế
– Cung cấp giải pháp cho một vấn đề kỹ thuật
trong phạm vi hẹp
– Cung cấp một phần của giải pháp hoặc một phần
của câu đố
• Khung
- Nêu được cách tiếp cận chung để giải quyết
vấn đề
– Cung cấp một giải pháp cơ bản, chi tiết của nó có thể
là mẫu phân tích/thiết kế
Machine Translated by Google

Mẫu thiết kế là gì?

• Một mẫu thiết kế cung cấp một sơ đồ cho


tinh chỉnh các hệ thống con hoặc các thành phần
của hệ thống phần mềm hoặc mối quan hệ giữa
chúng. Nó mô tả cấu trúc thường xuyên lặp lại
của các thành phần giao tiếp nhằm giải
quyết vấn đề thiết kế chung trong một bối cảnh
cụ thể.
Erich Gamma và cộng sự. 1994. Các mẫu thiết kế—Các thành phần của
phần mềm hướng đối tượng có thể tái sử dụng
Bản mẫu
Thông số

Tên mẫu
Machine Translated by Google

Ví dụ về cách sử dụng mẫu

Mẫu Ví dụ

Yêu cầu Đưa ra yêu cầu cho một đối tượng mà không biết gì về thao
tác được yêu cầu hoặc người nhận yêu cầu: ví dụ: phản
(mẫu hành vi)
hồi cho một mục menu, yêu cầu hoàn tác, xử lý thời gian chờ

nhà máy trừu tượng Tạo các đối tượng GUI (nút, thanh cuộn, cửa sổ, v.v.)
độc lập với hệ điều hành cơ bản: ứng dụng có thể dễ dàng
(mẫu sáng tạo)
chuyển sang các môi trường khác nhau

Ủy quyền Xử lý các đối tượng phân tán theo cách minh bạch đối với các
đối tượng khách (proxy từ xa)
(mẫu cấu trúc)
Tải một đối tượng đồ họa lớn hoặc bất kỳ đối tượng thực thể
nào “tốn kém” để tạo/khởi tạo chỉ khi cần (theo yêu cầu)
và theo cách minh bạch (proxy ảo)
Người quan sát Khi trạng thái của một đối tượng thay đổi, các đối tượng phụ thuộc
sẽ được thông báo. Đối tượng được thay đổi độc lập với
(mẫu hành vi) người quan sát.

Lưu ý: Mẫu kiến trúc MVC là phần mở rộng của mẫu thiết
kế Observer
Machine Translated by Google

Chi tiết mẫu lệnh

Ứng dụng

+thực đơn 1
Thực đơnMục 1 lệnh
0..*
Thực đơn - nhãn: Chuỗi

+mục +cmd + Quy trình()


+ Đã nhấp()

cmd.Process();
Machine Translated by Google

Chi tiết mẫu lệnh (tiếp theo)

Ứng dụng lệnh mở


AskUser();
DoOpen();
+ Quy trình()

+cmd
+thực đơn 1
Thực đơnMục 1
Yêu cầu
0..*
Thực đơn - nhãn: Chuỗi

+mục + Quy trình()


+ Đã nhấp()

cmd.Process();
Machine Translated by Google

Chi tiết mẫu lệnh (tiếp theo)

1. OpenCommand( )
ocmd : Khởi tạo
ứng dụng của tôi

lệnh mở

2. AddItem("Mở...",ocmd)

3. MenuItem("Mở...", ocmd)
thực đơn aNewItem :
MenuItem

3. Người dùng hỏi( )

4. DoOpen( )

Người dùng chọn mục menu 1. Đã nhấp vào( ) 2. Quy trình( )


theMenuIte cmd :
Mở… tôi
Yêu cầu
Một người dùng
Machine Translated by Google

Chi tiết mẫu lệnh (tiếp theo)

lệnh mở

Ứng dụng + Quy trình()


+ OpenCommand()
AskUser(); - Hỏi người dùng()

DoOpen(); - DoOpen()

+thực đơn 1
Thực đơnMục
Thực đơn
0..* - nhãn: Chuỗi

+ AddItem(s : String, c : Command) +mục + Đã nhấp()


+ MenuItem(s : String, c : Command)

Đã nhấp(): MenuItem():
cmd.Process(); cmd = c;
nhãn = s;

+cmd
1

Yêu cầu

+ Quy trình()
Machine Translated by Google

Chi tiết mẫu lệnh (tiếp theo)

ứng dụng

Ứng dụng Lệnh Đóng

lệnh mở

gui

Thực đơn Thực đơnMục

com

Yêu cầu
Machine Translated by Google

Biểu diễn các mẫu thiết kế trong UML

• Mẫu thiết kế là sự cộng tác được tham số hóa:

Các thông số (khuôn mẫu <<role>>) của sự cộng tác

Khách hàng

Người triệu hồi << vai trò>>

Lệnh bê tông Khách hàng

Yêu cầu << vai trò>>

Lệnh bê tông

+ Quy trình()

<< vai trò >>

Người triệu hồi

Yêu cầu

+ Quy trình()
Machine Translated by Google

Mô tả cơ chế phân tích

• Thu thập tất cả các cơ chế phân tích trong một danh sách

• Vẽ bản đồ các lớp khách hàng cho

cơ chế phân tích

Lớp phân tích (Các) Cơ chế phân tích

Học sinh Kiên trì, bảo mật


Lịch trình Kiên trì, bảo mật
khóa học cung cấp Giao diện bền bỉ, kế thừa
Khóa học Giao diện bền bỉ, kế thừa

Trình điều khiển đăng ký Phân bổ

• Xác định đặc điểm của Phân tích


cơ chế
Machine Translated by Google

Phân tích phân loại


Cơ chế
• Mục đích
- Tinh chỉnh các thông tin thu thập được trên
cơ chế phân tích
• Các bước
– Xác định khách hàng của từng cơ
chế phân tích
– Xác định hồ sơ đặc trưng cho từng
cơ chế phân tích
- Phân nhóm khách hàng theo mục đích sử dụng
hồ sơ đặc trưng
– Tiến hành từ dưới lên và kiểm kê các cơ chế
thực hiện mà bạn có thể tùy ý sử dụng
Machine Translated by Google

Xác định cơ chế thiết kế: Các bước

Phân loại khách hàng cơ chế phân tích

Tài liệu hóa cơ chế kiến trúc


Machine Translated by Google

Thiết kế và thực hiện

Cơ chế

Phân tích Thiết kế Thực hiện

Cơ chế Cơ chế Cơ chế

(Khái niệm) (Bê tông) (Thật sự)


Dữ liệu di sản

Tính kiên trì RDBMS JDBC

Dữ liệu mới

Tính kiên trì OODBMS Cửa hàng đối tượng

Phân bổ Phương pháp từ xa


Java 1.2 từ Mặt trời
Lời gọi (RMI)
Machine Translated by Google

Đánh giá: Tài liệu

Cơ chế kiến trúc

• Cơ chế kiến trúc có thể được xử lý

dưới dạng các mẫu (tức là cộng tác


được tham số hóa)
Bản mẫu
Thông số

Tên mẫu

Khía cạnh kết cấu Khía cạnh hành vi

Được ghi lại trong Hướng dẫn thiết kế


Machine Translated by Google

Đánh giá: Đăng ký khóa học

Cơ chế phân tích

Kiên trì Phân bổ

Bảo vệ Giao diện kế thừa


Machine Translated by Google

Cơ chế: Tính kiên trì:

RDBMS: JDBC

• Đặc tính bền bỉ:


– Độ chi tiết
- Âm lượng
- Khoảng thời gian

– Cơ chế truy cập

– Tần suất truy cập


(tạo/xóa, cập nhật, đọc)

- Độ tin cậy

Lưu ý: JDBC là API Java tiêu chuẩn để nói chuyện với cơ sở dữ liệu SQL.
Machine Translated by Google

Ví dụ: Tính kiên trì: RDBMS:

JDBC

<< vai trò>> << vai trò >>


Các vai trò cần được thực
PersistencyClient Danh sách lớp liên tục
hiện bởi người thiết kế áp
(từ SamplePersistency Client) (từ SamplePersistentClass)
dụng cơ chế

new()
thêm (c: PersistentClass)

<< vai trò >>


1

Lớp DB 0..*
0..*

<< vai trò>>


create() : PersistentClass Lớp liên tục
PersistentClass
read(searchCriteria : String) : PersistentClassList (từ SamplePersistentClass)
update(c : PersistentClass)
delete(c : PersistentClass)
getData()
1
setData()
lệnh() mới()

Trình quản lý trình điều

khiển (từ java.sql)

1 getConnection(url, user, pass): Kết nối

Tuyên bố
Bộ kết quả Kết nối (từ
(từ java.sql)
(từ java.sql) java.sql)

execQuery(sql : String) : ResultSet


getString() : Chuỗi createStatement() : Tuyên bố
execUpdate(sql : String) : int
Machine Translated by Google

Ví dụ: Tính kiên trì: RDBMS:

JDBC: Khởi tạo

: DBClass : Trình quản lý tài xế

1. getConnection(url, user, pass)


Machine Translated by Google

Ví dụ: Tính kiên trì: RDBMS:

JDBC: Tạo

: PersistencyClient : DBClass : PersistentClass : Kết nối : Tuyên bố

1. tạo( )
1.1. Mới()

1.2. lấy dữ liệu( )

1.3. createStatement( )

1.4. thực thiUpdate(Chuỗi)


Machine Translated by Google

Một mảnh kết hợp là gì?

Cấu trúc trong tương tác bao gồm từ khóa toán tử và một hoặc

nhiều toán hạng tương tác, mỗi toán hạng là một đoạn của tương tác.

Nó được hiển thị dưới dạng một vùng lồng nhau trong sơ đồ trình tự.

Đối tượng khách hàng Đối tượng nhà cung cấp

:Khách hàng :Nhà cung cấp

toán hạng tương tác


Machine Translated by Google

Toán hạng tương tác là gì?

Mỗi đoạn bao gồm một hoặc nhiều toán


hạng tương tác, mỗi toán hạng là một phân đoạn
con của tương tác.
Số lượng toán hạng phụ thuộc vào loại đoạn kết
hợp.
• Ví dụ, một vòng lặp có một toán hạng (thân vòng
lặp) và một điều kiện có một hoặc nhiều toán
hạng (các nhánh của điều kiện).
Toán hạng là một đoạn lồng nhau của một tương tác.
• Mỗi toán hạng bao gồm các dây cứu sinh được bao phủ
bởi đoạn kết hợp hoặc một tập hợp con của chúng.
Machine Translated by Google

Biểu thức tương tác là gì?

Một đặc tả về phạm vi số lần lặp của một vòng lặp.

Phạm vi có thể được chỉ định với các giá trị tối thiểu và tối đa

Tình trạng bảo vệ, được đặt trong dấu ngoặc vuông, có thể được đưa
vào dây cứu sinh.

Đối tượng khách hàng Đối tượng nhà cung cấp

Sự tương tác
:Khách hàng :Nhà cung cấp
Sự biểu lộ

vòng lặp (phạm vi)

[điểm kinh nghiệm bảo vệ]


1: Thực hiện trách nhiệm
Machine Translated by Google

Ví dụ: Tính kiên trì: RDBMS:

JDBC: Đọc

: PersistencyClient : DBClass : Sự liên quan : Tuyên bố : Bộ kết quả : PersistentClassList : PersistentClass

Trả về một Câu lệnh SQL được


1. đọc (chuỗi)
Tuyên bố DBClass xây dựng bằng
1.1. createStatement( ) cách sử dụng các
tiêu chí đã cho sẽ
Tiêu chí được sử được chuyển đến execQuery()
1.2. thực thiQuery(chuỗi)
dụng để truy cập dữ
1.3 // execQuery()
liệu cho lớp
liên tục 1.4. mới( )

vòng Tạo một danh sách để chứa tất cả

dữ liệu được truy xuất

[đối với mỗi lớp từ truy vấn thực thi]


1.5. mới()

vòng

[cho mỗi thuộc tính trong lớp] 1.6. getString( )

1.7. setData( )

1.8. thêm (PersistentClass)


Machine Translated by Google

Ví dụ: Tính kiên trì: RDBMS:

JDBC: Cập nhật

: PersistencyClient : DBClass : Lớp liên tục : Sự liên quan : Tuyên bố

1. cập nhật (PersistentClass)

1.1. lấy dữ liệu( )

1.2. createStatement( )

1.3. thực thiUpdate(chuỗi)

thực thi
câu lệnh SQL
Machine Translated by Google

Ví dụ: Tính kiên trì: RDBMS:

JDBC: Xóa

: DBClass : Sự liên quan : Tuyên bố


: PersistencyClient

1. xóa (PersistentClass)

1.1. createStatement( )
thực thi
câu lệnh SQL

1.2. thực thiUpdate(chuỗi)


Machine Translated by Google

Kết hợp JDBC: Các bước

1. Cung cấp quyền truy cập vào các thư viện lớp cần
thiết để triển

khai JDBC – Cung cấp gói java.sql

2. Tạo các DBClass cần thiết


– Gán một DBClass cho mỗi lớp liên tục
3. Kết hợp DBClass vào thiết kế
– Phân bổ theo gói/lớp
Hoãn lại
– Thêm mối quan hệ từ các khách hàng kiên trì
4. Tạo/Cập nhật sơ đồ tương tác mô tả:
– Khởi tạo cơ sở dữ liệu

– Truy cập lớp liên tục: Tạo, Đọc, Cập nhật,


Xóa bỏ
Machine Translated by Google

Ví dụ: Kết hợp JDBC

Vật mẫu
Tính kiên trì
Gói khách hàng

java.sql

Trình quản lý trình điều Kết nối (từ


khiển (từ java.sql) java.sql)

Tuyên bố (từ Bộ kết quả


java.sql) (từ java.sql)
Machine Translated by Google

Đánh giá: Xác định thiết kế


Cơ chế
• Cơ chế phân tích có tác dụng gì? •
Mẫu là gì? Điều gì làm cho một
khung khác với một mẫu?
• Tại sao bạn nên phân loại cơ chế
phân tích? Xác định các bước.

You might also like