SlideShare a Scribd company logo
1 of 92
Trường Đại học công nghiệp Hà Nội

KHOA CÔNG NGHỆ THÔNG TIN

PHÂN TÍCH THIẾT KẾ
HƯỚNG ĐỐI TƯỢNG

Gv: Vũ Thị Dương
Email: duongvt01@gmail.com
Nội dung chi tiết

5.

Các khái niệm hướng đối tượng
Tổng quan về ngôn ngữ mô hình hóa UML
Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực)
Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)

6.

Biểu đồ kiến trúc vật lý và phát sinh mã trình

7.

Mô hình hóa dữ liệu

1.
2.
3.
4.

2010

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

Bài 1 - 2
Bài 4.1

Mô hình khái niệm
Nội dung trình bày






Mô hình khái niệm
Xác định các khái niệm
Xác định các thuộc tính
Xác định các thao tác
Xác định các kết hợp

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

Bài 4 - 4/38
Mô hình khái niệm










Mô hình khái niệm mô tả các khái niệm trong các quan hệ
của chúng
Khái niệm của lĩnh vực là những khái niệm về sự vật mà
người dùng, các chuyên gia nghiệp vụ sử dụng khi nói đến
nghề và công việc của mình
UML không cung cấp mô hình khái niệm, tuy nhiên cung
cấp ký hiệu và cú pháp để biểu diễn. Đó là biểu đồ lớp
Ở giai đoạn này, mô hình khái niện hay còn gọi là biểu đồ
lớp phân tích
Ngoài ra nô hình này cũng còn được gọi là mô hình lĩnh
vực (domain model)

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

Bài 4 - 5/38
Mô hình khái niệm


Mô hình khái niệm gồm






Các khái niệm của lĩnh vực nghiên cứu
Các thuộc tính và các thao tác của các khái niệm này
Các quan hệ của các khái niệm

Tìm các khái niệm này ta dựa vào





Các kiến thức về lĩnh vực nghề nghiệp
Các cuộc họp phỏng vấn, trao đổi
Các bản tổng quan về hệ thống và nhu cầu
Các tài liệu miêu tả các ca sử dụng đã lập ở bước trước

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

Bài 4 - 6/38
Mô hình khái niệm




Trong mô hình khái niệm, chúng ta sẽ nắm bắt các khái
niệm nhận biết bởi khách hàng.
Ví dụ: Khái niệm đúng: Khái niệm gắn với vấn đề






Thang máy trong hệ thống điều khiển thang máy
Vé máy bay trong hệ thống đặt vé máy bay
Đặt hàng trong hệ thống mua bán hàng qua mạng

Ví dụ tồi về khái niệm: khái niệm gắn với giải pháp



DanhSachKhachHang- bảng khách hàng
EventTrigger: tiến trình thực hiện duyệt hệ thống 10 phút 1 lần

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

Bài 4 - 7/38
Mô hình khái niệm





Làm sao biết được một khái niệm là đúng hay không
Nguyên tắc: “Nếu khách hàng không hiểu khái niệm, rất có
thể đó không phải là khái niệm”
Mô hình khái niệm sẽ được chuyển dần sang biểu đồ lớp
thiết kế trong giai đoạn xây dựng (trong giai đoạn này mới
là giai đoạn đặc tả)

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

Bài 4 - 8/38
Xác định các khái niệm


Một số ứng cử viên của khái niệm từ đặc tả hoặc ca sử
dụng










Các đối tượng vật lý (xe ô tô)
Các vị trí địa điểm (nhà ga)
Các thao tác (thanh toán)
Các vai trò của con người (người bán)
Các hệ thống khác ở bên ngoài ( csdl từ xa)
Các danh từ trừu tượng ( khát, ăn)
Các tổ chức
Các sự kiện
Các nguyên tắc/chính sách

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

Bài 4 - 9/38
Xác định các khái niệm


Phân biệt giữa khái niệm và thuộc tính
Nếu 1 phần tử của lĩnh vực nghiên cứu không là 1 con số hoặc 1
chuỗi ký tự thì đó là 1 khái niệm
Ví dụ: Cần xây dựng phần mềm quản lý các chuyến bay. Đích của
chuyến bay là thuộc tính hay một khái niệm khác?
Trả lời
Đích của chuyến bay là 1 sân bay, không là 1 con số hay văn bản,
vậy nó là khái niệm


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

Bài 4 - 10/38
Xác định các khái niệm


Lớp “Mô tả”


Lớp “Mô tả” là lớp chứa thông tin mô tả các đối tượng khác”


Ví dụ: Lớp mặt hàng chứa các thông tin về mặt hàng
Mặt hàng
Mã MH
tênMH:text
Soxeri



màu
Phương án này tốt hơn
Mặt Hàng
sôXeri
màu

* Được mô tả

1

Mô tả MH
mãMH
tenMH:text
giá

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

Bài 4 - 11/38
Xác định các khái niệm


Lớp “Mô tả”


Khi nào dùng lớp mô tả




Khi cần giảm bớt sự dư thừa, trùng lặp thông tin
Khi cần mô tả về đối tượng độc lập với các đối tượng cụ thể
Khi cần duy trì thoongtin về đối tượng cho dù các đối tượng cụ thể bị
xóa

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

Bài 4 - 12/38
Các tiếp cận tìm khái niệm/lớp





Tiếp cận theo thực thể nghiệp vụ
Tiếp cận theo cụm danh từ
Tiếp cận theo phân loại
Tiếp cận theo phân tích hoạt động use case

13
Các cách tiếp cận xác định lớp


Tiếp cận theo thực thể nghiệp vụ


Đối với các thực thể sự vật: kiểm chứng xem có nhu cầu quản lý
thông tin về thực thể này trong hệ thống không?


Nếu có, xác định một lớp trong sơ đồ phân tích biểu diễn cho thực thể
này





Xác định tên lớp: tên của sự vật
Thuộc tính: bổ sung các thuộc tính mô tả đầy đủ thông tin mà hệ thống có
nhu cầu quản lý về đối tượng

Ví dụ: Hệ đăng ký môn học. Sinh viên, giáo viên, giáo vụ, hệ thu
học phí là các tác nhân. Vậy những tác nhân nào cần lưu thông tin
trong hệ thống?

14
Các cách tiếp cận xác định lớp


Tiếp cận theo thực thể nghiệp vụ


Ví dụ:
Hành lý

Hành lý
NVL

NVL
Hàng hoá

Hàng hoá

15
Các cách tiếp cận xác định lớp


Tiếp cận theo thực thể nghiệp vụ


Đối với thực thể thông tin:






Nếu thực thể mô tả thông tin về một hoạt động giao dịch hệ thống
thì chuyển thành một lớp trong mô hình phân tích
Nếu thực thể là một dạng thông tin tổng hợp  có thể tách thành
nhiều lớp mới hoặc bổ sung thông tin cho các lớp đang tồn tại

Ví dụ:
Hoá đơn

Hoá đon
Thẻ thư viện
16

Thẻ thư viện
Các cách tiếp cận xác định lớp


Tiếp cận theo thực thể nghiệp vụ



Đối với thực thể thông tin:
Ví dụ:
Hoá đơn

HOÁ ĐƠN
Số HĐ:……
Ngày:../…/…
Khách hàng: ……………………..
Địa chỉ:…………………………..
Người lập:………………………..
Mã
số

Tên
hàng

ĐVT

001
004
…

H1
H7
…

Cái
Kg
…

Số lượng
100
1000
…

Đơn
giá
2000
3000
…

Khách hàng

Chi tiết HĐ

Hàng
Tổng trị giá: ………

17
Các cách tiếp cận xác định lớp


Tiếp cận theo thực thể nghiệp vụ


Đối với thực thể thừa tác viên và các thực thể tổ chức khác

Nhân viên bán hàng

Nhân viên quản lý

Thủ kho

18

Nhà CC

Đọc giả

Nhân viên

Độc giả

Nhà CCấp
Các cách tiếp cận xác định lớp


Tiếp cận theo thực thể nghiệp vụ


Ví dụ:
0..n

1

1
NgườI quản lý

Khách hàng
1

1

0..n

0..n

0..n

Hoá đơn

Hồ sơ khách hàng

Khách hàng

Thẻ khách hàng thân thiết

0..1

1
1
1..n
Hoá đơn

19

Thẻ KHTT
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)




Đề xuất bởi Rebecca Wirfs-Brock, Brian Wilkerson, và Lauren
Wiener
Ý 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ừ

Class hiển nhiên
(relevant class)

Class mờ
(fuzzy class)

20

Class giả tạo
(irrelevant)
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)

Xác định các danh
Xác định các danh
từ, cụm danh từ
từ, cụm danh từ

Danh từ, cụm
Danh từ, cụm
danh từ
danh từ

Mô tả use case,
Mô tả use case,
yêu cầu
yêu cầu

Đồng nhất các class
Đồng nhất các class
trùng nghĩa
trùng nghĩa

Loại các danh từ
Loại các danh từ
thuộc tính
thuộc tính

Danh từ, cụm danh
Danh từ, cụm danh
từ ứng viên
từ ứng viên

Loại các class
Loại các class
không có mục tiêu
không có mục tiêu

21

Loại bỏ các danh từ
Loại bỏ các danh từ
mô tả class giả
mô tả class giả

Danh sách các
Danh sách các
class
class
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Ví dụ: xác định các class của hệ thống ATM – Các
cụm danh từ tìm được

Tài khoản
Số dư tài khoản
Số tiền
Tiến trình đăng nhập
Thẻ ATM
Máy ATM
Ngân hàng
Khách hàng ngân hàng
Thẻ
Tiền mặt
Khách hàng
Tài khoản khách hàng
VND

Bao thư
Bốn ký số
Ngân quỹ
Tiền
PIN
PIN không hợp lệ
Thông điệp
Mật khẩu
Mã PIN
Mẫu tin
Bước
Hệ thống
Giao dịch
Lịch sử giao dịch

22
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Loại bỏ các lớp giả (irrelevant):

Tài khoản
Số dư tài khoản
Số tiền
Tiến trình đăng nhập
Thẻ ATM
Máy ATM
Ngân hàng
Khách hàng ngân hàng
Thẻ
Tiền mặt
Khách hàng
Tài khoản khách hàng
VND

Bao thư
Bốn ký số
Ngân quỹ
Tiền
PIN
PIN không hợp lệ
Thông điệp
Mật khẩu
Mã PIN
Mẫu tin
Bước
Hệ thống
Giao dịch
Lịch sử giao dịch
23
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Đồng nhất các ứng viên trùng lắp

Khách hàng, Khách hàng ngân hàng
Tài khoản, Tài khoản khách hàng
PIN, Mã PIN
Tiền, Ngân quỹ
Thẻ ATM, Thẻ

= Khách hàng
= Tài khoản
= PIN
= Ngân quỹ
= Thẻ ATM

24
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Đồng nhất các ứng viên trùng lắp
Tài khoản
Số dư tài khoản
Số tiền
Tiến trình đăng nhập
Thẻ ATM
Máy ATM
Ngân hàng
Khách hàng ngân hàng
Thẻ
Tiền mặt
Khách hàng
Tài khoản khách hàng
VND

Bao thư
Bốn ký số
Ngân quỹ
Tiền
PIN
PIN không hợp lệ
Thông điệp
Mật khẩu
Mã PIN
Mẫu tin
Bước
Hệ thống
Giao dịch
Lịch sử giao dịch
25
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Xác định danh từ, cụm danh từ có thể là thuộc tính:





Chỉ được sử dụng như là giá trị
Không có nhiều hơn một đặc trưng riêng, hoặc chỉ mô tả
một đặc trưng của đối tượng khác

