You are on page 1of 8

HOPE

Câu 1: UML (Unified Modeling Language) là gì? UML có thể được sử


dụng trong những trường hợp nào? UML có những loại biểu đồ nào?
- UML là một ngôn ngữ mô hình hoá trực quan mang tính khái quát, được sử
dụng để mô tả, thiết kế, phát triển phầm mềm.
- UML có thể được sử dụng trong các trường hợp:
 Các hệ thống thông tin: Lưu trữ, truy vấn, biểu diễn thông tin trong
CSDL quan hệ hay CSDL hướng đối tượng.
 Các hệ thống kỹ thuật: Điều khiển thiết bị trong công nghiệp, quân sự.
 Các hệ thống nhúng thời gian thực: nhúng trong các thiết bị khác như
điện thoại di động, xe ô tô
 Các hệ thống phân tán: phân tán trên nhiều máy và cần được đồng bộ
CSDL
 Các hệ thống thương mại
- UML có những loại biểu đồ:
 Biểu đồ ca sử dụng
 Biểu đồ trạng thái
 Biểu đồ tuần tự
 Biểu đồ lớp
 Biểu đồ hoạt động
 Biểu đồ cộng tác

Câu 2: Thiết kế hướng đối tượng là gì? Anh/chị hãy nêu các hoạt động
chính trong thiết kế hướng đối tượng? Mục đích của hoạt động xác định
các cơ chế thiết kế là gì? Nêu một vài cơ chế thiết kế phổ biến mà anh/chị
biết?
Thiết kế hướng đối tượng là phương pháp thiết kế dựa trên hoạt động phân
tích hướng đối tượng.
Mục đích của hoạt động xác định các cơ chế thiết kế là để tạo ra một thiết
kế phần mềm hiệu quả, linh hoạt và dễ bảo trì.
Các hoạt động chính trong thiết kế hướng đối tượng:
- Xác định mối quan hệ giữa các lớp và đối tượng
- thiết kế các mối quan hệ giữa lớp và đối tượng
- Thiết kế các giao diện
- Xác định cơ chế thiết kế
Một vài cơ chế thiết kế phổ biến mà em đã biết:
- Kế thừa: Các lớp con kế thừa thuộc tính và phương thức của lớp cha.
- Đa hình: Các lớp có cùng kiểu có thể có hành vi khác nhau
- Đóng gói: cho phép các đối tượng giữ thuộc tính riêng tư và chỉ có thể
truy cập thông qua các phương thức công khai.
Câu 3: Anh/chị hãy trình bày vai trò của biểu đồ tương tác (interaction
diagram) và biểu đồ hoạt động (activity diagram)?
Vai trò của biểu đồ tương tác:
- mô tả sự tương tác giữa các đối tượng
- Giúp người thiết kế hiểu được cách mà các đối tượng tương tác với nhau
trong phần mềm
Vai trò của biểu đồ hoạt động:
- mô tả hoạt động của một đối tượng hoặc toàn bộ hệ thống phần mềm
- giúp cho người thiết kế hiểu được cách mà hệ thống phần mềm hoạt động
cũng như là các quy trình và công việc cần được thực hiện
Câu 4: Anh/chị hãy trình bày 4 nguyên tắc cơ bản trong hướng đối tượng
(abstraction, encapsulation, modularity, hierarchy)? Mỗi nguyên tắc đưa
ra một ví dụ minh hoạ?
1. Abstraction
Sự trừu tượng hoá là việc xây dựng một mô hình chỉ bao gồm đặc điểm
quan trọng, cần thiết để phân biệt với các đặc điểm của mô hình khác.
Qua đó giúp làm giảm độ phức tạp của hệ thống bằng cách đơn giản hoá
và tập trung vào những thứ cần thiết.
VD: Trong ứng dụng quản lý thư viện, một đối tượng sách có thể được
trừu tượng thành các đặc điểm như tên sách, tác giả, thể loại, số lượng và
trạng thái. Những chi tiết như kích thước, màu sắc, trọng lượng có thể
được bỏ qua.
2. Encapsulation
Tính đóng gói cho phép các đối tượng giữ thuộc tính riêng tư và chỉ có
thể truy cập thông qua các phương thức công khai, cho phép dùng đối
tượng mà không cần biết sự cài đặt bên trong nó, giảm thiểu việc viết lại
mã nguồn chương trình.
VD: Trong ứng dụng quản lý tài khoản ngân hàng, một đối tượng tài
khoản có thể được đóng gói với các phương thức như rút tiền, nạp tiền,
kiểm tra số dư. Thông tin nhạy cảm như số tiền trong tài khoản chỉ được
truy cập thông qua các phương thức công khai nhằm đảm bảo an toàn dữ
liệu.
3. Modularity
Tính mô-đun hoá là các bài toán sẽ được phân chia thành những vấn đề
nhỏ hơn, đơn giản, độc lập và quản lý được.
VD: Trong ứng dụng quản lý bán hàng, ta có thể tách chức năng quản lý
khách hàng và quản lý sản phẩm thành các module độc lập. Mỗi module
có thể được phát triển và bảo trì độc lập  giảm độ phức tạp và tăng tính
linh hoạt của hệ thống
4. Hierarchy
Sự phân cấp là sự sắp xếp thứ tự hoặc phân hạng sự trừu tượng hoá của
các đối tượng theo một cấu trúc cây. Các đối tượng ở cấp cao hơn có thể
kế thừa các tính năng ở cấp độ thấp hơn tạo ra cấc cấu trúc phức tạp
nhưng vẫn dễ bảo trì.
VD: Trong ứng dụng quản lý sách, các đối tượng ở cấp độ cao hơn như
Danh mục sách có thể kế thừa các đối tượng ở cấp độ thấp hơn như sách,
giúp tạo ra một cấu trúc phân cấp rõ ràng và dễ hiểu
Câu 5: Anh/chị hãy trình bày sự giống nhau và khác nhau giữa biểu đồ
tuần tự (sequence diagram) và biểu đồ giao tiếp (communication diagram)?
Dài vl có 1 điểm bọ
Giống nhau:
 Về ngữ nghĩa
 Có thể chuyển đổi giữa 2 loại biểu đồ mà không mất mát thông tin
 Cùng đưa ra sự tương tác giữa các đối tượng thông qua thông điệp
 Mô hình hoá khía cạnh động của hệ thống và kịch bản ca sử dụng
