Tải bản đầy đủ (.doc) (28 trang)

ĐỀ CƯƠNG ÔN TẬP MÔN PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.78 MB, 28 trang )

ĐỀ CƯƠNG ÔN TẬP MÔN PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Câu 1: Trình bày đặc điểm chính của phương pháp thiết kế hướng đối tượng. So sánh pttk hướng đối
tượng và phân tích thiết kế hướng chức năng? 1
Câu2: Định nghĩa biểu đồ usecase và các thành phần của biểu đồ UseCase, các loại quan hệ và mục đích
của biểu đồ Usecase? 3
Câu 3: các khái niệm lớp,đối tượng, phân loại lớp, pp xác định lớp? 5
Câu 4: Trình bày khái niệm thuộc tính, phương thức phân loại thuộc tính, phương thức 12
Câu 5: Khái niệm sự kiện, thông điệp? Phân loại? 13
Câu 6: Trình bày biểu đồ lớp, trình tự, cộng tác, hành động, trạng thái? Các thành phần của các loại biểu
đồ ? 14
Câu 7: Các bước cần phải thực hiện khi thiết kế CSDL? 28
Câu 1: Trình bày đặc điểm chính của phương pháp thiết kế hướng đối tượng. So
sánh pttk hướng đối tượng và phân tích thiết kế hướng chức năng?
1. Phân tích thiết kế hướng chức năng:
- Phương pháp hướng chức năng là phương pháp chia chương trình chính thành
các chương trình con theo theo từng modul xử lý, mỗi chương trình con thực
hiện 1 công việc xác định.
- Trọng tâm: Phân tích làm rõ các chức năng.
- Tập trung vào hoặc vào dữ liệu hoặc vào hành động.
- Phần mềm được thiết kế theo 2 hướng: hướng dữ liệu và hướng hàng động
o Tiếp cận hướng dữ liệu: dựa vào yêu cầu lưu trữ dữ liệu của phần mềm mà
xây dựng các chức năng của hệ thống.
o Tiếp cận theo hướng hành động: dựa vào các hành động của phần mềm để tạo
ra cơ sở dữ liệu.
- Cách thức thực hiện là thiết kế từ trên xuống( top-down), phương pháp này tiến
hành phân rã bài toán lớn thành các bài toán con, phân chia đến các hàm và thủ
tục. Dữ liệu sẽ được lưu trữ qua các biến và được xlý bằng hàm.TLTK tập trung
vào việc làm rõ nhiệm vụ của hàm.
- Phương pháp PTTK phụ thuộc vào công cụ cài đặt.
• Ưu điểm: Tư duy phân tích thiết kế rõ ràng, chương trình sang sủa.
• Nhược điểm:


- Không hỗ trợ việc sử dụng lại và chương trình phụ thuộc vào cấu trúc dl và bài
toán cụ thể không thể sử dụng lại với các dữ liệu khác ở chương trình khác.
- Không phù hợp cho phát triển các phần mềm lớn vì với các chương trình lớn nếu
phân rã các chương trình con ra thành các modul sẽ rễ gây ra các lỗi trong phân
tích TKHT và khó kiểm thử, bảo trì.
2. Phân tích thiết kế hướng đối tượng:
- Lấy đối tượng làm trung tâm, tập trung vào cả hành động và dữ liệu.
- Một hệ thống được chia thành các thành phần nhỏ, gọi là các đối tượng, chúng
tương đối độc lập với nhau. Sau đó ta có thể xây dựng ứng dụng bằng cách chắp các
đối tượng đó lại với nhau thong qua các mối quan hệ tương tác giữa chúng.
- Chức năng của hệ thống được biểu diễn thông qua cộng tác của đối tượng, việc thay
đổi chức năng, tiến hóa chức năng không làm thay đổi đến cấu trúc tĩnh của phần
mềm.
1
- Hệ thống = tập hợp các đối tượng + quan hệ giữa các đối tượng
- Các đối tượng trao đổi với nhau bằng thông điệp (message). Không sử dụng biến
toàn cục.
- Có tính đóng gói:
Dữ liệu +xử lý dữ liệu= đối tượng
Thuộc tính + phương thức= lớp
Ưu: Hạn chế sự ảnh hưởng khi có sự thay đổi cập nhật
Ngăn cản sự truy cập thông tin từ bên ngoài tới thông tin bên trong đối tượng.
Che dấu thông tin
- Tính thừa kế: Là tính chất cho phép sử dụng lại các thành phần đã có trong xdựng
hệ thống mới.
Một lớp được xây dựng từ 1 hoặc nhiều lớp khác bằng việc chia sẻ các thuộc tính và
phương thức.
Lớp con thừa kế các thuộc tính và phương thức từ lơp cha
Tổng quát hóa, chuyên biệt hóa: Tổng quát hóa: Đặt các tính chất chung của của các
lớp khác nhau vào một lớp cha; Chuyên biệt hóa: Tạo ra một lớp con có tính chất

