You are on page 1of 38

Machine Translated by Google

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

Mô-đun 15: Thiết kế trường hợp sử dụng


Machine Translated by Google

Mục tiêu: Thiết kế ca sử dụng

• Xác định mục đích của Thiết kế ca sử dụng


và thời điểm nó được thực hiện trong vòng đời

• Xác minh rằng có sự nhất quán trong việc


triển khai ca sử dụng
• Tinh chỉnh việc thực hiện ca sử dụng từ Use-

Phân tích trường hợp sử dụng các phần tử Mô hình thiết


kế đã xác định
Machine Translated by Google

Thiết kế ca sử dụng trong ngữ 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

(Không bắt buộc)


Tinh chỉnh
Ngành kiến trúc

Trường hợp sử dụng

Thiết kế Nhà thiết kế Thiết kế Thiết kế


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

Tổng quan về thiết kế ca sử dụng

Thiết kế hệ thống con và giao diện


Mô hình phân tích

bổ sung
Thông số kỹ thuật

Trường hợp sử dụng

Thiết kế Trường hợp sử dụng thiết kế

Hiện thực hóa

Ca sử dụng phân tích


Hiện thực hóa
Trường hợp sử dụng

Mẫu thiết kế
Machine Translated by Google

Các bước thiết kế ca sử dụng

• Mô tả sự tương tác giữa các đối tượng


thiết kế

• Đơn giản hóa sơ đồ tuần tự bằng cách sử dụng

các hệ thống con

• Mô tả hành vi liên quan đến tính kiên trì

• Tinh chỉnh luồng mô tả sự kiện

• Hợp nhất các lớp và hệ thống con


Machine Translated by Google

Các bước thiết kế ca sử dụng

• Mô tả sự tương tác giữa các đối tượng thiết

kế • Đơn giản hóa sơ đồ tuần tự bằng


cách sử dụng

các hệ thống con • Mô tả hành vi liên quan

đến tính bền vững • Tinh chỉnh dòng mô tả

sự kiện • Thống nhất các lớp và hệ thống con


Machine Translated by Google

Đánh giá: Hiện thực hóa ca sử dụng

Mô hình ca sử dụng Mẫu thiết kế

Trường hợp sử dụng Hiện thực hóa ca sử dụng

Giao tiếp
Sự liên tiếp Sơ đồ
Sơ đồ

Trường hợp sử dụng


Sơ đồ lớp
Machine Translated by Google

Đánh giá: Từ lớp phân tích đến các phần tử thiết kế

Lớp phân tích Yếu tố thiết kế

<< ranh giới>>

<<kiểm soát>>
<< hệ thống con>>
Hệ thống con

<<thực thể>>

<< ranh giới>>

<< hệ thống con>>


Hệ thống con

Ánh xạ nhiều-nhiều
Machine Translated by Google

Hiện thực hóa ca sử dụng

Tinh chỉnh • Xác

định các đối tượng tham gia •

Phân bổ trách nhiệm giữa các đối tượng • Mô

hình hóa các thông điệp giữa các đối

tượng • Mô tả quá trình xử lý kết quả


từ các

thông báo • Mô hình hóa các mối quan hệ lớp liên quan

Sơ đồ trình tự Sơ đồ lớp
Machine Translated by Google

Hiện thực hóa ca sử dụng

Các bước sàng lọc

1. Xác định từng đối tượng tham gia vào luồng


ca sử dụng

2. Biểu diễn từng đối tượng tham gia vào


sơ đồ trình tự
3. Dần dần kết hợp các cơ chế kiến trúc
có thể áp dụng
Machine Translated by Google

Biểu diễn các hệ thống con trên một

Sơ đồ trình tự
• Giao diện

– Đại diện cho bất kỳ phần tử mô hình nào hiện thực hóa giao diện
– Không có thông báo nào được rút ra từ giao diện
• Thành phần hệ thống con
– Đại diện cho một hệ thống con cụ thể
– Tin nhắn có thể được rút ra từ hệ thống con
Đối tượng A Giao diện Đối tượng B Đối tượng A Hệ thống con Đối tượng B

Thành phần