Khác nhau:
 Biểu đồ tuần tự:
 Chỉ ra thứ tự rõ ràng giữa các thông điệp
 Thể hiện luồng công việc tốt hơn
 Mô hình hoá trực quan hơn các luồng thực thi
 Thể hiện tốt hơn các kịch bản thời gian thực và phức tạp
 Biểu đồ giao tiếp:
 Chỉ ra mối quan hệ rõ ràng hơn giữa các đối tượng
 Thể hiện quá trình giao tiếp tốt hơn
 Mô hình hoá trực quan hơn các ảnh hưởng của đối tượng
 Thế thôi, del nhớ đc
Câu 6: Anh/chị hãy phân biệt 2 mối quan hệ extend và include giữa các ca
sử dụng?
- Quan hệ Include: Một ca sử dụng có thể tích hợp hành vi của các ca sử dụng
khác như là một phần trong hành vi tổng thể của nó. UC này sử dụng lại chức
năng của UC kia.
- Quan hệ Extend: Một ca sử dụng có thể được định nghĩa như là một sự mở
rộng tăng dần của 1 ca sử dụng cơ sở. UC này được mở rộng từ UC kia bằng
cách thêm chức năng cụ thể.
Bonus:
- Quan hệ tổng quát hoá (Generalization): Một ca sử dụng được đặc biệt hoá
thành một hoặc nhiều các ca sử dụng con. Sử dụng cơ chế kế thừa.
Câu 7: Mô hình là gì? Lý giải tại sao cần mô hình hoá? Anh/chị hãy trình
bày bốn nguyên tắc cơ bản khi mô hình hoá?
Mô hình là sự trừu tượng hoá một hệ thống từ một quan điểm cụ thể, nó
mô tả hệ thống hoặc thực thể ở mức độ chính xác và quan điểm đã chọn.
Mục đích của mô hình hoá à làm đơn giản hoá và tăng tính hiệu quả trong
quá trình phát triển hệ thống thông tin
Bốn nguyên tắc cơ bản khi mô hình hoá là:
1. Loại mô hình ảnh hưởng lớn đến cách vấn đề xử lý
2. Mỗi mô hình có thể được biểu diễn ở các mức độ chính xác khác nhau.
3. Mô hình tốt nhất là các mô hình phản chiếu thế giới thực.
4. Không mô hình đơn độc nào là vừa đủ
Câu 8: Phân tích hướng đối tượng là gì?
Phân tích hướng đối tượng là giai đoạn phát triển một mô hình chính xác
và súc tích của một vấn đề, có thành phần là các đối tượng và khái niệm đời
thực, dễ hiểu đối với người sử dụng.
Câu 9: Anh/chị hãy nêu các bước chính trong hoạt động phân tích kiến
trúc và hoạt động phân tích ca sử dụng? Các chế tác input và output của
hoạt động phân tích kiến trúc và hoạt động phân tích ca sử dụng là gì?
Các bước chính trong hoạt động phân tích kiến trúc:
1. Xác định yêu cầu của hệ thống
2. Phân tích các yêu cầu và xác định các đối tượng trong hệ thống
3. Xác định mối quan hệ giữa các đối tượng
4. Xác định phương thức và thuộc tính của đối tượng
5. Xác định các lớp và gom nhóm đối tượng
6. Xác định giao diện giữa các lớp
7. Xác định cách thức triển khai hệ thống
Các bước chính trong hoạt động phân tích ca sử dụng:
1. Xác định phạm vi hệ thống
2. Tìm các tác nhân và UseCase
3. Mô tả UseCase
4. Xác định mối quan hệ giữa các UseCase
5. Kiếm tra và phê chuẩn mô hình
Các chế tác Input thông thường bao gồm: tài liệu hệ thống, phiếu khảo sát, các
yêu cầu hệ thống,..
Các chế tác Output bao gồm mô hình kiến trúc, mô hình ca sử dụng,..
Câu 11: Anh/chị hãy mô tả quan hệ generalization giữa các ca sử dụng? Lấy
ví dụ minh hoạ?
Quan hệ Generalization là quan hệ mà lớp con được tạo ra từ lớp cha và kế thừa
thuộc tính và phương thức của lớp cha. Nó cho phép tái sử dụng các thuộc tính
và phương thức của lớp cha và định nghĩa các thuộc tính và phương thức riêng
của lớp con.
Ví dụ như ta có:
- Lớp cha: Vehicle (xe cộ)
- Lớp con: Car (ô tô), Motorbike (xe máy), Truck (xe tải)
Các lớp con trên được tạo ra từ lớp cha và thừa kế các thuộc tính và phương
thức của lớp cha, nhưng cũng có thể có các thuộc tính và phương thức riêng của
chúng. Ví dụ, lớp Car có thêm phương thức liên quan đến việc mở cửa, điều
khiển vô lăng, trong khi lớp Motorbike có thêm phương thức liên quan đến
phanh tay hoặc điều khiển ga, lớp Truck có thêm thuộc tính là trọng lượng trên
1 tấn,…
Câu 12: RUP (Rational Unified Process) là gì? Mô tả các pha (Inception,
Elaboration, Construction, Transition) của quy trình RUP?
RUP là một quy trình nghiệp vụ để sử dụng cho kỹ thuật phần mềm hướng đối
tượng.
Các pha của quy trình phát triển RUP:
1. Pha khởi đầu (Inception): Định nghĩa phạm vi dự án
 Xác định tác nhân và UC  phác thảo ca sử dụng cần thiết
 Phát triển 1 kế hoạch để nghiên cứu đánh giá về kinh phí khả thi,