riêng từ lớp cha.
+ Đơn thừa kế: Một lớp con chỉ thừa kế từ 1 lớp cha
+ Đa thừa kế: Một lớp con thừa kế từ nhiều lớp cha khác nhau
- Tính đa hình: Là tính chất cho phép một tên mà chứa bên trong đó nhiều nội dung.
Thông thường tính đa hình gắn với phương thức. Lợi ích của tính đa hình: Dùng ít
tên tốt nhưng vẫn chứa nội dung thông tin.
3. So sánh
- Lập trình cấu trúc
Thuật toán+ CTDL= Chương trình
- Lập trình hướng đối tượng
∑Đối tượng = chương trình
Đối tượng = Thuật toán+ CTDL
PTTK hướng chức năng PTTK hướng đối tượng
Ưu điểm - Phân rã được chức năng của hệ thống
- Tư duy phân tích thiết kế rõ ràng,
chương trình sáng sửa dễ hiểu
- Đối với hệ thống nhỏ thì chi phí ít
tốn kém
- Có nhiều ngôn ngữ hỗ trợ cài đặt
- Phân tích thiết kế gần gũi với
thế giới thực
- Tái sử dụng dễ dàng
- Đóng gói che dấu thông tin
làm cho hệ thống tin cậy hơn
-Thừa kế làm giảm chi phí, hệ
thống có tính mở cao
- Phù hợp với hệ thống lớn
Nhược
điểm
- Việc dựa vào cấu trúc của quá trình

chức năng dẫn đến khi chức năng hệ
thống thay đổi, cấu trúc ấy có thể bị
thay đổi rất nhiều, thậm chí phải thay
đổi toàn bộ
- Tính mở của hệ thống thấp
- Khó tái sử dụng
- Chi phí sửa lỗi lớn
- Thiếu sự linh động khi thay
đổi thông tin
- Chi phí tốn kém
2
Câu2: Định nghĩa biểu đồ usecase và các thành phần của biểu đồ UseCase, các loại
quan hệ và mục đích của biểu đồ Usecase?
Trả lời:
Định nghĩa:
Biểu đồ use case biểu diễn sơ đồ chức năng của hệ thống. Từ tập yêu cầu của hệ thống,
biểu đồ use case sẽ phải chỉ ra hệ thống cần thực hiện điều gì để thoả mãn các yêu cầu của
người dùng hệ thống đó. Có thể nói, biểu đồ use case chỉ ra sự tương tác giữa các tác nhân
và hệ thống thông qua các use case. . Hay nói cách khác, một biểu đồ usecase là tập hợp
các tác nhân, các usecase và mối quan hệ giữa chúng. Mỗi use case mô tả một chức năng
mà hệ thống cần phải có xét từ quan điểm người sử dụng. Các use case trong biểu đồ use
case có thể được phân rã theo nhiều mức khác nhau. Tác nhân là con người hay hệ thống
thực khác cung cấp thông tin hay tác động tới hệ thống.
∗ Các thành phần biểu đồ UseCase:
- Hệ thống: Biểu diễn danh giới giữa bên trong và bên ngoài của một chủ thể trong phần
mềm mà ta đang xây dựng. Hệ thống ở đây có thể là một chiếc máy, một hệ thống thực,
một hệ thống pmềm.
- Actor: Là người dung của hệ thống. Một Actor có thể là một người dung thực hoặc các
hệ thống máy tính. Tác nhân thực hiện các usecase, một tác nhân có thể thực hiện nhiều
các usecse và ngược lại một usecase cũng có thể được thực hiện bởi nhiều tác nhân.

- Usecase: Đây là thành phần cơ bản của biểu đồ, nó mô tả một chuỗi hành động mà hệ
thống sẽ thực hiện để đạt được kết quả có ý nghĩa đối với một tác nhân nào đó. Các
usecase được biểu diễn bởi các hình elip. Tên các usecase thể hiện một chức năng xđịnh
của hệ thống.
- Mối quan hệ giữa các usecase
 Quan hệ bao hàm (include): chỉ ra rằng usecase này có thể sử dụng lại chức
năng của usecase kia
Giải thích: Bán hàng bao gồm một số thao tác, trong đó có thao tác In hóa đơn.
Điều này có nghĩa là nếu Bán hàng thì phải In hóa đơn nhưng ngược lại thì chưa chắc.
 Quan hệ mở rộng (extend): usecase này mở rộng từ usecase kia bằng cách thêm
vào các hành vi hoặc hành động mới (them vào một chức năng cụ thể).
Giải thích: use-case bán hàng được mở rộng sang use-case ký hợp đồng bảo hành.
Điều này có nghĩa là: trong điều kiện bình thường thì thao tác bán hàng không dẫn tới việc
ký hợp đồng bảo hành. Chỉ trong một số điều kiện nào đó thì mới có sự mở rộng
 Quan hệ kế thừa: usecase này được kế thừa các chức năng từ usecase kia
3
Bán hàng
In hóa đơn
<<include>>
Bán hàng
Ký hợp đồng bảo
hành
<<extend>>
Giải thích: Thao tác giao hàng được thực hiện bằng một trong hai cách: giao ở cửa
hàng hoặc mang đến tận nhà. Hai cách giao hàng này có thể có một thao tác chung là
"đóng gói hàng" nằm ở nút giao hàng. Như vậy trong kết hợp generalization thì các thao
tác chung nằm ở nút gốc (nếu có), còn các trường hợp riêng nằm ở các nút con.
d. Mục đích của biểu đồ usecase
- Dùng để mô hình hóa các chuỗi hành động của hệ thống
- Cung cấp một cách nhìn tổng thể về những gì hệ thống sẽ làm và ai sẽ dùng nó