1: Tin nhắn 1 1: Tin nhắn 1


2: Tin nhắn 2 2: Tin nhắn 2

Tin nhắn không hợp lệ Tin nhắn hợp lệ


Machine Translated by Google

Ví dụ: Tích hợp

Giao diện hệ thống con


Lớp phân tích Yếu tố thiết kế

<< hệ thống con>>


<< ranh giới>> Hệ thống thanh toán

Hệ thống thanh toán

IHệ thống thanh toán


//gửi hóa đơn()
submitBill(forTuition : Gấp đôi, forStudent : Sinh viên)

<< ranh giới>>


Khóa họcDanh mụcHệ thống << hệ thống con>>
Hệ thống danh mục khóa học

//nhận các dịch vụ khóa học()

Hệ thống ICourseCatalog

getCourseOfferings(forSemester : Học kỳ, forStudent : Sinh viên): CourseOfferingList


khởi tạo()

Tất cả các lớp phân tích khác được ánh xạ trực tiếp tới các lớp thiết kế.
Machine Translated by Google

Ví dụ: Kết hợp các hệ thống con

(Trước)

Lớp phân tích sẽ được thay thế

: RegisterForCoursesForm : RegistrationController : CourseCatalogSystem : Lịch trình : Học sinh

: Học sinh

1. // tạo lịch trình( )

1.1. // nhận các ưu đãi khóa học( )


Lời chúc của sinh viên
1.1.1. // nhận các dịch vụ khóa học(forSemester)
để tạo một lịch
trình mới

1.2. // hiển thị các khóa học được cung cấp( )

Một danh
Một danh sách
sáchcócác
sẵn
khóa học có sẵn cho học
kỳ này được hiển thị

1.3. // hiển thị lịch trống( )


Một lịch trình
trống được hiển thị
để sinh viên lựa
chọn các dịch vụ

giới thiệu

Chọn ưu đãi

giới thiệu

Gửi lịch trình


Machine Translated by Google

Ví dụ: Kết hợp các hệ thống con

(Sau đó)

Thay thế bằng giao diện hệ thống con

: RegisterForCoursesForm : RegistrationController : ICourseCatalogSystem : Lịch trình : Sinh viên

1: // tạo lịch trình

1.1: // nhận các khóa học


1.1.1: getCourseOfferings
Sinh viên mong muốn
tạo lịch
trình mới

1.2: // hiển thị các khóa học được cung cấp


Một danh sách các
khóa học có sẵn cho học
kỳ này được hiển thị

Một lịch trình trống


1.3: // hiển thị lịch trống
được hiển thị để Học sinh
lựa chọn các dịch vụ

giới thiệu

Chọn ưu đãi

giới thiệu

Gửi lịch trình


Machine Translated by Google

Ví dụ: Kết hợp hệ thống con

Giao diện (VOPC)

<<Giao diện>>
Giao diện hệ thống con
<< ranh giới>> Hệ thống ICourseCatalog
RegisterForCoursesForm (từ (từ Giao diện hệ thống bên ngoài)
<<kiểm soát>>
Đăng ký) 1
Trình điều khiển đăng 0..*
ký (từ Đăng ký) getCourseOfferings()
// gửi lịch() // khởi tạo()
hiển thị các khóa học() //
// gửi lịch trình() //
hiển thị lịch() // 1 1 <<thực thể>>
lưu lịch trình() //
lưu lịch() // tạo Lịch học
tạo lịch trình với các dịch vụ() // 0..1
lịch() // chọn 4 lịch trình hiện tại kỳ (từ University
getCourseOfferings()
khóa học chính và 2 khóa học thay thế() // Artifacts)
hiển thị lịch trống() 0..1
0..1
0..1 //
submit()
submit()
////
người đăng ký
0..1 save() //
0..* có xung đột gì không?
<<thực thể>>
() // new()
Sinh viên.

(từ Đồ tạo tác của trường đại học) 0..*


0..*
- tên
- địa chỉ 1 thay thếCourses 0..2

- ID sinh viên : int


Khóa học chính
<<entity>>
0..4
// addSchedule() // Khóa học Cung cấp
getSchedule() // (từ University
hasPreconditions() // Artifacts)
đã qua() số bắt
đầuThời

