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: Hệ thống (system) là gì? Nêu các thành phần cơ bản của một hệ thống?
- Hệ thống là tập hợp các thành phần có quan hệ chặt chẽ với nhau tạo thành một thể thống nhất.
- Cấu tạo: Môi trường, mục đích, giới hạn, thành phần, mối quan hệ, giao diện, đầu vào, đầu ra và các ràng buộc.
Câu 2: Thông tin (information) là gì? Nêu các đặc điểm của thông tin? Sự khácnhau giữa thông tin và dữ liệu (data) là gì?
- Thông tin là nội dung chứa trong các văn bản, tài liệu hoặc lời nói • Chi phí
• Giá trị
- Đặc điểm của thông tin:
- Dữ liệu sau khi tập hợp lại và xử lí sẽ cho ta thông tin Hay nói cách khác, dữ liệu là thông tin đã được mã hoá trong máy tính.
- Thông tin là những gì bạn nhận được sau khi xử lý dữ liệu
Câu 3: Hệ thống thông tin (information system) là gì? Phân loại? Nêu các tàinguyên (thành phần) của một hệ thống thông tin?
- Hệ thống thông tin là một hệ thống dùng để xử lý thông tin
Câu 4: Vòng đời phát triển hệ thống SDLC (System Development Life Cycle) là gì?Nêu các giai đoạn chính phát triển một hệ thống thông tin?
- Vòng đời phát triển hệ thống SDLC (System Development Life Cycle) bao gồm nhiều giai đoạn, kể từ khi bắt đầu phát triển hệ thống cho đến khi kết thúc khai
Trang 2Câu 5: Trình bày các đặc trưng của bốn phương pháp luận phát triển các hệ thốngthông tin (tiếp cận hướng tiến trình, tiếp cận hướng dữ liệu, tiếp cận hướng cấutrúc, tiếp cận hướng đối tượng)? Nêu ưu và nhược điểm của hai phương pháp luậnphát triển các hệ thống thông tin (tiếp cận hướng cấu trúc, tiếp cận hướng đốitượng)?
- Cách tiếp cận định hướng tiến trình:
+ Thay đổi một tiến trình xử lý, kéo theo phải thay đổi các file dữ liệu tương ứng + Tồn tại nhiều file dữ liệu riêng biệt trong những ứng dụng khác nhau nhưng lại chứa nhiều phần tử dữ liệu giống nhau.
+ Tạo ra sự dư thừa dữ liệu.
+ Tốn công sức thu thập và tổ chức lại dữ liệu.
+ Không thể chia sẻ dữ liệu giữa các ứng dụng với nhau.
- Cách tiếp cận định hướng dữ liệu:
• Tổ chức dữ liệu một cách tập trung, nhất quán • Tách dữ liệu ra khỏi các tiến trình xử lý.
• Tổ chức cơ sở dữ liệu chung cho các ứng dụng.
- Cách tiếp cận định hướng cấu trúc:
• Phương pháp thiết kế top-down.
• Phân rã bài toán thành các bài toán nhỏ hơn.
• Quá trình làm mịn dần (phân rã) sẽ dừng lại khi các bài toán con có thể cài đặt được ngay với giải thuật đủ đơn giản.
Ưu điểm:
• Chương trình sáng sủa, dễ hiểu, dễ theo dõi • Tư duy giải thuật rõ ràng.
Nhược điểm:
• Không hỗ trợ việc sử dụng lại.
• Không phù hợp cho việc phát triển các hệ thống thông tin lớn, phức tạp.
- Cách tiếp cận định hướng đối tượng:
• Ánh xạ các thành phần trong bài toán vào các đối tượng trong thế giới thực • Hệ thống được chia thành các đối tượng chứa dữ liệu và hành động.
• Phần mềm được xây dựng bằng cách kết hợp các đối tượng trên lại với nhau thông qua các mối quan hệ và các tương tác giữa chúng.
• Các đối tượng chỉ thực hiện hành động khi nhận được yêu cầu Ưu điểm
– Tính tái sử dụng: có thể tạo các thành phần (đối tượng) một lần và dùng chung nhiều lần sau đó.
– Đóng gói, che dấu thông tin làm cho hệ thống tin cậy hơn – Thừa kế giảm chi phí, hệ thống có tính mở cao
– Phù hợp với hệ thống lớn và phức tạp Nhược điểm
Trang 3– Khó khăn cho người mới bắt đầu
Câu 6: Mô hình là gì? Lý giải tại sao phải mô hình hoá khi xây dựng các hệ thốngthông tin? Nêu một số loại mô hình mà anh/chị biết?
Trả lời:
- Một mô hình là một mô tả về các đặc tính tĩnh và (hoặc) động của một chủ thể, nó thường được mô tả dưới dạng một biểu đồ hoặc văn bản thông qua một số khung nhìn nào đó.
- 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 - Một số loại mô hình:
● Mô hình xoắn ốc ● Mô hình prototype ● Thác nước
● Thác nước cải tiến
Câu 7: Đề xuất mô hình phân cấp chức năng cho hệ thống quản lý đăng ký môn họctại Học viện Kỹ thuật mật mã?
Câu 8: Đề xuất mô hình luồng dữ liệu cho quy trình đăng ký môn học tại Học việnKỹ thuật mật mã?
Câu 9: Trình bày bốn nguyên tắc cơ bản khi mô hình hoá?
Trả lời:
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ò rất 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
Trang 4+ 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 mô hình đơn lẻ nào là đầy đủ
+ 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 10: Đối tượng (object) là gì? Lớp (class) là gì? Các lớp và các đối tượng có quanhệ với nhau như thế nào?
Trả lời:
- Một thực thể có trạng thái và hành vi được gọi là đối tượng Một đối tượng có 3 đặc trưng: trạng thái, hành vi, nhận diện.
- Một lớp là một nhóm đối tượng có các thuộc tính chung
Đối tượng(Object) là một thể hiện của một lớp(Class) Lớp là một mẫu hoặc thiết kế từ đó các đối tượng được tạo ra.
Câu 11: Thuộc tính (attribute) là gì? Thao tác (operation) là gì? Sự khác nhau giữathao tác và phương thức (method) là gì?
Trả lời:
- Thuộc tính là một đặc tả định nghĩa đặc tính của một đối tượng, phần tử, hay tập
Câu 12: Trình bày bốn nguyên tắc cơ bản của hướng đối tượng (abstraction,encapsulation, modularity, hierarchy)? Mỗi nguyên tắc đưa ra một ví dụ minh hoạ?
Trả lời:
Sự trừu tượng hoá là gì?
- Trừu tượng hoá có thể được định nghĩa là 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ả các loại thực thể khác.
- Trong mô hình hóa hướng đối tượng, trừu tượng hoá là việc xây dựng một mô hình chỉ bao gồm các đặc điểm quan trọng, cần thiết để phân biệt nó với tất cả các loại mô hình khác.
• Tạo ra mô hình có các đặc tính riêng biệt • Cho phép quản lý sự phức tạp của mô hình.
VD: Xe là một lớp trừu tượng, nó k có thể hiện tồn tại trong thực tế Xe ô tô và xe tải là lớp cụ thể, các thể hiện của nó phản ánh các đối tượng tồn tại thực tế.
Tính đóng gói là gì?
Trang 5- Tính đóng gói là che dấu mọi chi tiết hiện thực của đối tượng không cho bên ngoài
thấ́y và truy xuất => tính độc lập cao giữa các đối tượng.Cho phép người sử dụng dùng đối tượng mà không biết bên trong đối tượng có những gì.
- Tính đóng gói dữ liệu của OOP:
● Cho phép che dấu sự cài đặt bên trong các phương thức ● Cho phép che dấu dữ liệu bên trong các đối tượng.
● Cho phép giảm thiểu việc viết lại mã nguồn chương trình.
VD: Trong lớp Hàng hoá có thuộc tính đơn giá là private và có các phương thức Đơn_giá(), Đổi_đơn_giá(giá_mới) Do thuộc tính đơn giá là private nên tất cả các truy cập về đơn giá hoặc các thay đổi về đơn giá từ bên ngoài phải thông qua 2 pt trên.
Tính mô-đun hoá là gì?
- Tính mô-đun: Sự phân rã về mặt vật lý hoặc logic một thứ gì đó phức tạp thành các phần nhỏ hơn, cấu trúc đơn giản hơn và có thể quản lý được.
• Phân cấp theo kiểu của đối tượng.
- Trong kỹ thuật hướng đối tượng, sự phân cấp được sử dụng để tổ chức các đối tượng trong hệ thống.
- Các phần tử cùng cấp bậc trong hệ thống phân cấp sẽ có cùng mức độ trừu tượng hoá.
Câu 13: Tính đa hình (polymorphism) là gì? Đưa ra một ví dụ minh hoạ về tính đahình? Trong lập trình hướng đối tượng, tính đa hình được hiểu như thế nào?
Trả lời:
- Trong kỹ thuật hướng đối tượng, tính đa hình có thể được định nghĩa là khả năng mang nhiều kiểu khác nhau của đối tượng.
VD: Một người cùng một lúc có thể có đặc điểm khác nhau Giống như một người học sinh đồng thời là một người con trai, một người bạn, một người anh Vì vậy, cùng một người sở hữu những hành vi khác nhau trong các tình huống khác nhau Điều này được
gọi là đa hình.
- Trong lập trình hướng đối tượng:
• Đa hình phương thức: Phương thức trùng tên, phân biệt bởi danh sách tham số (Overload và Override).
• Đa hình đối tượng:
Trang 6• Nhìn nhận đối tượng theo nhiều kiểu khác nhau (Upcasting và Downcasting) • Các đối tượng khác nhau thực hiện cùng một thông điệp nhưng
giải nghĩa thông điệp đó theo những cách thức khác nhau.
Câu 14: Tổng quát hóa (generalization) là gì? Đưa ra một ví dụ minh hoạ cho quanhệ tổng quát hoá? Sự khác nhau giữa tổng quát hoá và kế thừa là gì?
Trả lời:
- Tổng quát hóa (generalization) là một mối quan hệ giữa các lớp (hoặc các ca sử dụng), trong đó tồn tại một lớp (hoặc một ca sử dụng) sẽ chia sẻ cấu trúc và/hoặc hành vi cho một hoặc nhiều lớp (ca sử dụng) khác.
VD: Lớp nhân viên hay khách hàng sử dụng 1 hệ thống có thể được gọi chung là người dùng.
- TQH: xây dựng 1 lớp tổng quát từ các lớp khác cụ thể để đạt được một mức độ trừu tượng hoá có thể.
- Kế thừa trong lập trình là cách 1 lớp có thể thừa hưởng lại những thuộc tính, phương thức từ 1 lớp khác và sử dụng chúng như là của bản thân mình, là một đặc điểm của ngôn ngữ hướng đối tượng dùng để biểu diễn mối quan hệ đặc biệt hoá – tổng quát hoá giữa các lớp.
Câu 15: UML (Unified Modeling Language) là gì? Giải thích tính thống nhất củaUML? Ngôn ngữ mô hình hoá UML có thể được sử dụng trong những trường hợpnào?
Trả lời:
- 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.
- Tính thống nhất: UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các
Phần tử mô hình (model elements) Tập hợp các phần tử mô hình tạo thành các Sơđồ UML (UML diagrams).
- UML là một ngôn ngữ được sử dụng để:
• Mô hình hoá: diễn đạt các mô hình hệ thống dựa trên sự tổ hợp các từ vựng có sẵn của UML theo tập quy tắc xác định.
• Biểu diễn: do sự giao tiếp giữa các mô hình mức khái niệm dễ phát sinh lỗi trừ khi những người liên quan dùng chung một ngôn ngữ diễn đạt.
• Đặc tả: mô tả vấn đề một cách chính xác, không nhập nhằng.
• Xây dựng: Một số biểu đồ UML có thể được chuyển thành mã nguồn của nhiều ngôn ngữ lập trình khác nhau (Java, C++ ).
• Tài liệu hoá: UML cung cấp ngôn ngữ để mô hình hoá các hoạt động trong dự án cũng như việc quản lý chuyển giao phiên bản.
Câu 16: Khung nhìn (view) của UML là gì? Các khung nhìn của UML được sử dụng
Trang 7biểu đồ UML nào?
Trả lời:
- Một khung nhìn (view) UML là một tập con của các cấu trúc mô hình hoá UML, nó đại diện cho một khía cạnh của hệ thống.
- Các khung nhìn UML giúp tổ chức và trình bày các khái niệm UML - Các khung nhìn UML có thể được chia thành 4 góc nhìn chính:
• Cấu trúc mô tả những thứ bên trong hệ thống và mối quan hệ giữa chúng (khung nhìn tĩnh, khung nhìn thiết kế, khung nhìn ca sử dụng).
• Động mô tả hành vi của hệ thống hoặc các classifier theo thời gian (khung nhìn máy trạng thái, khung nhìn hoạt động, khung nhìn tương tác).
• Vật lý mô tả các tài nguyên vật lý trong hệ thống và việc triển khai các chế tác trên chúng (khung nhìn triển khai).
• Quản lý mô hình mô tả việc tổ chức các mô hình thành các phần tử phân cấp (khung nhìn quản lý mô hình).
Câu 17: Nêu các khối xây dựng cơ bản hình thành nên các mô hình UML? Lấy ví dụ
Trang 9câu 18: UML có phụ thuộc vào các quy trình phát triển phần mềm? Quy trình cónhững đặc điểm nào sẽ khai thác được tối đa khả năng của UML? Mô tả từng đặcđiểm?
Câu 19: Phát triển lặp là gì? Trong phát triển lặp, mỗi lần lặp (iteration) đều thựchiện những công việc gì, output?
Trả lời:
- Phát triển lặp là một kỹ thuật được sử dụng để chuyển các chức năng của hệ thống vào một chuỗi liên tục các phiên bản hoàn thiện tăng dần.
- Mỗi phiên bản được phát triển trong một khoảng thời gian xác định -> vòng lặp • Mỗi vòng lặp tập trung vào định nghĩa, phân tích, thiết kế, xây dựng, tích hợp và kiểm thử một tập các yêu cầu -> một phiên bản thực thi được.
• Mỗi vòng lặp sẽ đưa hệ thống ngày càng gần hơn với mong đợi sau cùng của user.
• Các vòng lặp đầu tiên hướng đến các rủi ro có mức độ ưu tiên cao nhất.
Trang 10• Lựa chọn một tập con các chức năng (hoặc một tập tối thiểu các ca sử dụng liên quan) để phát triển -> kiểm chứng (thông qua một tập các ca kiểm thử thực hiện được -> gia tăng.
Câu 20: Biểu đồ ca sử dụng (use case diagram) là gì? Vai trò của biểu đồ ca sửdụng?
Trả lời:
- Biểu đồ ca sử dụng mô tả các yêu cầu chức năng của hệ thống 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.
- Biểu đồ ca sử dụng biểu diễn các chức năng mong đợi của hệ thống (use case), môi trường của hệ thống (actor) và mối quan hệ giữa chúng.
- Vai trò:
+ Đóng vai trò như một bản hợp đồng giữa bên phát triển hệ thống và khách hàng + Được sử dụng trong tất cả các giai đoạn của quy trình phát triển hệ thống.(Giao tiếp, Xác định, Kiểm chứng)
• Khách hàng phải phê duyệt biểu đồ ca sử dụng.
• Bên phát triển hệ thống sử dụng biểu đồ ca sử dụng để thảo luận với khách hàng.
• Các bên liên quan đến dự án sẽ hiểu rõ hơn về hệ thống thông qua biểu đồ ca sử dụng.
Câu 21: Tác nhân (actor) là gì? Làm thế nào để tìm ra và kiểm tra các tác nhân củahệ thống? Lấy ví dụ chỉ ra các tác nhân của một hệ thống cụ thể?
Trả lời:
- Tác nhân là bất cứ thứ gì tương tác với hệ thống, nó có sự trao đổi dữ liệu với hệ thống.
- Đặt các câu hỏi sau để tìm ra các tác nhân:
• Nhóm người nào yêu cầu hệ thống làm việc cho họ? • Nhóm người nào kích hoạt chức năng của hệ thống? • Nhóm người nào sẽ duy trì và quản trị hệ thống?
• Hệ thống có tương tác với các thiết bị phần cứng hoặc các hệ thống phần mềm ngoại vi nào khác hay không?
- Thông tin về tác nhân:
• Tên tác nhân phải mô tả vai trò của tác nhân đó một cách rõ ràng • Tên tác nhân nên là danh từ.
- Kiểm tra các tác nhân
Trang 11Loại bỏ tác nhân không được đề cập trong một mô tả ca sử dụng nào hoặc không có liên kết với ca sử dụng nào.
+ Tác nhân có thực sự là một vai trò? Cần phân tách hoặc hợp nhất với các tác nhân khác hay không?
Các tác nhân có vai trò tương tự nhau trong ngữ cảnh hệ thống, chúng nên được hợp nhất thành một tác nhân duy nhất.
Một tác nhân cụ thể sử dụng hệ thống theo nhiều cách hoàn toàn khác nhau hoặc sử dụng ca sử dụng nào đó với một số mục đích hoàn toàn khác nhau, tác nhân đó nên được phân tách
+ Có hai tác nhân có vai trò tương tự nhau đối với một ca sử dụng hay không? Nếu có hai tác nhân có vai trò tương tự nhau đối với một ca sử dụng -> sử dụng mối quan hệ tổng quát hoá để mô hình hoá hành vi tổng quát của
+Tên các tác nhân có trực quan hay không?
Khách hàng và người dùng có hiểu tên các tác nhân hay không? Tên các tác nhân phải phù hợp với vai trò của chú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 Tác nhân: sinh viên
Tương tác: đăng kí, xem, đổi lớp, hủy,… Môi trường cụ thể: Web trường
Mục đích: đăng kí lịch học mong muốn, xem lịch học, xem các thông tin về cá nhân trên web trường.
Câu 22: Ca sử dụng (use case) là gì? Làm thế nào để tìm ra và kiểm tra các ca sửdụng của hệ thống? Lấy ví dụ chỉ ra các ca sử dụng của một hệ thống cụ thể?
Trả lời:
- Ca sử dụng là một chuỗi các hành động mà hệ thống sẽ thực hiện nhằm thu được một kết quả dễ thấy bởi một tác nhân cụ thể.
• Định nghĩa một chức năng của hệ thống.
• Đặc tả ca sử dụng mô tả cách một hoặc nhiều tác nhân tương tác với hệ thống • Kết thúc ca sử dụng, tác nhân phải thu được một giá trị có thể quan sát được - Xác định các ca sử dụng của hệ thống
+ 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ần thông báo gì cho hệ thống?
• Tác nhân đó cần thông tin thông báo gì từ hệ thống?
Trang 12- Thông tin về ca sử dụng:
• Tên của ca sử dụng nên chỉ rõ kết quả của quá trình tương tác với tác nhân • Tên của ca sử dụng nên là động từ.
• Mô tả ngắn gọn về mục đích của ca sử dụng đó - Kiểm tra các ca sử dụng
+ Ca sử dụng có liên quan đến tác nhân nào không?
• Loại bỏ ca sử dụng không tương tác với một tác nhân nào + Ca sử dụng có độc lập với những ca sử dụng khác không?
• Nếu các ca sử dụng luôn được kích hoạt theo cùng một trình tự -> hợp nhất chúng thành một ca sử dụng duy nhất.
+ 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?
• Nếu có -> hợp nhất chúng thành một ca sử dụng duy nhất (người dùng không bị ảnh hưởng nhiều).
+ Tên các ca sử dụng có trực quan và là duy nhất hay không? • Tên các ca sử dụng phải mô tả hành vi mà chúng hỗ trợ + Mô tả các ca sử dụng có rõ ràng và dễ hiểu hay không? • Khách hàng và người dùng có hiểu được 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 23: Những điều nên tránh khi tạo các ca sử dụng của hệ thống là gì? Phân biệtba mối quan hệ (generalization, include, extend) giữa các ca sử dụng?
Trả lời:
- Những điều nên tránh khi tạo các UC + Tạo ra các ca sử dụng quá nhỏ.
+ Tạo ra quá nhiều ca sử dụng (hàng chục):
• Nhóm các ca sử dụng liên quan thành một ca sử dụng tổng quát (mức 1) • Mô tả các ca sử dụng tổng quát ở một biểu đồ khác (mức 2).
+ Sử dụng các ca sử dụng quá cụ thể.
• “Nhập PIN vào máy ATM” nên đặt là “Nhập PIN” • “Tìm tài liệu theo tên” nên đặt là “Tìm tài liệu” - Phân biệt:
+ Quan hệ tương tác hóa(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.
+ 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à các phần trong hành vi tổng thể của nó
+ Quan hệ Extend : Một ca sử dụng có thể được định nghĩa như là một sự mở rộng
Trang 13Câu 24: Cho mô tả:
• Các tác nhân: Người mua, Hệ thống email, Hệ thống cho vay, Hệ thống báo cáo tín dụng.
• Các ca sử dụng: Tìm người môi giới, Quản lý hồ sơ cá nhân, Tìm nhà, Yêu cầu vay • Các mối liên kết:
o Từ Người mua tới Tìm người môi giới o Từ Người mua tới Quản lý hồ sơ cá nhân o Từ Người mua tới Tìm nhà.
o Từ Người mua tới Yêu cầu vay.
o Quản lý hồ sơ cá nhân tới Hệ thống email o Tìm nhà tới Hệ thống email.
o Yêu cầu vay tới Hệ thống email, Hệ thống cho vay o Yêu cầu vay tới Hệ thống báo cáo tín dụng.
Anh/chị hãy vẽ biểu đồ ca sử dụng dựa vào mô tả trên?
Câu 25: Đề xuất biểu đồ ca sử dụng cho hệ thống máy rút tiền tự động ATM vớinhững chức năng cơ bản nhất?
Trang 14Câu 26: Đề xuất biểu đồ ca sử dụng cho hệ thống quản lý đăng ký môn học tại Họcviện Kỹ thuật mật mã?
Câu 27: Biểu đồ hoạt động (activity diagram) là gì? Vai trò của biểu đồ hoạt động?
Trả lời:
- Biểu đồ hoạt động là biểu đồ mô tả một nội dung hoạt động, theo các luồng đi từ hoạt động này sang hoạt động khác Thường được dùng để biểu diễn logic của 1 ca sử dụng, 1 kịch bản, 1 nhóm ca sử dụng, 1 quy tắc hay 1 thao tác
- Vai trò của biểu đồ hoạt động:
+ Cho phép mô tả khung nhìn động của hệ thống + Biểu diễn luồng hoạt động trong hệ thống.
+ Biểu đồ hoạt động mô tả các ứng xử (hoạt động) qua nhiều use-case để diễn tả dòng công việc của toàn bộ quá trình.
Trang 15Câu 28: Nút hoạt động (activity) là gì? Làn bơi (swimlane) được sử dụng để làmgì?
Trả lời:
- Nút hoạt động:
- Vai trò của làn bơi trong biểu đồ hoạt động:
+Sử dụng để mô hình hóa luồng công việc trong tiến trình nghiệp vụ +Chỉ ra ai có trách nhiệm thực hiện từng hoạt động
+Để phân hoạch các trạng thái hoạt động vào nhóm +Phân tách nhóm trên biểu đồ bằng các làn bơi +Mỗi hoạt động thuộc về một làn bơi
+Quá độ có thể được vẽ từ làn bơi này đến làn bơi khác +Mỗi làn bơi có thể được cài đặt bởi một hay nhiều lớp
Câu 29: Cho mô tả:
• Các hoạt động/hành động: Chọn hồ sơ, Tìm hồ sơ người mua, Tạo hồ sơ mới, Đăng nhập.
• Luồng hoạt động: Bắt đầu từ Chọn hồ sơ tới Tìm hồ sơ người mua rồi đi từ Tìm hồ sơ người mua đến Tạo hồ sơ mới nếu hồ sơ không tồn tại Nếu hồ sơ tồn tại thì có thể Đăng nhập.
Anh/chị hãy vẽ biểu đồ hoạt động dựa vào mô tả trên?
Trang 16Câu 30: Đề xuất biểu đồ hoạt động mô hình hoá quy trình “Đặt mua sách trênmạng”?
Trang 18Câu 31: Mô hình hoá quy trình “Đặt mượn sách” của sinh viên tại Học viện Kỹthuật mật mã (sử dụng các làn bơi)?
Câu 32: Đề xuất biểu đồ hoạt động mô hình hoá quá trình xử lý dữ liệu khi mộtkhách hàng rút tiền mặt từ một hệ thống máy rút tiền tự động ATM?
Câu 33: Tương tác (interaction) là gì? Các đối tượng tương tác với nhau như thếnào?
Trả lời:
- Các đối tượng tương tác với nhau như thế nào? • Thông qua các thông điệp.
• Thông điệp là sự giao tiếp một chiều giữa hai đối tượng ở dạng luồng điều khiển cùng với các thông tin đính kèm (có thể có các tham số) từ bên gửi đến bên nhận.
• Một thông điệp cho biết làm thế nào một đối tượng yêu cầu một đối tượng khác thực hiện hành động.
Câu 34: Cộng tác (collaboration) là gì? Lấy ví dụ minh hoạ?
Trả lời:
Cộng tác: xác định một sự tương tác giữa các đối tượng, biểu diễn một ngữ cảnh bao gồm các vai trò và các phần tử tương tác với nhau để cung cấp hành vi cộng tác lớn hơn VD: Tương tác giữa đối tượng đăng ký khóa học với hệ thống thông tin khóa học
Câu 35: Biểu đồ tương tác (interaction diagram) là gì? Vai trò của biểu đồ tươngtác? Nêu các bước chính để xây dựng biểu đồ tương tác?
Trả lời:
- Biểu đồ tương tác được sử dụng trong UML để thiết lập giao tiếp giữa các đối tượng Biểu đồ tương tác được thiết kế để hiển thị cách các đối tượng thực hiện các yêu cầu cụ thể của hệ thống.
- Vai trò của biểu đồ tương tác:
+ Mô hình hóa khía cạnh độ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.
+ Biểu đồ tương tác bao gồm một tập các đối tượng, các quan hệ và các thông điệp
Trang 19- Các bước chính để xây dựng biểu đồ tương tác: + Tìm kiếm các đối tượng.
+ Tìm kiếm các tác nhân.
+ Bổ sung các thông điệp và các liên kết vào biểu đồ
Câu 36: Thông điệp (message) là gì? Mô tả các loại thông điệp trong biểu đồ tuần tự(synchronous message, asynchronous message, return message, self-call message,create message, destroy message)? Lấy ví dụ minh hoạ cho từng loại thông điệp?
Trả lời:
- Thông điệp (message): Biểu diễn bởi một đường mũi tên hướng từ đối tượng gửi sang đối tượng nhận Những thông điệp này là thông tin liên lạc giữa các đối tượng truyền tải thông tin về hoạt động và có thể bao gồm số thứ tự.
- Các loại thông điệp:
● Thông điệp đồng bộ (synchronous message): Sự giao tiếp hai chiều, đối tượng gửi sẽ chờ đối tượng nhận phản hồi và sẽ không gửi thông điệp khác cho đến khi nhận được phản hồi Biểu diễn bởi một đường mũi tên ở đầu được tô đặc.
● Thông điệp không đồng bộ (asynchronous message): Sự giao tiếp một chiều, không chờ đối tượng nhận phản hồi và tiếp tục với hành động tiếp theo Biểu diễn bởi một đường mũi tên ở đầu không được tô đặc.
● Thông điệp trả về (return message): Thông điệp trả lời lại khi có request hoặc sau khi kiểm tra tính đúng đắn của một điều kiện nào đó.Biểu diễn bởi một đường mũi tên nét đứt ở đầu không được tô đặc.
● Thông điệp gọi chính nó (self-call message): Thông điệp mà đối tượng gửi cho chính nó để thực hiện các hàm nội tại.
● Thông điệp tạo mới (create message) ● Thông điệp huỷ (destroy message)
Câu 37: Nêu các thành phần chính trong biểu đồ tuần tự (sequence diagram) vàbiểu đồ giao tiếp (communication diagram)? Trình bày sự giống nhau và khác nhaugiữa hai loại biểu đồ này?
Trả lời:
Các thành phần chính trong bđtt
- Đối tượng (object): Biểu diễn bởi một hình chữ nhật.
- Đường sống (lifeline): Biểu diễn bởi một đường kẻ nối dài phía dưới đối tượng.
Trang 20- Khung tương tác (interaction frame):
- Các toán tử (operators) trong khung tương tác: + alt: Nhiều lựa chọn.
+ opt: Tùy chọn, chỉ thực hiện khi điều kiện được thoả mãn + par: Song song, mỗi khung chạy song song.
+ loop: Lặp lại, khung có thể thực hiện nhiều lần.
+ ref: Tham chiếu đến một tương tác khác, vẽ nối tiếp với các lifeline liên quan, có thể có tham số và giá trị trả về.
+ sd: Vẽ xung quanh một biểu đồ tuần tự nếu cần.
Các thành phần chính trong bđgt
- Actor: Tác nhân bên ngoài tương tác với hệ thống
- Object: Đối tượng tham gia quá trình tương tác giữa người dùng và hệ thống - Instance link
+ Biểu diễn liên kết giữa 2 đối tượng + Liên kết giữa actor và object + Liên kết giữa 2 object
- Message
+ Thông điệp mô tả tương tác giữa các đối tượng
+ Thông điệp được gửi từ đối tượng này sang đối tượng khác
So sánh
Giống nhau:
- Tương đương về ngữ nghĩa.
- Cùng đưa ra thông tin về sự tương tác giữa các đối tượng thông qua các thông điệp.
- Có thể chuyển đổi giữa hai loại biểu đồ mà không làm mất mát thông tin - Mô hình hoá khía cạnh động của hệ thống.
Trang 21+ Mô hình hóa trực quan hơn toàn bộ luồng thực thi (theo thời gian).
+ Thể hiện tốt hơn đối với các đặc tả thời gian thực và các kịch bản phức tạp Biểu đồ giao tiếp:
+ Chỉ ra mối quan hệ rõ ràng giữa các đối tượng + Thể hiện quá trình giao tiếp tốt hơn.
+ Mô hình hóa trực quan hơn tất cả các ảnh hưởng của đối tượng
+ Thể hiện rõ hơn hiệu quả của quá trình tương tác trên từng đối tượng.
+ Thông điệp có thể là 1 yêu cầu thực thi hệ thống, lời gọi hàm khởi tạo đối tượng, hủy đối tượng, cập nhật đối tượng,
Câu 38: Biểu đồ trình tự hệ thống (system sequence diagram) là gì? Biểu đồ trìnhtự hệ thống được sử dụng để làm gì?
Trả lời:
- Biểu đồ trình tự hệ thống, còn được gọi là SSD, thực sự là một loại phụ của sơ đồ tuần tự, phong cách và ký hiệu được ra lệnh bởi Ngôn ngữ mô hình thống nhất Ngôn ngữ này cung cấp một bộ công cụ cho người tạo sơ đồ để tạo và đọc các sơ đồ có thể hiểu được bất kể vị trí hoặc ngành nghề.
- Chức năng:
+ Biểu đồ trình tự hệ thống trình bày trình tự cho các trường hợp sử dụng cụ thể + Thường được vẽ cho các tình huống thành công chính của từng trường hợp sử dụng và mức độ thường xuyên hoặc các tình huống thay thế phức tạp
+ Được sử dụng làm đầu vào cho thiết kế đối tượng
Câu 39: Đề xuất biểu đồ tuần tự và biểu đồ giao tiếp cho ca sử dụng “Rút tiền” củahệ thống máy rút tiền tự động ATM?
Câu 40: Đề xuất biểu đồ tuần tự và biểu đồ giao tiếp cho ca sử dụng “Tìm kiếm sảnphẩm” của một website bán hàng?
Câu 41: Đề xuất biểu đồ trình tự hệ thống cho ca sử dụng “Đăng ký môn học” củahệ thống quản lý đăng ký môn học tại Học viện Kỹ thuật mật mã?
Câu 42: Biểu đồ lớp (class diagram) là gì? Vai trò của biểu đồ lớp? Nêu các bướcchính để xây dựng biểu đồ lớp?
Trả lời:
- Biểu đồ lớp là một loại sơ đồ cấu trúc tĩnh mô tả cấu trúc của hệ thống bằng cách hiển thị các lớp của hệ thống, thuộc tính, hoạt động của chúng và mối quan hệ giữa các đối tượng
- Vai trò của biểu đồ lớp
Biểu đồ lớp (Class diagram – CD) chỉ ra sự tồn tại của các lớp và mối quan hệ giữa chúng trong bản thiết kế logic của một hệ thống
Trang 22+ Chỉ ra cấu trúc tĩnh của mô hình như lớp, cấu trúc bên trong của chúng và mối quan hệ với các lớp khác.
+ Chỉ ra tất cả hoặc một phần cấu trúc lớp của một hệ thống + Không đưa ra các thông tin tạm thời.
- Các bước chính của mô hình hoá đối tượng + Xác định các lớp.
+ Xác định các liên kết giữa các lớp + Xác định các thuộc tính của các lớp.
+ Tổ chức và đơn giản hoá các lớp bằng cách sử dụng quan hệ tổng quát hoá + Loại bỏ các liên kết thừa.
+ Kiểm tra biểu đồ lớp đã bao gồm tất cả các yêu cầu của tài liệu hay chưa? + Lặp lại các bước trên và làm mịn mô hình.
Câu 43: Phạm vi truy cập (visibility) được sử dụng để làm gì? Mô tả ba phạm vitruy cập (public, private, protected) trong biểu diễn lớp trong UML? Lấy
ví dụ minh hoạ?
Trả lời:
- Phạm vi truy cập: được sử dụng để thực hiện khả năng đóng gói trong OOP - Phạm vi truy cập:
• Public: Mọi lớp đều nhìn thấy (+) • Private: Lớp khác không nhìn thấy (-)
• Protected: Các lớp kế thừa có thể nhìn thấy (#)
Câu 44: Bội số quan hệ (multiplicity) là gì? Trong biểu đồ lớp UML, các ràng buộcvà các ghi chú được sử dụng để làm gì? Lấy ví dụ minh hoạ?
Trang 23Bội số quan hệ là số thể hiện của một lớp liên quan tới một thể hiện của lớp khác.
Câu 45: 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ừngloại quan hệ?
Trả lời:
Association(liên kết)
- Một quan hệ ngữ nghĩa giữa hai hoặc nhiều lớp có mối liên hệ với nhau giữa các thể hiện của chúng.
- Một quan hệ cấu trúc, chỉ ra các đối tượng của lớp này có kết nối với các đối tượng của lớp khác hoặc chính lớp đó.
VD: “Một sinh viên có một lịch học”.
- Một liên kết giữa hai lớp chỉ ra rằng đối tượng ở một đầu của liên kết nhận ra đối tượng ở đầu kia và có thể gửi thông điệp
- Một dạng đặc biệt của liên kết.
- Mô hình hoá mối quan hệ toàn thể-bộ phận (whole-part) giữa đối tượng toàn thể và các bộ phận của nó.
- Mối quan hệ “là một phần của” (“is a part of”) - Ví dụ về quan hệ kết tập:
Hợp thành (composition)
- Một dạng đặc trưng 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 hai lớp.
- Whole là sở hữu duy nhất của Part, tạo và huỷ Part.
- Part bị bỏ khi Whole bị bỏ, Part không thể tồn tại nếu Whole không tồn tại.
Trang 24VD: Aggregation: Một Công ty có nhiều nhân viên Các nhân viên có thể thay đổi công ty làm việc.
Composition: Công ty có một số thuế Mã số thuế luôn gắn chặt với Công ty, khi Công ty bị giải thể thì mã số thuế cũng bị hủy theo.
Phụ thuộc (dependency)
- Một quan hệ ngữ nghĩa giữa hai lớp, trong đó sự thay đổi của lớp này 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ột sự liên kết rõ ràng.
Hoá đơn -> Hàng giảm
Tổng quát hóa (Generalization): Nghĩa là tập hợp những đặc tính giống nhau của các
đối tượng con để tạo ra lớp cha
Chuyên biệt hoá (Specialization): Nghĩa là quá trình phân nhóm và làm mịn dần
Câu 46: Phân biệt ba loại quan hệ (association, aggregation, composition) trong biểuđồ lớp UML? Lấy ví dụ minh hoạ?
Như trên
Câu 47: Giải thích các khái niệm (classifier, component, artifact, node)? Lấy ví dụminh hoạ cho từng khái niệm?
- Một chế tác (artifact) là một thành phần thực thi dạng vật lý, một phần thông tin được sử dụng hoặc được tạo ra trong quy trình phát triển phần mềm.
- Một nút (node) là một tài nguyên tại run-time, biểu diễn một thực thể vật lý của hệ thống (máy tính, bộ nhớ, thiết bị …).
Câu 48: Vẽ biểu đồ lớp dựa vào mô tả sau đây:
Những người quản lý thư viện mong muốn tự động hóa việc mượn sách Họ cần một phần mềm cho phép người sử dụng biết sách hiện có trong thư viện, có thể đặt mượn tối đa 2 quyển sách Ngoài ra, phần mềm còn cho phép những người tham gia mượn sách có thể biết sách nào trong thư viện đã bị mượn hoặc đã bị đặt mượn.
• Những người tham gia đặt mượn sách cần đăng ký một tài khoản để truy nhập hệ thống • Việc mượn sách được quản lý bởi các thủ thư Sau khi kiểm tra người tham gia mượn sách, thủ thư sẽ biết được người này có được phép mượn sách hay không (mỗi người có thể mượn tối đa 5 quyển sách) và người này có được ưu tiên mượn sách hay không (đã đặt mượn sách trên hệ thống).
Trang 25Câu 49: Trong kỹ thuật phần mềm, triệu chứng (symptom) là gì? Nêu một số triệuchứng điển hình của vấn đề phát triển phần mềm? Giải pháp khắc phục nhữngtriệu chứng điển hình đó là gì?
Trả lời:
- Trong kỹ thuật phần mềm, triệu chứng là biểu hiện về sự tồn tại các vấn đề xấu trong vòng đời phát triển phần mềm.
- Các triệu chứng điển hình: • Yêu cầu không được đáp ứng • Yêu cầu thay đổi quá nhanh • Các mô-đun không lắp ghép được.
Câu 50: RUP (Rational Unified Process) là gì? Mô tả các pha (Inception,Elaboration, Construction, Transition) của quy trình RUP?
- RUP được mô tả từ 3 khung nhìn:
• Khung nhìn động -> chỉ ra các pha của mô hình RUP theo chiều thời gian • Khung nhìn tĩnh -> chỉ ra các hoạt động trong quy trình RUP.
• Khung nhìn thực tiễn -> đề xuất bộ kinh nghiệm thực hành tốt được sử dụng trong quy trình RUP.
- Các pha của quy trình phát triển RUP (tt.)
+ Pha khởi đầu (Inception): Định nghĩa phạm vi, xác định tất cả các tác nhân và các ca sử dụng có thể có, đánh giá các ca sử dụng nào là cần thiết nhất Sau đó, phát triển một bản kế hoạch để nghiên cứu, đánh giá tính khả thi (sự đóng góp mà hệ thống có thể tạo ra cho doanh nghiệp, sự phù hợp về kinh phí phát triển )
+ Pha chi tiết (Elaboration): Phát triển khâu nắm bắt yêu cầu, thiết lập một khung kiến trúc cho hệ thống và xác định các rủi ro chính Đầu ra của pha này là một mô hình yêu cầu cho hệ thống, một tài liệu mô tả kiến trúc và một bản kế hoạch phát triển phần mềm + Pha xây dựng (Construction): Thiết kế hệ thống, lập trình và kiểm thử Các thành phần của hệ thống được phát triển song song và được tích hợp trong pha này Đầu ra của pha này là một hệ thống phần mềm chạy được và các tài liệu liên quan.
+ Pha chuyển giao (Transition): Bàn giao hệ thống tới người dùng cuối, hỗ trợ cài đặt và sử dụng.
Câu 51: Mô tả luồng công việc của quy trình RUP và bộ kinh nghiệm thực hành củaRUP?
Trang 26- Luồng công việc của quy trình RUP:
+ Mô hình hóa nghiệp vụ (Business Modeling): các quy trình nghiệp vụ được mô hình hóa bằng cách sử dụng các trường sử dụng nghiệp vụ.
+ Yêu cầu (Requirement): định nghĩa những gì hệ thống cần làm
+ Phân tích và thiết kế (Analysis and Design): chỉ ra làm thế nào các ca sử dụng của hệ thống được cài đặt.
+ Cài đặt (Implementation): mã hóa các thành phần phần mềm đáp ứng bộ tiêu chí chất lượng.
+ Kiểm thử (Testing): tích hợp và kiểm tra hệ thống.
+ Triển khai (Deployment): cung cấp sản phẩm phần mềm đến tay người sử dụng.
+ Quản lý thay đổi và cấu hình (Configuration and change management): hỗ trợ quản lý thay đổi đối với hệ thống.
+ Quản lý dự án (Project management): đảm bảo tất cả các công việc được lên lịch, quản lý việc phát triển hệ thống.
+ Môi trường (Enviroment): quản lý môi trường mà hệ thống được phát triển trên đó.
- Bộ kinh nghiệm thực hành của RUP:
+ Phát triển phần mềm + Quản lý các yêu cầu
+ Sử dụng kiến trúc dựa trên thành phần + Mô hình hóa trực quan phần mềm + Kiểm tra chất lượng phần mềm
+ Kiểm soát các thay đổi đối với phần mềm
Câu 52: Nêu mục đích của câu mô hình hóa nghiệp vụ?
TL:
Mục đích: thu thập các thông tin hoạt động cụ thể nhằm sinh ra các tài liệu: mô hình ca sử dụng-use case-nghiệp vụ, các đặc tả nghiệp vụ bổ sung, mô hình nghiệp vụ, các trường hợp sử dụng nghiệp vụ, thực hiện của ca sử dụng, các thực tế nghiệp vụ, các thao tác, tổ chức các đơn vị.
Trang 27Câu 53: Mô hình miền là gì? Vai trò của mô hình miền? Các bước để tạo mô hìnhmiền?
Câu 57: Mục đích của khâu nắm bắt yêu cầu? Tại sao cần phải nắm bắt yêu cầu khixây dựng các hệ thống thông tin? Nêu các chế tác chính của khâu nắm bắt yêu cầu?
- Mục đích của khâu nắm bắt yêu cầu:
+ Thiết lập và duy trì những thỏa thuận với khách hàng và các bên liên quan về những gì hệ thống phải thực hiện.
+ Giúp các nhà phát triển hệ thống hiểu rõ về những yêu cầu đặt ra cho hệ thồng + Xác định giới hạn của hệ thống.
+ Cung cấp cơ sở để lập kế hoạch cho những lần lặp.
+ Cung cấp cơ sở để ước tính chi phí và thời gian phát triển hệ thống.
+ Định hình giao diện tương tác giữa người dùng và hệ thống, qua đó làm rõ yêu cầu của người dùng đối với hệ thống.
- Tại sao cần phải nắm bắt yêu cầu:
+ Nó giúp ta tìm ra giải pháp đúng cho hệ thống phần mềm cần thiết
+ Thu thập và xác định yêu cầu sai -> hệ thống phát triển sai, không đáp ứng được mong đợi của khách hàng
+ Trong mô hình hóa nghiệp vụ: cung cấp ngữ cảnh để xác định và phân tích các yêu cầu; hiểu chính xác về quy trình nghiệp vụ.
- Các chế tác chính của khâu nắm bắt yêu cầu:
Trang 28- Mục đích: làm rõ thực trạng của hệ thống hiện thời -> chỉ ra được lý do và động lực chính để phát triển hệ thống.
- Nội dung: bao gồm các àng buộc khác nhau đặt ra cho hệ thống : ràng buộc về kỹ thuật, ràng buộc về thời gian, ràng buộc về nguồn lực,…
Câu 59: Hành vi hệ thống là gì? Hành vi hệ thống được nắm bắt trong mô hình nào?
- Hành vi hệ thống là cách một hệ thống hoạt động và phản ứng - Hành vi hệ thống được nắm bắt trong mô hình ca sử dụng.
Câu 60: Mô hình ca sử dụng là gì? Hai chế tác chính của mô hình này? Vai trò?Làm thế nào để kiểm tra mô hình ca sử dụng?
+ Diễn đạt các hành vi của hệ thống cần phát triển - Cách kiểm tra mô hình ca sử dụng:
+ Mô hình ca sử dụng có dễ hiểu?
+ Thông qua mô hình ca sử dụng: có ý tưởng rõ ràng về chức năng của hệ thống? các chức năng của hệ thống có liên quan đến nhau?
+ Tất cả các yêu cầu chức năng đã được đáp ứng + Mô hình ca sử dụng có chứa hành vi thừa?
Câu 62: Kịch bản là gì? Sự khác nhau giữa kịch bản và ca sử dụng? Đưa ra kịchbản của 1 ca sử dụng cụ thể?
TL:
Trang 29- Kịch bản là một thể hiện của ca sử dụng, mỗi ca sử dụng có 1 kịch bản tương ứng với một thể hiện của 1 luồng các sự kiện cụ thể, kịch bản có thể liên quan đến các luồng sự kiện chính và bất cứ luồng các sự kiện thay thế nào
- Sự khác nhau giữa kịch bản và ca sử dụng:
+ Ca sử dụng liên quan đến 1 tác nhân và dòng chảy mà một tác nhân cụ thể thực hiện 1 chức năng hoặc đường dẫn cụ thể
+ Kịch bản liên quan đến một tình hống mà phải mất 1 chức năng nhất định hoặc đường dẫn đến giải quyết tình huống
VD: Kịch bản của UC Đặt mượn sách - Hệ thống hiển thị 1 thông điệp chào mừng - Người dùng chọn chức năng mượn sách - Hệ thống yêu cầu người dùng đăng nhập - Người dùng đăng nhập
- Hệ thống yêu cầu chọn sách cần đặt mượn - Người dùng chọn sách cần mượn
- Hệ thống chuyển trạng thái sách đó thành đã mượn.
Câu 66: Mục đích của khâu phân tích và thiết kế hệ thống? Tại sao cần phải phântích và thiết kế hệ thống? Nêu đầu vào và các chế tác đầu ra của khâu này?
TL:
- Mục đích: thiết lập 1 cách nhìn tổng quan rõ ràng về hệ thống và các mục đích chính của hệ thống cần xây dựng: liệt kê các nhiệm vụ mà hệ thống cần thực hiện, phát triển 1 bộ từ vựng để mô tả bài toán cũng như những vấn đề liên quan và đưa ra hướng giải quyết bài toán.
- Cần phải phân tích và thiết kế hệ thống vì đây là giai đoạn chuyển những yêu cầu từ khách hàng thành phần mềm máy tính Đây là giai đoạn quan trọng nhất trong tiến trình phát triển phần mềm, nó quyết định vòng đời của hệ thống.
- Đầu vào: bản đặc tả yêu cầu
- Đầu ra: thiết kế tổng thể, thiết kế module và CSDL.
Câu 67: Sự khác nhau giữa hoạt động phân tích và thiết kế? Nêu luồng công việctrong hoạt động phân tích và thiết kế?
Trang 30- Phân tích: xác định các thông tin và chức năng xử lý của hệ thống - Thiết kế: dựa vào phân tích để thiết kế tổng thể, các module, CSDL.
Câu 68: Tại sao cần kĩ thuật phân tích và thiết kế hướng đối tượng?
- Vì phân tích và thiết kế theo hướng đối tượng giúp:
+ Chuyển các yêu cầu của bài toán thành 1 bản thiết kế của hệ thống sẽ được xây dựng + Đảm bảo mục đích và các yêu cầu của hệ thống phải được tài liệu hóa 1 cách hợp lý trước khi bắt đầu xây dựng hệ thống
+ Tập trung vào quá trình phân tích các yêu cầu của hệ thống và thiết kế các mô hình cho hệ thống trước giai đoạn lập trình
Câu 69: Phân tích hướng đối tượng là gì? Nêu các hoạt động chính trong giai đoạnphân tích hướng đối tượng?
- 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 + 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
Trang 31Câu 70: Thiết kế hướng đối tượng là gì? Thiết kế hướng thủ tục thường gặp phảinhững vấn đề gì? Ưu điểm của thiết kế hướng đối tượng? Các hoạt động chínhtrong giai đoạn thiết kế hướng đối tượng?
- 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
- Vấn đề gặp phải khi thiết kế hướng thủ tục: + Dữ liệu là chung cho cả hệ thống
+ Thay đổi cấu trúc dữ liệu dẫn đến thay đổi tổng thể hệ thống + Hệ thống lớn, phức tạp -> khó bảo trì
- Ưu điểm của thiết kế hướng đối tượng:
+ Dễ bảo trì: Các đối tượng xem như là các thực thể hoạt động độc lập ● Đóng gói thông tin
● Liên kết lỏng lẻo
+ Có khả năng tái sử dụng: tính độc lập cao, có khả năng kế thừa
+ Dễ hiểu: có sự ánh xạ tường minh giữa thực thể thế giới thực và đối tượng hệ thống - Các hoạt động chính trong giai đoạn thiết kế hướng đối tượng:
+ Thiết kế các hệ thống con
+ Thiết kế các lớp thiết kế và các đối tượng
+ Thiết kế thông điệp, mối liên hệ giữa các đối tượng
Trang 32- Trách nhiệm:
+ Xác định các yếu tố ảnh hưởng đến cấu trúc của ứng dụng
+ Đưa ra cáu trúc của hệ thống nhưng ẩn các chi tiết triển khai của nó + Nhận ra tất cả các trường hợp sử dụng và tình huống sử dụng + Cố gắng giải quyết các yêu cầu của các bên liên quan khác nhau + Xử lý các yêu cầu về chức năng và chất lượng
+ Giảm mục tiêu sở hữu và nâng cao vị thế thị trường của tổ chức + Cải thiện chất lượng và chức năng do hệ thống cung cấp
+ Cải thiện niềm tin bên ngoài tổ chức hoặc hệ thống - Vai trò:
+ Chuyên môn thiết kế: lãnh đạo nhóm phát triển và điều phối các nỗ lực phát triển vì tính toàn vẹn, xem xét các đề xuất thiết kế
+ Chuyên môn về miền: hỗ trợ trong quá trình điều tra yêu cầu, đảm bảo tính đầy đủ và
+ Tạo điều kiện thuận lợi cho công việc kĩ thuật giữa các thành viên trong nhóm và củng cố mối quan hệ tin cậy trong nhóm
+ Chuyên gia thông tin chia sẻ kiến thức và có nhiều kinh nghiệm
+ Bảo vệ các thành viên trong nhóm khỏi các lực lượng bên ngoài có thể làm họ mất tập trung và mang lại ít giá trị hơn cho dự án
Câu 72: 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:
Trang 33+ 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 Nhiều gói có thể được kết hợp với nhau để trở thành một hệ thống con
Câu 86: Các biểu đồ tương tác được tạo ra như thế nào trong hoạt động phân tíchca sử dụng?
Câu 88: Giao diện (interface) là gì? Nêu vai trò (tầm quan trọng) của giao diện? Sựkhác nhau giữa giao diện và lớp trừu tượng (abstract class) là gì? Nêu các bướcchính trong hoạt động thiết kế giao diện?
- Giao diện là sự mô tả hành vi của các đối tượng mà không đề cập đến phần cài đặt và trạng thái của các đối tượng.
- Vai trò:
+ Là cầu nối giao tiếp giữa con người và máy tính
+ Góp phần quyết định đến hiệu quả khai thác chương trình ứng dụng + Giao diện tốt, rõ ràng, sáng sủa, phù hợp -> gia tăng hiệu quả khai thác
Trang 34* Sự khác nhau giữa giao diện và lớp trừu tượng:
Câu 89: Hệ thống con (subsystem) là gì? Sự khác nhau giữa hệ thống con và gói làgì? Nêu mục đích của việc thiết kế các hệ thống con?
TL:
Trang 35- Hệ thống con là một phần tử mô hình, chứa các phần tử mô hình khác và lớp, do đó có hành vi.
- Sự khác nhau giữa hệ thống con và gói:
+ Hệ thống con: cung cấp interface mà các hành vi ben trong nó có thể được truy cập; nội dung và hành vi bên trong có thể thay đổi, chỉ cần giao diện không đổi
+ Gói: chứa những gì có hành vi, chỉ dùng cho việc tổ chức mô hình và quản lý cấu hình; không thể thay thế các gói cho nhau.
- Mục đích: tinh chỉnh các lớp phân tích thành các phần tử của mô hình thiết kế phù hợp - Các bước chính trong hoạt động thiết kế các lớp:
+ Xác định các phương thức cho mỗi lớp
+ Xác định giá trị trả về và các tham số liên qun với phương thức + Xác định mối quan hệ giữa các lớp
Câu 95: Làm thế nào để xác định hai lớp thiết kế có liên quan với nhau về mặt chứcnăng?
TL:
- Dựa vào các động từ có trong kịch bản:
● Association nếu các động từ trong tương tác giữa các lớp thể hiện một sự thay thế, đại diện, sự bao hàm, sự giao tiếp, sự sở hữu hay yêu cầu t/m điều kiện nào đó.
Trang 36● Generalization nếu một lớp này là khái quát hoá của lớp kia ● Dependency nếu hoạt động của lớp này quyết định lớp kia.
● Aggregation nếu có các động từ trong tương tác giữa hai lớp như được tạo thànhtừ, bao gồm…
Câu 96: Ưu điểm của kế thừa? Mộ số vấn đề khi sử dụng cơ chế kế thừa?
- Ưu điểm:
+ Tăng khả năng tái sử dụng + Nâng cao độ tin cậy
+ Giảm chi phí phát triển và bảo trì
+ Các lớp con sẽ tuân thủ theo 1 giao diện
+ Hạn chế sự dư thừa mã và hỗ trợ khả năng mở rộng mã - 1 số vấn đề gặp phải:
+ Các chức năng được kế thừa hoạt động chậm hơn chức năng bình thường + Các dữ liệu thành viên trong lớp cha không được sử dụng ->lãng phí bộ nhớ + Thay đổi trong lớp cha sẽ ảnh hưởng đến tất cả các lớp con
Câu 97: Mục đích của việc thiết kế ca sử dụng (use-case design) là gì?
- Mục đích:
+ Biểu diễn những chức năng mà hệ thống cần làm
+ Giải thích và ghi lại sự tương tác cần thiết giữa người dùng và hệ thống để hoàn thành tác vụ của người dùng
+ Biết được hành vi của hệ thống mà không cần xác định hành vi được thực hiện ntn + Giúp người phát triển hiểu rõ hơn những gì mà khách hành và người sử dụng chờ đợi + Lấy các yêu cầu chức năng chi tiết hơn cho hệ thống mới
Trang 37Câu 100: Nêu ưu nhược điểm của việc kết hợp các gói? Một số nguyên tắc chungcủa việc kết hợp các gói là gì?
Đề thi
Câu 1: Nêu 4 nguyên tắc chính của mô hình hóa đối tượng? Nêu ví dụ? Tại sao cầnphải mô hình hóa trong quá trình phân tích và thiết kế hệ thống thông tin?
* 4 nguyên tắc chính trong mô hình hóa hướng đối tượng: - Sự trừu tượng hóa:
+ Các thực thể phần mềm được mô hình hóa dưới dạng các đối tượng
+ Các đối tượng trừu tượng hóa ở mức cao hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp
+ Các lớp được trừu tượng hóa ở mức cao hơn nữa để tạo thành 1 sơ đồ các lớp được kế thừa lẫn nhau Có thể tồn tại những lớp không có đối tượng tương ứng gọi là lớp trừu tượng
VD:
- Tính đóng gói:
+ Che giấu mọi chi tiết hiện thực của đối tượng không cho bên ngoài thấy và truy xuất=>tính độc lập cao giữa các đối tượng
+ Cho phép che giấu sự cài đặt bên trong các phương thức + Cho phép che giấu dữ liệu bên trong các đối tượng
+ Cho phép giảm thiểu việc viết lại mã nguồn chương trình
VD: Khi bị bệnh chúng ta đến bệnh viện khám Bác sĩ chẩn đoán là bị cảm cúm, kê đơn thuốc Trong đơn thuốc coa danh sách các loại thuốc, liều lượng, thời gian uống Đọc đơn thuốc chúng ta chỉ biết trong đơn có những loại thuốc gì, liều lượng như thế và uống ra sao Nếu uống uống loại thuốc, đúng liều lượng, đúng thời gian thì sẽ khỏi bệnh Còn cụ thể bên trong thuốc có những thành phần nào , tại sao liều lượng lại như vậy, tại sao phải uống trong khoảng thời gian đó thì chúng ta hoàn toàn không biết được.
- Tính mô-đun hóa: các bài toán sẽ được phân chia thành những vấn đề nhỏ hơn, đơn giản và quản lý được
VD: Một hệ thống lớn như hệ thống đăng kí học, Chúng ta có thể chia thành các mô-đun nhỏ hơn như: hệ thống thanh toán, hệ thống danh mục môn học, hệ thống quản lý sinh viên,…
- Sự phân cấp: cấu trúc chung của một hệ thống hướng đối tượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp
VD:
Trang 38* Cần phải mô hình hóa trong quá trình phân tích và thiết kế hệ thống thông tin vì: - Có thể 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 hóa hệ thống
- Hiểu rõ hơn về hệ thống cần phát triển
Câu 2: Một hiện thực hóa ca sử dụng là gì? Trong thiết kế hướng đối tượng, mụcđích của hoạt động thiết kế các lớp là gì và ta phải làm mịn bằng cách nào? Trìnhbày cách xác định 2 lớp có liên quan chức năng với nhau?
- Một hiện thực hóa ca sử dụng là: quan hệ giữa use case và hợp tác hiện thực
- Mục đích của việc thiết kế các lớp: tinh chỉnh các lớp phân tích thành các phần tử của
+ Association nếu các động từ trong tương tác giữa các lớp thể hiện một sự thay thế, đại diện, sự bao hàm, sự giao tiếp, sự sở hữu hay yêu cầu t/m điều kiện nào đó.
+ Generalization nếu một lớp này là khái quát hoá của lớp kia + Dependency nếu hoạt động của lớp này quyết định lớp kia.
+ Aggregation nếu có các động từ trong tương tác giữa hai lớp như được tạo thành từ, bao gồm…
Câu 3: Ngôn ngữ mô hình hóa thống nhất UML có những loại biểu đồ nào? Trìnhbày các khái niệm cơ sở để xác định 2 loại biểu đồ sau: biểu đồ use case (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ớp có cấu trúc,tương tác, thông điệp)
- Ngôn ngữ mô hình hóa UML có những loại biểu đồ sau: ca sử dụng, lớp, trạng thái, hoạt động, triển khai, đối tượng, tuần tự, giao tiếp, thành phần
- Biểu đồ use case:
+ Actor: mô tả sự tương tác giữa người dùng với hệ thống trong một môi trường cụ thể và vì mục đích cụ thể Một actor có thể thực hiện nhiều use case và ngược lại, một use case có thể được thực hiện bởi nhiều tác nhân.
Trang 39+ Các quan hệ:
<>Quan hệ kết hợp (Association): là loại quan hệ giữa actor và UC, mũi tên cho biết ai là ngwoif khởi xướng giao tiếp
<>Quan hệ include: mô tả việc một UC lớn được chia ra thành các UC nhỏ để dễ cài đặt hoặc thể hiện sự dừng lại
<>Quan hệ extend: là mối quan hệ mở rộng giữa các UC với nhau Extend là mối quan hệ không bắt buộc Nó thể hiện mối quan hệ có thể có hoặc có thể không giữa các UC với nhau
<>Quan hệ generalization (kế thừa): được sử dụng để thể hiện quan hệ thừa kế giữa các actor hoặc giữa các UC với nhau
- Biểu đồ tương tác:
+ Thông điệp: là sự giao tiếp một chiều giữa hai đối tượng ở dạng luồng điều khiển cùng với các thông tin đính kèm (có thể có các tham số) từ bên gửi đến bên nhận
+ Tương tác: xác định 1 sự tương tác giữa các đối tượng, biểu diễn một ngữ cảnh bao gồm các vai trò và các phần tử tương tác với nhau để cung cấp hành vi tương tác lớn hơn + Đối tượng: sử dụng tên đối tượng, tên lớp hay cả hai
Câu 4: Kiến trúc phần mềm là gì? Trong phân tích hướng đối tượng, mục đích củahoạt động phân tích kiến trúc là gì và bao gồm những bước nào? Trình bày mô hìnhkiến trúc “Khung nhìn 4+1”
- Kiến trúc phần mềm là mô tả các thành phần chính của nó, các mối quan hệ của các thành phần và cách chúng tương tác với nhau.
- Khung nhìn 4+1:
+ Khung nhìn UC: đây là khung nhìn chỉ ra khía cạnh chức năng của một hệ thống, nhìn từ hướng tác nhân bên ngoài
+ Khung nhìn logic: chỉ ra chức năng sẽ được thiết kế bên trong hệ thống ntn, qua các khái niệm về cấu trúc tĩnh cũng như ứng xử động của hệ thống
+ Khung nhìn thành phần: chỉ ra khía cạnh tổ chức của các thành phần code
+ Khung nhìn song song: chỉ ra sự tồn tại song song trùng hợp trong hệ thống, hướng đến vấn đề giao tiếp và đồng bộ hóa trong hệ thống
+ Khung nhìn triển khai: chỉ ra khía cạnh triển khai hệ thống vào các kiến trúc vật lý.
Câu 5: Trong phân tích hướng đối tượng, hoạt động phân tích ca sử dụng hướngđến những mục đích nào ? Lớp phân tích kiến trúc là gì và bao gồm những bướcnào Trình bày mô hình kiến trúc “khung nhìn 4+1”?
TL:
Trang 40- Mục đích của hoạt động ptich ca sử dụng:
+ Đóng vai trò như một bản hợp đồng giữa bên phát triển hệ thống và khách hàng + Được sử dụng trong tất cả các giai đoạn của quy trình phát triển hệ thống.(Giao tiếp, Xác định, Kiểm chứng)
• Khách hàng phải phê duyệt biểu đồ ca sử dụng.
• Bên phát triển hệ thống sử dụng biểu đồ ca sử dụng để thảo luận với khách hàng.
• Các bên liên quan đến dự án sẽ hiểu rõ hơn về hệ thống thông qua biểu đồ ca sử dụng.
- Khung nhìn 4+1:
+ Khung nhìn UC: đây là khung nhìn chỉ ra khía cạnh chức năng của một hệ thống, nhìn từ hướng tác nhân bên ngoài
+ Khung nhìn logic: chỉ ra chức năng sẽ được thiết kế bên trong hệ thống ntn, qua các khái niệm về cấu trúc tĩnh cũng như ứng xử động của hệ thống
+ Khung nhìn thành phần: chỉ ra khía cạnh tổ chức của các thành phần code
+ Khung nhìn song song: chỉ ra sự tồn tại song song trùng hợp trong hệ thống, hướng đến vấn đề giao tiếp và đồng bộ hóa trong hệ thống
+ Khung nhìn triển khai: chỉ ra khía cạnh triển khai hệ thống vào các kiến trúc vật lý.
Câu 6: Trong khung nhìn tĩnh, biểu đồ lớp dùng để làm gì? Trình bày các loại quanhệ trong khung nhìn tĩnh? VD?
- Vai trò của biểu đồ lớp
Biểu đồ lớp (Class diagram – CD) chỉ ra sự tồn tại của các lớp và mối quan hệ giữa chúng trong bản thiết kế logic của một hệ thống
+ Chỉ ra cấu trúc tĩnh của mô hình như lớp, cấu trúc bên trong của chúng và mối quan hệ với các lớp khác.
+ Chỉ ra tất cả hoặc một phần cấu trúc lớp của một hệ thống + Không đưa ra các thông tin tạm thời.
Câu 7: Thiết kế hdt là gì? Các hoạt động chính? Trình bày 3 đặc trưng của qt pháttriển hệ thống thông tin theo phương pháp hướng đối tượng định hướng bởi các casử dụng, phân tích và thiết kế lấy kiến trúc làm trung tâm, tiếp cận lặp, tiếp cận lặpvà gia tăng?
TL:
- 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