- Đưa ra cơ sở để xác định giao tiếp người máy của hệ thống
- Dùng để mô hình hóa kịch bản cho 1 trường hợp sử dụng
- Để người dùng có thể hiểu được và có thể giao tiếp với hệ thống ở mức tổng thể
- Làm cơ sở cho việc phác thảo ra các đặc tả kiểm tra
Ví dụ:
4
Mục đích của biểu đồ use-case:
Dùng để mô hình hóa các chuỗi hành động của hệ thống.
Cung cấp một cách nhìn tổng thể về những gì mà hệ thống sẽ làm và ai sẽ dùng nó.
Đa ra cơ sở để xác định giao tiếp ngời-máy của hệ thống.
Dùng để mô hình hóa các kịch bản (scenario) cho một trờng hợp sử dụng.
Để ngời dùng cuối có thể hiểu đợc và có thể giao tiếp với hệ thống ở mức tổng thể.
Làm cơ sở cho việc phác thảo ra các đặc tả kiểm tra.
Cõu 3: cỏc khỏi nim lp,i tng, phõn loi lp, pp xỏc nh lp?
Tr li:
- KN Lp: Lp (Class): Mt nhúm i tng cú chung mt s thuc tớnh v phng
thc to thnh mt lp. Lp c t tờn. Nh vy lp l mt khuụn mu to ra i
tng. Mi i tng l mt th hin ca mt lp v mt i tng khụng th l th hin
ca nhiu hn mt lp. Hay núi cỏch khỏc, lp l kiu ca i tng (cỏc i tng cú
chung cu trỳc).
- Kớ hiu: Lp c th hin bi mt hỡnh ch nht, cú cỏc phn ngn cỏch gia tờn, thuc
tớnh, phng thc ca lp.
- Vớ d: Lp Ngi c: Lp ny cha cỏc thụng tin cn thit v ngi c, phc v cho
vic mn sỏch. Ngi c l ngi ó ng kớ vi th vin v mn sỏch ca th vin.
Phõn loi lp:
-Lp c s d liu: thc hin lu tr CSDL
Lp thc th (Entity Class): L lp i din cho cỏc thc th cha thụng tin
v cỏc i tng xỏc nh no ú.
5
- Lớp thực thể dùng để mô hình hóa các thông tin lưu trữ lâu dài trong hệ thống.

Nó thường độc lập với các đối tượng khác ở xung quanh, nó thường có khả năng
sử dụng lại.
- Ví dụ như lớp Sinh viên, lớp này có thể có trong hệ thống quản lý điểm, hệ
thống Đăng kí học, hệ thống quản lý thư viện của một trường đại học
 Lớp biên (Boundary Class) hay lớp giao diện: Là lớp nằm ở ranh giới giữa
hệ thống với môi trường bên ngoài, chúng thực hiện vai trò nhận yêu cầu trực
tiếp từ các tác nhân vầ chuyển các yêu cầu đó cho các lớp bên trong hệ thống.
Chúng cung cấp giao diện cho một người dùng hay một hệ thống khác để tương
tác với hệ thống. Mỗi một tương tác giữa cặp Actor/ Use case đòi hỏi ít nhất là
một lớp biên.
 Lớp điều khiển (Control Class): Thể hiện trình tự ứng xử của hệ thống trong
một hay nhiều Use case. Lớp này điều hành mọi hoạt động của hệ thống.
 Lớp cơ sở dữ liệu: Lưu trữ dữ liệu và cung cấp thông tin
- Ngoài ra còn có cách phân loại như sau: lớp thông thường, lớp trừu tượng
(abstract class), lớp tham số (parameterized class), lớp thể hiện (instantiated class),
lớp tiện ích (utilities class), lớp tiện ích tham số (parameterized utilities class), lớp
thể hiện tiện ích (instantiated utilities class)

Lớp tham số (parameterized class):là lớp dùng để tạo ra một họ các lớp có các
ứng xử có chung ý nghĩa nhưng thực hiện trên các tập dữ liệu khác nhau.

Ví dụ :

Lớp thể hiện (instantiated class): khi ta gán một giá trị cụ thể cho tham số của lớp
tham số, ta được một lớp thể hiện. Như ở trên ta có lớp List dùng để mô tả một danh
sách và các phép toán liên quan tới danh sách như thêm một phần tử vào danh sách,
xóa một phần tử khỏi danh sách, duyệt danh sách. Bây giờ ta cho một giá trị cụ thể
đó là nhân viên, ta có danh sách nhân viên.
 Lớp tiện ích (utilities class): là một tập hợp các phép toán. Ví dụ như ta có một số
hàm toán học : lấy bình phương, lấy căn mà được dùng ở nhiều nơi trong hệ

thống, khi đó các hàm này được nhóm lại và đóng kín trong một lớp gọi là lớp tiện
ích. Lớp tiện ích thường được dùng để mở rộng tính năng của ngôn ngữ lập trình,
lưu giữ các hàm có thể tái sử dụng cho nhiều hệ thống.
 Lớp tiện ích tham số (parameterized utilities class): cũng giống như lớp tiện ích,
nó bao gồm một tập hợp các hàm hay dùng nhưng để chỉ một lớp tác động tổng quát
chứ không chỉ rõ kiểu dữ liệu mà nó sẽ thao tác.
 Lớp thể hiện tiện ích (instantiated utilities class): khi cho một giá trị cụ thể cho
lớp tiện ích tham số ta có một lớp thể hiện tiện ích. Ví dụ
 Lớp trừu tượng (abstract class): là lớp được thiết kế ở mức độ trừu tượng cao
