Font size
WorksheetsCâu hỏi về thiết kế phần mềm
Total questions: 133
Worksheet time: 1hrs 9mins
Thiết kế phần mềm nằm ở giai đoạn nào trong quy trình phát triển phần mềm?
Trước phân tích yêu cầu
Sau phân tích yêu cầu, trước lập trình
Sau kiểm thử
Sau bảo trì
Mitch Kapor cho rằng một phần mềm tốt cần có yếu tố nào sau đây?
Vững chắc, hữu dụng, thú vị
Nhanh chóng, rẻ tiền, dễ lập trình
Đẹp mắt, nhiều chức năng, dễ cài đặt
Tất cả đều sai
Thiết kế phần mềm được coi là "trái tim" của kỹ nghệ phần mềm vì:
Nó trực tiếp tạo ra sản phẩm cuối cùng
Nó áp dụng cho mọi mô hình phát triển
Nó thay thế cho yêu cầu
Nó giúp bỏ qua giai đoạn kiểm thử
Bốn mô hình thiết kế chính là:
Thiết kế dữ liệu, thiết kế kiến trúc, thiết kế giao diện, thiết kế thành phần
Thiết kế yêu cầu, thiết kế kiểm thử, thiết kế code, thiết kế UI
Thiết kế thuật toán, thiết kế dữ liệu, thiết kế code, thiết kế bảo trì
Thiết kế use-case, thiết kế CRC, thiết kế UML, thiết kế logic
Tầm quan trọng của thiết kế gắn với từ khóa nào?
Tốc độ
Chất lượng
Giá thành
Hiệu suất
Thiết kế phần mềm là một quá trình:
Tuyến tính
Lặp đi lặp lại (iterative)
Ngẫu hứng
Được bỏ qua nếu dùng Agile
Một thiết kế tốt phải đáp ứng điều kiện nào?
Bao gồm tất cả yêu cầu rõ ràng và ngầm định của khách hàng
Có tài liệu rõ ràng cho lập trình viên và tester
Cung cấp bức tranh tổng thể
Một thiết kế tốt phải đáp ứng điều kiện nào?
Bao gồm tất cả yêu cầu rõ ràng và ngầm định của khách hàng
Có tài liệu rõ ràng cho lập trình viên và tester
Cung cấp bức tranh tổng thể của hệ thống
Tất cả các ý trên
Một trong các tiêu chí kỹ thuật của thiết kế tốt là:
Mô-đun hóa phần mềm thành các thành phần độc lập
Dùng càng nhiều biến toàn cục càng tốt
Thiết kế phức tạp để khó sao chép
Dùng ký hiệu càng bí ẩn càng tốt
Nguyên tắc "thiết kế không được tái phát minh bánh xe" có nghĩa là:
Không bao giờ lập trình từ đầu
Tận dụng giải pháp đã có thay vì làm lại từ đầu
Chỉ dùng thư viện nguồn mở
Không viết code
Bộ tiêu chuẩn FURPS gồm:
Functionality, Usability, Reliability, Performance, Supportability
Function, Utility, Reliability, Productivity, Simplicity
Feature, Usability, Robustness, Portability, Security
Functionality, Understandability, Reliability, Portability, Speed
Trừu tượng (Abstraction) trong thiết kế phần mềm gồm:
Dữ liệu, thủ tục, điều khiển
Lớp, đối tượng, phương thức
Input, Process, Output
Cấu trúc, hành vi, giao diện
Kiến trúc phần mềm được định nghĩa là:
Chi tiết cài đặt của từng hàm
Cấu trúc tổng thể và tính toàn vẹn của hệ thống
Tên biến và hàm
Mã nguồn
Thiết kế mẫu (Design Pattern) giúp ích cho việc:
Rút ngắn thời gian thiết kế
Áp dụng lại giải pháp đã chứng minh hiệu quả
Làm nền tảng cho mẫu tương tự
Tất cả các ý trên
Thiết kế mẫu (Design Pattern) giúp ích cho việc:
Rút ngắn thời gian thiết kế
Áp dụng lại giải pháp đã chứng minh hiệu quả
Làm nền tảng cho mẫu tương tự
Tất cả các ý trên
Trong "Separation of Concerns", một "concern" là gì?
Một lỗi trong hệ thống
Một mối quan tâm cá nhân
Một tính năng hoặc hành vi trong yêu cầu phần mềm
Một đoạn mã
Lợi ích lớn nhất của mô-đun hóa (modularity) là:
Giúp dễ quản lý, dễ hiểu
Tăng số dòng code
Làm hệ thống phức tạp hơn
Khó sao chép hơn
Nếu số mô-đun quá nhiều trong thiết kế thì:
Chi phí tích hợp sẽ cao
Hệ thống đơn giản hơn
Lỗi giảm đi
Tốc độ nhanh hơn
"Information Hiding" khuyến khích:
Dùng dữ liệu toàn cục
Giấu chi tiết bên trong, chỉ lộ giao diện
Mở toàn bộ chi tiết cho mọi mô-đun
Không có giao diện
Lợi ích của Information Hiding là:
Tăng side effect
Giảm side effect, khuyến khích encapsulation
Tăng độ phức tạp
Khó bảo trì hơn
Stepwise Refinement (Tinh chỉnh dần) nghĩa là:
Viết code trực tiếp từ yêu cầu
Bắt đầu từ mức trừu tượng cao rồi chi tiết dần
Làm tất cả chi tiết trước, tổng thể sau
Bỏ qua thiết kế
Cohesion (độ gắn kết) cao nghĩa là:
Mô-đun chỉ làm một việc, ít phụ thuộc vào mô-đun khác
Mô-đun phụ thuộc lẫn nhau
Mô-đun càng nhiều chức năng càng tốt
Không quan trọng
Cohesion cao là khi mô-đun tập trung vào một nhiệm vụ.
Mô-đun càng nhiều chức năng càng tốt
Không quan trọng
Mô-đun độc lập, ít tương tác không cần thiết
Mô-đun liên kết chặt chẽ
Coupling (độ nối kết) thấp nghĩa là:
Mô-đun độc lập, ít tương tác không cần thiết
Mô-đun liên kết chặt chẽ
Mô-đun khó thay đổi
Mô-đun làm nhiều việc
Aspect (khía cạnh) trong thiết kế dùng để:
Mô tả một yêu cầu độc lập
Biểu diễn một yêu cầu cắt ngang nhiều phần của hệ thống
Gộp tất cả yêu cầu thành một
Thay thế mô-đun
Ví dụ Aspect trong SafeHome là:
Truy cập camera giám sát
Xác thực người dùng trước khi dùng hệ thống
Giao diện LED
Thuật toán xử lý dữ liệu
Refactoring là:
Viết lại toàn bộ chương trình
Thay đổi bên ngoài hệ thống
Thay đổi cấu trúc bên trong mà không đổi hành vi ngoài
Tăng số lượng chức năng
Refactoring thường loại bỏ điều gì?
Dư thừa, thuật toán kém, dữ liệu không phù hợp
Yêu cầu khách hàng
Toàn bộ mô hình
Phần mềm
Các loại lớp thiết kế gồm:
Lớp giao diện, lớp nghiệp vụ, lớp xử lý, lớp lưu trữ, lớp hệ thống
Lớp main, lớp phụ, lớp giao diện
Lớp phân tích, lớp yêu cầu, lớp code
Lớp database, lớp API
Lớp thực thể (Entity class) đại diện cho:
Dữ liệu cốt lõi của hệ thống
Giao diện người dùng
Kiểm thử
Thư viện
Lớp ranh giới (Boundary class) dùng để:
Quản lý giao diện giữa người dùng và hệ thống
Lưu trữ dữ liệu
Xử lý nghiệp vụ
Kiểm thử
Lớp ranh giới (Boundary class) dùng để:
Quản lý giao diện giữa người dùng và hệ thống
Lưu trữ dữ liệu
Xử lý nghiệp vụ
Kiểm thử
Lớp điều khiển (Controller class) có nhiệm vụ:
Điều phối luồng xử lý và giao tiếp giữa các lớp
Lưu trữ dữ liệu
Vẽ giao diện
Biên dịch
Đặc trưng của đa hình (Polymorphism) là:
Cho phép một lớp có nhiều hành vi dựa vào ngữ cảnh
Giúp mở rộng dễ dàng mà không viết lại toàn bộ
Làm giảm công sức thiết kế
Tất cả đúng
Trong mô hình thiết kế, các yếu tố chính bao gồm:
Dữ liệu, kiến trúc, giao diện, thành phần, triển khai
Yêu cầu, kiểm thử, bảo trì, lập trình
Tài liệu, con người, chi phí, thời gian
Database, code, API
Yếu tố dữ liệu trong thiết kế tập trung vào:
Mô tả cấu trúc dữ liệu và cơ sở dữ liệu
Giao diện màn hình
Chi phí dự án
Bảo mật hệ thống
Yếu tố kiến trúc hình thành từ:
Miền ứng dụng, mô hình yêu cầu, mẫu kiến trúc
Code, tester, tài liệu
Yêu cầu bảo trì
Hệ điều hành
Yếu tố giao diện bao gồm:
Giao diện người dùng, giao diện ngoài, giao diện trong
Chỉ có giao diện đồ họa
Chỉ có API
Chỉ có CLI
Yếu tố thành phần (Component) mô tả:
Chi tiết dữ liệu cục bộ, thuật toán, và giao diện của mỗi component
Chi phí phần mềm
Thời gian phát triển
Lỗi phát sinh
Yếu tố triển khai (Deployment) cho biết:
Yếu tố triển khai (Deployment) cho biết:
Cách phân bố phần mềm trên môi trường thực tế
Lỗi khi cài đặt
Mã nguồn
Hệ điều hành
Trong ví dụ SafeHome, hệ thống triển khai trên mấy môi trường chính?
1
2
3
4
Ưu điểm của thiết kế mô-đun độc lập chức năng là:
Dễ bảo trì và thay đổi
Tăng tính linh hoạt
Giảm rủi ro khi chỉnh sửa
Tất cả đúng
Cohesion và Coupling lý tưởng trong thiết kế là:
Cohesion cao, Coupling thấp
Cohesion thấp, Coupling cao
Cả hai đều thấp
Cả hai đều cao
Nguyên tắc "thiết kế phải có khả năng suy giảm từ từ (degrade gracefully)" nghĩa là:
Khi gặp lỗi, hệ thống không sụp đổ ngay mà giảm chức năng từ từ
Hệ thống tự động xóa code khi lỗi
Bỏ qua lỗi
Không cần kiểm thử
"Design is not coding, coding is not design" nhấn mạnh rằng:
Thiết kế và code là hai giai đoạn riêng biệt
Có thể thay thế cho nhau
Không cần thiết kế nếu có code
Không cần code nếu có thiết kế
Mục tiêu của việc "đánh giá thiết kế ngay khi tạo ra" là:
Phát hiện lỗi sớm, tiết kiệm chi phí
Bỏ qua kiểm thử
Thay thế yêu cầu
Giảm số mô-đun
Refactoring KHÔNG nhằm mục tiêu nào sau đây?
Loại bỏ dư thừa
Cải thiện cấu trúc
Giữ nguyên hành vi bên ngoài
Thêm chức năng mới
NG nhằm mục tiêu nào sau đây?
Loại bỏ dư thừa
Cải thiện cấu trúc
Giữ nguyên hành vi bên ngoài
Thêm chức năng mới
Thiết kế hướng đối tượng bổ sung thêm khái niệm nào?
Design classes (entity, boundary, controller)
File text
Database SQL
Test case
Controller class thường dùng để:
Quản lý logic xử lý và điều phối giữa entity và boundary
Lưu dữ liệu trực tiếp
Hiển thị màn hình
Viết tài liệu
"Minimize intellectual distance" có nghĩa là:
Thiết kế gần gũi với cách con người hiểu vấn đề thực tế
Dùng từ khó để tạo khoảng cách
Thiết kế càng xa thực tế càng tốt
Không liên quan đến yêu cầu
Ví dụ nào sau đây là "trừu tượng thủ tục"?
Hàm "open()" để mở cửa
Cấu trúc dữ liệu "Door"
UML class diagram
Deployment diagram
Tách biệt mối quan tâm giúp:
Giảm thời gian giải quyết vấn đề
Dễ tối ưu từng phần
Giảm độ phức tạp tổng thể
Tất cả đúng
Thiết kế mẫu (Design Pattern) KHÔNG bao gồm yếu tố nào?
Tên, ý định, động lực
Cấu trúc, thành phần, cách hợp tác
Hệ quả, mẫu liên quan
Mã nguồn cụ thể
Vai trò tổng thể của thiết kế phần mềm là:
Biến yêu cầu thành bản vẽ chi tiết (blueprint) cho triển khai
Thay thế giai đoạn kiểm thử
Chỉ làm đẹp tài liệu
Viết code nhanh hơn
Theo định nghĩa của OMG UML, Component là gì?
Một đoạn code thực thi trong hệ thống
Một phần của hệ thống có thể triển khai, thay thế
Theo định nghĩa của OMG UML, Component là gì?
Một đoạn code thực thi trong hệ thống
Một phần của hệ thống có thể triển khai, thay thế, đóng gói và cung cấp giao diện
Một lớp trong hệ thống OO
Một cơ sở dữ liệu trong hệ thống
Trong tiếp cận hướng đối tượng, Component bao gồm gì?
Một tập các biến toàn cục
Một tập các lớp có sự cộng tác
Một cơ sở dữ liệu
Một tập hàm lẻ tẻ
Trong cách nhìn truyền thống, một Component gồm các phần nào?
Cơ sở dữ liệu và giao diện
Logic xử lý, cấu trúc dữ liệu nội bộ, giao diện
Giao diện và thuật toán
Cấu trúc dữ liệu và mã máy
Ví dụ nào sau đây mô tả đúng về Component OO?
Một hàm tính tổng
PrintJob với thuộc tính số trang, loại giấy và phương thức tính chi phí
Một file Excel
Một server web
Kết quả đầu ra của Component truyền thống ComputePageCost là gì?
Loại giấy
Chi phí trang (page cost)
Số trang in
Tài liệu cần in
Nguyên tắc OCP (Open-Closed Principle) yêu cầu gì?
Thành phần có thể sửa trực tiếp code
Thành phần có thể mở rộng nhưng không cần sửa đổi bên trong
Thành phần luôn đóng lại sau khi chạy
Thành phần không được tái sử dụng
Nguyên tắc LSP (Liskov Substitution Principle) phát biểu thế nào?
Lớp con có thể thay thế lớp cha
Lớp cha thay thế lớp con
Các lớp không liên quan có thể thay thế
Mọi thành phần đều thay thế lẫn nhau
LSP (Liskov Substitution Principle) phát biểu thế nào?
Lớp con có thể thay thế lớp cha
Lớp cha thay thế lớp con
Các lớp không liên quan có thể thay thế
Mọi thành phần đều thay thế lẫn nhau
DIP (Dependency Inversion Principle) khuyến khích gì?
Phụ thuộc vào chi tiết cài đặt
Phụ thuộc vào trừu tượng, không phụ thuộc cụ thể
Phụ thuộc vào lớp con
Không có phụ thuộc nào cả
Nguyên tắc ISP (Interface Segregation Principle) có nghĩa là gì?
Chỉ nên có một interface tổng quát duy nhất
Nhiều interface nhỏ, chuyên biệt thì tốt hơn
Không cần interface
Interface nên chứa tất cả chức năng
REP (Release-Reuse Equivalency Principle) khẳng định điều gì?
Mỗi lần phát hành phải kèm theo tài liệu
Phát hành và tái sử dụng đi cùng nhau
Không nên tái sử dụng thành phần đã phát hành
Tái sử dụng không phụ thuộc phát hành
CCP (Common Closure Principle) nói rằng:
Các lớp thay đổi khác nhau nên nhóm chung
Các lớp thay đổi cùng nhau thì nên nhóm chung
Các lớp không bao giờ thay đổi
Nhóm lớp ngẫu nhiên
CRP (Common Reuse Principle) khẳng định điều gì?
Tất cả lớp đều nên nhóm chung
Các lớp không được tái sử dụng cùng nhau thì không nhóm chung
Tái sử dụng không quan trọng
Nhóm lớp theo ý muốn
Khi thiết kế tên cho component, cần:
Đặt tùy ý
Theo quy ước rõ ràng và thống nhất
Dùng số thay cho chữ
Không cần đặt tên
Khi thiết kế tên cho component, cần:
Đặt tùy ý
Theo quy ước rõ ràng và thống nhất
Dùng số thay cho chữ
Không cần đặt tên
Trong mô hình UML, phụ thuộc nên vẽ theo hướng nào?
Từ phải sang trái
Từ trái sang phải
Từ trên xuống dưới
Tùy ý
Trong UML, kế thừa nên vẽ theo hướng nào?
Từ dưới lên trên (lớp con → lớp cha)
Từ trên xuống dưới
Từ trái sang phải
Từ phải sang trái
Kết dính (Cohesion) theo quan điểm truyền thống là gì?
Mức độ module tập trung vào một mục đích duy nhất
Số lượng hàm trong module
Mức độ phức tạp của thuật toán
Khả năng tái sử dụng
Trong OO, kết dính nghĩa là gì?
Lớp chỉ nên chứa các thuộc tính/hành vi liên quan mật thiết
Lớp chứa nhiều chức năng không liên quan
Lớp có nhiều biến toàn cục
Lớp càng nhiều hàm càng tốt
Một loại kết dính cao nhất là:
Kết dính tiện ích
Kết dính thủ tục
Kết dính chức năng (Functional Cohesion)
Kết dính giao tiếp
Ghép nối (Coupling) phản ánh điều gì?
Mức độ kết dính của module
Mức độ liên kết giữa các thành phần với nhau và thế giới bên ngoài
Mức độ trừu tượng
Mức độ tái sử dụng
Mức ghép nối thấp nhất là gì?
Content Coupling
Common Coupling
Data Coupling
External Coupling
Mức ghép nối cao nhất (xấu nhất) là:
Control Coupling
Content Coupling
Stamp Coupling
Routine call
hép nối cao nhất (xấu nhất) là:
Control Coupling
Content Coupling
Stamp Coupling
Routine call
Bước đầu tiên trong thiết kế thành phần là gì?
Xác định dữ liệu lưu trữ
Xác định lớp thiết kế trong miền bài toán
Mô hình hóa hành vi
Rà soát, tối ưu
Bước nào trong thiết kế thành phần mô tả chi tiết thông điệp trao đổi giữa các lớp?
3a
3c
4
6
Bước nào mô tả chi tiết thuộc tính và kiểu dữ liệu?
3a
3b
3c
4
Mô hình hành vi (behavioral model) được xây dựng ở bước nào?
4
5
6
7
Thành phần WebApp có thể là gì?
Chỉ nội dung
Chỉ chức năng xử lý
Một chức năng xử lý hoặc gói nội dung + chức năng
Một cơ sở dữ liệu
Ví dụ thiết kế nội dung WebApp giám sát video bao gồm gì?
Chỉ camera
Sơ đồ mặt bằng, ảnh chụp thumbnail, video trực tuyến
Một file log
Một báo cáo PDF
Một chức năng thường gặp của WebApp hiện đại là gì?
Không có truy vấn dữ liệu
Xử lý cục bộ tạo nội dung động
Chỉ xem dữ liệu tĩnh
Không cần kết nối ngoài
Thiết kế thành phần truyền thống dựa trên yếu tố nào?
Thuật toán, cấu trúc dữ liệu, giao diện cộng tác
Hệ điều hành
Phần cứng máy tính
Ngôn ngữ Java
Bước thiết kế thuật toán gần với gì nhất?
Triển khai phần cứng
Viết code trực tiếp
Viết báo
Bước thiết kế thuật toán gần với gì nhất?
Triển khai phần cứng
Viết code trực tiếp
Viết báo cáo
Thiết kế giao diện đồ họa
Kỹ thuật phân rã từng bước (stepwise refinement) dùng để làm gì?
Tách hệ thống thành nhiều phần tử phần cứng
Dần chi tiết hóa thuật toán từ tổng quát đến cụ thể
Tách giao diện người dùng
Tạo database
Công cụ biểu diễn thuật toán không bao gồm:
Lưu đồ
Pseudocode (PDL)
Bảng quyết định
Ảnh chụp màn hình
CBSE là viết tắt của gì?
Component-Based Software Engineering
Computer-Based System Engineering
Control-Based Software Entity
Code-Building System Environment
Câu hỏi đầu tiên khi áp dụng CBSE là gì?
Có sẵn thành phần COTS (mua ngoài) không?
Ngôn ngữ lập trình nào dùng?
Hệ điều hành nào chạy?
Máy chủ nào triển khai?
Một khó khăn lớn khi tái sử dụng phần mềm là gì?
Không có kỹ sư
Thiếu kế hoạch và chính sách khuyến khích
Không có phần cứng mạnh
Lập trình viên không biết code
Các hoạt động CBSE bao gồm?
Qualification, Adaptation, Composition, Update
Analysis, Design, Coding, Testing
Compile, Debug, Release, Deploy
Planning, Funding, Staffing, Closing
Công nghệ OMG CORBA cung cấp gì?
Trình duyệt web
ORB - môi giới yêu cầu đối tượng
CSDL phân tán
Hệ điều hành
Trong CORBA, IDL dùng để làm gì?
Định nghĩa giao diện cho component
Định nghĩa kiểu dữ liệu SQL
Tạo GUI
Lập trình hệ điều hành
Microsoft COM là gì?
Công cụ quản trị DB
Mô hình đối tượng thành phần trên Windows
Ngôn ngữ lập trình mới
Công nghệ Java
COM bao gồm 2 phần nào?
COM interface và cơ chế đăng ký, truyền thông điệp
Database và GUI
Hardware và Software
Java và C#
JavaBeans là gì?
Framework cho JavaScript
Hạ tầng CBSE bằng Java, độc lập nền tảng
Công cụ viết HTML
Một IDE
Bộ công cụ BDK trong JavaBeans dùng để làm gì?
Quản lý cơ sở dữ liệu
Phân tích, tùy biến, phối hợp, phát triển và kiểm thử Bean
Lập trình hệ thống nhúng
Thiết kế giao diện đồ họa
Phân loại thành phần có mấy cách chính?
1
2
3
4
Phân loại phân cấp (Enumerated classification) nghĩa là gì?
Xây dựng cấu trúc phân cấp lớp - lớp con
Phân loại ngẫu nhiên
Chỉ dựa trên giá trị thuộc tính
Phân loại theo ngày tháng
Phân loại Faceted classification dựa trên gì?
Phân tích miền và xác định các đặc trưng mô tả
Ngẫu nhiên
Thứ tự alphabet
Dung lượng file
Phân loại Attribute-Value nghĩa là gì?
Dùng thuộc tính và giá trị để định nghĩa thành phần
Dùng code n
Phân loại Attribute-Value nghĩa là gì?
Dùng thuộc tính và giá trị để định nghĩa thành phần
Dùng code nhị phân
Dùng hình ảnh
Dùng biểu đồ
Thành phần quan trọng trong môi trường tái sử dụng là gì?
Component Database
Compiler
Text Editor
Browser
Hệ quản trị thư viện trong môi trường tái sử dụng có vai trò gì?
Cho phép truy cập CSDL thành phần
Quản lý file Word
Quản lý hardware
Chạy hệ điều hành
Công cụ CBSE hỗ trợ gì?
Tích hợp thành phần tái sử dụng vào hệ thống mới
Dịch code
Lập trình hệ điều hành
Thiết kế phần cứng
ORB (Object Request Broker) có chức năng chính là gì?
Tạo GUI
Cho phép các đối tượng giao tiếp bất kể vị trí
Lưu trữ dữ liệu
Viết mã máy
Trong mô hình dữ liệu, data object được định nghĩa là gì?
Một thuật toán xử lý dữ liệu
Một cấu trúc dữ liệu có sẵn trong thư viện
Một thông tin ghép (composite) gồm các thuộc tính, cần phần mềm quản lý
Một bảng trong cơ sở dữ liệu
Ví dụ nào sau đây là một data object?
int, float
Một bảng hash
Một giao diện người dùng
Sinh viên trong hệ thống quản lý
Một data attribute là gì?
Tập hợp các data object
Tập hợp các data relationship
Một thuộc tính cụ thể mô tả đặc điểm của data object
Một function thao tác trên dữ liệu
Một data attribute là gì?
Tập hợp các data object
Tập hợp các data relationship
Một thuộc tính cụ thể mô tả đặc điểm của data object
Một function thao tác trên dữ liệu
Data relationship trong mô hình dữ liệu mô tả gì?
Các phép toán trên dữ liệu
Mối quan hệ logic giữa các data object
Quá trình xử lý dữ liệu
Một lớp trong hệ thống
Trong ERD, ký hiệu hình chữ nhật thể hiện điều gì?
Thuộc tính
Thực thể (Entity)
Mối quan hệ
Liên kết
Trong ERD, ký hiệu hình oval thể hiện gì?
Mối quan hệ
Thuộc tính của thực thể
Một data store
Một class
Trong ERD, ký hiệu hình thoi (diamond) thể hiện gì?
Một entity
Một thuộc tính
Một relationship
Một function
Tính chất nào sau đây KHÔNG phải của ERD?
Thể hiện các entity
Thể hiện attribute
Thể hiện relationship
Thể hiện thuật toán xử lý
Mô hình dữ liệu cần đảm bảo điều gì?
Tập trung vào giao diện người dùng
Hiểu rõ dữ liệu cần lưu trữ và mối quan hệ của nó
Mô tả chi tiết xử lý thuật toán
Tách biệt hoàn toàn với yêu cầu người dùng
Trong class-based modeling, một class gồm 3 phần chính:
Entity, Method, Module
Tên lớp, Thuộc tính, Phương thức
Object, State, Event
Data, Process, Control
Một object là gì?
Một database table
Thể hiện (instance) cụ thể của một class
Một quan hệ dữ liệu
Một sơ đồ ERD
gì?
Một database table
Thể hiện (instance) cụ thể của một class
Một quan hệ dữ liệu
Một sơ đồ ERD
Trong class diagram, đường kẻ nối giữa hai class thể hiện gì?
Thuộc tính
Quan hệ (Association)
Phương thức
Event
Quan hệ kế thừa (Inheritance) trong class diagram được biểu diễn bằng:
Đường gạch chéo
Đường mũi tên nét đứt
Đường mũi tên đặc hướng lên cha
Đường liền kèm ký hiệu diamond
Quan hệ aggregation (tập hợp) thể hiện bằng ký hiệu nào?
Diamond tô đen
Diamond rỗng
Oval
Tam giác
Quan hệ composition (thành phần) thể hiện bằng:
Diamond rỗng
Diamond tô đen
Oval
Mũi tên nét đứt
CRC card dùng để làm gì?
Thiết kế giao diện
Tạo bảng CSDL
Mô tả class, trách nhiệm và cộng tác với các class khác
Vẽ biểu đồ tuần tự
Trên CRC card, phần "Responsibilities" mô tả gì?
Mối quan hệ giữa các class
Nhiệm vụ, hành vi class cần thực hiện
Dữ liệu của class
Kế thừa class cha
Trên CRC card, phần "Collaborators" mô tả gì?
Attributes
Methods
Các class khác mà class này tương tác
Quan hệ kế thừa
Trong phân tích hướng đối tượng, scenario là gì?
Một chức năng của hệ thống
Một ví dụ cụ thể mô tả cách hệ thống hoạt động trong một tình huống
Một class diagram
Một t