gian kết thúcThời gian ngày

// addStudent() //
xóaStudent() //
new() //
setData()
Machine Translated by Google

Kết hợp kiến trúc

Cơ chế: Bảo mật

• Lớp phân tích cơ chế kiến trúc

Bản đồ từ Phân tích trường hợp sử dụng

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 ổn định, kế thừa


Khóa học Giao diện ổn định, kế thừa

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


Machine Translated by Google

Kết hợp kiến trúc

Cơ chế: Phân phối

• Lớp phân tích cơ chế kiến trúc

Bản đồ từ Phân tích trường hợp sử dụng

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 ổn định, kế thừa


Khóa học Giao diện ổn định, kế thừa

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


Machine Translated by Google

Đánh giá: Kết hợp RMI:

bước

1. Cung cấp quyền truy cập vào các lớp hỗ trợ RMI (ví
tên √dụ: Giao diện từ xa và có thể tuần tự hóa, Đặt
Dịch vụ)
√ – Sử dụng gói java.rmi và java.io trong Middleware
√ lớp
• Đối với mỗi lớp được phân bổ:

– Bộ điều khiển được phân phối nằm trong lớp Ứng dụng
– Cần có sự phụ thuộc từ lớp Ứng dụng đến lớp
Middleware để truy cập các gói java
– Xác định giao diện cho lớp thực hiện Remote

– Có lớp kế thừa từ UnicastRemoteObject


√ = Xong
Machine Translated by Google

Đánh giá: Kết hợp RMI:

Các bước (tiếp theo)

2. Yêu cầu các lớp dữ liệu được truyền

ra √tới các đối tượng phân tán nhận


Giao diện có thể tuần tự hóa


√ ––Các
Cácloại
kiểudữ
dữliệu
liệucốt
cốtlõi
lõicónằm trong
trong lớpvụDịch
Dịch kinhvụ
doanh
nghiệp vụ

– Cần có sự phụ thuộc từ lớp Dịch vụ doanh


nghiệp vào lớp Middleware để có quyền truy
cập vào java.rmi
– Thêm các mối quan hệ thực hiện

3. Chạy bộ xử lý trước – ngoài phạm vi √


= Xong
Machine Translated by Google

Ôn tập: Tích hợp RMI: Các bước (tiếp theo)

4. Yêu cầu khách hàng của lớp phân phối tra cứu √

đối tượng ở xa sử dụng dịch vụ Đặt tên


√ – Hầu hết các máy khách của lớp phân tán đều là biểu mẫu

– Các biểu mẫu nằm trong lớp Ứng dụng

– Sự phụ thuộc từ lớp Ứng dụng tới


Cần có lớp phần mềm trung gian để có quyền truy cập
vào java.rmi

– Thêm mối quan hệ từ Máy khách lớp phân tán


vào Dịch vụ đặt tên

5. Tạo/cập nhật sơ đồ tương tác với quá trình xử lý

phân phối (tùy chọn)


Machine Translated by Google

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

<<Giao diện>>
Đặt tên
(từ rmi) IRegistrationController
phân phối (từ Đăng ký)
+ tra cứu() Lớp khách hàng
+ getCurrentSchedule(forStudent : Sinh viên, forSemester : Học kỳ) : Lịch trình
+ deleteCurrentSchedule()
+ submitSchedule()
<< ranh giới>> 1 + saveSchedule()
RegisterForCoursesForm (từ + getCourseOfferings() : CourseOfferingList
1
Đăng ký)

Đã đỗ lớp

<<Giao diện>> <<Thực thể>>


Từ xa Sinh
Danh sách ưu đãi khóa
(từ rmi) viên (từ University Artifacts)
học (từ University Artifacts) 0..1

người đăng ký 1

0..n
0..1
<<Kiểm soát>> <<Thực thể>> <<Giao diện>>
phân phối
Trình điều khiển đăng lịch trình hiện tại Lịch trình Có thể tuần tự
Lớp học ký (từ Đăng ký)
0..1 0..1 (từ Đại học Artifacts) hóa (từ io)