nhất, nó chứa những thuộc tính, những hành vi chung cho nhiều lớp con khác. Lớp
trừu tượng được tạo ra chỉ để cho các lớp khác kế thừa nó, những phương thức khai
báo trong lớp trừu tượng không được cài đặt mà chúng chỉ được cài đặt ở các lớp
con. Cho nên không có một đối tượng nào được tạo ra từ lớp trừu tượng.
6
∗ Phương pháp xác định lớp:
* Có nhiều phương pháp xác định lớp khác nhau. Ba phương pháp xác định lớpsau đây
được xem là phổ biến và nhiều nhóm phát triển đã áp dụng:
- Phương pháp trích danh từ: đầu tiên người phát triển hệ thống cần định nghĩa sản phẩm
phần mềm bằng một câu, sau đó kết hợp các ràng buộc để phát triển thành một đoạn. Dựa
trên đoạn văn mô tả này, người phát triển sẽ lấy ra các danh từ, chia thành các nhóm và đề
cử racác lớp cũng như thuộc tính và phương thức của các lớp đó
- Phương pháp dùng thẻ ghi CRC (class responsibility collaboration): dựatrên một số lớp
đã phương pháp này sử dụng một thẻ ghi cho mỗi lớp trongđó biểu diễn các thông tin liên
quan đến trách nhiệm (responsibility) củalớp đó và các lớp phối hợp với nó
(collaboration). Từ thẻ ghi này, người phát triển sẽ tìm ra các lớp khác cần thiết và quan
trọng hơn là xác định đầyđủ các thuộc tính, phương thức của từng lớp và mối quan hệ giữa
các lớp.
Phương pháp xác định lớp từ use case và scenario: người phát triểnnghiên cứu cẩn thận
các use case và scenario (cả chuẩn và ngoại lệ) để tìmra các thành phần đóng vai trò nào
đó trong các use case. Các thành phầnnày sẽ được tập hợp lại và đề cử ra các lớp. Các

danh từ xuất hiện trongscenario biểu diễn thông tin cho một thành phần như vậy có thể trở
thànhcác thuộc tính còn các động từ xuất hiện trong mối quan hệ giữa các thànhphần đó có
thể trở thành các phương thức tương ứng trong lớp đó.Phương pháp xác định lớp từ use
case và scenario sẽ được trình bày cụ thểtrong các phần tiếp theo của tài liệu.
* KN Đối t ư ợng: Đối tượng (object): mô tả các sự vật - hiện tượng xảy ra trong hệ
thống. Một đối tượng được hiểu là một thực thể có thực hoặc là một thực thể khái niệm.
Mỗi đối tượng được mô tả bởi các trạng thái và hành vi cho biết đối tượng đó sẽ hành
động ntn khi nhận được thông điệp từ các đối tượng khác.
- Mỗi đối tượng là thông tin và liên quan đến các hoạt động.
- Mỗi đối tượng trong 1 hệ thống đều có 3 đặc tính: trạng thái, ứng xử, và định danh.
 Trạng thái: Tập dữ liệu, thông tin để mô tả đối tượng. Trạng thái là một trong
những khả năng mà đối tượng có thể tồn tại. Trạng thái của đối tượng thay đổi
theo thời gian và được định nghĩa bởi một tập các thuộc tính, giá trị của các
thuộc tính đó cùng với các mối quan hệ của đối tượng với các đối tượng khác. Ví
dụ như đối tượng Danh sách Đăng kí môn học trong hệ thống đăng kí lớp học
của một trường đại học có thể có hai trạng thái “mở” và “đóng”. Nếu số lượng
sinh viên đăng kí còn nhỏ hơn số tối đa cho phép thì trạng thái của đối tượng là
“mở”, khi đạt đến số lượng sinh viên tối đa cho một lớp học thì đối tượng
chuyển sang trạng thái “đóng”.
7
 Ứng xử: dùng để định nghĩa cách ứng xử của đối tượng đối với những yêu cầu từ
các đối tượng khác. ứng xử của một đối tượng thể hiện thông qua một tập các
phép toán(operation) của đối tượng.
 Định danh: mỗi đối tượng là duy nhất, giữa các đối tượng phải có sự phân cách
rõ ràng, các đối tượng khác nhau có định danh khác nhau, các định danh này
không phụ thuộc vào trạng thái hay ứng xử của đối tượng
- Kí hiệu: Trong UML đối tượng được thể hiện bởi một hình chữ nhật, tên của đối
tượng được gạch chân.
- Phân loại:
 Đối tượng giao diện(Interface): có nhiệm vụ trao đổi giữa hệ thống bên trong

với hệ thống bên ngoài
 Đối tượng thực thể (Entity): Chịu trách nhiệm lưu trữ và xử lý thông tin (bên
trong hệ thống)
 Đối tượng cơ sở dữ liệu (Database): lưu trữ và cung cấp thông tin
 Đối tượng tác nhân (actor): là đối tượng nằm ngoài hệ thống nhưng có liên
