Tải bản đầy đủ (.docx) (12 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (219.52 KB, 12 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>Câu 1. Mơ hình là gì? Lý giải tại sao cần mơ hình hố? Anh/chị hãy trình bày bốn ngun tắc cơ bản khi mơ hình hoả? </b>

<i><b>- Mơ hình là sự trừu tượng hóa của một hệ thống từ quan điểm cụ thể , nó mô tả hệ thống hoặc </b></i>

thực thể ở mức độ chính xác và quan điểm đã chọn - Tại sao phải mơ hình hố?

+ 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.

<i><b>- Bốn nguyên tắc cơ bản khi mô hình hóa là:</b></i>

- Việc lựa chọn mơ hình đóng vai trò quan trọng

+ Trong phát triển phần mềm, các mơ hình được chọn bị ảnh hưởng từ thế giới quan. Mỗi thế giới quan dẫn đến một loại hệ thống riêng biệt

- Mỗi mơ hình mơ tả hệ thống với mức độ chính xác khác nhau

+ Việc lựa chọn mức độ chi tiết phụ thuộc: Ai đang xem mơ hình? Tại sao cần phải xem mơ hình?...

- Các mơ hình tốt nhất là các mơ hình liên kết với thế giới thực

+ Tất cả các mơ hình đều là q trình đơn giản hóa thế giới thực + Một mơ hình tốt sẽ phản chiếu các đặc tính bất thường tiềm ẩn - Khơng có một mơ hình đơn lẻ nào là đủ

+ Cách tiếp cận tốt nhất để xây dựng một hệ thống phần mềm là thông qua một tập các mơ hình gần như độc lập với nhau.

<b>Câu 2: Phân tích hướng đối tượng là gì? Anh/ chị hãy nêu các bước chính trong hoạt động phân tích kiến trúc và hoạt động phân tích ca sử dụng? Các chế tác input và output của hoạt động phân tích kiến trúc và hoạt động phân tích ca sử dụng là gì? (2 điểm)</b>

<i><b>- 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: </b></i>

+ 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 u cầu

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

+ Xác định các thuộc tính và phương thức của mỗi lớp + Định nghĩa cấu trúc và phân cấp tổ chức các lớp + Xây dựng mơ hình quan hệ đối tượng

+ Xây dựng mơ hình hành vi đối tượng

+ Xem xét lại mơ hình phân tích hướng đối tượng với các u cầu và các chuẩn

<i><b>- Các chế tác input và output của hoạt động phân tích kiến trúc và phân tích ca sử dụng nhưsau:</b></i>

- Chế tác input cho hoạt động phân tích kiến trúc: + Thiết kế hoặc mơ hình kiến trúc hệ thống + Các tài liệu liên quan đến yêu cầu hệ thống - Chế tác output cho hoạt động phân tích kiến trúc:

+ Lược đồ kiến trúc hệ thống + Bản tóm tắt kiến trúc hệ thống

+ Bảng liệt kê các tính năng và yêu cầu của hệ thống - Chế tác input cho hoạt động phân tích ca sử dụng:

+ Các tài liệu liên quan đến yêu cầu của người dùng + Mô tả công việc mà hệ thống cần hỗ trợ

+ Mô tả các kịch bản sử dụng của người dùng - Chế tác output cho hoạt động phân tích ca sử dụng:

+ Lược đồ ca sử dụng

+ Bản tóm tắt các ca sử dụng chính của hệ thống

+ Bảng liệt kê các chức năng cần thiết để hỗ trợ các ca sử dụng

<b>Câu 3: UML (Unified Modeling Language) là gì? UML có thể được sử dụng trong những trường hợp nào? Anh/ chị hãy trình bày vai trò của biểu đồ tương tác (interaction </b>

<b>diagram) và biểu đồ hoạt động (activity diagram)? </b>

<i><b>- UML (Unified Modeling Language) là một ngơn ngữ mơ hình hố trực quan và mang tính </b></i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<i><b>- UML có thể được sử dụng cho : </b></i>

+ Mơ hình hóa, đặc tả, biểu diễn , xây dựng, tài liệu hóa các chế tác của một hệ thống phần mềm. Ngồi ra cịn được dùng để mơ hình hóa các hệ thống phi phần mềm như luồng cơng việc hay hoạt động phân tích thiết kế hệ thống

<i><b>- Vai trị của biểu đồ tương tác: </b></i>

+ Mơ hình hóa phương diện động của hệ thống, mơ tả tương tác giữa các đối tượng + Thường dùng để mơ tả kịch bản của use case.

- Vai trị của biểu đồ hoạt động:

+ Mô tả các hoạt động và các hành động được thực hiện trong một usecase

<b>Câu 4: Thiết kế hướng đối tượng là gì? Anh/ chị hãy nêu các hoạt động chính trong thiết kế hướng đối tượng? Mục đích của hoạt động xác định các cơ chế thiết kế là gì? Nêu một vài cơ chế thiết kế phổ biến mà anh/chị biết? </b>

<i><b>- 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 </b></i>

 Thiết kế cơ sở dữ liệu

<i><b>- Mục đích của hoạt động xác định các cơ chế thiết kế : Làm mịn các cơ chế thiết kế dựa trên </b></i>

các ràng buộc của môi trường thực thi

<i><b>- Một số cơ chế thiết kế phổ biến trong thiết kế hướng đối tượng bao gồm: </b></i>

<b>Câu 5: Trình bày 4 nguyên tắc chính của mơ hình hóa hướng đối tượng (sự trừu tượng hóa, đóng gói, modul hóa, sự phân cấp)? Lấy VD? Lý giải tại sao phải mơ hình hóa trong q trình phân tích và thiết kế các hệ thống thông tin?</b>

<i><b>* 4 nguyên tắc :</b></i>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

-Trừu tượng hóa : các đặc điểm cần thiết của một thực thể để phân biệt nó với tất cả thực thể khác.

<i>Ví dụ: một ứng dụng quản lý bán hàng có thể trừu tượng hóa các thơng tin liên quan đến sản </i>

phẩm như tên, giá, số lượng để tạo ra một đối tượng sản phẩm đơn giản và dễ quản lý.

-Đóng gói: sự quy tụ các tính chất (các thuộc tính và hành vi) của một thực thể vào trong một hộp đen trửu tượng

<i>Ví dụ: một lớp ngân hàng có thể đóng gói thơng tin như số tài khoản và số dư trong các phương </i>

thức của nó để ngăn chặn các truy cập trái phép.

-Modul hóa: sự phân rã về vật lý hoặc logic của một thứ gì đó phức tạp thành thành các phần nhỏ hơn, cấu trúc đơn giản hơn , có thể quản lý được

<i>Ví dụ: một ứng dụng web có thể được phân chia thành các module riêng biệt như phân quyền, </i>

quản lý đơn hàng và thanh tốn, giúp cho việc bảo trì và mở rộng hệ thống trở nên dễ dàng hơn. -Sự phân cấp: sự sắp xếp thứ tự hoặc phân trạng của sự trừu tượng hóa các đối tượng theo 1 cấu trúc cây

<i>Ví dụ: một lớp đối tượng con của lớp người dùng có thể kế thừa các thuộc tính như tên, địa chỉ </i>

và số điện thoại từ lớp người dùng gốc.

<i><b>*Tại sao phải mơ hình hố? </b></i>

+ Hình dung về hệ thống như mong đợi.

+ Chỉ định cấu trúc hoặc hành vi cho hệ thống.

+ Đưa ra một khuôn mẫu hướng dẫn xây dựng hệ thống. + Tài liệu hoá hệ thống.

+ Hiểu rõ hơn về hệ thống cần phát triển.

<b>Câu 6: Nêu 3 đặc trưng chính của q trình phát triển các hệ thống thơng tin theo </b>

<b>phương pháp hướng đối tượng(định hướng ca sử dụng, phân tích và thiết kế lấy kiến trúc làm trọng tâm, lặp và gia tăng)</b>

<i><b>* 3 đặc trưng :</b></i>

❖Định hướng bởi các ca sử dụng:

- Các ca sử dụng được xác định cho hệ thống là cơ sở cho tồn bộ quy trình phát triển, là cơng cụ mơ hình hố chính..

❖ Lấy kiến trúc làm trung tâm:

- Kiến trúc của hệ thống được sử dụng như một chế tác chính để xác định các khái niệm, xây dựng, quản lý và phát triển hệ thống.

- Lấy kiến trúc làm nền tảng cho đặc tả, thiết kế, xây dựng và tài liệu hoá hệ thống.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

❖ Phát triển lặp và gia tăng:

- Phát triển dần dần, với việc phân tích, thiết kế và triển khai được thực hiện theo từng chu kỳ

- Kết quả của mỗi chu kỳ sẽ được sử dụng để cải thiện và hoàn thiện hệ thống trong các chu kỳ tiếp theo.

<b>Câu 7: Mô tả các loại quan hệ (association, aggregation, composition, realization, generalization) trong biểu đồ lớp UML? Lấy VD?</b>

- Kết hợp (association): một sự nối kết giữa các lớp, cũng có nghĩa là sự nối kết giữa các đối tượng của các lớp này

- Kết tập (aggregation): : là dạng quan hệ mô tả một lớp A là một phần của lớp B và lớp A có thể tồn tại độc lập

- Hợp thành (composition):. Lớp A có quan hệ hợp thành với lớp B nếu lớp A là một phần của lớp B và sự tồn tại của đối tượng lớp B điều khiển sự tồn tại của đối tượng lớp A

- Hiện thực hoá (realization): Một quan hệ ngữ nghĩa giữa hai phân lớp, trong đó một phân lớp đặc tả hành vi của nó và phân lớp kia có trách nhiệm cài đặthành vi đó.’

- Khái quát hóa (Generalization): Khái quát hóa là mối quan hệ giữa một lớp có các đặc trưng mang tính khái qt cao hơn và một lớp có tính chất đặc biệt hơn. Trong sơ đồ lớp, mối quan hệ khái qt hóa chính là sự kế thừa của một lớp từ lớp khác.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>Câu 7: Kiến trúc phần mềm là gì? Trình bày kiến trúc khung nhìn 4+1?</b>

<i><b>- 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:</b></i>

+ Use Case View: cung cấp góc nhìn về các ca sử dụng giúp chúng ta hiểu hệ thống có gì? ai dùng và dùng nó như thế nào.

+ Logical View: cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ chức như thế nào. Bên trong nó có gì.

+ Process View: cung cấp góc nhìn động về hệ thống, xem các thành phần trong hệ thống tương tác với nhau như thế nào.

+ Component View: Cũng là một góc nhìn về cấu trúc giúp chúng ta hiểu cách phân bổ và sử dụng lại các thành phần trong hệ thống ra sao.

+ Deployment View: cung cấp góc nhìn về triển khai hệ thống, nó cũng ảnh hưởng lớn đến kiến trúc hệ thống.

<b>Câu 8: RUP (Rational Unified Process) là gi? Anh/chị hãy mô tả các pha (Inception. Elaboration, Construction Transition) của quy trình RUP </b>

<i><b>- RUP (Rational Unified Process) là một quy trình nghiệp vụ được sử dụng cho kỹ thuật </b></i>

phần mềm hướng đối tượng. *

<i><b>Pha khởi đầu (Inception): Định nghĩa phạm vi của dự án.</b></i>

- Xác định tất cả các tác nhân và các ca sử dụng ứng viên -> phác thảo các ca sử dụng cần thiết nhất.

- Phát triển một bản kế hoạch để nghiên cứu đánh giá tính khả thi về kinh phí, lịch trình,..

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<i><b>Pha chi tiết (Elaboration): Tập trung nắm bắt các yêu cầu và thiết lập một khung kiến </b></i>

trúc cho hệ thống.

<i><b>Pha xây dựng (Construction): Thiết kế hệ thống, lập trình, tích hợp và kiểm thử.</b></i>

<i><b>Pha chuyển giao (Transition): Bàn giao hệ thống cho người dùng cuối, hỗ trợ họ cài đặt </b></i>

và sử dụng.

<b>Câu 9: Trong dự án phát triển 1 hệ thống phần mềm,anh chị hãy mô tả các loại yêucầu( bussiness,requirment,user requirement,functional requirement,nofunctionalrequirement, system requirement)? Lấy ví dụ cho từng loại( mỗi loại 2 cái)</b>

• Những gì nghiệp vụ cần (business requirements).

• Những gì người dùng cần phải làm (user requirements). • Những gì phần mềm cần phải làm (functional requirements).

• Những đặc điểm hệ thống cần phải có (nonfunctional requirements). • Hệ thống cần phải được xây dựng như thế nào (system requirements).

<b>Câu 10 .Anh chị hãy phân biệt 3 mối quan hệ( generalization,include,extend) giữa cácca sử dụng? Mối quan hệ đưa ra 1 ví dụ minh họa.</b>

- Tổng quát hoá (generalization):

Một ca sử dụng được đặc biệt hoá thành một hoặc nhiều ca sử dụng con. - Bao hàm (include):

Một ca sử dụng có thể tích hợp hành vi của các ca sử dụng khác như là các phân đoạn trong hành vi tổng thể của nó.

- Mở rộng (extend): Cho phép mở rộng chức năng của một UC.

<b>Câu 11. Ca sử dụng của hệ thống là gì? vai trị ca sử dụng? Làm sao để xác định kiểmtra ca sử dụng trong hệ thống?</b>

<i><b>- Ca sử dụng là một chuỗi các hành động mà hệ thống thực hiện nhằm thu được một kết </b></i>

quả dễ thấy bởi một tác nhân nào đó.

<i><b>- Vai trị:</b></i>

<b>+ Mơ tả chức năng của hệ thống.</b>

+ Một ca sử dụng mơ hình hố một hội thoại giữa một hoặc nhiều tác nhân

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

với hệ thống.

+ Kết thúc ca sử dụng, hệ thống cung cấp một giá trị nào đó cho tác nhân.

<i><b>- Xác định :</b></i>

<i><b>+ Xem xét các yêu cầu chức năng của hệ thống để tìm ra các UC.</b></i>

+ Đối với mỗi tác nhân tìm được, đặt các câu hỏi sau: • Tác nhân đó u cầu những gì từ hệ thống?

• Các cơng việc chính mà tác nhân đó muốn hệ thống thực thi? • Tác nhân đó có tạo ra hoặc thay đổi dữ liệu gì của hệ thống? • Tác nhân đó có phải thơng báo gì cho hệ thống?

• Tác nhân đó có cần thơng tin thơng báo gì từ hệ thống?

<i><b>- Kiểm tra :</b></i>

+ Ca sử dụng có liên quan đến tác nhân nào khơng?

+ Ca sử dụng có độc lập với những ca sử dụng khác không?

+ Có những ca sử dụng có hành vi hoặc luồng sự kiện rất giống nhau hay không? + Tên các ca sử dụng có trực quan và là duy nhất hay không?

+ Mô tả các ca sử dụng có rõ ràng và dễ hiểu hay khơng?

<i>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.</i>

<b>Câu 12 (2 điểm): Anh/chị hãy trinh bày vai trò và ý nghĩa của biểu đồ lớp trong UML ? Phân biệt hai quan hệ composition và aggregation trong biểu đồ lớp ? Cho ví dụ minh hoạ.</b>

*Biểu đồ lớp:

- Chỉ ra các lớp đối tượng trong hệ thống, các thuộc tính và phương thức của từng lớp và các mối quan hệ giữa những lớp đó.

*Phân biệt

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

- Quan hệ cộng hợp (Aggregation): là dạng quan hệ mô tả một lớp A là một phần của lớp B và lớp A có thể tồn tại độc lập. Quan hệ cộng hợp được biểu diễn bằng một mũi tên gắn hình thoi rỗng ở đầu hướng về lớp bao hàm.

- Quan hệ gộp (Composition): Một quan hệ gộp biểu diễn một quan hệ kiểu tổng thể-bộ phận. Lớp A có quan hệ gộp với lớp B nếu lớp A là một phần của lớp B và sự tồn tại của đối tượng lớp B điều khiển sự tồn tại của đối tượng lớp A.

<b>Câu 13 : Anh chị hãy trình bày vai trị và ý nghĩa của biểu đồ tương tác và biểu đồ lớp trong UML ? Phân biệt hai quan hệ composition và aggregation trong biểu đồ lớp? Cho vídụ minh hoạ và phân tích ý nghĩa.</b>

*Biểu đồ tương tác:

- Mơ tả chi tiết hoạt động của các use case dựa trên các scenario đã có và các lớp đã xác định trong pha phân tích

*Biểu đồ lớp:

- Chỉ ra các lớp đối tượng trong hệ thống, các thuộc tính và phương thức của từng lớp và các mối quan hệ giữa những lớp đó.

*Phân biệt

- Quan hệ cộng hợp (Aggregation): là dạng quan hệ mô tả một lớp A là một phần của lớp B và lớp A có thể tồn tại độc lập. Quan hệ cộng hợp được biểu diễn bằng một mũi tên gắn hình thoi rỗng ở đầu hướng về lớp bao hàm.

- Quan hệ gộp (Composition): Một quan hệ gộp biểu diễn một quan hệ kiểu tổng thể-bộ phận. Lớp A có quan hệ gộp với lớp B nếu lớp A là một phần của lớp B và sự tồn tại của đối tượng lớp B điều khiển sự tồn tại của đối tượng lớp A.

VD:

<b>Câu 14 (2 điểm): Anh/chị hãy trình bày mục đích của hoạt động phân tích và thiết kế hệ thống ? Mục đích của việc xác định các phần tử thiết kế là gì? Nêu các sản phẩm của pha thiết kế hướng đối tượng ? </b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

+ Điều chỉnh thiết kế để tương thích với mơi trường cài đặt.

+ Cung cấp cho người dùng, khách hàng, kỹ sư phân tích, kỹ sư thiếtkế nhiều khung nhìn khác nhau về hệ thống.

<i><b>Mục đích xác định phần tử thiết kế: </b></i>

-Tạo ra một mơ hình hướng đối tượng cụ thể, gồm các lớp, đối tượng, phương thức, thuộc tính và các mối quan hệ giữa chúng, để triển khai các yêu cầu được xác định từ pha phân tích

 biểu đồ triển khai hệ thống

<b>Câu 15: Biểu đồ ca sử dụng là gì? Anh chị hãy phân biệt hai quan hệ include,extend trongbiểu đồ ca sử dụng?Lấy ví dụ minh họa?</b>

<i><b>Biểu đồ ca sử dụng mô tả các yêu cầu chức năng của ht dưới dạng các ca sử dụng, tổ </b></i>

chức và mơ hình hố các hành vi của hệ thống. *

- Extend :Một ca sử dụng có thể tích hợp hành vi của các ca sử dụng khác như là các phân đoạn trong hành vi tổng thể của nó.

- Include: Cho phép mở rộng chức năng của một UC. VD:

<b>Câu 16: Ngơn ngữ mơ hình hóa thống nhất UML có những loại biểu đồ nào? Anh chị hãytrình bày các khái niệm cơ sở để xác định hai loại biểu đồ sau: Biểu đồ ca sử dụng(tác nhân,ca sử dụng,quan hệ giữa các ca sử dụng),Biểu đồ tương tác(phân lớpcó cấu trúc,tương tác,thơng điệp)</b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- BĐ hoạt động ,…

<i><b>* Biểu đồ ca sử dụng:</b></i>

- Tác nhân là bất kỳ thứ gì tương tác với hệ thống, có sự trao đổi dữ liệu với hệ thống. - Ca sử dụng là một chuỗi các hành động mà hệ thống thực hiện nhằm thu được một kết quả dễ thấy bởi một tác nhân nào đó.

<b>- Quan hệ: + generalization: Một ca sử dụng được đặc biệt hoá thành một</b>

hoặc nhiều ca sử dụng con.

+ include: Một ca sử dụng có thể tích hợp hành vi của các ca sử dụng khác như là các phân đoạn trong hành vi tổng thể của nó.

+ extend: Cho phép mở rộng chức năng của một UC.

<i><b>*Biểu đồ tương tác</b></i>

-Tương tác là hành vi được mô tả bằng chuỗi thông điệp trao đổi giữa các đối tượng trong một khung cảnh tương tác được xác định bởi một cộng tác.

- Thông điệp (message) 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 từ đối tượng gửi đến đối tượng nhận.

<b>Câu 17 :Anh chị hãy trình bày các khối hình thành nên các mơ hình UML? Có những loạiphần tử mơ hình nào trong UML ? Gói thuộc loại phần tử mơ hình nào? Ký pháp biểu diễn của gói trong UML ?</b>

<i><b>-Các khối : </b></i>

Các phần tử: Phần tử cấu trúc(class, interface, use case, collaboration, component, node); Phần tử hành vi(message, stage); Phần tử nhóm(package); Phần tử chú thích(node)

Các quan hệ: dependence, association, generalization, realization

Các biểu đồ: Ca sử dụng, lớp, tuần tự, giao tiếp, hoạt động, triển khai, máy trạng thái, đối tượng, thành phần, ngồi ra trong UML cịn có biểu đồ gói, biểu đồ cấu trúc bên trong, biểu đồ cộng tác, biểu đồ thời gian

*Ký pháp biểu diễn gói

</div>

×