Ví dụ: hệ thống ATM (tiếp tục phân tích)








Số tiền:  một giá trị, không phải một lớp
Số dư tài khoản:  thuộc tính của lớp Tài khoản
PIN không hợp lệ:  một giá trị, không phải một lớp
Mật khẩu:  một thuộc tính (có thể của lớp Khách hàng)
Lịch sử giao dịch:  một thuộc tính (có thể của lớp Giao
dịch)
PIN:  một thuộc tính (có thể của lớp Khách hàng)
26
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Danh sách danh từ, cụm danh từ còn lại
Tài khoản
Số dư tài khoản
Số tiền
Tiến trình đăng nhập
Thẻ ATM
Máy ATM
Ngân hàng
Khách hàng ngân hàng
Thẻ
Tiền mặt
Khách hàng
Tài khoản khách hàng
VND

Bao thư
Bốn ký số
Ngân quỹ
Tiền
PIN
PIN không hợp lệ
Thông điệp
Mật khẩu
Mã PIN
Mẫu tin
Bước
Hệ thống
Giao dịch
Lịch sử giao dịch
27
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Loại bỏ các ứng viên không mục tiêu hoặc không
thuộc phạm vi hệ thống:khoản
Tài
Bao thư








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

Số dư tài khoản
Số tiền
Tiến trình đăng nhập
Thẻ ATM
Máy ATM
Ngân hàng
Khách hàng ngân hàng
Thẻ
Tiền mặt
Khách hàng
Tài khoản khách hàng
VND

Bốn ký số
Ngân quỹ
Tiền
PIN
PIN không hợp lệ
Thông điệp
Mật khẩu
Mã PIN
Mẫu tin
Bước
Hệ thống
Giao dịch
Lịch sử giao dịch
28
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


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 khoá 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ý các giao dịch
tài khoản.
Tài khoản: nó mô hình hoá 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ả một giao tác của khách hàng khi sử
dụng thẻ ATM. Một giao tác được lưu trữ với thời gian,
ngày, loại, số tiền, và số dư
29
Các cách tiếp cận xác định lớp


Tiếp cận theo cụm danh từ (noun –phrase)


Kết quả các lớp được xác định:

MáyATM

NgânHàng

ThẻATM

TàiKhoản

KháchHàng

GiaoDịch

30
Các cách tiếp cận xác định lớp


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ụ: các lớp khái niệm có thể là: phương pháp, hiệu năng,
mô hình,…

Lớp sự kiện (event):




Lớp sự kiện là các đ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ý, hoá đơn, đơn hàng, phiếu nhập,…
31
Các cách tiếp cận xác định lớp


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 các
vai trò khác nhau của người dùng trong việc tương
tác với hệ thống. Những đối tượng này thường là
người dùng hệ thống hoặc những người không sử
dụng hệ thống nhưng thông tin về họ được lưu trữ
bởi hệ thống


Ví dụ: Sinh viên, khách hàng, giáo viên, nhân viên,…

32
Các cách tiếp cận xác định lớp


Tiếp cận theo phân loại:


Lớp vị trí (place): Các vị trí vật lý mà hệ thống cần
mô tả thông tin về nó.




Ví dụ: toà nhà, kho, văn phòng, chi nhánh, đại lý,…

Lớp sự vật hữu hình và thiết bị: các đối tượng vật lý
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, … là các sự vật hữu hình; thiết bị
cảm ứng nhiệt là một lớp thiết bị.

33
Các cách tiếp cận xác định lớp


Tiếp cận theo phân loại:


Ví dụ: hệ thống ATM


Các lớp khái niệm:

TàiKhoản



Các lớp sự kiện:

GiaoDịch



Các lớp tổ chức:

NgânHàng

34
Các cách tiếp cận xác định lớp


Tiếp cận theo phân loại:


Ví dụ: hệ thống ATM


Các lớp con người:
KháchHàng



Các lớp sự vật hữu hình và thiết bị
MáyATM

ThẻATM

35
Các cách tiếp cận xác định lớp


Thiếp cận theo phân tích hoạt động use case:
Đối tượng nào tiếp theo
được chuyển giao trách
nhiệm ?

:Đối tượng

:Đối tượng

…

Tác nhân

Đối tượng nào của hệ
thống sẽ trực tiếp
tương tác với tác
nhân?

Hệ thống
Kết thúc mô tả kịch bản của use case
cho phép xác định tất cả các lớp liên
36
tham gia
Các cách tiếp cận xác định lớp



Thiếp cận theo phân tích hoạt động use case:
Ví dụ: phân tích use case “Giải quyết PIN
không hợp lệ”. Các hoạt động khách hàng có
thể thực hiện với hệ thống:




Đưa vào thẻ ATM
Nhập mã PIN
Rút thẻ ATM

37
Đặt tên và gán trách nhiệm


Mỗi khái niệm nghiệp vụ ở trên ta lập 1 lớp và gán cho nó
1 cái tên. (nên giữ nguyên tên các khái niệm trong thực tế và không nên
dùng nhiều tên cho 1 khái niệm)



Gán trách nhiệm cho mỗi lớp vừa thành lập. Ví dụ lớp SV










Lớp sinh viên: Thông tin cần thiết để đăng ký học và tính học phí
cho từng sinh viên
Sinh viên là người được đăng ký học theo các lớp trong trường

Nếu chọn được tên và gán trách nhiệm rõ ràng chặt chẽ thì
lớp đề cử là tốt
Nếu chọn tên song trách nhiệm lại giống lớp khác- gộp
Chọn tên song trách nhiệm quá dài- tách
Khó chọn tên hay khó mô tả - phân tích lại
Phân tích thiết kế hướng đối tượng

Bài 4 - 38/38
Các loại lớp trong biểu đồ




Phân loại lớp theo các khái niệm của ngôn ngữ lập
trình cụ thể: C++, Java, Web, Visual Basic, CORBA,
Oracle...
Rose hỗ trợ nhiều stereotype cho các nhóm lớp, thí dụ









Lớp thông thường
Lớp tham số (Parameterized class)
Lớp hiện thực (Instantiated class)
Lớp tiện ích (Class utility)
Lớp tiện ích tham số (Parameterized class utility)
Lớp tiện ích hiện thực (Instantiated class utility)
Metaclass
Giao diện (Interfaces)

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

Bài 4 - 39/38
Các loại lớp trong biểu đồ


Lớp tham số (Parameterized class)







Sử dụng để tạo ra họ các lớp khác
Có tên khác là template
Sử dụng cho C++, Ada
Thí dụ với lớp tham số List, có thể tạo ra các
lớp EmployeeList, OrderList...
Đặt đối số cho lớp tham số




Các đối được hiển thị trong hộp nét đứt

Lớp hiện thực (Instantiated class)



Là lớp hiện thực mà đối của chúng có giá trị
Trong UML, ký pháp lớp hiện thực là lớp có
tên đối số trong angle brackets <>

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

Item
List
Attribute
Operation()

<EmployeeList>
Attribute
Operation()

Bài 4 - 40/38
Các loại lớp trong biểu đồ


Lớp tiện ích (Class utility)







Lớp tiện ích tham số (Parameterized
class utility)





Là tập hợp các thao tác
Thí dụ chúng có thể là các hàm toán học
để các lớp khác sử dụng
Ký pháp đồ họa: Hình chữ nhật bóng

Là lớp tham số chứa tập các thao tác
Là template để tạo ra các lớp tiện ích

Lớp tiện ích hiện thực (Instantiated
class utility)


Là lớp tiện ích tham số mà đối số của
chúng có giá trị
Phân tích thiết kế hướng đối tượng

Class Utility
Operation()

Class Utility

Item

Operation()

<Class Utility>
Operation()

Bài 4 - 41/38
Các loại lớp trong biểu đồ


Metaclass




MetaClass

Là lớp mà hiện thực của nó là lớp chứ không phải
đối tượng

Attribute
Operation()

Giao diện (Interfaces)






Nhiều ngôn ngữ hướng đối tượng hỗ trợ khái niệm giao diện để tách
cài đặt lớp khỏi giao diện
Giao diện chỉ chứa signatures của phương pháp cho lớp chứ không
chứa cài đặt
Cách tiếp cận này là cơ sở của ngôn ngữ định nghĩa giao diện
(Interface Definition Language – IDL)


Cho phép định nghĩa giao diện độc lập ngôn ngữ
ImplementationClass
Interface

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

Bài 4 - 42/38
Đặc tả lớp trong biểu đồ


Trong Rose:




Sử dụng cửa sổ đặc tả
lớp để gán các thuộc tính
cho lớp như stereotype,
persistent, visibility...
Cửa sổ đặc tả khác nhau
với các ngôn ngữ khác
nhau khi chọn để cài đặt
mô hình sau này


Các lớp của Java, XML,
CORBA

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

Bài 4- 43/38
Đặc tả lớp trong biểu đồ


Đặc tả lớp bao gồm


Tên lớp






Mỗi lớp trong mô hình có tên duy nhất
Thông thường sử dụng danh từ đơn, không nên có dấu cách
Thí dụ: Flight, Airplane

Phạm vi (Visibility)



Xác định khả năng nhìn thấy lớp từ ngoài gói
Các loại










Public: mọi lớp trong hệ thống có thể nhìn thấy
Private hay Protected: có thể nhìn thấy từ bên trong lớp hay từ lớp friend
Package hay Implementation: chỉ các lớp trong cùng gói mới nhìn thấy

Tính nhiều (Multiplicity)
Yêu cầu lưu trữ
Duy trì (Persistent)
Tương tranh (Concurrency)
Trừu tượng (Abstract)
Phân tích thiết kế hướng đối tượng

Bài 4 - 44/38
Đặc tả lớp trong biểu đồ


Đặc tả lớp bao gồm



...
Tính nhiều của lớp (Multiplicity)



Là số hiện thực mong đợi của lớp
Thí dụ: tính nhiều của lớp Employee là n, của lớp điều khiển và lớp Security
Manager là 1...
Multiplicity

Ý nghĩa

n (Mặc định)
0..0

Không hoặc 1

0..n

Không hoặc nhiều

1..1

Chính xác 1

1..n



Không

0..1



Nhiều

Một hoặc nhiều

Yêu cầu lưu trữ cho lớp
...
Phân tích thiết kế hướng đối tượng

Bài 4 - 45/38
Đặc tả lớp trong biểu đồ


Đặc tả lớp bao gồm



...
Yêu cầu lưu trữ cho lớp




Đặt kích thước bộ nhớ mong đợi để lưu trữ đối tượng của lớp

Duy trì (Persistent)




Rose: có khả năng sinh ngôn ngữ định nghĩa dữ liệu (Data Definition
Language – DDL) để định nghĩa cấu trúc của CSDL
Khi phát sinh DDL, Rose tìm kiếm các lớp có đánh dấu một trong hai
loại đặc tính Persistence:









Persistent: Thông tin trong đối tượng của lớp sẽ lưu trữ vào CSDL hay
tệp có khuôn mẫu khác
Transient: Thông tin trong đối tượng của lớp sẽ không lưu trữ lâu dài

Không sử dụng tính chất persistence cho lớp công cụ, lớp công cụ
tham số và lớp công cụ hiện thực tham số.

Tương tranh (Concurrency)
...
Phân tích thiết kế hướng đối tượng

Bài 4 - 46/38
Đặc tả lớp trong biểu đồ


Đặc tả lớp bao gồm



...
Tương tranh (Concurrency)



Tương tranh mô tả ứng xử của lớp trong đa luồng điều khiển
Bốn loại tương tranh