lịch trình
2. Pha chi tiết (Elaboration): Tập trung nắm bắt các yêu cầu và thiết lập
khung kiến trúc cho hệ thống.
 Output: các mô hình yêu cầu, tài liệu mô tả của hệ thống, kinh phí
và tài nguyên ở mức chi tiết
3. Pha xây dựng (Construction): Thiết kế hệ thống, lập trình, tích hợp, kiểm
thử.
 Xây dựng các thành phần của hệ thống song song
 Output: Các hệ thống khả dụng và tài liệu liên quan
4. Pha chuyển giao (Transition): Bàn giao cho người dùng cuối và hỗ trợ họ
sử dụng
Câu 13: Yêu cầu phi chức năng là gì? Hãy đề xuất 5 yêu cầu phi chức năng
cho hệ thống máy rút tiền tự động ATM?
Yêu cầu phi chức năng là yêu cầu không liên quan đến chức năng cốt lõi của hệ
thống nhưng vẫn đảm bảo hiệu quả và đáp ứng nhu cầu của người dùng.
5 yêu cầu phi chức năng cho hệ thống máy rút tiền tự động ATM:
 Độ tin cậy cao: Hệ thống phải đảm bảo hoạt động ổn định và bền vững
trong thời gian dài, tránh các sự cố ảnh hưởng đến người sử dụng.
 Bảo mật thông tin: Hệ thống phải đảm bảo an toàn và bảo mật thông tin