quan đến hệ thống
* Trình bày quan hệ giữa các lớp và đối tượng . Trong thiết kế và lập trình quan hệ
đó đ ư ợc cài đặt ntn?
*Giữa các lớp có các dạng quan hệ cơ bản như sau:
- Quan hệ kết hợp (Association): Một kết hợp (association) là một sự nối kết giữa các lớp,
hay sự nối kết giữa các đối tượng của các lớp này. Trong UML, một quan hệ đượcấnc định
nhằm mô tả một tập hợp các lien kết (links), tức là một sự liên quan về ngữ nghĩa
(semantic connection) giữa một nhóm các đối tượng được biểu diễn bởi các lớp tương ứng
- Được biểu diễn: Là một đoạn thẳng hai chiều nối hai đối tươngj và có thể kèm theo ngữ
nghĩa của quan hệ tại hai đầu của đoạn thẳng.
Xem ví dụ Hình 2.5. Lớp khách hàng có quan hệ kết hợp với lớp sản phẩm. Ngữ nghĩa
của quan hệ này thể hiện ở chỗ: khách hàng mua sản phẩm, còn sản phẩm được bán cho
khách hàng.
Ví dụ :
- Khái quát hóa (Generalization): Khái quát hóa là mối quan hệ giữa một lớp có các đặc
trưng mang tính khái quát cao hơn và một lớp có tính chất đặc biệt hơn. Trong sơ đồ lớp,
mối quan hệ khái quát hóa chính là sự kế thừa của một lớp từ lớp khác. Quan hệ khái quát
hoá được biểu diễn bằng một mũi tên có tam giác rỗng gắn ở đầu.
- Quan hệ cộng hợp (Aggregation): là dạng quan hệ mô tả một lớp A là một phần của lớp
B và lớp A có thể tồn tại độc lập. Quan hệ cộng hợp được biểu diễn bằng một mũi tên gắn
8
hình thoi rỗng ở đầu hướng về lớp bao hàm. Xem ví dụ Hình 2.8. Lớp Hoá đơn là một
phần của lớp Khách hàng nhưng đối tượng Hoá đơn vẫn có thể tồn tại độc lập với đối
tượng khách hàng.
- Quan hệ gộp (Composition): Một quan hệ gộp biểu diễn một quan hệ kiểu tổng thể-

bộ phận. Lớp A có quan hệ gộp với lớp B nếu lớp A là một phần của lớp B và sự
tồn tại của đối tượng lớp B điều khiển sự tồn tại của đối tượng lớp A. Quan hệ này
được biểu diễn bởi một mũi tên gắn hình thoi đặc ở đầu.
9
10
* QH giữa các đối tượng:
- Quan hệ sử dụng: (association): là quan hệ đối tượng X sử dụng phương thức, thông
tin của đối tượng Y. Một đối tượng sử dụng trực tiếp phương thức, thông tin của đối
tượng khác Nó là quan hệ giữa các đối tượng, số lượng đối tượng tham gia là: 1-1;
1-nhiều; nhiều-nhiều.
- Quan hệ kế thừa: (generalization): là quan hệ đối tương X là một loại của đối tượng
Y. Mục đích là để xác định các thuộc tính chung. Các danh từ kết hợp thường xác
định các lớp riêng. Quan hệ kế thừa khác vs quan hệ sử dụng: không có số lượng, có
định hướng và rõ ràng, là quan hệ giữa lớp với lớp. Lớp con kế thừa các thuộc tính
và phương thức của lớp cha. Trong cây kế thừa, các lớp tương tự nhau
- Quan hệ thành phần(aggregation): là quan hệ đối tượng X là một thành phần của đối
tượng Y, mô tả quan hệ bao hàm. Nó cũng là quan hệ giữa các đối tượng, các thành
phần toàn thể và bộ phận tồn tại song song với nhau.
- Quan hệ phụ thuộc (dependency): là quan hệ đối tượng X phụ thuộc phương thức,
thông tin đối tượng Y.
11
Câu 4: Trình bày khái niệm thuộc tính, phương thức phân loại thuộc tính, phương
thức
- KN Thuộc tính: Mỗi thuộc tính lưu trữ thông tin về một đặc điểm nào đó của đối
tượng và có giá trị. Giá trị thuộc tính có thể được truy nhập theo các mức khác nhau
(public, protected, private). Thông thường các thuộc tính được đặt private.
- Thuộc tính là một danh từ.
Ví dụ: Đối tượng sinh viên có các thuộc tính như: MaSV, Hoten, Ngaysinh, Diachi,
- Phân loại:
 Thuộc tính khóa: Dùng để phân biệt hay nhận diện đối tượng

 Thuộc tính mô tả: Chứa thông tin của đối tượng theo yêu cầu đặt ra của hệ
thống. Nếu là đối tượng thì có ít nhất một thuộc tính mô tả.
 Thuộc tính suy diễn: là thuộc tính mà giá trị của nó có thể được suy diễn từ
các thuộc tính hay đối tượng khác hoặc bằng tính toán. Thuộc tính suy diễn
có thể là thuộc tính khóa hoặc thuộc tính mô tả. Thuộc tính suy diễn có thể
không cần cập nhật hoặc ko cần lưu trữ.
 Thuộc tính liên kết: Được sử dụng để kết nối( truy nhập thông tin) tới các đối
tượng khác nhau
 Thuộc tính đặc biệt: Là thuộc tính có cấu trúc phức tạp, giá trị mờ.
 Phân loại thuộc tính:
+: thuộc tính kiểu public
12
#: thuộc tính kiểu protected
-: thuộc tính kiểu private.
 ~: thuộc tính được phép truy nhập tới từ các lớp trong cùng package
- KN Phương thức: Mỗi phương thức mô tả 1 hành động mà đối tượng có thể thực
hiện trên thực thể. trả lời cho câu hỏi đôí tượng có thể làm gì?. Tất cả các đối tượng
được tạo ra từ 1 lớp sẽ có chung thuộc tính và phương thức. Phương thức được sử
dụng để xử lý thay đổi các thuộc tính cũng như thực hiện các công việc khác
- Phương thức thường được gọi là các hàm (function) nhưng chúng nằm trong 1 lớp
và chỉ có thể được áp dụng cho các đối tượng của lớp này
- Một phương thức được miêu tả qua tên, giá trị trả về và danh sách của 0 cho tới
nhiều tham số. Lúc thi hành phương thức được gọi kèm theo đối tượng của lớp
- Phương thức là các dtừ.
 Phân loại phương thức:
+ Phương thức vào ra: Dùng để nhập thông tin từ bên ngoài vào trong đối tượng,
đưa thông tin từ đối tượng ra ngoài.
+ Phương thức khởi tạo hay hủy bỏ: là những phương thức liên quan đến việc khởi
tạo, hủy bỏ của đối tượng, liên quan đến vòng đời của đối tượng
+ Phương thức đơn giản/phức tạp.

+ Phương thức xử lý: Là phương thức tính toán và xlý thông tin bên trong đối tượng.
Thông thường thông tin có phương thức xlý là đặc trưng.
Ví dụ: Đặc trưng cho đối tượng hóa đơn có các phương thức như:
a. Tạo hóa đơn
b. Thanh toán
c. In hóa đơn
Câu 5: Khái niệm sự kiện, thông điệp? Phân loại?
1. Sự kiện:
- Khái niệm
• Một trong những thành phần quan trọng bậc nhất của một đối tượng là sự
kiện. Một sự kiện là một sư kích thích được gửi từ đối tượng này sang đối
tượng khác.
• Một sự kiện là một việc sẽ xảy ra và có thể gay ra một hành động nào đó
• Mỗi sự kiện mô tả một hoạt động diễn ra trong hệ thống. Mỗi sự kiện có thể
lien quan tới một hoặc nhiều đối tượng trong hệ thống.
Ví dụ: khi bạn bấm lên nút Play trên máy CD-Player, nó sẽ bắt đầu chơi nhạc (giả sử
rằng CD-Player có điện, trong máy có đĩa CD và nói chung là dàn CD-Player hoạt
động tốt). Sự kiện ở đây là bạn nhấn lên nút Play, và hành động ở đây là bắt đầu chơi
nhạc. Sự kiện rút tiền liên quan đến đối tượng tiền.
- Phân loại:
• Sự kiện gọi (call event): Yêu cầu thực hiện một hành động (Một phương
thức)
• Sự kiện tín hiệu( signal event): Gửi thông điệp (Chứa các giá trị thuộc tính
tham số liên quan) giữa các trạng thái
• Sự kiện thời gian(time event) : Biểu diễn quá trình chuyển tiếp theo thời gian,
thường kèm theo từ mô tả thời gian cụ thể
13
2. Thông điệp
a. Khái niệm
- Trong lập trình hướng đối tượng, một tương tác giữa hai đối tượng được thực thi

dưới dạng thông điệp được gửi từ đối tượng này sang đối tượng khác. Một thông
điệp ở đây thường được thực hiện qua một lệnh gọi thủ tục đơn giản (một đối tượng
này gọi một thủ tục của một đối tượng khác); khi thủ tục đã được thực hiện xong,
quyền điều khiển được trao trở về cho đối tượng gọi thủ tục cùng với giá trị trả về .
- Thông điệp được thể hiện trong tất cả các loại biểu đồ động (tuần tự, cộng tác, hoạt
động và trạng thái) theo ý nghĩa là sự giao tiếp giữa các đối tượng.
- Một thông điệp được vẽ là một được thẳng với mũi tên nối giữa đối tượng gửi và
đối tượng nhận thông điệp. Loại mũi tên sẽ chỉ rõ loại thông điệp.
b. Phân loại
Câu 6: Trình bày biểu đồ lớp, trình tự, cộng tác, hành động, trạng thái? Các thành
phần của các loại biểu đồ ?
I) Biểu đồ lớp: mô tả mqh về mặt cấu trúc giữa các lớp trong một hệ thống hay một
chức năng. Phục vụ cho việc thiết kế và cài đặt giữa các lớp trong p.mềm.
- Cho biết hình ảnh tĩnh của hệ thống bằng các khái niệm lớp, các thuộc tính, phương
thức của lớp và các mối quan hệ giữa chúng với nhau, giúp người phát triển quan sát – lập
kế hoạch cấu trúc hệ thống trước khi viết mã chương trình.
- Các thành phần:
• Thuộc tính lớp: là nhóm thông tin liên kết với lớp.
14
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
15
• Thao tác: là hành vi kết hợp của lớp, xác định trách nhiệm của lớp
Ký pháp trong UML
Operation Name (arg1: arg1 data type, arg2: arg2 data type ): return type
• Quan hệ giữa các lớp

o Kết hợp (Associations)
o Phụ thuộc (Dependencies)
o Cộng hợp (Aggregations)
16
o Quan hệ thực thi (Realizes Relationships)
o Khái quát hóa (Generalizations)
- Các loại lớp
o Boundary: lớp biên
o Entity: Lớp thực thể là lớp lưu trữ thông tin sẽ ghi vào bộ nhớ ngoài
o Control: 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
*) Mối quan hệ trong biểu đồ lớp
a. Quan hệ kết hợp(Association)
- Định nghĩa: Kết hợp là quan hệ cấu trúc để mô tả tập liên kết (một liên kết là kết
nối giữa các đối tượng). Khi đối tượng của lớp này gửi/nhận thông điệp đến/từ
đối tượng của lớp kia thì ta gọi chúng là có quan hệ kết hợp
- Ví dụ
b. Quan hệ phụ thuộc (Dependency)
- Phụ thuộc là mối quan hệ giữa hai lớp đối tượng: một lớp đối tượng A có tính
độc lập và một lớp đối tượng B phụ thuộc vào A; một sự thay đổi của A sẽ ảnh
hưởng đến lớp phụ thuộc B.
Ký pháp đồ họa của nó được thể hiện:
- Ví dụ:
c. Quan hệ cộng gộp (Aggregation)
- Aggregation là quan hệ giữa tổng thể và bộ phận
- 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
+Tổng thể và bộ phận có thể hủy bỏ vào thời điểm khác nhau
17