Sequential: (trạng thái mặc định) lớp ứng xử như hoạt động chỉ trong một
luồng điều khiển
Guarded: Lớp ứng xử như trong đa luồng điều khiển, các lớp trong các
luồng khác nhau cộng tác với nhau để không làm ảnh hưởng đến các lớp
khác
Active: Lớp có luồng điều khiển riêng
Synchronous: Lớp ứng xử như trong đa luồng điều khiển. Các lớp không
cộng tác với nhau vì chúng hoạt động loại trừ tương hỗ.

Trừu tượng (Abstract)



Là lớp không được hiện thực hóa
Sử dụng trong cấu trúc kế thừa
Phân tích thiết kế hướng đối tượng

AbstractClass

Bài 4 - 47/38
Gói các lớp




Gói (Packages) để nhóm các lớp có
những cái chung
Có nhiều quan điểm hình thành gói


Gói lớp theo prototype







Boundaries

Gói lớp theo chức năng




Thí dụ có gói Boundaries, gói Control và
gói Entities
Thí dụ gói Security, gói Reporting, gói
Error Handling...

Sử dụng tổ hợp hai loại tiếp cận trên để
hình thành gói

Control

Entities

Có thể tổ chức gói bên trong gói khác
Quan hệ giữa các gói hình thành trên cơ
sở quan hệ giữa các lớp trong các gói.

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

Bài 4 - 48/38
Nội dung trình bày






Mô hình khái niệm
Xác định các khái niệm
Xác định các thuộc tính
Xác định các thao tác
Xác định các kết hợp

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

Bài 4 - 49/38
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 hơn ở các giai đoạn tiếp theo)
 Không quá quan tâm về việc phải khám phá hết thuộc
tính
 Không quan tâm đến các thuộc tính mô tả cài đặt của
đối tượng

50
Thuộc tính


Thuộc tính (attribute) của một khái niệm biểu diễn dữ liệu
Mô tả MH
cần thiết cho các thể hiện của khái niệm




Ví dụ: khái niệm Mặt hàng có các thuộc tính

mãMH
tenMH:text
giá

Thuộc tính chỉ đại diện cho các dữ liệu
liên quan đến khái niệm sở hữu thuộc tính đó
Người bán
tenMH:text
số quầy
Người bán
ten:text

Quầy
số

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

Bài 4 - 51/38
Xác định thuộc tính


Ví dụ: hệ thống ATM


Lớp Khách Hàng: Phân tích lần lượt tất cả các use case có liên
quan đến lớp Khách Hàng như là: “Đăng nhập”, “Xử lý PIN không
hợp lệ”. Các thuộc tính của lớp khách hàng như sau:

KháchHàng
tênKháchHàng
họKháchHàng
mãPIN
sốThẻ

52
Xác định thuộc tính


Ví dụ: hệ thống ATM

53
Thêm các thuộc tính lớp


Tìm kiếm thuộc tính?



Tìm trong tài liệu UC
Tìm các danh từ trong luồng sự kiện




-> Tên, địa chỉ, ngày sinh là danh từ và là thuộc tính của lớp Nhân viên
Tìm trong tài liệu yêu cầu hệ thống




Thí dụ: “Người sử dụng nhập tên, địa chỉ ngày sinh của Nhân viên”

Thí dụ tài liệu yêu cầu hệ thống mô tả các thông tin cần thu thập

Tìm thuộc tính trong cấu trúc CSDL


Nếu đã xác định cấu trúc CSDL thì các trường trong bảng là thuộc tính
của lớp

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

Bài 4 - 54/38
Thêm các thuộc tính lớp


Trong trường hợp khó khăn quyết định danh từ tìm ra
là thuộc tính hay là lớp



Loại ứng dụng cụ thể quyết định việc này





Thí dụ: Tên công ty là thuộc tính hay lớp?
Mặt khác cần quan sát nhóm thông tin có hành vi hay không

Khi kết thúc tìm kiếm thuộc tính





Đảm bảo rằng các thuộc tính tìm ra phải có ích cho yêu cầu
hệ thống
Gán thận trọng thuộc tính cho các lớp
Không nên hình thành lớp có quá nhiều hay quá ít thuộc tính
(tốt nhất nên có lớp ít hơn 10 thuộc tính)

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

Bài 4 - 55/38
Đặc tả thuộc tính lớp




Trong Rose: sử dụng cửa sổ
đặc tả thuộc tính để gán đặc
tính cho thuộc tính
Với mỗi thuộc tính trong biểu
đồ cần có:



Tên thuộc tính
Kiểu dữ liệu thuộc tính lưu trữ.
Phụ thuộc vào ngôn ngữ lập
trình




Giá trị khởi đầu






Thí dụ, Add : String

Thí dụ, IDNumber: Interger=0

Stereotype
Phạm vi (visibility)
....

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

Bài 4 - 56/38
Đặc tả thuộc tính lớp


Với mỗi thuộc tính trong biểu đồ cần có



...
Phạm vi (visibility)




Public Attributes

Một tính chất quan trọng của lập trình hướng đối
tượng là tính gói
Bốn lựa chọn phạm vi cho thuộc tính