cho người dùng, tránh việc bị đánh cắp thông tin và sử dụng sai mục đích.
 Dễ sử dụng: Giao diện của hệ thống phải đơn giản, dễ sử dụng và thân
thiện với người dùng
 Tương thích và tích hợp: Có thể sử dụng nhiều loại thẻ ngân hàng khác
nhau.
 Hiệu suất cao: Có thể xử lý lượng lớn các giao dịch trong cùng 1 thời
điểm và đảm bảo xử lý nhanh tróng, không bị treo hoặc chậm.
Câu 14: Kiến trúc phần mềm là gì? Anh/chị hãy trình bày kiến trúc
“khung nhìn 4+1”?
Kiến trúc phần mềm là kiến trúc chứa 1 tập các quyết định thiết yếu về cách
tổ chức hệ thống phần mềm.
Khung nhìn 4+1 có:
 User model View (UC view): thể hiện các vấn đề và các giải pháp liên
quan đến chức năng tổng quát của hệ thống. (Khung nhìn phụ)
 Structural Model View (Static view): thể hiện các vấn đề liên quan
đến cấu trúc của hệ thống.
 Behavioral Model View (Dynamic view): thể hiện các vấn đề liên
quan đến giao tiếp và xử lý đồng bộ của hệ thống.
 Implementation Model View (Component View): thể hiện các vấn đề
liên quan đến việc tổ chức thành phần trong hệ thống.
 Environment Model View (Deployment View): thể hiện các vấn đề
liên quan đến triển khai hệ thống.
Câu 15: Mô tả các loại quan hệ (association, aggregation, composition,
realization, generalization, dependency) trong biểu đồ lớp UML? Lấy ví dụ
minh hoạ cho từng loại quan hệ?
1. Association (Kết hợp)
Một mối quan hệ giữa hai hay nhiều lớp trong đó mỗi lớp có thể truy cập
các thành phần của lớp kia.
VD: Quan hệ giữa lớp và sinh viên trong đó mỗi SV có thể tham gia
nhiều lớp và mỗi lớp học có thể có nhiều sinh viên.
2. Aggregation (Kết tập)
Một dạng đặc biệt của kết tập, mô hình hoá mối quan hệ toàn thể - bộ
phận (whole-part) giữa các đối tượng toàn thể và các bộ phận của nó.
Ngắn gọn là 1 lớp chứa các instance của lớp kia.
Mối quan hệ là một phần của (is a part of)
VD: Nếu không có trường đại học thì hiệu trưởng không thể tồn tại. Nếu
không có hiệu trưởng thì trường học vẫn tồn tại.
3. Composition (Hợp thành):
Một dạng đặc biệt của kết tập với quyền sở hữu mạnh và các vòng đời
trùng khớp giữa 2 lớp.
Whole sở hữu part, tạo và huỷ part
Part không thể tồn tại nếu không có whole và ngược lại.
VD: Nếu không có phòng thì nhà không thể nào tồn tại và nếu không có
nhà thì các phòng cũng không tồn tại.
4. Realization (Hiện thực hoá):
Một quan hệ ngữ nghĩa giữa 2 phân lớp, trong đó 1 phân lớp đặc tả hành
vi của nó và phân lớp kia có trách nhiệm cài đặt hành vi đó.
Quan hệ hiện thực hoá thường là quan hệ giữa giao diện và thành phần
cài đặt.
VD: Lớp Circle được triển khai từ interface Shape có các phương thức
như chu vi hoặc diện tích.
5. Generalization (Tổng quát hoá):
Quan hệ mà lớp con được tạo ra từ lớp cha và kế thừa thuộc tính và
phương thức của lớp cha.
VD: Lớp Dog kế thừa các thuộc tính và phương thức của Animal.
6. Dependency (Phụ thuộc):
Một quan hệ ngữ nghĩa giữa 2 lớp, trong đó sự thay đổi của lớp này (lớp
độc lập) kéo theo sự thay đổi của lớp kia (lớp phụ thuộc) mặc dù giữa
chúng không có mối liên kết rõ ràng.
VD: Mối quan hệ giữa Hoá đơn và Hàng giảm giá.

You might also like