+ Tên khác: quan hệ cộng hợp bởi tham chiếu (by reference)
+ Là dạng đặc biệt của kết hợp, nó biểu diễn quan hệ cấu trúc giữa toàn thể và bộ
phận (là dạng quan hệ mụ tả một lớp A là một phần của lớp B và lớp A cú thể tồn tại độc
lập).
- Ví dụ
d. Quan hệ gộp (Composition)
- Một quan hệ gộp biểu diễn một quan hệ kiểu tổng thể-bộ phận. Lớp A có quan hệ gộp
với lớp B nếu lớp A là một phần của lớp B và sự tồn tại của đối tượng lớp B điều khiển sự
tồn tại của đối tượng lớp A.
*Quan hệ gộp:
Composition là dạng đặc biệt (mạnh hơn) của quan hệ cộng gộp
o 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
o Tên khác: quan hệ cộng hợp bởi giá trị (by value)
- Kí hiệu:
e. Quan hệ khái quát hóa ( Kế thừa –Gerneralization)
- Khái quát hóa là quan hệ đặc biệt hoá / khái quát hoá mà trong đó đối tượng
củ thể sẽ kế thừa các thuộc tính và phương pháp của đối tượng tổng quát.
- cho phép một lớp kế thừa các thuộc tính, thao tác public và protected của lớp
khác:
18
f. Quan hệ thực thi
Biểu diễn mối quan hệ ngữ nghĩa giữa các thành phần cửa biểu đồ lớp, trong đó 1
thành phần mô tả 1 công việc dạng hợp đồng và thành phần còn lại thực hiện hợp đồng đó.
Thông thường, lớp thực hiện hợp đồng có thể là các giao diện
- Ví dụ
II) B iểu đồ tương tác? biều đồ trình tự, các thành phần của biểu đồ trình tự . Mục đích
của biểu đồ trình tự.
KN Biểu đồ trình tự mô tả hoạt động tương tác giữa các đối tượng, giữa các đối
tượng và tác nhân theo trình tự thời gian để thực hiện một chức năng theo một kịch bản
nào đó. Nội dung biểu đồ trình tự tập trung vào các thông báo giữa các đối tượng. Biểu đồ

này nhấn mạnh vào thứ tự thực hiện của các tương tác.
- Biểu đồ này cho biết các thông điệp được truyền tuần tự như thế nào theo thời
gian. Thứ tự thực hiện các sự kiện trong biểu đồ tuần tự hoàn toàn tương tự như trong
scenario mô tả các usecase tương ứng
Các thành phần của biểu đồ trình tự bao gồm:
Actor(tác nhân), Message(thông điệp), event(sự kiện), object(đối tượng):
- Các message: Đươc biểu diễn bằng các mũi tên hướng từ đối tượng gửi sang đối
tượng nhận. Tên các message có thể biểu diễn dưới dạng phi hình thức hoặc hình thức.
Biểu đồ tuần tự cho phép có các message từ một đối tượng tới chính bản thân nó
 Các loại messege
19
- Đường lifeline: Là một đường kẻ nối dài phía dưới đối tượng, mô tả quá trình của đối
tượng trong tương tác thuộc biểu đồ
- Chú thích: Biểu đồ tuần tự có thể có chú thích để người đọc dễ dàng hiểu được nội dung
của biểu đồ đó
20
Mục đích: biểu diễn tương tác giữa những người dùng và những đối tượng bên trong hệ
thống. Biểu đồ này cho biết các thông điệp được truyền tuần tự như thế nào theo thời
gian. Thứ tự các sự kiện trong biểu đồ tuần tự hoàn toàn tương tự như trong scenario
mô tả use case tương ứng.
III) Biểu đồ hành động, các thành phần của biểu đồ hành động. Biều đồ hành động
được dùng để làm gì?
* Khái niệm:Biểu đồ hành động: biÓu diÔn luång c¸c ho¹t ®éng c«ng viÖc cña c¸c chøc
n¨ng hay hÖ thèng.
− Các thành phần:
+ Hoạt động: là 1 công việc cần thực hiện. Được biểu diễn bằng hcn có góc tròn
+ Trạng thái: thường là 1 điểm chờ 1 biến cố xảy ra, cũng được biểu diễn bằng hcn có
góc tròn
Có 2 trạng thái:
21

