Tổng hợp những câu hỏi cần thiết và quan trọng của môn Phân tích thiết kế hệ thống thông tin (KMA). Tài liệu này giúp các bạn sinh viên có thể vượt qua các bài kiểm tra giữa kỳ, cuối kỳ và đạt kết quả cao nhất. Xin cảm ơn các bạn đã xem và tải tài liệu.
Trang 1Câu 1 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 hóa của một hệ thống 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
- Tại sao phải mô hình hoá?
+ Hình dung về hệ thống như mong đợi
+ Chỉ định cấu trúc hoặc hành vi cho hệ thống
+ Đưa ra một khuôn mẫu hướng dẫn xây dựng hệ thống
+ Tài liệu hoá hệ thống
+ Hiểu rõ hơn về hệ thống cần phát triển
- Bốn nguyên tắc cơ bản khi mô hình hóa là:
- Việc lựa chọn mô hình đóng vai trò quan trọng
+ Trong phát triển phần mềm, các mô hình được chọn bị ảnh hưởng từ thế giới quan Mỗi thế giới quan dẫn đến một loại hệ thống riêng biệt
- Mỗi mô hình mô tả hệ thống với mức độ chính xác khác nhau
+ Việc lựa chọn mức độ chi tiết phụ thuộc: Ai đang xem mô hình? Tại sao cần phải xem
mô hình?
- Các mô hình tốt nhất là các mô hình liên kết với thế giới thực
+ Tất cả các mô hình đều là quá trình đơn giản hóa thế giới thực
+ Một mô hình tốt sẽ phản chiếu các đặc tính bất thường tiềm ẩn
- Không có một mô hình đơn lẻ nào là đủ
+ Cách tiếp cận tốt nhất để xây dựng một hệ thống phần mềm là thông qua một tập các
mô hình gần như độc lập với nhau
Câu 2: Phân tích hướng đối tượng là gì? 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ì? (2 điểm)
- Phân tích hướng đối tượng là phương pháp phân tích dựa trên các lược đồ hướng đối tượng
- Nêu các hoạt động chính trong giai đoạn phân tích hướng đối tượng:
+ Xác định các yêu cầu của người sử dụng cho hệ thống
+ Chọn các lớp và đối tượng sử dụng hướng dẫn của mô hình yêu cầu
Trang 2+ Xác định các thuộc tính và phương thức của mỗi lớp
+ Định nghĩa cấu trúc và phân cấp tổ chức các lớp
+ Xây dựng mô hình quan hệ đối tượng
+ Xây dựng mô hình hành vi đối tượng
+ Xem xét lại mô hình phân tích hướng đối tượng với các yêu cầu và các chuẩn
- Các chế tác input và output của hoạt động phân tích kiến trúc và phân tích ca sử dụng như sau:
- Chế tác input cho hoạt động phân tích kiến trúc:
+ Thiết kế hoặc mô hình kiến trúc hệ thống + Các tài liệu liên quan đến yêu cầu hệ thống
- Chế tác output cho hoạt động phân tích kiến trúc:
+ Lược đồ kiến trúc hệ thống + Bản tóm tắt kiến trúc hệ thống + Bảng liệt kê các tính năng và yêu cầu của hệ thống
- Chế tác input cho hoạt động phân tích ca sử dụng:
+ Các tài liệu liên quan đến yêu cầu của người dùng + Mô tả công việc mà hệ thống cần hỗ trợ
+ Mô tả các kịch bản sử dụng của người dùng
- Chế tác output cho hoạt động phân tích ca sử dụng:
+ Lược đồ ca sử dụng + Bản tóm tắt các ca sử dụng chính của hệ thống + Bảng liệt kê các chức năng cần thiết để hỗ trợ các ca sử dụng
Câu 3: UML (Unified Modeling Language) là gì? UML có thể được sử dụng trong những trường hợp nào? 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)?
- UML (Unified Modeling Language) là một ngôn ngữ mô hình hoá trực quan và mang tính
khái quát
- là 1 tiêu chuẩn để mô hình hóa , phân tích thiết kế hệ thống theo phương pháp hướng đối tượng
- là 1 tiêu chuẩn được cộng đồng IT công nhận và sử dụng rộng rãi
Trang 3- UML có thể được sử dụng cho :
+ Mô hình hóa, đặc tả, biểu diễn , xây dựng, tài liệu hóa các chế tác của một hệ thống phần mềm Ngoài ra còn được dùng để mô hình hóa các hệ thống phi phần mềm như luồng công việc hay hoạt động phân tích thiết kế hệ thống
- Vai trò của biểu đồ tương tác:
+ Mô hình hóa phương diện động của hệ thống, mô tả tương tác giữa các đối tượng
+ Thường dùng để mô tả kịch bản của use case
- Vai trò của biểu đồ hoạt động:
+ Mô tả các hoạt động và các hành động được thực hiện trong một usecase
Câu 4: 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
- Các hoạt động chính trong giai đoạn thiết kế hướng đối tượng:
Xác định các phần tử thiết kế
Xác định các cơ chế thiết kế
Mô tả kiến trúc Runtime
Mô tả sự phân tán
Thiết kế ca sử dụng
Thiết kế các hệ thống con
Thiết kế các lớp
Thiết kế cơ sở dữ liệu
- Mục đích của hoạt động xác định các cơ chế thiết kế : Làm mịn các cơ chế thiết kế dựa trên
các ràng buộc của môi trường thực thi
- Một số cơ chế thiết kế phổ biến trong thiết kế hướng đối tượng bao gồm:
Câu 5: Trình bày 4 nguyên tắc chính của mô hình hóa hướng đối tượng (sự trừu tượng hóa, đóng gói, modul hóa, sự phân cấp)? Lấy VD? Lý giải tại sao phải mô hình hóa trong quá trình phân tích và thiết kế các hệ thống thông tin?
* 4 nguyên tắc :
Trang 4-Trừu tượng hóa : các đặc điểm cần thiết của một thực thể để phân biệt nó với tất cả thực thể khác
Ví dụ: một ứng dụng quản lý bán hàng có thể trừu tượng hóa các thông tin liên quan đến sản
phẩm như tên, giá, số lượng để tạo ra một đối tượng sản phẩm đơn giản và dễ quản lý
-Đóng gói: sự quy tụ các tính chất (các thuộc tính và hành vi) của một thực thể vào trong một hộp đen trửu tượng
Ví dụ: một lớp ngân hàng có thể đóng gói thông tin như số tài khoản và số dư trong các phương
thức của nó để ngăn chặn các truy cập trái phép
-Modul hóa: sự phân rã về vật lý hoặc logic của một thứ gì đó phức tạp thành thành các phần nhỏ hơn, cấu trúc đơn giản hơn , có thể quản lý được
Ví dụ: một ứng dụng web có thể được phân chia thành các module riêng biệt như phân quyền,
quản lý đơn hàng và thanh toán, giúp cho việc bảo trì và mở rộng hệ thống trở nên dễ dàng hơn
-Sự phân cấp: sự sắp xếp thứ tự hoặc phân trạng của sự trừu tượng hóa các đối tượng theo
1 cấu trúc cây
Ví dụ: một lớp đối tượng con của lớp người dùng có thể kế thừa các thuộc tính như tên, địa chỉ
và số điện thoại từ lớp người dùng gốc
*Tại sao phải mô hình hoá?
+ Hình dung về hệ thống như mong đợi
+ Chỉ định cấu trúc hoặc hành vi cho hệ thống
+ Đưa ra một khuôn mẫu hướng dẫn xây dựng hệ thống
+ Tài liệu hoá hệ thống
+ Hiểu rõ hơn về hệ thống cần phát triển
Câu 6: Nêu 3 đặc trưng chính của quá trình phát triển các hệ thống thông tin theo
phương pháp hướng đối tượng(định hướng ca sử dụng, phân tích và thiết kế lấy kiến trúc làm trọng tâm, lặp và gia tăng)
* 3 đặc trưng :
❖Định hướng bởi các ca sử dụng:
- Các ca sử dụng được xác định cho hệ thống là cơ sở cho toàn bộ quy trình phát triển, là công cụ mô hình hoá chính
❖ Lấy kiến trúc làm trung tâm:
- Kiến trúc của hệ thống được sử dụng như một chế tác chính để xác định các khái niệm, xây dựng, quản lý và phát triển hệ thống
- Lấy kiến trúc làm nền tảng cho đặc tả, thiết kế, xây dựng và tài liệu hoá hệ thống
Trang 5❖ Phát triển lặp và gia tăng:
- Phát triển dần dần, với việc phân tích, thiết kế và triển khai được thực hiện theo từng chu kỳ
- Kết quả của mỗi chu kỳ sẽ được sử dụng để cải thiện và hoàn thiện hệ thống trong các chu kỳ tiếp theo
Câu 7: Mô tả các loại quan hệ (association, aggregation, composition, realization,
generalization) trong biểu đồ lớp UML? Lấy VD?
- Kết hợp (association): một sự nối kết giữa các lớp, cũng có nghĩa là sự nối kết giữa các đối tượng của các lớp này
- Kết tậ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
- Hợp thành (composition): Lớp A có quan hệ hợp thành 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
- Hiện thực hoá (realization): Một quan hệ ngữ nghĩa giữa hai phân lớp, trong đó một 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 đặthành vi đó.’
- 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
Trang 6Câu 7: Kiến trúc phần mềm là gì? Trình bày kiến trúc khung nhìn 4+1?
- Kiến trúc phần mềm là mô tả tổ chức hoặc cấu trúc và cách hoạt động của 1 hệ thống.
- Khung nhìn 4+1:
+ Use Case View: cung cấp góc nhìn về các ca sử dụng giúp chúng ta hiểu hệ thống có gì? ai dùng và dùng nó như thế nào
+ Logical View: cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ chức như thế nào Bên trong nó có gì
+ Process View: cung cấp góc nhìn động về hệ thống, xem các thành phần trong hệ thống tương tác với nhau như thế nào
+ Component View: Cũng là một góc nhìn về cấu trúc giúp chúng ta hiểu cách phân bổ
và sử dụng lại các thành phần trong hệ thống ra sao
+ Deployment View: cung cấp góc nhìn về triển khai hệ thống, nó cũng ảnh hưởng lớn đến kiến trúc hệ thống
Câu 8: RUP (Rational Unified Process) là gi? Anh/chị hãy mô tả các pha (Inception Elaboration, Construction Transition) của quy trình RUP
- RUP (Rational Unified Process) là một quy trình nghiệp vụ được sử dụng cho kỹ thuật
phần mềm hướng đối tượng
*
Pha khởi đầu (Inception): Định nghĩa phạm vi của dự án.
- Xác định tất cả các tác nhân và các ca sử dụng ứng viên -> phác thảo các ca sử dụng cần thiết nhất
- Phát triển một bản kế hoạch để nghiên cứu đánh giá tính khả thi về kinh phí, lịch trình,
Trang 7Pha chi tiết (Elaboration): Tập trung nắm bắt các yêu cầu và thiết lập một khung kiến
trúc cho hệ thống
Pha xây dựng (Construction): Thiết kế hệ thống, lập trình, tích hợp và kiểm thử.
Pha chuyển giao (Transition): Bàn giao hệ thống cho người dùng cuối, hỗ trợ họ cài đặt
và sử dụng
Câu 9: Trong dự án phát triển 1 hệ thống phần mềm,anh chị hãy mô tả các loại yêu
cầu( bussiness,requirment,user requirement,functional requirement,nofunctional
requirement, system requirement)? Lấy ví dụ cho từng loại( mỗi loại 2 cái)
• Những gì nghiệp vụ cần (business requirements)
• Những gì người dùng cần phải làm (user requirements)
• Những gì phần mềm cần phải làm (functional requirements)
• Những đặc điểm hệ thống cần phải có (nonfunctional requirements)
• Hệ thống cần phải được xây dựng như thế nào (system requirements)
Câu 10 Anh chị hãy phân biệt 3 mối quan hệ( generalization,include,extend) giữa các
ca sử dụng? Mối quan hệ đưa ra 1 ví dụ minh họa.
- 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 ca sử dụng con
- Bao hàm (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à các phân đoạn trong hành vi tổng thể của nó
- Mở rộng (extend): Cho phép mở rộng chức năng của một UC
Câu 11 Ca sử dụng của hệ thống là gì? vai trò ca sử dụng? Làm sao để xác định kiểm tra ca sử dụng trong hệ thống?
- Ca sử dụng là một chuỗi các hành động mà hệ thống thực hiện nhằm thu được một kết
quả dễ thấy bởi một tác nhân nào đó
- Vai trò:
+ Mô tả chức năng của hệ thống.
+ Một ca sử dụng mô hình hoá một hội thoại giữa một hoặc nhiều tác nhân
Trang 8với hệ thống.
+ Kết thúc ca sử dụng, hệ thống cung cấp một giá trị nào đó cho tác nhân
- Xác định :
+ Xem xét các yêu cầu chức năng của hệ thống để tìm ra các UC.
+ Đối với mỗi tác nhân tìm được, đặt các câu hỏi sau:
• Tác nhân đó yêu cầu những gì từ hệ thống?
• Các công việc chính mà tác nhân đó muốn hệ thống thực thi?
• Tác nhân đó có tạo ra hoặc thay đổi dữ liệu gì của hệ thống?
• Tác nhân đó có phải thông báo gì cho hệ thống?
• Tác nhân đó có cần thông tin thông báo gì từ hệ thống?
- Kiểm tra :
+ Ca sử dụng có liên quan đến tác nhân nào không?
+ Ca sử dụng có độc lập với những ca sử dụng khác không?
+ Có những ca sử dụng có hành vi hoặc luồng sự kiện rất giống nhau hay không? + Tên các ca sử dụng có trực quan và là duy nhất hay không?
+ Mô tả các ca sử dụng có rõ ràng và dễ hiểu hay không?
VD: Sinh Viên (tác nhân) có thể đăng kí môn học, xem các môn đã đăng kí, đổi lớp, hủy lớp,… trên hệ thống web trường Ở ví dụ này thì use case là đăng kí môn học, xem các môn đã đăng
kí, đổi lớp, hủy lớp,….Nó là những chức năng mà sinh viên có thể thực hiện.
Câu 12 (2 điểm): Anh/chị hãy trinh bày vai trò và ý nghĩa của biểu đồ lớp trong UML ? Phân biệt hai quan hệ composition và aggregation trong biểu đồ lớp ? Cho ví dụ minh hoạ.
*Biểu đồ lớp:
- Chỉ ra các lớp đối tượng trong hệ thống, các thuộc tính và phương thức của từng lớp và các mối quan hệ giữa những lớp đó
*Phân biệt
Trang 9- 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 hình thoi rỗng ở đầu hướng về lớp bao hàm
- 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
Câu 13 : Anh chị hãy trình bày vai trò và ý nghĩa của biểu đồ tương tác và biểu đồ lớp trong UML ? Phân biệt hai quan hệ composition và aggregation trong biểu đồ lớp? Cho ví
dụ minh hoạ và phân tích ý nghĩa.
*Biểu đồ tương tác:
- Mô tả chi tiết hoạt động của các use case dựa trên các scenario đã có và các lớp đã xác định trong pha phân tích
*Biểu đồ lớp:
- Chỉ ra các lớp đối tượng trong hệ thống, các thuộc tính và phương thức của từng lớp và các mối quan hệ giữa những lớp đó
*Phân biệt
- 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 hình thoi rỗng ở đầu hướng về lớp bao hàm
- 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
VD:
Câu 14 (2 điểm): Anh/chị hãy trình bày mục đích của hoạt động phân tích và thiết kế hệ thống ? Mục đích của việc xác định các phần tử thiết kế là gì? Nêu các sản phẩm của pha thiết kế hướng đối tượng ?
- Mục đích:
+ Chuyển các yêu cầu của bài toán thành một bản thiết kế của hệ thống sẽ được xây dựng
+ Phát triển một kiến trúc chắc chắn cho hệ thống
Trang 10+ Điều chỉnh thiết kế để tương thích với môi trường cài đặt.
+ Cung cấp cho người dùng, khách hàng, kỹ sư phân tích, kỹ sư thiếtkế nhiều khung nhìn khác nhau về hệ thống
Mục đích xác định phần tử thiết kế:
-Tạo ra một mô hình hướng đối tượng cụ thể, gồm các lớp, đối tượng, phương thức, thuộc tính và các mối quan hệ giữa chúng, để triển khai các yêu cầu được xác định từ pha phân tích thành một hệ thống hoạt động
Các sản phẩm của pha thiết kế hướng đối tượng bao gồm:
biểu đồ tương tác
biểu đồ lớp chi tiết
biểu đồ hoạt động
biểu đồ thành phần
biểu đồ triển khai hệ thống
Câu 15: Biểu đồ ca sử dụng là gì? Anh chị hãy phân biệt hai quan hệ include,extend trong biểu đồ ca sử dụng?Lấy ví dụ minh họa?
Biểu đồ ca sử dụng mô tả các yêu cầu chức năng của ht dưới dạng các ca sử dụng, tổ
chức và mô hình hoá các hành vi của hệ thống
*
- Extend :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à các phân đoạn trong hành vi tổng thể của nó
- Include: Cho phép mở rộng chức năng của một UC
VD:
Câu 16: Ngôn ngữ mô hình hóa thống nhất UML có những loại biểu đồ nào? Anh chị hãy trình bày các khái niệm cơ sở để xác định hai loại biểu đồ sau: Biểu đồ ca sử dụng(tác nhân,ca sử dụng,quan hệ giữa các ca sử dụng),Biểu đồ tương tác(phân lớpcó cấu
trúc,tương tác,thông điệp)
*
- Biểu đồ use case
- BĐ tuần tự
- BĐ cộng tác
- BĐ lớp
- BĐ trạng thái