Bài giảng Phân tích thiết kế hướng đối tượng - Chương 4: Phân tích và thiết kế hệ thống ở trạng thái tĩnh - Lê Thị Minh Nguyên
• Quá trình trên cần được lặp lại
• Ta cần phân tích và bổ sung thêm các lớp ngoài
các danh từ đã được nêu trực tiếp trong bảng mô
tả mà ta thấy cần thiết
• Quá trình bổ sung này thường được thực hiện
song song với giai đoạn phân tích động
(Dynamic Analysis)
14 trang |
Chia sẻ: huongthu9 | Lượt xem: 510 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Phân tích thiết kế hướng đối tượng - Chương 4: Phân tích và thiết kế hệ thống ở trạng thái tĩnh - Lê Thị Minh Nguyên, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
8/30/2017
1
Chương 4.
Phân tích và thiết kế hệ
thống ở trạng thái tĩnh
GV: Lê Thị Minh Nguyện
Email: nguyenltm@huflit.edu.vn
Phân tích thiết kế hướng đối tượng 1
Nội dung
1. Giới thiệu
2. Lớp, đối tượng
3. Cách tiếp cận xác định lớp
4. Lớp và đối tượng trong UML
5. Mối kết hợp (quan hệ)
6. Phân tích tĩnh
Phân tích thiết kế hướng đối tượng 2
1. Giới thiệu
• Trong quá trình mô hình hóa yêu cầu (chương 3), chúng ta tập
trung vào “what” và bỏ qua “how”
• Vấn đề còn tồn tại ở các bước xác định yêu cầu đã thực hiện
vẫn chưa cho ta thấy một bức tranh hoàn chỉnh về phần mềm
mà ta cần xây dựng.
• Với từng Use case chúng ta phân tích thiết kế ở trạng thái tĩnh
và động
Phân tích thiết kế hướng đối tượng 3
2. Đối tượng (Object)
• Một đối tượng là một khái niệm, một sự trừu tượng hay là một
sự vật (thing) có ranh giới rõ ràng và có ý nghĩa cho một ứng
dụng.
• Một đối tượng có
• Trạng thái (State)
• Hành vi (Behavior)
• Định danh (Identity)
Phân tích thiết kế hướng đối tượng 4
8/30/2017
2
2. Lớp (Class)
• Một lớp là một lời miêu tả của một nhóm các đối tượng có
chung thuộc tính, chung phương thức (ứng xử), chung các mối
quan hệ với các đối tượng khác và chung ngữ nghĩa (semantic).
• Lớp là một khuôn mẫu để tạo ra đối tượng
• Ký hiệu:
Phân tích thiết kế hướng đối tượng 5
3. Cách tiếp cận xác định lớp
3.1. Tiếp cận theo cụm danh từ
3.2. Tiếp cận theo phân loại
3.1. Tiếp cận theo cụm danh từ
• Ý tưởng: xác định các lớp thông qua việc đọc trong các văn
bản mô tả use case hoặc các mô tả yêu cầu để tìm kiếm và
trích lọc các cụm danh từ
• Các cụm danh từ được xem như là ứng viên của lớp
• Phân thành 3 loại
• Class giả tạo sẽ được bỏ đi
3.1. Tiếp cận theo cụm danh từ
8/30/2017
3
3.1. Tiếp cận theo cụm danh từ
• Xác định các class trong hệ thống ATM, các cụm danh từ tìm được
3.1. Tiếp cận theo cụm danh từ
• Loại bỏ lớp giả
3.1. Tiếp cận theo cụm danh từ
• Đồng nhất các ứng viên trùng lắp
3.1. Tiếp cận theo cụm danh từ
• Xác định danh từ, cụm danh từ có thể là thuộc tính:
• Chỉ sử dụng như giá trị
• Không có nhiều hơn một đặc trưng riêng, hoặc chỉ một đặc
trưng của đối tượng khác
8/30/2017
4
3.1. Tiếp cận theo cụm danh từ
• Loại bỏ các ứng viên không mục tiêu hoặc không thuộc
phạm vi của hệ thống
• Thông điệp
• Hệ thống
• Mẫu tin
• Ngân quỹ
• VND
• Tiền mặt
• Tiến trình đăng nhập
3.1. Tiếp cận theo cụm danh từ
• Kết quả các lớp được xác định
• Máy ATM: cung cấp một giao diện tới ngân hàng
• Thẻ ATM: cung cấp một khách hàng với một khóa tới một tài khoản
• Khách hàng: một khách hàng là một cá nhân sử dụng máy ATM, có
một tài khoản
• Ngân hàng: các khách hàng phụ thuộc vào ngân hàng. Nó là một nơi
tập trung các tài khoản và xử lý giao dịch tài khoản
• Tài khoản: mô hình hóa một tài khoản của khách hàng và cung cấp
các dịch vụ về tài khoản cho khách hàng
• Giao dịch: mô tả giao tác của khách hàng khi sử dụng ATM. Lưu giữ
thời gian, ngày, loại, số tiền, và số dư.
3.2. Tiếp cận theo phân loại
• Phân loại các lớp của hệ thống dựa trên các mẫu chung
• Lớp khái niệm (concept): một khái niệm là một quan niệm
hoặc sự hiểu biết riêng biệt về thế giới. Lớp khái niệm bao
gồm các nguyên lý được dùng để tổ chức hoặc lưu trữ các
hoạt động và các trao đổi về mặt quản lý.
• Ví dụ: phương pháp, hiệu băng, mô hình
• Lớp sự kiện (event):
• Lớp sự kiện là các thời điểm thời gian cần được lưu trữ. Các sự việc
xảy ra tại một thời điểm hoặc một bước trong một dãy tuần tự các
bước.
• Ví dụ: đăng ký, hóa đơn, đơn hàng , phiếu nhập
3.2. Tiếp cận theo phân loại
• Lớp tổ chức (Organisation): tập hợp con người, tài nguyên,
phương tiện, hoặc những nhóm xác định chức năng người dùng
• Ví dụ: đơn vị, bộ phận, phòng ban, chức danh.
• Lớp con người (people): lớp con người thể hiện vai trò khác
nhau của người dùng trong việc tương tác với hệ thống.
• Ví dụ: sinh viên, khách hàng, giáo viên, nhân viên.
• Vị trí (place): các vị trí vật lý mà hệ thống mô tả thông tin về nó
• Ví dụ: tòa nhà, kho, văn phòng, chi nhánh, đại lý
• Lớp sự vật hữu hình và thiết bị: lớp các đối tượng hoặc các
nhóm của đối tượng hữu hình mà có thể cảm nhận trực quan về
các thiết bị mà hệ thống tương tác.
• Ví dụ: xe hơi, máy bay.
8/30/2017
5
3.2. Tiếp cận theo phân loại
• Ví dụ: hệ thống ATM
• Các lớp khái niệm
• Các lớp sự kiện
• Các lớp tổ chức:
3.2. Tiếp cận theo phân loại
• Ví dụ: hệ thống ATM
• Các lớp con người
• Các lớp sự vật hữu hình và thiết bị
4. Lớp và đối tượng trong UML
• UML thể hiện lớp bằng hình chữ nhật có 3 phần.
• Phần thứ nhất chứa tên lớp.
• Phần thứ hai là thuộc tính và các dữ liệu thành phần
• Phần thứ ba là các phương thức hay hàm thành phần của lớp.
Phân tích thiết kế hướng đối tượng 19
Visibility
Public
Protected
Private
Name
Attribute
Operation
Lớp và đối tượng trong UML
Phân tích thiết kế hướng đối tượng 20
8/30/2017
6
Các nhóm lớp
• Ba nhóm lớp cơ sở sử dụng trong pha phân tích là
• Boundary: lớp biên (giao diện)
• Dành cho lớp nằm trên biên hệ thống với thế giới còn lại
• Chúng có thể là form, report, giao diện với phần cứng như máy in, scanner...
• Khảo sát biểu đồ UC để tìm kiếm lớp biên
Phân tích thiết kế hướng đối tượng 21
Các nhóm lớp
• Ba nhóm lớp cơ sở sử dụng trong pha phân tích là
• Boundary
• Entity: lớp thực thể
• Lớp thực thể là lớp lưu trữ thông tin sẽ ghi vào bộ nhớ
ngoài
• Tìm chúng trong luồng sự kiện và biểu đồ tương tác
• Thông thường phải tạo ra bảng CSDL cho lớp loại này
• Mỗi thuộc tính của lớp thực thể sẽ là trường trong bảng CSDL
• Control: lớp điều khiển
• Có trách nhiệm điều phối hoạt động của các lớp khác
• Thông thường mỗi UC có một lớp điều khiển
• Nó không thực hiện chức năng nghiệp vụ nào
• Các lớp điều khiển khác: điều khiển sự kiện liên quan đến
an ninh và liên quan đến giao dịch CSDL
Phân tích thiết kế hướng đối tượng 22
5. Mối kết hợp (Association)
• Mối kết hợp (Association): là quan hệ ngữ nghĩa được thiết lập giữa
hai hay nhiều lớp, biểu diễn bởi những thành phần sau:
• Tên quan hệ
• Vai trò quan hệ
Tên vai trò
Bản số
Phân tích thiết kế hướng đối tượng 23
Biểu diễn Ý nghĩa
Unspecified
1 chính xác 1
0..* 0 hoặc nhiều
* 0 hoặc nhiều
1..* 1 hoặc nhiều
0..1 0 hoặc 1
2..4 Specified Range
2, 4..6 Multiple, Disjoint Ranges
Mối kết hợp (Association)
Phân tích thiết kế hướng đối tượng 24
8/30/2017
7
Mối kết hợp (Association)
Phân tích thiết kế hướng đối tượng 25
Lớp kết hợp
• Lớp kế hợp (Association Classes): khi một mối kết hợp
có các đặc trưng (thuộc tính, hoạt động, và các mối kết
hợp), chúng ta tạo một lớp để chứa các thuộc tính đó và
kết nối với mối kết hợp, lớp này được gọi là lớp kết hợp
Phân tích thiết kế hướng đối tượng 26
Mối kết hợp thành phần
• Aggregation là kết hợp giữa tổng thể và bộ phận (Whole Parts)
• Trong quan hệ này, một lớp biểu diễn cái lớn hơn còn lớp kia biểu diễn
cái nhỏ hơn
• Biểu diễn quan hệ has-a
• Một đối tượng của lớp tổng thể có nhiều đối tượng của lớp thành phần
• Có 2 loại quan hệ thành phần:
• Tụ hợp
• Gộp
Phân tích thiết kế hướng đối tượng 27
Mối kết hợp thành phần
• Tụ hợp
• Tổng thể và bộ phận có thể hủy bỏ vào thời điểm khác nhau
• Tên khác: quan hệ tụ hợp bởi tham chiếu (by reference)
Phân tích thiết kế hướng đối tượng 28
8/30/2017
8
Mối kết hợp thành phần
• Gộp: là dạng đặc biệt (mạnh hơn) của quan hệ tụ hợp
• Tổng thể và thành phần được hình thành hay hủy bỏ vào cùng thời điểm
• Tên khác: quan hệ tụ hợp bởi giá trị (by value)
Phân tích thiết kế hướng đối tượng 29
Mối kết hợp tổng quát hóa (Generalization)
• Mối kết hợp tổng quát hóa (Generalization): là mối kết hợp
được thiết lập giữa một lớp tổng quát hơn đến một lớp chuyên
biệt. Quan hệ này dùng để phân loại một tập hợp đối tượng
thành những loại xác định hơn mà hệ thống cần làm rõ ngữ
nghĩa
Phân tích thiết kế hướng đối tượng 30
Kết hợp đa kế thừa
• Không khuyến khích vì phức tạp
Phân tích thiết kế hướng đối tượng 31
Kết hợp OR
Phân tích thiết kế hướng đối tượng 32
8/30/2017
9
Xác định mối kết hợp
Phân tích thiết kế hướng đối tượng 33
???
Xác định thuộc tính
• Câu hỏi
• Thông tin gì về đối tượng sẽ được quản lý?
• Nguyên tắc
• Tên: danh từ, cụm danh từ
• Đơn giản: chỉ dùng đủ thuộc tính để diễn đạt trạng thái đối
tượng ở giai đoạn phân tích (thuộc tính sẽ được bổ sung chi
tiết ở các giai đoạn tiếp theo)
• Không quá quan tâm về việc phải khám phá hết các thuộc
tính
Phân tích thiết kế hướng đối tượng 34
Xác định thuộc tính
Phân tích thiết kế hướng đối tượng 35
Xác định phương thức
• Câu hỏi:
• Các đối tượng chịu trách nhiệm xử lý gì về thông tin của nó
để cung cấp dịch vụ cho hệ thống?
• Nguyên tắc:
• Tên: động từ + bổ từ
• Chỉ quan tâm tới các phương có phạm vi toàn cục (public),
các phương thức có phạm vi cục bộ (private) sẽ được phát
hiện trong giai đoạn thiết kế cài đặt
• Các phương thức chịu trách nhiệm về các thao tác lên các
thuộc tính của đối tượng. Truy vấn, cập nhật, đọc ghi.
Phân tích thiết kế hướng đối tượng 36
8/30/2017
10
Xác định phương thức
• Xác định phương thức qua hoạt động use case
• Phân tích các dòng thông điệp trong sơ đồ tuần tự để xem có
thể chuyển một hoạt động thành một method không?
• Nếu có, đặt tên cho phương thức ứng với hoạt động đó
Phân tích thiết kế hướng đối tượng 37
Xác định phương thức
Phân tích thiết kế hướng đối tượng 38
6. Phân tích tĩnh
1. Xác định các lớp
2. Xác định quan hệ giữa các lớp
3. Xây dựng biểu đồ lớp
4. Xác định thuộc tính lớp
5. Cập nhật bảng thuật ngữ và các yêu cầu phi chức
năng (Tùy chọn)
Phân tích thiết kế hướng đối tượng 39
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 40
Bước 1: Xác định các lớp:
• Không phải là công việc dễ dàng
• Quá trình lặp đi lặp lại
• Danh sách lớp sẽ thay đổi theo thời gian
• Thông thường ban đầu người ta sẽ xây
dựng các lớp ứng viên (candidate
class)
• Các lớp này là các danh từ được trích ra
từ các use case scenarios
8/30/2017
11
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 41
Bước 1: Xác định các lớp:
Các danh từ là lớp ứng viên
Tác nhân (Actor): sinh viên, giảng viên,
thành viên, ...
Đối tượng cụ thể trong mô tả hệ thống:
tín chỉ, môn học, ...
Biên (Boundary): giao diện interface
(như giao diện nhập thông tin môn học)
Một số kiểu dữ liệu thông dụng
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 42
Bước 1: Xác định các lớp – VD:
“FastData, Inc. employees may order office
supplies via the Internal Web and receive a receipt
confirming the order. The order must include the user
name, user password, account number, and the list of
supplies. A receipt must be generated containing an
order number, ship date, and total cost. If the order is
valid, it must be entered into an order database. If the
order is invalid, an error message must be
generated.”
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 43
Bước 1: Xác định các lớp – VD:
“FastData, Inc. employees may order office
supplies via the Internal Web and receive a receipt
confirming the order. The order must include the
user name, user password, account number, and
the list of supplies. A receipt must be generated
containing an order number, ship date, and total
cost. If the order is valid, it must be entered into an
order database. If the order is invalid, an error
message must be generated.”
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 44
Bước 1: Xác định các lớp:
Loại bỏ bớt các thành phần trong lớp ứng viên
Các danh từ nằm ngoài miền ứng dụng
Các danh từ trừu tượng (sẽ thành các
thuộc tính cho các lớp)
Các danh từ bị trùng lắp
8/30/2017
12
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 45
Bước 1: Xác định các lớp:
Các thành phần nằm trong lớp ứng viên
employee
item
receipt
order
order database
error message
1. Xác định các lớp
Phân tích thiết kế hướng đối tượng 46
Bước 1: Xác định các lớp:
2. Xác định quan hệ giữa các lớp
Phân tích thiết kế hướng đối tượng 47
Bước 2: Xác định quan hệ giữa các lớp
Quan hệ: Association, Aggregation, Composition
Quan hệ: Generalization, Realization
Quan hệ: Dependency
2. Xác định quan hệ giữa các lớp
Phân tích thiết kế hướng đối tượng 48
8/30/2017
13
3. Xây dựng biểu đồ lớp
Phân tích thiết kế hướng đối tượng 49
4. Xác định thuộc tính lớp
Phân tích thiết kế hướng đối tượng 50
Một số kinh nghiệm khi thiết kế:
Phân tích thiết kế hướng đối tượng 51
• Tên lớp, tên diagram cần rõ ràng, có ý nghĩa
• Các thành phần và quan hệ cần xác định trước
• Ứng với từng class: trong giai đoạn phân tích chỉ
cần xác định các thuộc tính quan trọng nhất
• Sử dụng “Comment” mỗi khi cần
Một số kinh nghiệm khi thiết kế:
Phân tích thiết kế hướng đối tượng 52
• Quá trình trên cần được lặp lại
• Ta cần phân tích và bổ sung thêm các lớp ngoài
các danh từ đã được nêu trực tiếp trong bảng mô
tả mà ta thấy cần thiết
• Quá trình bổ sung này thường được thực hiện
song song với giai đoạn phân tích động
(Dynamic Analysis)
8/30/2017
14
Phân tích thiết kế hướng đối tượng 53
Các file đính kèm theo tài liệu này:
- bai_giang_phan_tich_thiet_ke_huong_doi_tuong_chuong_4_phan_t.pdf