Chủ đề của ASI101 - Nhập môn ôtô

ASI101 - Phần 16: Kiến trúc phần mềm - góc nhìn và cách mô tả

Không ai vẽ được toàn bộ một hệ phần mềm trên một trang giấy, nên kiến trúc luôn được trình bày thành nhiều bản vẽ, mỗi bản trả lời một loại câu hỏi. Một phong cách kiến trúc là lời giải mẫu đã được dùng đi dùng lại như phân lớp, hướng sự kiện hay khách - chủ, mỗi phong cách kèm cái giá riêng về hiệu năng lẫn khả năng thay đổi. Các góc nhìn thì chia theo mối quan tâm: ai gọi ai, mã nằm trong tệp nào, tiến trình chạy trên bộ điều khiển nào, dữ liệu đi theo đường nào; trộn lẫn chúng vào một hình là cách nhanh nhất để không ai đọc được. Người học rút ra vài nguyên tắc bền như tách giao diện khỏi cài đặt và giữ phụ thuộc một chiều, dựng cấu trúc mức cao của một hệ trên xe, rồi đặt công việc kiến trúc vào đúng chỗ trong quy trình phát triển, nơi quyết định sớm thì rẻ mà sửa muộn thì đắt.

Xem danh sách câu hỏi3 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

3Câu hỏi hiện có

Câu hỏi của chủ đề

3/3 câuHết danh sách
AImproved modularity
BIncreased complexity in communication
CEnhanced fault tolerance
DEasier testing
Lời giải
Đáp án đúng: "Increased complexity in communication". Chia phần mềm thành nhiều lớp thì mỗi yêu cầu phải đi xuyên qua từng lớp, mỗi ranh giới là một giao diện phải định nghĩa, chuyển đổi dữ liệu và xử lý lỗi riêng, nên đường trao đổi tin dài hơn, độ trễ tăng và việc lần theo một luồng dữ liệu khó hơn hẳn khối mã liền. Lựa chọn "Improved modularity" đúng nhưng là lợi ích chứ không phải nhược điểm, vì tách lớp chính là để mỗi lớp thay được độc lập. Lựa chọn "Enhanced fault tolerance" cũng là mặt tốt, do lớp dưới hỏng có thể được lớp trên che chắn hoặc thay bằng bản cài khác. Lựa chọn "Easier testing" lại là ưu điểm nữa, bởi từng lớp có giao diện rõ nên kiểm thử được riêng rẽ bằng bản giả lập của lớp kề.
Mở trang câu hỏi này →
ASimplified scalability
BDifficulty in managing dependencies between layers
CImproved separation of concerns
DReduced redundancy
Lời giải
Đáp án đúng: "Difficulty in managing dependencies between layers". Câu hỏi đòi một thách thức, và kiến trúc phân lớp đặt ra đúng gánh nặng đó: mỗi lớp chỉ được phép gọi xuống lớp dưới, nên khi nghiệp vụ phình ra rất dễ xuất hiện lời gọi tắt vượt lớp, phụ thuộc vòng hoặc lớp trung gian chỉ làm việc chuyển tiếp, đồng thời một thay đổi ở lớp dưới lan ngược lên mọi lớp trên. Lựa chọn "Simplified scalability" nêu một lợi ích chứ không phải khó khăn, hơn nữa phân lớp thường được triển khai chung một khối nên mở rộng theo chiều ngang còn bị hạn chế. Lựa chọn "Improved separation of concerns" chính là mục tiêu thiết kế của kiểu kiến trúc này, tức điểm mạnh. Lựa chọn "Reduced redundancy" cũng là cái lợi thu được khi dùng chung một lớp truy cập dữ liệu, không phải cái giá phải trả.
Mở trang câu hỏi này →
ALogical, Development, Process, Physical views plus Scenarios (use cases)
BOnly a single component diagram
CSequence view plus Security view only
DHardware view only
Lời giải
Đáp án đúng: "Logical, Development, Process, Physical views plus Scenarios (use cases)". Mô hình 4+1 tách kiến trúc thành bốn góc nhìn cho bốn nhóm quan tâm khác nhau: chức năng cho người dùng, tổ chức mã nguồn cho lập trình viên, tiến trình và đồng bộ cho kỹ sư tích hợp, phân bố lên phần cứng cho người triển khai; tập kịch bản là phần cộng một, dùng để ràng buộc và kiểm chứng bốn góc nhìn kia có khớp nhau không. Lựa chọn "Only a single component diagram" rút gọn kiến trúc về một sơ đồ duy nhất, trái với ý tưởng cốt lõi rằng không góc nhìn nào mô tả đủ hệ thống. Lựa chọn "Sequence view plus Security view only" gom nhầm hai thứ khác cấp: biểu đồ tuần tự chỉ là công cụ vẽ bên trong một góc nhìn, còn an toàn là thuộc tính chất lượng xuyên suốt. Lựa chọn "Hardware view only" mới tương ứng góc nhìn triển khai, bỏ mất ba góc nhìn còn lại.
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

2 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.