UnicastRemoteObject (từ
máy chủ)
Machine Translated by Google

Ví dụ: Kết hợp RMI (tiếp theo)

<<lớp>>
Ứng dụng

<<lớp>> <<lớp>>
Dịch vụ kinh doanh Ứng dụng
Sự đăng ký
Gói (từ
Ứng dụng)
Hiện vật của trường

đại học (từ Dịch vụ kinh doanh)

<<lớp>>
Việc kinh doanh
<<lớp>>
Dịch vụ
Phần mềm trung gian

java.rmi
Java.io
Đặt tên Máy chủ
(từ java.rmi)
<<giao diện>> <<lớp>>
Có thể tuần tự hóa UnicastTừ xa Phần mềm trung gian

(từ java.io) <<giao diện>> Đối

từ xa tượng (từ Máy chủ)

(từ java.rmi)
Machine Translated by Google

Ví dụ: Kết hợp RMI (tiếp theo)

Đã thêm để hỗ trợ phân phối

Đăng kýForCoursesForm : Đặt tên. :IRegistrationController

Tra cứu đối tượng

từ xa bằng cách chỉ định


URL của nó
1: tra cứu(chuỗi)

2: làm gì đó

Tất cả các cuộc gọi đến giao diện lớp phân tán đều được

được chuyển tiếp đến phiên bản từ xa.


Machine Translated by Google

Các bước thiết kế ca sử dụng

Mô tả sự tương tác giữa các đối tượng thiết kế


Đơn giản hóa sơ đồ tuần tự bằng cách sử dụng
các hệ thống con

Mô tả hành vi liên quan đến sự kiên trì


Tinh chỉnh luồng mô tả sự kiện
Hợp nhất các lớp và hệ thống con
Machine Translated by Google

Hệ thống con đóng gói

Tương tác

• Tương tác có thể được mô tả ở nhiều mức độ

cấp độ

• Tương tác của hệ thống con có thể được mô tả


bằng sơ đồ tương tác của riêng chúng

Tăng mức độ trừu tượng.


Machine Translated by Google

Hướng dẫn: Đóng gói

Tương tác hệ thống con


• Các hệ thống con cần được thể hiện bằng các giao diện trên sơ

đồ tương tác

• Thông báo tới các hệ thống con được mô hình hóa dưới dạng

thông báo đến giao diện hệ thống con

• Thông
hệ thốngbáo
contới
tương
hệ thống
ứng với
conhoạt
tương
động
ứng
của
với
giao
• Thông
diện hệ
báothống
đến

con

• Tương tác trong các hệ thống con được mô hình hóa theo
<<giao diện>>
Thiết kế hệ thống con :Giao diệnA

<< hệ thống con>>


Giao diệnA op1()
Hệ thống con của tôi
Machine Translated by Google

Ưu điểm của việc đóng gói

Tương tác hệ thống con

Thực hiện ca sử dụng:

– Ít lộn xộn hơn

– Có thể được tạo trước khi tạo các thiết kế bên


trong của hệ thống con (phát triển
song song)

– Chung chung hơn và dễ thay đổi hơn (Các hệ


thống con có thể được thay thế.)
Machine Translated by Google

Hệ thống con song song

Phát triển
• Tập trung vào các yêu cầu có ảnh hưởng
giao diện hệ thống con •

Phác thảo các giao diện cần thiết

• Lập mô hình các thông điệp vượt qua ranh


giới hệ thống con

• Vẽ sơ đồ tương tác về mặt


giao diện hệ thống con cho từng trường hợp sử

dụng • Tinh chỉnh các giao diện cần thiết để cung


cấp thông báo

• Phát triển song song từng hệ thống con


Machine Translated by Google

Các bước thiết kế ca sử dụng

Mô tả sự tương tác giữa các đối tượng thiết kế


Đơn giản hóa sơ đồ tuần tự bằng cách sử dụng
các hệ thống con

Mô tả hành vi liên quan đến sự kiên trì


Tinh chỉnh luồng mô tả sự kiện
Hợp nhất các lớp và hệ thống con
Machine Translated by Google

Các bước thiết kế ca sử dụng: Mô tả