• Trạng thái bắt đầu: được biểu diễn
• Trạng thái kết thúc: biểu diễn
+ Chuyển tiếp: là sự thay đổi từ hoạt động này sang hoạt động khác hoặc từ trạng thái
này sang trạng thái khác hoặc từ hoạt động sang trạng thái và ngược lại (Biểu diễn:
)
* Biều đồ hành động được dùng để làm gì?
Mục đích
+ Là 1 công cụ phân tích, nó dùng để:
• Mô tả dòng nghiệp vụ
• Mô tả các dòng trong UseCase hoặc giữa các usecase
+ Ở mức thiết kế, nó dùng để:
• Mô tả chi tiết bên trong 1 thao tác
• Xác định yêu cầu nghiệp vụ ở mức cao
• Là phương tiện mô tả các UseCase và các hành vi phức tạp bên
trong obj
IV) Biểu đồ cộng tác đ ư ợc dùng để làm gì? Khi nào dùng biểu đồ cộng tác , khi nào
dùng biểu đồ trình tự?
Nhấn mạnh mối quan hệ về mặt không gian giữa các đối tượng trong hệ thống (các
đối tượng được đặt một cách tự do trong không gian của biểu đồ và không có đượng life
line cho mỗi đối tượng. Các message được đánh số thể hiện thứ tự thời gian.
b, Thành phần
- Các đối tượng: được biểu diễn bởi các hình chữ nhật bên trong là tên của đối
tượng. Cách viết chung của đối tượng là: Tên đối tượng:Tên lớp. Trong biểu đồ
cộng tác, các đối tượng tham gia tương tác luôn xuất hiện tại 1 vị trí xác định
- Các liên kết: Giữa 2 đối tượng có tương tác sẽ có 1 liên kết nối từ hai đối tượng
đó. Liên kết này không có chiểu
- Các message: được biểu diễn bằng các mũi tên hướng từ đối tượng gửi sang đối
tượng nhận bên cạnh liên kết giữa 2 đối tượng đó. Trong biểu đồ cộng tác các
message được đánh số thứ tự theo thứ tự xuất hiện trong kịch bản mô tả các
usecase tương ứng.

b, Ví dụ:
22
+ Biu cng tỏc c dựng khi: biểu đồ lớp không diễn tả đợc hết ý nghĩa tơng
tác giữa các đối tợng.
+ Biu trỡnh t c dựng khi: i tng có thể là thể hiện của lớp, nhng có thể là
những đối tợng độc lập, ví dụ nh màn hình giao diện, bảng dữ liệu
V) Biu hot ng? Thnh phn ca biu hot ng?
a. Khỏi nim:
Biu hot ng l mt phng tin mụ t cỏc dũng cụng vic v dc dựng theo
nhiu cỏch khỏc nhau
- Nh 1 cụng vic cụng c phõn tớch, nú c dựng :
Mụ t cỏc dũng trong usecase hoc gia cỏc usecase
- mc thit k, biu hot ng dựng :
Mụ t chi tit bờn trong 1 thao tỏc
Xỏc nh yờu cu nghip v mc cao
L phng tin mụ t cỏc usecase v cỏc hnh vi bờn trong ca i tng.
Túm li: Biu h biu din cỏc hot ng v s ng b, chuyn tip cỏc hot
ng ca mt lp hoc kt hp gia cỏc lp vi nhau trong mt chc nng c th.
b. Thnh phn
- Hot ng: H l mt quy trỡnh, cú th c thc hin bi mt hm hoc mt
nhúm i tng. H c th hin bng HCN trũn cnh, mụ t 1 hot ng gm
tờn hot ng v c t ca nú.
- Thanh ng b hoỏ: cho phộp m ra hoc úng li cỏc nhỏnh chy song song trong
tin trỡnh.
- Chuyn tip: L s thay i t hot ng ny sang hot ng khỏc .
- Quyt nh: Mụ t la chn iu kin
- Cỏc lung: Phõn tỏch cỏc lp i tng khỏc tn ti trong biu hot ng vỡ mi
biu ng cú th biu din s phi hp hot ng trong nhiu lp khỏc nhau v
khi ú mi lp c phõn tỏch bi mt lung riờng bit.
Kớ hiu: Phõn cỏch nhau bi 1 ng k dc t trờn xung di biu

23
c. Mục đích
- Xác định các hoạt động phải thực hiện trong phạm vi của 1 phương thức.
- Xác định công việc cụ thể của 1 đối tượng.
- Chỉ ra nhóm hành động liên quan có thể được thực thi ra sao và chúng ảnh hưởng
đến những đối tượng xung quanh như thế nào.
- Để chỉ ra một trường hợp sử dụng có thể được thực thể hóa như thế nào theo khái
niệm hoạt động và các sự biến đổi trạng thái của đối tượng.
d. Ví dụ
24
VI) Biểu đồ trạng thái?
a. Ý nghĩa
- Biểu đồ trạng được sử dụng để biểu diễn các trạng thái và sự chuyển tiếp các trạng
thái và sự chuyển tiếp giữa các trạng thái của các đối tượng trong 1 lớp xác định. Thường
thì mỗi lớp sẽ có một biểu đồ trạng thái trừ lớp trừu tượng vì lớp này ko có đối tượng.
- BĐ trạng thái được biểu diễn dưới dạng máy trạng thái hữu hạn với các trạng thái và
sự chuyển tiếp giữa các trạng thái đó.
- Có 2 dạng biểu đồ trạng thái
+ Biểu đồ trạng thái cho usecase: Mô tả các trạng thái và chuyển tiếp trạng thái của
một đối tượng thuộc một lớp nào đó trong hoạt động của một usecase cụ thể
25
Khách hàng tìm hiểu các
dịch vụ của Công ty Du lịch
Khách hàng cung cấp các
chi tiết đăng ký
Khách hàng cung cấp chi
tiết cách thức thanh toán
Công ty Du lịch
chấp nhận đăng ký
Bắt đầu

đăng ký
Khách hàng
được đăng ký
Xác nhận yêu cầu
Yêu cầu
không hợp
lệ
Phát sinh ngoại lệ
validation
Thêm yêu cầu vào
collection
Yêu cầu bị
collection từ
chối
Phát sinh ngoại lệ
collection
collection chấp
nhận yêu cầu

×