Public: Mọi lớp đều nhìn thấy thuộc tính (+)
Private: Lớp khác không nhìn thấy thuộc tính (-)
Protected: Các lớp kế thừa có thể nhìn thấy (#)
Package và Implementation: Thuộc tính là public
đối với các lớp trong cùng gói
Public

+
-

Private

Protected

#

Public Operations

Public

Private

Private
Attributes
and
Operation
s

Protected

Package (Implementation)


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

Bài 4 - 57/38
Đặc tả thuộc tính lớp


Với mỗi thuộc tính trong biểu đồ cần có



...
Kiểu lưu trữ thuộc tính






Thuộc tính tĩnh





Là thuộc tính chia sẻ cho mọi hiện thực lớp
Ký hiệu trong lớp là tên thuộc tính có gạch chân (phiên bản cũ: $)

Thuộc tính suy diễn





By value: Lớp chứa thuộc tính
By reference: Thuộc tính đặt ngoài lớp, lớp có con trỏ đến thuộc tính
Unspecified: Không xác định

Là thuộc tính được tạo bởi 1 hay nhiều thuộc tính khác
Ký hiệu: dấu / trước tên thuộc tính

aClass

...

staticAttribute
/ derivedAttribute

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

Bài 4 - 58/38
Nội dung trình bày






Mô hình khái niệm
Xác định các khái niệm
Xác định các thuộc tính
Xác định các thao tác
Xác định các kết hợp

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

Bài 4 - 59/38
Thao tác


Khái niệm có thể có các thao tác (operation)
Thao tác của khái niệm chính là khả năng thực hiện của
một thể hiện của khái niệm



ở giai đoạn này (phân tích, thiết kế kiến trúc) có thể không





nhất thiết phải mô tả các thao tác của khái niệm
Giai đoạn xây dựng (thực hiện, cụ thể hóa sản phẩm) sẽ
thực hiện công việc này một cách chi tiết và đầy đủ

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

Bài 4 - 60/38
Nội dung trình bày






Mô hình khái niệm
Xác định các khái niệm
Xác định các thuộc tính
Xác định các thao tác
Xác định các kết hợp

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

Bài 4 - 61/38
Xác định mối quan hệ


Quân hệ kết hợp association: Biểu diễn quan hệ giữa thể
hiện của các khái niệm


Hướng dẫn xác định mối kết hợp:

Một sự phụ thuộc giữa hai hay nhiều lớp có thể thiết lập thành
mối kết hợp.

Mối kết hợp thường tương ứng với một động từ hoặc cụm giới
từ như là thành phần của, làm việc cho, chứa trong, …
 Một tham chiếu từ một lớp đến một lớp khác là một mối kết hợp.

62
Xác định mối quan hệ


Xác định mối kết hợp association:


Các mẫu xác định mối kết hợp:




Mối kết hợp vị trí (location): liên kết tới, thành phần của, làm việc tại,
….
Ví dụ:

Nhân Viên

Buổi Học

Làm việc tại

Chi Nhánh

Phòng Học

Học tại

63
Xác định mối quan hệ


Xác định mối kết hợp association:


Các mẫu xác định mối kết hợp:



Mối kết hợp sở hữu: của, có, thuộc,…
Ví dụ:
Cầu Thủ

Phòng

Là thành phần của

Chứa trong

64

Đội Bóng

Toà Nhà
Xác định mối quan hệ


Xác định mối kết hợp association:


Các mẫu xác định mối kết hợp:


Mối kết hợp truyền thông, liên lạc (communication): đặt tới, trao đổi với,
gởi cho, tiếp nhận từ,…
Đơn Hàng

Bản Yêu Cầu

Đặt tới

Nhà CCấp

Gởi tới

Phòng Ban

65
Xác định mối quan hệ


Xác định mối kết hợp association:


Mối kết hợp phản thân: là mối quan hệ được thiết lập giữa một đối
tượng của một lớp với một đối tượng khác cũng thuộc lớp đó.

Nhân Viên

Thành Phần

Chứa trong

Quản lý

66
Xác định mối quan hệ


Xác định mối kết hợp association:


Ví dụ: hệ thống ATM
NgânHàng

Mối kết hợp sở hữu
Thuộc

KháchHàng

MáyATM

1
1..n

Của
0..n

Có

TàiKhoản
1

67

GiaoDịch
Xác định mối quan hệ


Xác định mối kết hợp association:


Loại bỏ các mối kết hợp không cần thiết:




Mối kết hợp cài đặt: là mối kết hợp mô tả sự liên
quan giữa các lớp trong giai đoạn thiết kế cài đặt hệ
thống bên trong môi trường phát triển hoặc ngôn ngữ
lập trình cụ thể và không phải là môi liên kết giữa
các đối tượng mô tả nghiệp vụ
Mối kết hợp đa phân: là mối kết hợp giữa ba lớp trở
lên, mối kết hợp này phức tạp trong cách thể hiện 
Nếu có thể, phát biểu lại nó dùng mối kết hợp nhị
phân

68
Xác định mối quan hệ


Xác định mối kết hợp association:


Loại bỏ các mối kết hợp không cần thiết – Ví dụ:

Lớp học

Môn học

Lớp học

Môn học

Buổi học

Giáo viên

Lớp học

Giáo viên

69

Lớp học
Xác định mối quan hệ


Xác định mối kết hợp association:


Loại bỏ các mối kết hợp không cần thiết:


Mối kết hợp trực tiếp dư thừa: là các mối kết hợp được định nghĩa
trong ngữ nghĩa của những mối kết hợp khác (còn gọi là mối kết hợp
suy diễn hoặc bắc cầu)
0..*

Phiếu đặt hàng

1
Liên quan

Đặt tới

1

0..1
Từ

Nhà cung cấp

Phiếu giao hàng

1

0..*

70
Xác định mối quan hệ


Xác định mối kết hợp association:


Xác định bản số cho mối kết hợp: (min, max)





1; 0..1;
1..*;
0..*;
a..* : a là hằng
Gởi tới

Bản Yêu Cầu

1

0..*

Bản số

71

Phòng Ban
Xác định mối quan hệ


Xác định mối kết hợp association:


Xác định bản số cho mối kết hợp: (min, max)


Ví dụ:
Là thành phần của 1..* Đội Bóng

Cầu Thủ

1..*
Chứa trong

Phòng

1

Toà Nhà

2..*
Đặt tới

Đơn Hàng

1

0..*

72

Nhà CCấp
Xác định mối quan hệ


Xác định mối kết hợp association:


Xác định bản số cho mối kết hợp: (min, max)


Ví dụ: hệ thống ATM

1

Thuộc

NgânHàng

1
Thuộc

1..
*

KháchHàng

1

1..
*

MáyATM

1

Của
1..
1..n
*
TàiKhoản

Có

1

1
73

0..n
0..*

GiaoDịch
Xác định mối kết hợp


Xác định lớp kết hợp (Association class)
Hoá Đơn

0..*

Sản Phẩm
1..*

Chi Tiết Hoá Đơn
sốLượng
đơnGiá

Sinh Viên

0..*

Khoá Học
1..*
Kết Quả
điểmTB
xếpLoại
74
Xác định mối kết hợp


Xác định lớp kết hợp (Association class)
Hoá Đơn

0..*

Sản Phẩm
1..*

Chi Tiết Hoá Đơn
sốLượng
đơnGiá

Hoá Đơn

1
1..*

Chi Tiết Hoá Đơn
sốLượng
0..*
đơnGiá
75

Sản Phẩm
1
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt (generalization): Thể
hiện quan hệ kế thừa giữa các lớp và một cấu trúc phân cấp xác
định những dòng kế thừa này
 Tiếp cận top-down:







Từ một lớp chúng ta tìm kiếm cụm danh từ chứa tên lớp và tính từ
(hoặc danh từ).
Đánh giá xem cụm danh từ này có thể là một trường hợp đặc biệt
cần được quản lý trong hệ thống không
Tìm kiếm xem có những đặc trưng riêng của lớp
Xây dựng mối kết hợp chuyên biệt từ lớp này đến lớp ban đầu

76
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt (generalization):


Tiếp cận top-down – ví dụ:

Hoá đơn

GiaoDịch

GiaoDịchRút

Hoá đơn giao hàng

GiaoDịchGởi

Ghi chú: chỉ cần đưa vào các lớp chuyên biệt mà chúng ta xác định
được các đặc trưng riêng (thuộc tính, method, liên kết) của nó trong hệ
thống.
77
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt (generalization):


Tiếp cận top-down – ví dụ: phức tạp
Nhân viên

Nhân Viên VP

Trưởng Phòng

Công Nhân

Thư Ký

NV Bán Hàng

78
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt
(generalization):

Tiếp cận bottom-up:
 Tìm kiếm trong các lớp để xác định xem có các
thuộc tính và phương thức giống nhau. Sau đó
chúng ta có thể gom nhóm và đưa các thuộc
tính và phương thức chung này lên một lớp
tổng quát (trừu tượng)
 Tạo mối kết hợp tổng quát hoá từ các lớp này
đến lớp tổng quát mới xác định

79
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt (generalization):


Tiếp cận bottom-up – ví dụ:
Chứng từ

Đơn đặt hàng

Hoá đơn

Hàng hoá

80
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt


Tiếp cận bottom-up – ví dụ:
Đối Tác

Nhà CCấp

Khách Hàng

81
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt


Xác định sự tương quan:

(complete, disjoint)
Lớp A
(incomplete, disjoint)
Lớp A1

Lớp A2

(complete, overlapping)
(incomplete, overlapping)

82
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt


Xác định sự tương quan: - ví dụ
Đối Tác

Khách Hàng

(incomlete, disjoint)

(incomplete)

Nhà CCấp

Khách Hàng

Khách Quen

Nhân Viên VP
(incomplete, overlapping)
Trưởng Phòng

NV Bán Hàng

Thư Ký
83
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp tổng quát – chuyên biệt


Vấn đề đa thừa kế:



Phức tạp trong vấn đề kế thừa
 Không nên sử dụng (phiên bản gốc UML không đưa vào)

Nhà Nghiên Cứu

Giáo Viên

Gviên – Nhà NgCứu

84
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp thành phần (a-part-of, aggregration)


Đặc trưng cơ bản




Tính bắc cầu: Nếu lớp A là một thành phần của lớp B và lớp B là
thành phần của lớp C  lớp A là thành phần của lớp C
Tính đối xứng: nếu lớp A là thành phần của lớp B thì lớp B không
phải là thành phần của lớp A

Lớp B

Lớp A

Lớp C

85
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp thành phần (a-part-of, aggregration)


Toà Nhà

Tập hợp: một đối tượng vật lý được hình thành từ các đối tượng vật
lý thành phần khác
Xe Ô Tô

Đơn Hàng

1
1..*

1

1
1..*

Phòng

Dòng HĐ

1
Thùng Xe

86

1

1
4..8

1

Bánh Xe

Động Cơ
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp thành phần (a-part-of, aggregration)


Vật chứa: một đối tựơng vật lý chứa đựng các thành phần nhưng
không được cấu tạo bởi các thành phần

Phòng Học

Container

0..1 0..1

1
1..*
Hàng Hoá

0..*
Bàn

87

0..1
0..*

Ghế

0..1
Projector
Xác định mối quan hệ


Nâng cấp mối kết hợp:


Xác định mối kết hợp thành phần (a-part-of, aggregration)


Tập hợp – thành viên: một đối tượng khái niệm chứa các thành phần
có thể vật lý hoặc khái niệm
Lớp khái niệm
Đội Bóng

Phòng Ban

1

1
0..*

Lớp vật lý

0..*
Cầu Thủ

Nhân Viên

88
Xác định mối quan hệ


Nâng cấp mối kết hợp:



Xác định mối kết hợp thành phần
Ví dụ: hệ thống ATM
1

Thuộc

NgânHàng

1
Thuộc

1..*

KháchHàng

1

MáyATM

1

Của
1..n 1..*
1..* TàiKhoản

Có

1 1
89

0..n
0..*

GiaoDịch
Ví dụ hệ đăng ký môn học
ThayGiao

Mon hoc

hoc ham/vi

ten
mo ta
so gio

0..4

Nguoi dung

1

ten
ma so

Sinhvien

1..n
Lop giang

chuyen nganh
0..8

10..30

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

Bài 4 - 90/38
Tóm tắt


Bài này đã xem xét các vấn đề sau








Tìm kiếm lớp
Tìm kiếm thuộc tính, thao tác lớp
Tìm kiếm các loại quan hệ giữa các lớp
Biểu diễn biểu đồ lớp và gói
Biểu diễn đồ họa các thuộc tính của thuộc tính, thao tác
trong lớp
Biểu diễn các thuộc tính cho quan hệ giữa các lớp

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

Bài 4 - 91/85
Bài tập




Bài 1: Xây dựng mô hình khái niệm hệ thống đăng
ký môn học (đã làm)
Bài 2: Xây dựng mô hình khái niệm của hệ thống
phần mềm bán hàng tại siêu thị


Phần mềm sử dụng tại siêu thị nhằm ghi nhận hoạt động
bán hàng, xử lý các thanh toán với khách hàng. Phần
mềm được sử dụng bởi người bán hàng và được quản lý
bởi người quản lý siêu thị. Phần mềm nhằm tự động hóa
công việc của người bán tại quầy thu tiền

Bài 3: Xây dựng mô hình khái niệm của hệ thống
phần mêm rút tiền ATM

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

Bài 4- 92/38

More Related Content

What's hot

Hệ thống quản lý rạp chiếu phim
Hệ thống quản lý          rạp chiếu phimHệ thống quản lý          rạp chiếu phim
Hệ thống quản lý rạp chiếu phimvennguyennoinho
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Tú Cao
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuThiênĐàng CôngDân
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Dịch vụ Làm Luận Văn 0936885877
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngJojo Kim
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHai Rom
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh Thanh
 
Xây dựng hệ thống hỗ trợ thi trắc nghiệm
Xây dựng hệ thống hỗ trợ thi trắc nghiệmXây dựng hệ thống hỗ trợ thi trắc nghiệm
Xây dựng hệ thống hỗ trợ thi trắc nghiệmVcoi Vit
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT NguynMinh294
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhnataliej4
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#An Nguyen
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựAskSock Ngô Quang Đạo
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use caseTrung Chinh Hà
 

What's hot (20)

Hệ thống quản lý rạp chiếu phim
Hệ thống quản lý          rạp chiếu phimHệ thống quản lý          rạp chiếu phim
Hệ thống quản lý rạp chiếu phim
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
 
Do an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tuDo an xay_dung_website_thuong_mai_dien_tu
Do an xay_dung_website_thuong_mai_dien_tu
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty cổ phần qu...
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanh
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đĐề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
 
Xây dựng hệ thống hỗ trợ thi trắc nghiệm
Xây dựng hệ thống hỗ trợ thi trắc nghiệmXây dựng hệ thống hỗ trợ thi trắc nghiệm
Xây dựng hệ thống hỗ trợ thi trắc nghiệm
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT Phân tích thiết kế hệ thống thông tin PTIT
Phân tích thiết kế hệ thống thông tin PTIT
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
 
Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#Hướng dẫn lập trình quản lý c#
Hướng dẫn lập trình quản lý c#
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
 
Báo cáo Quản lý dự án phần mềm PTIT
Báo cáo Quản lý dự án phần mềm PTITBáo cáo Quản lý dự án phần mềm PTIT
Báo cáo Quản lý dự án phần mềm PTIT
 

Viewers also liked

Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
Chg 2 uml va ccptht
Chg 2 uml va ccpthtChg 2 uml va ccptht
Chg 2 uml va ccpthtHeo Mọi
 
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tánThiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tánNgo Trung
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Baitap uml mau_thầy trung
Baitap uml mau_thầy trungBaitap uml mau_thầy trung
Baitap uml mau_thầy trungleedavid123
 
Use case
Use   caseUse   case
Use casehocnv
 
Mô hình hóa Use Case 01
Mô hình hóa Use Case 01Mô hình hóa Use Case 01
Mô hình hóa Use Case 01vanphong20082002
 
Ccmtptpm 03 gioithieuvehuongdoituong
Ccmtptpm 03 gioithieuvehuongdoituongCcmtptpm 03 gioithieuvehuongdoituong
Ccmtptpm 03 gioithieuvehuongdoituongNguyen Tran
 
Bao cao do_an_phan_mem_quan_ly_thu_vien_5327
Bao cao do_an_phan_mem_quan_ly_thu_vien_5327Bao cao do_an_phan_mem_quan_ly_thu_vien_5327
Bao cao do_an_phan_mem_quan_ly_thu_vien_5327thanhtung_nh
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Umlhbgfd
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueKali Back Tracker
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàngAn Nguyen
 
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Truong Ho
 
Bao cao do an Phát triển hệ thống game server Online
Bao cao do an Phát triển hệ thống game server OnlineBao cao do an Phát triển hệ thống game server Online
Bao cao do an Phát triển hệ thống game server OnlineHoàng Phạm
 

Viewers also liked (20)

Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Chg 2 uml va ccptht
Chg 2 uml va ccpthtChg 2 uml va ccptht
Chg 2 uml va ccptht
 
4a domain model
4a domain model4a domain model
4a domain model
 
Umodel 2009
Umodel 2009Umodel 2009
Umodel 2009
 
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tánThiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
Thiết kế mạng máy ATM dựa vào thuyết cơ sở dữ liệu phân tán
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Baitap uml mau_thầy trung
Baitap uml mau_thầy trungBaitap uml mau_thầy trung
Baitap uml mau_thầy trung
 
Use case
Use   caseUse   case
Use case
 
Mô hình hóa Use Case 01
Mô hình hóa Use Case 01Mô hình hóa Use Case 01
Mô hình hóa Use Case 01
 
Ccmtptpm 03 gioithieuvehuongdoituong
Ccmtptpm 03 gioithieuvehuongdoituongCcmtptpm 03 gioithieuvehuongdoituong
Ccmtptpm 03 gioithieuvehuongdoituong
 
Bao cao do_an_phan_mem_quan_ly_thu_vien_5327
Bao cao do_an_phan_mem_quan_ly_thu_vien_5327Bao cao do_an_phan_mem_quan_ly_thu_vien_5327
Bao cao do_an_phan_mem_quan_ly_thu_vien_5327
 
Bai1
Bai1Bai1
Bai1
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Uml
 
Lecture02(2)
Lecture02(2)Lecture02(2)
Lecture02(2)
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thue
 
Quản lý quan hệ khách hàng
Quản lý quan hệ khách hàngQuản lý quan hệ khách hàng
Quản lý quan hệ khách hàng
 
Csdl hdt
Csdl hdtCsdl hdt
Csdl hdt
 
Dh Uml3
Dh Uml3Dh Uml3
Dh Uml3
 
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
Dữ liệu không gian trên SQL Server - (Spatial Data in SQL Server)
 
Bao cao do an Phát triển hệ thống game server Online
Bao cao do an Phát triển hệ thống game server OnlineBao cao do an Phát triển hệ thống game server Online
Bao cao do an Phát triển hệ thống game server Online
 

Similar to UML mô hình khái niệm

Chương 8 Phân tích CSDL kinh doanh với SQL
Chương 8 Phân tích CSDL kinh doanh với SQLChương 8 Phân tích CSDL kinh doanh với SQL
Chương 8 Phân tích CSDL kinh doanh với SQLHoa Le
 
Core java 1
Core java 1Core java 1
Core java 1. .
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầuNguyen Tran
 
KHAI PHÁ DỮ LIỆU - C5.pptx
KHAI PHÁ DỮ LIỆU - C5.pptxKHAI PHÁ DỮ LIỆU - C5.pptx
KHAI PHÁ DỮ LIỆU - C5.pptxPhanAnhNht
 
oo-chuong-5.pdf
oo-chuong-5.pdfoo-chuong-5.pdf
oo-chuong-5.pdfmm nn
 
Bài giảng Thương mại điện tử Chương 2
Bài giảng Thương mại điện tử Chương 2Bài giảng Thương mại điện tử Chương 2
Bài giảng Thương mại điện tử Chương 2Đinh Chính
 
CHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docx
CHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docxCHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docx
CHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docxPhngOanh48
 
cau hoi Makerting can ban
cau hoi Makerting can bancau hoi Makerting can ban
cau hoi Makerting can banthuyle85
 
Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...
Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...
Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...Giang Coffee
 
Yêu cầu của người sử dụng
Yêu cầu của người sử dụngYêu cầu của người sử dụng
Yêu cầu của người sử dụngNguyen Tran
 

Similar to UML mô hình khái niệm (20)

Chương 8 Phân tích CSDL kinh doanh với SQL
Chương 8 Phân tích CSDL kinh doanh với SQLChương 8 Phân tích CSDL kinh doanh với SQL
Chương 8 Phân tích CSDL kinh doanh với SQL
 
Java core
Java coreJava core
Java core
 
Core java 1
Core java 1Core java 1
Core java 1
 
Mô hình hóa yêu cầu
Mô hình hóa yêu cầuMô hình hóa yêu cầu
Mô hình hóa yêu cầu
 
Lecture03
Lecture03Lecture03
Lecture03
 
Lecture03(1)
Lecture03(1)Lecture03(1)
Lecture03(1)
 
KHAI PHÁ DỮ LIỆU - C5.pptx
KHAI PHÁ DỮ LIỆU - C5.pptxKHAI PHÁ DỮ LIỆU - C5.pptx
KHAI PHÁ DỮ LIỆU - C5.pptx
 
2 thu thap va mo hinh yeu cau
2 thu thap va mo hinh yeu cau2 thu thap va mo hinh yeu cau
2 thu thap va mo hinh yeu cau
 
Luận văn: Tìm hiểu giải thuật tìm kiếm cộng đồng trong mạng xã hội
Luận văn: Tìm hiểu giải thuật tìm kiếm cộng đồng trong mạng xã hộiLuận văn: Tìm hiểu giải thuật tìm kiếm cộng đồng trong mạng xã hội
Luận văn: Tìm hiểu giải thuật tìm kiếm cộng đồng trong mạng xã hội
 
Ch3.mo hinhhoayeucau(1)(1)
Ch3.mo hinhhoayeucau(1)(1)Ch3.mo hinhhoayeucau(1)(1)
Ch3.mo hinhhoayeucau(1)(1)
 
Ch3.mo hinhhoayeucau(1)
Ch3.mo hinhhoayeucau(1)Ch3.mo hinhhoayeucau(1)
Ch3.mo hinhhoayeucau(1)
 
oo-chuong-5.pdf
oo-chuong-5.pdfoo-chuong-5.pdf
oo-chuong-5.pdf
 
Bài giảng Thương mại điện tử Chương 2
Bài giảng Thương mại điện tử Chương 2Bài giảng Thương mại điện tử Chương 2
Bài giảng Thương mại điện tử Chương 2
 
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mạiĐề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
Đề tài: Hệ thống thông tin quản lý bán hàng tại công ty thương mại
 
Luận Văn Nâng Cao Năng Lực Cạnh Tranh Của Ngân Hàng Tmcp Đầu Tư Và Phát Triển.
Luận Văn Nâng Cao Năng Lực Cạnh Tranh Của Ngân Hàng Tmcp Đầu Tư Và Phát Triển.Luận Văn Nâng Cao Năng Lực Cạnh Tranh Của Ngân Hàng Tmcp Đầu Tư Và Phát Triển.
Luận Văn Nâng Cao Năng Lực Cạnh Tranh Của Ngân Hàng Tmcp Đầu Tư Và Phát Triển.
 
CHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docx
CHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docxCHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docx
CHƯƠNG 3 PHÂN LOẠI CÁC HTTT.docx
 
cau hoi Makerting can ban
cau hoi Makerting can bancau hoi Makerting can ban
cau hoi Makerting can ban
 
Giao trinhpttkhttt
Giao trinhpttkhtttGiao trinhpttkhttt
Giao trinhpttkhttt
 
Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...
Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...
Slide - Phân tích khách hàng và đối thủ cạnh tranh nhằm nâng cao hiệu quả mar...
 
Yêu cầu của người sử dụng
Yêu cầu của người sử dụngYêu cầu của người sử dụng
Yêu cầu của người sử dụng
 

UML mô hình khái niệm

  • 1. Trường Đại học công nghiệp Hà Nội KHOA CÔNG NGHỆ THÔNG TIN PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG Gv: Vũ Thị Dương Email: duongvt01@gmail.com
  • 2. Nội dung chi tiết 5. Các khái niệm hướng đối tượng Tổng quan về ngôn ngữ mô hình hóa UML Mô hình hóa yêu cầu (biểu đồ ca sử dụng) Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực) Mô hình hóa hành vi( biểu đồ tương tác, trạng thái) 6. Biểu đồ kiến trúc vật lý và phát sinh mã trình 7. Mô hình hóa dữ liệu 1. 2. 3. 4. 2010 Phân tích thiết kế hướng đối tượng Bài 1 - 2
  • 3. Bài 4.1 Mô hình khái niệm
  • 4. Nội dung trình bày      Mô hình khái niệm Xác định các khái niệm Xác định các thuộc tính Xác định các thao tác Xác định các kết hợp Phân tích thiết kế hướng đối tượng Bài 4 - 4/38
  • 5. Mô hình khái niệm      Mô hình khái niệm mô tả các khái niệm trong các quan hệ của chúng Khái niệm của lĩnh vực là những khái niệm về sự vật mà người dùng, các chuyên gia nghiệp vụ sử dụng khi nói đến nghề và công việc của mình UML không cung cấp mô hình khái niệm, tuy nhiên cung cấp ký hiệu và cú pháp để biểu diễn. Đó là biểu đồ lớp Ở giai đoạn này, mô hình khái niện hay còn gọi là biểu đồ lớp phân tích Ngoài ra nô hình này cũng còn được gọi là mô hình lĩnh vực (domain model) Phân tích thiết kế hướng đối tượng Bài 4 - 5/38
  • 6. Mô hình khái niệm  Mô hình khái niệm gồm     Các khái niệm của lĩnh vực nghiên cứu Các thuộc tính và các thao tác của các khái niệm này Các quan hệ của các khái niệm Tìm các khái niệm này ta dựa vào     Các kiến thức về lĩnh vực nghề nghiệp Các cuộc họp phỏng vấn, trao đổi Các bản tổng quan về hệ thống và nhu cầu Các tài liệu miêu tả các ca sử dụng đã lập ở bước trước Phân tích thiết kế hướng đối tượng Bài 4 - 6/38
  • 7. Mô hình khái niệm   Trong mô hình khái niệm, chúng ta sẽ nắm bắt các khái niệm nhận biết bởi khách hàng. Ví dụ: Khái niệm đúng: Khái niệm gắn với vấn đề     Thang máy trong hệ thống điều khiển thang máy Vé máy bay trong hệ thống đặt vé máy bay Đặt hàng trong hệ thống mua bán hàng qua mạng Ví dụ tồi về khái niệm: khái niệm gắn với giải pháp   DanhSachKhachHang- bảng khách hàng EventTrigger: tiến trình thực hiện duyệt hệ thống 10 phút 1 lần Phân tích thiết kế hướng đối tượng Bài 4 - 7/38
  • 8. Mô hình khái niệm    Làm sao biết được một khái niệm là đúng hay không Nguyên tắc: “Nếu khách hàng không hiểu khái niệm, rất có thể đó không phải là khái niệm” Mô hình khái niệm sẽ được chuyển dần sang biểu đồ lớp thiết kế trong giai đoạn xây dựng (trong giai đoạn này mới là giai đoạn đặc tả) Phân tích thiết kế hướng đối tượng Bài 4 - 8/38
  • 9. Xác định các khái niệm  Một số ứng cử viên của khái niệm từ đặc tả hoặc ca sử dụng          Các đối tượng vật lý (xe ô tô) Các vị trí địa điểm (nhà ga) Các thao tác (thanh toán) Các vai trò của con người (người bán) Các hệ thống khác ở bên ngoài ( csdl từ xa) Các danh từ trừu tượng ( khát, ăn) Các tổ chức Các sự kiện Các nguyên tắc/chính sách Phân tích thiết kế hướng đối tượng Bài 4 - 9/38
  • 10. Xác định các khái niệm  Phân biệt giữa khái niệm và thuộc tính Nếu 1 phần tử của lĩnh vực nghiên cứu không là 1 con số hoặc 1 chuỗi ký tự thì đó là 1 khái niệm Ví dụ: Cần xây dựng phần mềm quản lý các chuyến bay. Đích của chuyến bay là thuộc tính hay một khái niệm khác? Trả lời Đích của chuyến bay là 1 sân bay, không là 1 con số hay văn bản, vậy nó là khái niệm  Phân tích thiết kế hướng đối tượng Bài 4 - 10/38
  • 11. Xác định các khái niệm  Lớp “Mô tả”  Lớp “Mô tả” là lớp chứa thông tin mô tả các đối tượng khác”  Ví dụ: Lớp mặt hàng chứa các thông tin về mặt hàng Mặt hàng Mã MH tênMH:text Soxeri  màu Phương án này tốt hơn Mặt Hàng sôXeri màu * Được mô tả 1 Mô tả MH mãMH tenMH:text giá Phân tích thiết kế hướng đối tượng Bài 4 - 11/38
  • 12. Xác định các khái niệm  Lớp “Mô tả”  Khi nào dùng lớp mô tả    Khi cần giảm bớt sự dư thừa, trùng lặp thông tin Khi cần mô tả về đối tượng độc lập với các đối tượng cụ thể Khi cần duy trì thoongtin về đối tượng cho dù các đối tượng cụ thể bị xóa Phân tích thiết kế hướng đối tượng Bài 4 - 12/38
  • 13. Các tiếp cận tìm khái niệm/lớp     Tiếp cận theo thực thể nghiệp vụ Tiếp cận theo cụm danh từ Tiếp cận theo phân loại Tiếp cận theo phân tích hoạt động use case 13
  • 14. Các cách tiếp cận xác định lớp  Tiếp cận theo thực thể nghiệp vụ  Đối với các thực thể sự vật: kiểm chứng xem có nhu cầu quản lý thông tin về thực thể này trong hệ thống không?  Nếu có, xác định một lớp trong sơ đồ phân tích biểu diễn cho thực thể này    Xác định tên lớp: tên của sự vật Thuộc tính: bổ sung các thuộc tính mô tả đầy đủ thông tin mà hệ thống có nhu cầu quản lý về đối tượng Ví dụ: Hệ đăng ký môn học. Sinh viên, giáo viên, giáo vụ, hệ thu học phí là các tác nhân. Vậy những tác nhân nào cần lưu thông tin trong hệ thống? 14
  • 15. Các cách tiếp cận xác định lớp  Tiếp cận theo thực thể nghiệp vụ  Ví dụ: Hành lý Hành lý NVL NVL Hàng hoá Hàng hoá 15
  • 16. Các cách tiếp cận xác định lớp  Tiếp cận theo thực thể nghiệp vụ  Đối với thực thể thông tin:    Nếu thực thể mô tả thông tin về một hoạt động giao dịch hệ thống thì chuyển thành một lớp trong mô hình phân tích Nếu thực thể là một dạng thông tin tổng hợp  có thể tách thành nhiều lớp mới hoặc bổ sung thông tin cho các lớp đang tồn tại Ví dụ: Hoá đơn Hoá đon Thẻ thư viện 16 Thẻ thư viện
  • 17. Các cách tiếp cận xác định lớp  Tiếp cận theo thực thể nghiệp vụ   Đối với thực thể thông tin: Ví dụ: Hoá đơn HOÁ ĐƠN Số HĐ:…… Ngày:../…/… Khách hàng: …………………….. Địa chỉ:………………………….. Người lập:……………………….. Mã số Tên hàng ĐVT 001 004 … H1 H7 … Cái Kg … Số lượng 100 1000 … Đơn giá 2000 3000 … Khách hàng Chi tiết HĐ Hàng Tổng trị giá: ……… 17
  • 18. Các cách tiếp cận xác định lớp  Tiếp cận theo thực thể nghiệp vụ  Đối với thực thể thừa tác viên và các thực thể tổ chức khác Nhân viên bán hàng Nhân viên quản lý Thủ kho 18 Nhà CC Đọc giả Nhân viên Độc giả Nhà CCấp
  • 19. Các cách tiếp cận xác định lớp  Tiếp cận theo thực thể nghiệp vụ  Ví dụ: 0..n 1 1 NgườI quản lý Khách hàng 1 1 0..n 0..n 0..n Hoá đơn Hồ sơ khách hàng Khách hàng Thẻ khách hàng thân thiết 0..1 1 1 1..n Hoá đơn 19 Thẻ KHTT
  • 20. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)   Đề xuất bởi Rebecca Wirfs-Brock, Brian Wilkerson, và Lauren Wiener Ý 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ừ Class hiển nhiên (relevant class) Class mờ (fuzzy class) 20 Class giả tạo (irrelevant)
  • 21. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase) Xác định các danh Xác định các danh từ, cụm danh từ từ, cụm danh từ Danh từ, cụm Danh từ, cụm danh từ danh từ Mô tả use case, Mô tả use case, yêu cầu yêu cầu Đồng nhất các class Đồng nhất các class trùng nghĩa trùng nghĩa Loại các danh từ Loại các danh từ thuộc tính thuộc tính Danh từ, cụm danh Danh từ, cụm danh từ ứng viên từ ứng viên Loại các class Loại các class không có mục tiêu không có mục tiêu 21 Loại bỏ các danh từ Loại bỏ các danh từ mô tả class giả mô tả class giả Danh sách các Danh sách các class class
  • 22. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Ví dụ: xác định các class của hệ thống ATM – Các cụm danh từ tìm được Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch 22
  • 23. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Loại bỏ các lớp giả (irrelevant): Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch 23
  • 24. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Đồng nhất các ứng viên trùng lắp Khách hàng, Khách hàng ngân hàng Tài khoản, Tài khoản khách hàng PIN, Mã PIN Tiền, Ngân quỹ Thẻ ATM, Thẻ = Khách hàng = Tài khoản = PIN = Ngân quỹ = Thẻ ATM 24
  • 25. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Đồng nhất các ứng viên trùng lắp Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch 25
  • 26. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Xác định danh từ, cụm danh từ có thể là thuộc tính:    Chỉ được sử dụng như là giá trị Không có nhiều hơn một đặc trưng riêng, hoặc chỉ mô tả một đặc trưng của đối tượng khác Ví dụ: hệ thống ATM (tiếp tục phân tích)       Số tiền:  một giá trị, không phải một lớp Số dư tài khoản:  thuộc tính của lớp Tài khoản PIN không hợp lệ:  một giá trị, không phải một lớp Mật khẩu:  một thuộc tính (có thể của lớp Khách hàng) Lịch sử giao dịch:  một thuộc tính (có thể của lớp Giao dịch) PIN:  một thuộc tính (có thể của lớp Khách hàng) 26
  • 27. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Danh sách danh từ, cụm danh từ còn lại Tài khoản Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND Bao thư Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch 27
  • 28. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Loại bỏ các ứng viên không mục tiêu hoặc không thuộc phạm vi hệ thống:khoản Tài Bao thư        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 Số dư tài khoản Số tiền Tiến trình đăng nhập Thẻ ATM Máy ATM Ngân hàng Khách hàng ngân hàng Thẻ Tiền mặt Khách hàng Tài khoản khách hàng VND Bốn ký số Ngân quỹ Tiền PIN PIN không hợp lệ Thông điệp Mật khẩu Mã PIN Mẫu tin Bước Hệ thống Giao dịch Lịch sử giao dịch 28
  • 29. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  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 khoá 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ý các giao dịch tài khoản. Tài khoản: nó mô hình hoá 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ả một giao tác của khách hàng khi sử dụng thẻ ATM. Một giao tác được lưu trữ với thời gian, ngày, loại, số tiền, và số dư 29
  • 30. Các cách tiếp cận xác định lớp  Tiếp cận theo cụm danh từ (noun –phrase)  Kết quả các lớp được xác định: MáyATM NgânHàng ThẻATM TàiKhoản KháchHàng GiaoDịch 30
  • 31. Các cách tiếp cận xác định lớp  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ụ: các lớp khái niệm có thể là: phương pháp, hiệu năng, mô hình,… Lớp sự kiện (event):   Lớp sự kiện là các đ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ý, hoá đơn, đơn hàng, phiếu nhập,… 31
  • 32. Các cách tiếp cận xác định lớp  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 các vai trò khác nhau của người dùng trong việc tương tác với hệ thống. Những đối tượng này thường là người dùng hệ thống hoặc những người không sử dụng hệ thống nhưng thông tin về họ được lưu trữ bởi hệ thống  Ví dụ: Sinh viên, khách hàng, giáo viên, nhân viên,… 32
  • 33. Các cách tiếp cận xác định lớp  Tiếp cận theo phân loại:  Lớp vị trí (place): Các vị trí vật lý mà hệ thống cần mô tả thông tin về nó.   Ví dụ: toà nhà, kho, văn phòng, chi nhánh, đại lý,… Lớp sự vật hữu hình và thiết bị: các đối tượng vật lý 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, … là các sự vật hữu hình; thiết bị cảm ứng nhiệt là một lớp thiết bị. 33
  • 34. Các cách tiếp cận xác định lớp  Tiếp cận theo phân loại:  Ví dụ: hệ thống ATM  Các lớp khái niệm: TàiKhoản  Các lớp sự kiện: GiaoDịch  Các lớp tổ chức: NgânHàng 34
  • 35. Các cách tiếp cận xác định lớp  Tiếp cận theo phân loại:  Ví dụ: hệ thống ATM  Các lớp con người: KháchHàng  Các lớp sự vật hữu hình và thiết bị MáyATM ThẻATM 35
  • 36. Các cách tiếp cận xác định lớp  Thiếp cận theo phân tích hoạt động use case: Đối tượng nào tiếp theo được chuyển giao trách nhiệm ? :Đối tượng :Đối tượng … Tác nhân Đối tượng nào của hệ thống sẽ trực tiếp tương tác với tác nhân? Hệ thống Kết thúc mô tả kịch bản của use case cho phép xác định tất cả các lớp liên 36 tham gia
  • 37. Các cách tiếp cận xác định lớp   Thiếp cận theo phân tích hoạt động use case: Ví dụ: phân tích use case “Giải quyết PIN không hợp lệ”. Các hoạt động khách hàng có thể thực hiện với hệ thống:    Đưa vào thẻ ATM Nhập mã PIN Rút thẻ ATM 37
  • 38. Đặt tên và gán trách nhiệm  Mỗi khái niệm nghiệp vụ ở trên ta lập 1 lớp và gán cho nó 1 cái tên. (nên giữ nguyên tên các khái niệm trong thực tế và không nên dùng nhiều tên cho 1 khái niệm)  Gán trách nhiệm cho mỗi lớp vừa thành lập. Ví dụ lớp SV       Lớp sinh viên: Thông tin cần thiết để đăng ký học và tính học phí cho từng sinh viên Sinh viên là người được đăng ký học theo các lớp trong trường Nếu chọn được tên và gán trách nhiệm rõ ràng chặt chẽ thì lớp đề cử là tốt Nếu chọn tên song trách nhiệm lại giống lớp khác- gộp Chọn tên song trách nhiệm quá dài- tách Khó chọn tên hay khó mô tả - phân tích lại Phân tích thiết kế hướng đối tượng Bài 4 - 38/38
  • 39. Các loại lớp trong biểu đồ   Phân loại lớp theo các khái niệm của ngôn ngữ lập trình cụ thể: C++, Java, Web, Visual Basic, CORBA, Oracle... Rose hỗ trợ nhiều stereotype cho các nhóm lớp, thí dụ         Lớp thông thường Lớp tham số (Parameterized class) Lớp hiện thực (Instantiated class) Lớp tiện ích (Class utility) Lớp tiện ích tham số (Parameterized class utility) Lớp tiện ích hiện thực (Instantiated class utility) Metaclass Giao diện (Interfaces) Phân tích thiết kế hướng đối tượng Bài 4 - 39/38
  • 40. Các loại lớp trong biểu đồ  Lớp tham số (Parameterized class)      Sử dụng để tạo ra họ các lớp khác Có tên khác là template Sử dụng cho C++, Ada Thí dụ với lớp tham số List, có thể tạo ra các lớp EmployeeList, OrderList... Đặt đối số cho lớp tham số   Các đối được hiển thị trong hộp nét đứt Lớp hiện thực (Instantiated class)   Là lớp hiện thực mà đối của chúng có giá trị Trong UML, ký pháp lớp hiện thực là lớp có tên đối số trong angle brackets <> Phân tích thiết kế hướng đối tượng Item List Attribute Operation() <EmployeeList> Attribute Operation() Bài 4 - 40/38
  • 41. Các loại lớp trong biểu đồ  Lớp tiện ích (Class utility)     Lớp tiện ích tham số (Parameterized class utility)    Là tập hợp các thao tác Thí dụ chúng có thể là các hàm toán học để các lớp khác sử dụng Ký pháp đồ họa: Hình chữ nhật bóng Là lớp tham số chứa tập các thao tác Là template để tạo ra các lớp tiện ích Lớp tiện ích hiện thực (Instantiated class utility)  Là lớp tiện ích tham số mà đối số của chúng có giá trị Phân tích thiết kế hướng đối tượng Class Utility Operation() Class Utility Item Operation() <Class Utility> Operation() Bài 4 - 41/38
  • 42. Các loại lớp trong biểu đồ  Metaclass   MetaClass Là lớp mà hiện thực của nó là lớp chứ không phải đối tượng Attribute Operation() Giao diện (Interfaces)    Nhiều ngôn ngữ hướng đối tượng hỗ trợ khái niệm giao diện để tách cài đặt lớp khỏi giao diện Giao diện chỉ chứa signatures của phương pháp cho lớp chứ không chứa cài đặt Cách tiếp cận này là cơ sở của ngôn ngữ định nghĩa giao diện (Interface Definition Language – IDL)  Cho phép định nghĩa giao diện độc lập ngôn ngữ ImplementationClass Interface Phân tích thiết kế hướng đối tượng Bài 4 - 42/38
  • 43. Đặc tả lớp trong biểu đồ  Trong Rose:   Sử dụng cửa sổ đặc tả lớp để gán các thuộc tính cho lớp như stereotype, persistent, visibility... Cửa sổ đặc tả khác nhau với các ngôn ngữ khác nhau khi chọn để cài đặt mô hình sau này  Các lớp của Java, XML, CORBA Phân tích thiết kế hướng đối tượng Bài 4- 43/38
  • 44. Đặc tả lớp trong biểu đồ  Đặc tả lớp bao gồm  Tên lớp     Mỗi lớp trong mô hình có tên duy nhất Thông thường sử dụng danh từ đơn, không nên có dấu cách Thí dụ: Flight, Airplane Phạm vi (Visibility)   Xác định khả năng nhìn thấy lớp từ ngoài gói Các loại         Public: mọi lớp trong hệ thống có thể nhìn thấy Private hay Protected: có thể nhìn thấy từ bên trong lớp hay từ lớp friend Package hay Implementation: chỉ các lớp trong cùng gói mới nhìn thấy Tính nhiều (Multiplicity) Yêu cầu lưu trữ Duy trì (Persistent) Tương tranh (Concurrency) Trừu tượng (Abstract) Phân tích thiết kế hướng đối tượng Bài 4 - 44/38
  • 45. Đặc tả lớp trong biểu đồ  Đặc tả lớp bao gồm   ... Tính nhiều của lớp (Multiplicity)   Là số hiện thực mong đợi của lớp Thí dụ: tính nhiều của lớp Employee là n, của lớp điều khiển và lớp Security Manager là 1... Multiplicity Ý nghĩa n (Mặc định) 0..0 Không hoặc 1 0..n Không hoặc nhiều 1..1 Chính xác 1 1..n  Không 0..1  Nhiều Một hoặc nhiều Yêu cầu lưu trữ cho lớp ... Phân tích thiết kế hướng đối tượng Bài 4 - 45/38
  • 46. Đặc tả lớp trong biểu đồ  Đặc tả lớp bao gồm   ... Yêu cầu lưu trữ cho lớp   Đặt kích thước bộ nhớ mong đợi để lưu trữ đối tượng của lớp Duy trì (Persistent)   Rose: có khả năng sinh ngôn ngữ định nghĩa dữ liệu (Data Definition Language – DDL) để định nghĩa cấu trúc của CSDL Khi phát sinh DDL, Rose tìm kiếm các lớp có đánh dấu một trong hai loại đặc tính Persistence:      Persistent: Thông tin trong đối tượng của lớp sẽ lưu trữ vào CSDL hay tệp có khuôn mẫu khác Transient: Thông tin trong đối tượng của lớp sẽ không lưu trữ lâu dài Không sử dụng tính chất persistence cho lớp công cụ, lớp công cụ tham số và lớp công cụ hiện thực tham số. Tương tranh (Concurrency) ... Phân tích thiết kế hướng đối tượng Bài 4 - 46/38
  • 47. Đặc tả lớp trong biểu đồ  Đặc tả lớp bao gồm   ... Tương tranh (Concurrency)   Tương tranh mô tả ứng xử của lớp trong đa luồng điều khiển Bốn loại tương tranh      Sequential: (trạng thái mặc định) lớp ứng xử như hoạt động chỉ trong một luồng điều khiển Guarded: Lớp ứng xử như trong đa luồng điều khiển, các lớp trong các luồng khác nhau cộng tác với nhau để không làm ảnh hưởng đến các lớp khác Active: Lớp có luồng điều khiển riêng Synchronous: Lớp ứng xử như trong đa luồng điều khiển. Các lớp không cộng tác với nhau vì chúng hoạt động loại trừ tương hỗ. Trừu tượng (Abstract)   Là lớp không được hiện thực hóa Sử dụng trong cấu trúc kế thừa Phân tích thiết kế hướng đối tượng AbstractClass Bài 4 - 47/38
  • 48. Gói các lớp   Gói (Packages) để nhóm các lớp có những cái chung Có nhiều quan điểm hình thành gói  Gói lớp theo prototype     Boundaries Gói lớp theo chức năng   Thí dụ có gói Boundaries, gói Control và gói Entities Thí dụ gói Security, gói Reporting, gói Error Handling... Sử dụng tổ hợp hai loại tiếp cận trên để hình thành gói Control Entities Có thể tổ chức gói bên trong gói khác Quan hệ giữa các gói hình thành trên cơ sở quan hệ giữa các lớp trong các gói. Phân tích thiết kế hướng đối tượng Bài 4 - 48/38
  • 49. Nội dung trình bày      Mô hình khái niệm Xác định các khái niệm Xác định các thuộc tính Xác định các thao tác Xác định các kết hợp Phân tích thiết kế hướng đối tượng Bài 4 - 49/38
  • 50. 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 hơn ở các giai đoạn tiếp theo)  Không quá quan tâm về việc phải khám phá hết thuộc tính  Không quan tâm đến các thuộc tính mô tả cài đặt của đối tượng 50
  • 51. Thuộc tính  Thuộc tính (attribute) của một khái niệm biểu diễn dữ liệu Mô tả MH cần thiết cho các thể hiện của khái niệm   Ví dụ: khái niệm Mặt hàng có các thuộc tính mãMH tenMH:text giá Thuộc tính chỉ đại diện cho các dữ liệu liên quan đến khái niệm sở hữu thuộc tính đó Người bán tenMH:text số quầy Người bán ten:text Quầy số Phân tích thiết kế hướng đối tượng Bài 4 - 51/38
  • 52. Xác định thuộc tính  Ví dụ: hệ thống ATM  Lớp Khách Hàng: Phân tích lần lượt tất cả các use case có liên quan đến lớp Khách Hàng như là: “Đăng nhập”, “Xử lý PIN không hợp lệ”. Các thuộc tính của lớp khách hàng như sau: KháchHàng tênKháchHàng họKháchHàng mãPIN sốThẻ 52
  • 53. Xác định thuộc tính  Ví dụ: hệ thống ATM 53
  • 54. Thêm các thuộc tính lớp  Tìm kiếm thuộc tính?   Tìm trong tài liệu UC Tìm các danh từ trong luồng sự kiện   -> Tên, địa chỉ, ngày sinh là danh từ và là thuộc tính của lớp Nhân viên Tìm trong tài liệu yêu cầu hệ thống   Thí dụ: “Người sử dụng nhập tên, địa chỉ ngày sinh của Nhân viên” Thí dụ tài liệu yêu cầu hệ thống mô tả các thông tin cần thu thập Tìm thuộc tính trong cấu trúc CSDL  Nếu đã xác định cấu trúc CSDL thì các trường trong bảng là thuộc tính của lớp Phân tích thiết kế hướng đối tượng Bài 4 - 54/38
  • 55. Thêm các thuộc tính lớp  Trong trường hợp khó khăn quyết định danh từ tìm ra là thuộc tính hay là lớp   Loại ứng dụng cụ thể quyết định việc này   Thí dụ: Tên công ty là thuộc tính hay lớp? Mặt khác cần quan sát nhóm thông tin có hành vi hay không Khi kết thúc tìm kiếm thuộc tính    Đảm bảo rằng các thuộc tính tìm ra phải có ích cho yêu cầu hệ thống Gán thận trọng thuộc tính cho các lớp Không nên hình thành lớp có quá nhiều hay quá ít thuộc tính (tốt nhất nên có lớp ít hơn 10 thuộc tính) Phân tích thiết kế hướng đối tượng Bài 4 - 55/38
  • 56. Đặc tả thuộc tính lớp   Trong Rose: sử dụng cửa sổ đặc tả thuộc tính để gán đặc tính cho thuộc tính Với mỗi thuộc tính trong biểu đồ cần có:   Tên thuộc tính Kiểu dữ liệu thuộc tính lưu trữ. Phụ thuộc vào ngôn ngữ lập trình   Giá trị khởi đầu     Thí dụ, Add : String Thí dụ, IDNumber: Interger=0 Stereotype Phạm vi (visibility) .... Phân tích thiết kế hướng đối tượng Bài 4 - 56/38
  • 57. Đặc tả thuộc tính lớp  Với mỗi thuộc tính trong biểu đồ cần có   ... Phạm vi (visibility)   Public Attributes Một tính chất quan trọng của lập trình hướng đối tượng là tính gói Bốn lựa chọn phạm vi cho thuộc tính     Public: Mọi lớp đều nhìn thấy thuộc tính (+) Private: Lớp khác không nhìn thấy thuộc tính (-) Protected: Các lớp kế thừa có thể nhìn thấy (#) Package và Implementation: Thuộc tính là public đối với các lớp trong cùng gói Public + - Private Protected # Public Operations Public Private Private Attributes and Operation s Protected Package (Implementation)  ... Phân tích thiết kế hướng đối tượng Bài 4 - 57/38
  • 58. Đặc tả thuộc tính lớp  Với mỗi thuộc tính trong biểu đồ cần có   ... Kiểu lưu trữ thuộc tính     Thuộc tính tĩnh    Là thuộc tính chia sẻ cho mọi hiện thực lớp Ký hiệu trong lớp là tên thuộc tính có gạch chân (phiên bản cũ: $) Thuộc tính suy diễn    By value: Lớp chứa thuộc tính By reference: Thuộc tính đặt ngoài lớp, lớp có con trỏ đến thuộc tính Unspecified: Không xác định Là thuộc tính được tạo bởi 1 hay nhiều thuộc tính khác Ký hiệu: dấu / trước tên thuộc tính aClass ... staticAttribute / derivedAttribute Phân tích thiết kế hướng đối tượng Bài 4 - 58/38
  • 59. Nội dung trình bày      Mô hình khái niệm Xác định các khái niệm Xác định các thuộc tính Xác định các thao tác Xác định các kết hợp Phân tích thiết kế hướng đối tượng Bài 4 - 59/38
  • 60. Thao tác  Khái niệm có thể có các thao tác (operation) Thao tác của khái niệm chính là khả năng thực hiện của một thể hiện của khái niệm  ở giai đoạn này (phân tích, thiết kế kiến trúc) có thể không   nhất thiết phải mô tả các thao tác của khái niệm Giai đoạn xây dựng (thực hiện, cụ thể hóa sản phẩm) sẽ thực hiện công việc này một cách chi tiết và đầy đủ Phân tích thiết kế hướng đối tượng Bài 4 - 60/38
  • 61. Nội dung trình bày      Mô hình khái niệm Xác định các khái niệm Xác định các thuộc tính Xác định các thao tác Xác định các kết hợp Phân tích thiết kế hướng đối tượng Bài 4 - 61/38
  • 62. Xác định mối quan hệ  Quân hệ kết hợp association: Biểu diễn quan hệ giữa thể hiện của các khái niệm  Hướng dẫn xác định mối kết hợp:  Một sự phụ thuộc giữa hai hay nhiều lớp có thể thiết lập thành mối kết hợp.  Mối kết hợp thường tương ứng với một động từ hoặc cụm giới từ như là thành phần của, làm việc cho, chứa trong, …  Một tham chiếu từ một lớp đến một lớp khác là một mối kết hợp. 62
  • 63. Xác định mối quan hệ  Xác định mối kết hợp association:  Các mẫu xác định mối kết hợp:   Mối kết hợp vị trí (location): liên kết tới, thành phần của, làm việc tại, …. Ví dụ: Nhân Viên Buổi Học Làm việc tại Chi Nhánh Phòng Học Học tại 63
  • 64. Xác định mối quan hệ  Xác định mối kết hợp association:  Các mẫu xác định mối kết hợp:   Mối kết hợp sở hữu: của, có, thuộc,… Ví dụ: Cầu Thủ Phòng Là thành phần của Chứa trong 64 Đội Bóng Toà Nhà
  • 65. Xác định mối quan hệ  Xác định mối kết hợp association:  Các mẫu xác định mối kết hợp:  Mối kết hợp truyền thông, liên lạc (communication): đặt tới, trao đổi với, gởi cho, tiếp nhận từ,… Đơn Hàng Bản Yêu Cầu Đặt tới Nhà CCấp Gởi tới Phòng Ban 65
  • 66. Xác định mối quan hệ  Xác định mối kết hợp association:  Mối kết hợp phản thân: là mối quan hệ được thiết lập giữa một đối tượng của một lớp với một đối tượng khác cũng thuộc lớp đó. Nhân Viên Thành Phần Chứa trong Quản lý 66
  • 67. Xác định mối quan hệ  Xác định mối kết hợp association:  Ví dụ: hệ thống ATM NgânHàng Mối kết hợp sở hữu Thuộc KháchHàng MáyATM 1 1..n Của 0..n Có TàiKhoản 1 67 GiaoDịch
  • 68. Xác định mối quan hệ  Xác định mối kết hợp association:  Loại bỏ các mối kết hợp không cần thiết:   Mối kết hợp cài đặt: là mối kết hợp mô tả sự liên quan giữa các lớp trong giai đoạn thiết kế cài đặt hệ thống bên trong môi trường phát triển hoặc ngôn ngữ lập trình cụ thể và không phải là môi liên kết giữa các đối tượng mô tả nghiệp vụ Mối kết hợp đa phân: là mối kết hợp giữa ba lớp trở lên, mối kết hợp này phức tạp trong cách thể hiện  Nếu có thể, phát biểu lại nó dùng mối kết hợp nhị phân 68
  • 69. Xác định mối quan hệ  Xác định mối kết hợp association:  Loại bỏ các mối kết hợp không cần thiết – Ví dụ: Lớp học Môn học Lớp học Môn học Buổi học Giáo viên Lớp học Giáo viên 69 Lớp học
  • 70. Xác định mối quan hệ  Xác định mối kết hợp association:  Loại bỏ các mối kết hợp không cần thiết:  Mối kết hợp trực tiếp dư thừa: là các mối kết hợp được định nghĩa trong ngữ nghĩa của những mối kết hợp khác (còn gọi là mối kết hợp suy diễn hoặc bắc cầu) 0..* Phiếu đặt hàng 1 Liên quan Đặt tới 1 0..1 Từ Nhà cung cấp Phiếu giao hàng 1 0..* 70
  • 71. Xác định mối quan hệ  Xác định mối kết hợp association:  Xác định bản số cho mối kết hợp: (min, max)     1; 0..1; 1..*; 0..*; a..* : a là hằng Gởi tới Bản Yêu Cầu 1 0..* Bản số 71 Phòng Ban
  • 72. Xác định mối quan hệ  Xác định mối kết hợp association:  Xác định bản số cho mối kết hợp: (min, max)  Ví dụ: Là thành phần của 1..* Đội Bóng Cầu Thủ 1..* Chứa trong Phòng 1 Toà Nhà 2..* Đặt tới Đơn Hàng 1 0..* 72 Nhà CCấp
  • 73. Xác định mối quan hệ  Xác định mối kết hợp association:  Xác định bản số cho mối kết hợp: (min, max)  Ví dụ: hệ thống ATM 1 Thuộc NgânHàng 1 Thuộc 1.. * KháchHàng 1 1.. * MáyATM 1 Của 1.. 1..n * TàiKhoản Có 1 1 73 0..n 0..* GiaoDịch
  • 74. Xác định mối kết hợp  Xác định lớp kết hợp (Association class) Hoá Đơn 0..* Sản Phẩm 1..* Chi Tiết Hoá Đơn sốLượng đơnGiá Sinh Viên 0..* Khoá Học 1..* Kết Quả điểmTB xếpLoại 74
  • 75. Xác định mối kết hợp  Xác định lớp kết hợp (Association class) Hoá Đơn 0..* Sản Phẩm 1..* Chi Tiết Hoá Đơn sốLượng đơnGiá Hoá Đơn 1 1..* Chi Tiết Hoá Đơn sốLượng 0..* đơnGiá 75 Sản Phẩm 1
  • 76. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt (generalization): Thể hiện quan hệ kế thừa giữa các lớp và một cấu trúc phân cấp xác định những dòng kế thừa này  Tiếp cận top-down:     Từ một lớp chúng ta tìm kiếm cụm danh từ chứa tên lớp và tính từ (hoặc danh từ). Đánh giá xem cụm danh từ này có thể là một trường hợp đặc biệt cần được quản lý trong hệ thống không Tìm kiếm xem có những đặc trưng riêng của lớp Xây dựng mối kết hợp chuyên biệt từ lớp này đến lớp ban đầu 76
  • 77. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt (generalization):  Tiếp cận top-down – ví dụ: Hoá đơn GiaoDịch GiaoDịchRút Hoá đơn giao hàng GiaoDịchGởi Ghi chú: chỉ cần đưa vào các lớp chuyên biệt mà chúng ta xác định được các đặc trưng riêng (thuộc tính, method, liên kết) của nó trong hệ thống. 77
  • 78. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt (generalization):  Tiếp cận top-down – ví dụ: phức tạp Nhân viên Nhân Viên VP Trưởng Phòng Công Nhân Thư Ký NV Bán Hàng 78
  • 79. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt (generalization):  Tiếp cận bottom-up:  Tìm kiếm trong các lớp để xác định xem có các thuộc tính và phương thức giống nhau. Sau đó chúng ta có thể gom nhóm và đưa các thuộc tính và phương thức chung này lên một lớp tổng quát (trừu tượng)  Tạo mối kết hợp tổng quát hoá từ các lớp này đến lớp tổng quát mới xác định 79
  • 80. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt (generalization):  Tiếp cận bottom-up – ví dụ: Chứng từ Đơn đặt hàng Hoá đơn Hàng hoá 80
  • 81. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt  Tiếp cận bottom-up – ví dụ: Đối Tác Nhà CCấp Khách Hàng 81
  • 82. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt  Xác định sự tương quan: (complete, disjoint) Lớp A (incomplete, disjoint) Lớp A1 Lớp A2 (complete, overlapping) (incomplete, overlapping) 82
  • 83. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt  Xác định sự tương quan: - ví dụ Đối Tác Khách Hàng (incomlete, disjoint) (incomplete) Nhà CCấp Khách Hàng Khách Quen Nhân Viên VP (incomplete, overlapping) Trưởng Phòng NV Bán Hàng Thư Ký 83
  • 84. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp tổng quát – chuyên biệt  Vấn đề đa thừa kế:   Phức tạp trong vấn đề kế thừa  Không nên sử dụng (phiên bản gốc UML không đưa vào) Nhà Nghiên Cứu Giáo Viên Gviên – Nhà NgCứu 84
  • 85. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp thành phần (a-part-of, aggregration)  Đặc trưng cơ bản   Tính bắc cầu: Nếu lớp A là một thành phần của lớp B và lớp B là thành phần của lớp C  lớp A là thành phần của lớp C Tính đối xứng: nếu lớp A là thành phần của lớp B thì lớp B không phải là thành phần của lớp A Lớp B Lớp A Lớp C 85
  • 86. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp thành phần (a-part-of, aggregration)  Toà Nhà Tập hợp: một đối tượng vật lý được hình thành từ các đối tượng vật lý thành phần khác Xe Ô Tô Đơn Hàng 1 1..* 1 1 1..* Phòng Dòng HĐ 1 Thùng Xe 86 1 1 4..8 1 Bánh Xe Động Cơ
  • 87. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp thành phần (a-part-of, aggregration)  Vật chứa: một đối tựơng vật lý chứa đựng các thành phần nhưng không được cấu tạo bởi các thành phần Phòng Học Container 0..1 0..1 1 1..* Hàng Hoá 0..* Bàn 87 0..1 0..* Ghế 0..1 Projector
  • 88. Xác định mối quan hệ  Nâng cấp mối kết hợp:  Xác định mối kết hợp thành phần (a-part-of, aggregration)  Tập hợp – thành viên: một đối tượng khái niệm chứa các thành phần có thể vật lý hoặc khái niệm Lớp khái niệm Đội Bóng Phòng Ban 1 1 0..* Lớp vật lý 0..* Cầu Thủ Nhân Viên 88
  • 89. Xác định mối quan hệ  Nâng cấp mối kết hợp:   Xác định mối kết hợp thành phần Ví dụ: hệ thống ATM 1 Thuộc NgânHàng 1 Thuộc 1..* KháchHàng 1 MáyATM 1 Của 1..n 1..* 1..* TàiKhoản Có 1 1 89 0..n 0..* GiaoDịch
  • 90. Ví dụ hệ đăng ký môn học ThayGiao Mon hoc hoc ham/vi ten mo ta so gio 0..4 Nguoi dung 1 ten ma so Sinhvien 1..n Lop giang chuyen nganh 0..8 10..30 Phân tích thiết kế hướng đối tượng Bài 4 - 90/38
  • 91. Tóm tắt  Bài này đã xem xét các vấn đề sau       Tìm kiếm lớp Tìm kiếm thuộc tính, thao tác lớp Tìm kiếm các loại quan hệ giữa các lớp Biểu diễn biểu đồ lớp và gói Biểu diễn đồ họa các thuộc tính của thuộc tính, thao tác trong lớp Biểu diễn các thuộc tính cho quan hệ giữa các lớp Phân tích thiết kế hướng đối tượng Bài 4 - 91/85
  • 92. Bài tập   Bài 1: Xây dựng mô hình khái niệm hệ thống đăng ký môn học (đã làm) Bài 2: Xây dựng mô hình khái niệm của hệ thống phần mềm bán hàng tại siêu thị  Phần mềm sử dụng tại siêu thị nhằm ghi nhận hoạt động bán hàng, xử lý các thanh toán với khách hàng. Phần mềm được sử dụng bởi người bán hàng và được quản lý bởi người quản lý siêu thị. Phần mềm nhằm tự động hóa công việc của người bán tại quầy thu tiền Bài 3: Xây dựng mô hình khái niệm của hệ thống phần mêm rút tiền ATM Phân tích thiết kế hướng đối tượng Bài 4- 92/38