Hành vi liên quan đến sự kiên trì

• Mô tả hành vi liên quan đến sự kiên trì

Mô hình hóa giao dịch Viết các đối tượng liên tục

Đọc các đối tượng liên tục Xóa các đối tượng liên tục
Machine Translated by Google

Tích hợp kiến trúc

Cơ chế: Kiên trì

• Phân tích-Lớp-đến-Kiến trúc-

Bản đồ cơ chế từ phân tích trường hợp sử dụng

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

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


Lịch trình Kiên trì, Bảo mật Tính kiên trì

khóa học cung cấp Giao diện ổn định, kế thừa RDBMS


Khóa học Giao diện ổn định, kế thừa Tính kiên trì

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

Tính bền vững kế thừa (RDBMS) được chuyển sang Thiết kế hệ thống con.
Machine Translated by Google

Các bước thiết kế ca sử dụng

Mô tả sự tương tác giữa các đối tượng thiết kế


Đơn giản hóa sơ đồ tuần tự bằng cách sử dụng
các hệ thống con

Mô tả hành vi liên quan đến sự kiên trì


Tinh chỉnh luồng mô tả sự kiện
Hợp nhất các lớp và hệ thống con
Machine Translated by Google

Luồng sự kiện chi tiết

Tùy chọn mô tả

• Chú thích sơ đồ tương tác

: Diễn viên1
: Hạng A : Lớp B

Các tập lệnh có 1: Làm điều gì đó


Kịch bản thể được sử dụng
2: Làm thêm điều gì đó
để mô tả

chi tiết xung


quanh những thông báo này.

Ghi chú có thể


bao gồm thêm
Ghi chú
thông tin về một
thành phần sơ đồ cụ thể
Machine Translated by Google

Các bước thiết kế ca sử dụng

Mô tả sự tương tác giữa các đối tượng thiết kế


Đơn giản hóa sơ đồ tuần tự bằng cách sử dụng
các hệ thống con

Mô tả hành vi liên quan đến sự kiên trì


Tinh chỉnh luồng mô tả sự kiện
Hợp nhất các lớp và hệ thống con
Machine Translated by Google

Thống Nhất Mẫu Thiết Kế


Cân nhắc
• Tên phần tử mô hình nên mô tả chúng

chức năng

• Hợp nhất các phần tử mô hình tương tự

• Sử dụng tính kế thừa cho các phần tử mô hình trừu tượng

• Giữ các thành phần mô hình và dòng sự


kiện nhất quán
Machine Translated by Google

Điểm kiểm tra: Thiết kế ca sử dụng

• Việc phân vùng gói/hệ thống con có hợp lý và


nhất quán không?
• Tên của các gói/hệ thống con có mang tính mô tả
không? • Các
lớp gói công cộng và các giao diện hệ thống con có
cung cấp một tập hợp dịch vụ duy nhất, nhất quán
về mặt logic không?
• Thực hiện các phụ thuộc gói/hệ thống con
tương ứng với mối quan hệ giữa các lớp được
chứa?
• Các lớp có trong một gói có thuộc về gói đó theo
tiêu chí phân chia gói không? • Có các lớp hoặc
sự cộng
tác của các lớp có thể được tách thành một gói/hệ
thống con độc lập không?
Machine Translated by Google

Điểm kiểm tra: Thiết kế ca sử dụng (tiếp theo)

• Có tất cả luồng chính và/hoặc luồng phụ cho việc này

việc lặp lại đã được xử lý?

• Tất cả các hành vi đã được phân bổ giữa các


yếu tố thiết kế tham gia?

• Hành vi đã được phân phối tới các yếu tố


thiết kế phù hợp chưa?

• Nếu có một số sơ đồ tương tác để thực hiện ca


sử dụng, có dễ hiểu sơ đồ Giao tiếp nào
liên quan đến luồng sự kiện nào không?
Machine Translated by Google

Đánh giá: Thiết kế ca sử dụng

• Mục đích của Thiết kế ca sử dụng là gì?

• Việc đóng gói các tương tác của hệ


thống con có ý nghĩa gì? Tại sao nó là một
điều tốt để làm?

You might also like