1. Trang chủ
  2. » Công Nghệ Thông Tin

Full phân tích thiết kế hệ thống thông tin (KMA)

208 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Full Phân Tích Thiết Kế Hệ Thống Thông Tin (KMA)
Định dạng
Số trang 208
Dung lượng 6,63 MB

Nội dung

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 1

Câ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ộtthể 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, đầuvà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ác nhau 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ài

nguyê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

- Phân loại:

Các hệ thống điều khiển:

Các hệ cơ sở tri thứcCác hệ thống quản lýCác hệ thống chiến lược

- Thành phần

Thông tinPhương pháp xử lí thông tinCon người

- Các bước chính phát triển hệ thống trong thực tiễn:

Trang 2

Câ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ống thô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ấu trú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ận phá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 đối tượ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 nhauthô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ùngchung 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ống thô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ố khungnhì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ọc tạ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ện

Kỹ 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ớiquan 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ầnphả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ậpcá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ó quan

hệ 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ữa thao tác và phương thức (method) là gì?

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ácloạ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ụngdù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 truycậ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

• 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 đốitượ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ượnghoá

Câu 13: Tính đa hình (polymorphism) là gì? Đưa ra một ví dụ minh hoạ về tính đa hì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ọcsinh đồ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ộtngườ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 quan

hệ 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ặchà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ườidù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ủa UML? Ngôn ngữ mô hình hoá UML có thể được sử dụng trong những trường hợp nà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

Trang 7

biể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 (khungnhì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ìnmá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áctrê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ụ minh hoạ?

Trang 9

câ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ực hiệ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ốngvà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ủauser

• 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ênquan) để 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.(Giaotiế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ớikhá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ủa

hệ 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 11

Loạ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ácnhâ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 đượchợ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ụngmối quan hệ tổng quát hoá để mô hình hoá hành vi tổng quát của

chúng

+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ênweb 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 đượcmộ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ấtchú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ệt

ba 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”

Trang 13

Câ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índụ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ới những chức năng cơ bản nhất?

Trang 14

Câ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ọc việ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 15

Câu 28: Nút hoạt động (activity) là gì? Làn bơi (swimlane) được sử dụng để làm gì?

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, Đăngnhậ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ể Đăngnhập

Anh/chị hãy vẽ biểu đồ hoạt động dựa vào mô tả trên?

Trang 16

Câu 30: Đề xuất biểu đồ hoạt động mô hình hoá quy trình “Đặt mua sách trên mạng”?

Trang 18

Câ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ột khá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

Câu 35: Biểu đồ tương tác (interaction diagram) là gì? Vai trò của biểu đồ tương tá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 đốitượng Biểu đồ tương tác được thiết kế để hiển thị cách các đối tượng thực hiệncá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ảithô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 đượcphả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ởimộ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 saukhi 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 chochí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 nhau giữ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 đốitượ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ình

tự 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ốngnhất Ngôn ngữ này cung cấp một bộ công cụ cho người tạo sơ đồ để tạo và đọccá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ủa

hệ 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ản phẩ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ủa

hệ 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ước chí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áchhiể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ữachú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

+ 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 vi truy 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ộc

và các ghi chú được sử dụng để làm gì? Lấy ví dụ minh hoạ?

Trang 23

Bộ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ừng loạ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ùngkhớ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 24

VD: 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

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ạ?

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ộtphầ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ượnsá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 25

Câu 49: Trong kỹ thuật phần mềm, triệu chứng (symptom) là gì? Nêu một số triệu chứ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ững triệ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ấutrong 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

- 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 quytrì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 chodoanh 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ếntrú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êucầ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ầncủ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 phanà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ủa RUP?

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ìnhhó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ấtlượ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ườnghợ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 27

Câ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ình miền?

TL:

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 khi xâ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?

TL:

- 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ủangườ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ựcchí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?

TL:

- 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ácchứ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ịch bả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ớimộ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

- 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ân tí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ínhcủ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ảiquyế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ìnhphá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ệc trong 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?

TL:

- 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

- 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 31

Câ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ải những vấn đề gì? Ưu điểm của thiết kế hướng đối tượng? Các hoạt động chính trong giai đoạn thiết kế hướng đối 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

- 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

+ 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ậptrung 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?

TL:

- 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

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ích

ca sử dụng?

TL:

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ước chính trong hoạt động thiết kế giao diện?

TL:

- 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ộidung 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ức nă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ành

từ, 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?

TL:

- Ư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ì?

TL:

- 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ànhtá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 37

Câ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 chung của việc kết hợp các gói là gì?

* 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ươngthứ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

+ 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ê đơnthuố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 đơnthuố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 rasao 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ảiuố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ô-đunnhỏ 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ý sinhviê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 theocá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ình bày cách xác định 2 lớp có liên quan chức năng với nhau?

TL:

- 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

+ 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

- 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ượclại, một use case có thể được thực hiện bởi nhiều tác nhân

Trang 39

<>Quan hệ generalization (kế thừa): được sử dụng để thể hiện quan hệ thừa kế giữa cácactor hoặc giữa các UC với nhau

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ủa hoạ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ình kiến trúc “Khung nhìn 4+1”

TL:

- 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ácthà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áckhá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 đếnvấ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ước nà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.(Giaotiế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ớikhá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 đồ

+ 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ậtlý

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 quan

hệ trong khung nhìn tĩnh? VD?

TL:

- 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ữachú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át triển hệ thống thông tin theo phương pháp hướng đối tượng định hướng bởi các ca

sử 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ặp

và 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

Ngày đăng: 20/04/2024, 20:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w