Professional Documents
Culture Documents
Module 1: Hệ Thống Thông Tin & Mô Hình Hóa Trực Quan
Module 1: Hệ Thống Thông Tin & Mô Hình Hóa Trực Quan
1. Một hệ thống là gì? Nêu các thành phần chính của một hệ thống thông
tin?
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ác thành phần chính của hệ thống là: 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.
Ví dụ: hệ thống đăng kí môn học
2. Các hệ thống thông tin được sử dụng để làm gì? Lấy ví dụ minh hoạ?
3. Vòng đời phát triển hệ thống SDLC là gì? Nêu các bước chính để phát
triển một hệ thống trong thực tiễn?
Bao gồm nhiều giai đoạn, kể từ khi bắt đầu cho đến khi hết thúc hệ thống
+ Các bước chính để phát triển một hệ thống trong thực tiễn
Lập kế hoạch
Nghiên cứu tính khả thi, khảo sát hiện trạng
Hợp đồng ràng buộc trách nhiệm
Phân tích, thiết kế
Cài đặt và thử nghiệm
Triển khai
Bảo trì, thích ứng
4. 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 định hướng tiến trình,Tiếp cận định hướng
dữ liệu,Tiếp cận định hướng cấu trúc,Tiếp cận định hướng đối tượng)?
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 định hướng tiến trình, Tiếp cận định hướng dữ liệu, Tiếp cận
định hướng cấu trúc, Tiếp cận định hướng đối tượng)?
Nhược điểm:
Dư thừa dữ liệu do có nhiều file khác nhau nhưng chứa nhiều phần
tử dữ liệu giống nhau dẫn đén tốn công sức tổ chức lại DL
Kh thể chia sẻ dữ liệu giữa các ứng dụng với nhau
2> Định hướng dữ liệu:
Dữ liệu được tổ chức nhất quán , tổ chức dữ liệu chung cho các ứng dụng
3>
5. 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 định hướng cấu trúc và Tiếp cận định hướng đối
tượng?
• Ưu điểm:
. • Nhược điểm:
• Không phù hợp cho việc phát triển các hệ thống thông tin lớn
Ánh xạ các thành phần của bài toán vào các đối tượng trong thế giới thưc
6. Một mô hình là gì? Các nhóm dự án phát triển phần mềm thường gặp
phải những vấn đề gì nếu không mô hình hoá?
1> Một mô hình là : sự mô tả các các đặc tính tĩnh hoặc động của một chủ
thể thường được mô tả dưới dạng một văn bản hay môt khung nhìn nào
đó
2> Các nhóm dự án gặp phải:
Không mô hình hóa mà triển khai lập trình luôn
Dẫn đến mất nhiều thời gian công sức
Gặp khó khăn với những lỗi phát sinh
Không có bất kì một kiến trúc nào
7. Lý giải tại sao cần phải mô hình hoá khi xây dựng các hệ thống?
+ phân rã một chức năng tổng hợp thành các chức năng chi tiết hơn
Ví dụ :
9. Đề xuất mô hình luồng dữ liệu cho quy trình đăng ký môn học?
10. Trình bày bốn nguyên tắc cơ bản khi mô hình hoá?
Việc lựa chọn mô hình đóng vai trò rất quan trọng:
Mỗi mô hình mô tả hệ thống với mức độ chính xác khác nhau:
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:
vKhông mô hình đơn lẻ nào là đầy đủ:
- Lịch sử phát triển: UML được công nhận là chuẩn chung vào năm 1997
-> một phương thức thống nhất để xây dựng và mô hình hoá các yêu cầu,
thiết kế hướng đối tượng trong quát rình PTTK phần mềm.
2. Giải thích tính hợp nhất của ngôn ngữ mô hình hoá UML?
- Do có sự kết hợp của một nhóm người , nhóm các chuyên gia, hợp nhất
các kỹ thuật và công trình nghiên cứu khác nhau để tạo nên ngôn ngữ mô
hình hóa thống nhất UML. Nói cái này thôi, hỏi nữa thì đập cái dưới
vào mặt th___ầy.
- Cụ thể:
Booch : Booch method
Rumbaugh: Object Modeling Technique
Jacobson : Object-Oriented Software Engineering
Meyer: Before and after conditions
Shlaer –Mellor: Object lifecycles
Odell: Classification
Wirfs-Brock: Responsibilities
Embley Singleton: classes and high-level view
HP Fusion: Operation descriptions and message numbering
Gamma, et al: Frameworks, patterns, notes
Harel: State charts
3. Giải thích tính thống nhất của ngôn ngữ mô hình hoá UML?
- UML được sử dụng xuyên suốt trong vòng đời phát triển của một phần
mềm.
4. Ngôn ngữ mô hình hoá UML có thể được sử dụng trong những
trường hợp nào?
UML là phương tiện để 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.
Tập từ vựng và quy tắc ngôn ngữ UML cung cấp cơ sở để xây
dựng và đọc hiểu các mô hình: Không xác định thời điểm và trình
tự tạo các mô hình.
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.
Một số yếu tố trong hệ thống phần mềm cần phải mô hình hoá mới
có thể hiểu được.
Một số thông tin sẽ bị mất đi (không được cài đặt) nếu nhóm phát
triển không tài liệu hoá các mô hình đang hình dung.
Các biểu đồ UML đóng vai trò là các tài liệu phát triển hệ thống.
UML hỗ trợ tạo tài liệu kiến trúc hệ thống cùng các chi tiết của nó.
UML cho phép diễn đạt các yêu cầu.
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.
5.Nêu các khối hình thành nên các mô hình UML? Mô tả mối quan hệ
giữa chúng?
Dependence
Association
Generalization
Realization
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
Ngoài ra, trong UMLcò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.
-Mối quan hệ: Các phần tử là các trừu tượng hoá căn bản trong các mô
hình UML, các quan hệ gắn các phần tử lại với nhau, biểu đồ nhóm các
phần tử có mối quan hệ lại với nhau.
6. Phần tử cấu trúc trong các mô hình UML là gì? Nêu các loại phần tử
cấu trúc trong UML?
- Phần tử cấu trúc là: Là các phần tử đại diện cho các yêu tố khái niệm
hoặc vật lý.
Class
Interface
Use case
Collaboration
Component
Node
7. Ngôn ngữ mô hình hoá UML có những loại biểu đồ nào? Biểu diễn hệ
thống theo mô hình chức năng tương ứng với loại biểu đồ nào? Biểu diễn
hệ thống theo mô hình cấu trúc tương ứng với loại biểu đồ nào? Biểu diễn
hệ thống theo mô hình thời gian tương ứng với loại biểu đồ nào?
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
- Biểu diễn hệ thống theo mô hình chức năng tương ứng với biểu đồ ca sử
dụng.
- Biểu diễn hệ thống theo mô hình cấu trúc tương ứng với biểu đồ lớp,
biểu đồ đối tượng.
- Biểu diễn hệ thống theo mô hình thời gian tương ứng với loại biểu đồ:
Biểu đồ tuần tự
Biểu đồ giao tiếp
Biểu đồ trạng thái
Biểu đồ hoạt động
8. Các khung nhìn UML được sử dụng để làm gì? Mô tả các khung nhìn
(khung nhìn tĩnh, khung nhìn thiết kế, khung nhìn ca sử dụng, khung nhìn
máy trạng thái, khung nhìn hoạt động, khung nhìn tương tác, khung nhìn
triển khai)?
- Khung nhìn trong 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ìntĩnh,khungnhìnthiếtkế,khungnhìncasửdụng).
Động mô tả hành vi của hệ thống hoặc các classifier theo thời gian
(khungnhìn máytrạngthái,khungnhìnhoạtđộng,khungnhìntươngtá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 (khungnhìntriểnkhai).
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 (khungnhìnquảnlýmôhình).
- Khung nhìn tĩnh: Mô hình hoá các khái niệm trong miền ứng dụng một
cách logic. Không mô tả hành vi hệ thống. Các thành phần chính của
khung nhìn tĩnh là các lớp và mối quan hệ giữa chúng (association,
generalization, dependency, realization). Khung nhìn tĩnh được thể hiện
trong các biểu đồ lớp.
- Khung nhìn thiết kế: Khung nhìn thiết kế mô hình hoá cấu trúc thiết kế
của ứng dụng. v Khung nhìn thiết kế ánh xạ các lớp vào các thành phần
thực thi. v Khung nhìn thiết kế bao gồm:
- Khung nhìn ca sử dụng: Khung nhìn ca sử dụng biểu diễn các chức
năng và môi trường dự kiến của hệ thống dưới góc nhìn của người dùng
cuối. Khung nhìn ca sử dụng nắm bắt các hành vi của hệ thống.
Mô hình hoá lịch sử vòng đời có thể có của một đối tượng.
Chứa các trạng thái được kết nối với nhau bởi các chuyển tiếp
(transitions).
Mỗi trạng thái mô hình hoá một khoảng thời gian trong vòng đời
của một đối tượng.
Khi một sự kiện xảy ra -> kích hoạt một chuyển tiếp -> chuyển đối
tượng sang một trạng thái mới.
- Khung nhìn hoạt động: Biểu đồ hoạt động là trường hợp đặc biệt của
biểu đồ trạng thái. Biểu diễn luồng hoạt động trong hệ thống. Biểu đồ
hoạt động chứa các nút hoạt động được kết nối với nhau bởi các luồng
điều khiển. Biểu đồ hoạt động nhấn mạnh luồng điều khiển giữa các đối
tượng.
- Khung nhìn tương tác: Một tương tác là hành vi được mô tả bằng cách
chỉ ra chuỗi thông điệp trao đổi (truyền và nhận) giữa các đối tượng. Các
đối tượng tương tác với nhau để thực hiện một kịch bản. Khung nhìn
tương tác mô tả trình tự trao đổi thông điệp giữa các đối tượng của hệ
thống. Khung nhìn tương tác cung cấp một cái nhìn toàn diện về hành vi
của hệ thống, chỉ ra luồng điều khiển trên nhiều đối tượng. Khung nhìn
tương tác được thể hiện trong:
• 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ị …).
Biểu đồ triển khai mô tả khung nhìn triển khai tĩnh của một kiến trúc.
- 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ị …).
10. Đề xuất biểu đồ hoạt động cho quy trình bán xe máy tại một
showroom?
MODULE 3: QUY TRÌNH PHÁT TRIỂN HƯỚNG ĐỐI TƯỢNG
Để hiểu được trừu tượng hoá là gì chúng ta cần biết đến một số khái niệm sau
như
Mô hình hoá là gì : mô hình hoá là quá tình trừu tượng hoá các đối tượng trong
thế giới thực vào ngữ cảnh của hệ thống .
Như vậy có thể định nghĩa trừu tượng hoá 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 , còn đối với mô hình
hoá đối tượng nó là việc xây dựng một mô hình gồm các đặc điểm quan trọng,
cần thiết để phân biệt mô hình này với mô hình khác
2: Tính đóng gói là gì? Đóng gói dữ liệu trong OOP được hiểu như thế nào?
Tính đóng fois là sự quy tụ các tính chất , thuộc tính , hành vi của một thực thể
vào trong một hộp đen trừu tượng
Đối với OOP tính chất này không cho phép người sử dụng các đối tượng thay
đổi trạng thái nội tại của một đối tượng chỉ có các phương thức nội tại của đối
tuongj cho phép thay đổi trạng thái của nó
+ Cho phép che dâu sự cài đặt bên trong phương thức
+ Cho phép việc giảm thiểu mất mát mã nguồn chương trình
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ó cấu trúc đơn giản hơn để tiện quản lý và khai thác đó gọi là mô-đun hoá,
tuy nhiên bị phân rã thành các mô-đun nhỏ hơn nhưng tất cả chúng đều có thể
tương tác lẫn nhau và được phát triển độc lập
Sự sắp xếp thứ tự hoặc phân cấp hạng sự trừ tượng hoá các đối tượng theo một
cấu trúc cây nhất định thì được gọi là sự phân cấp
Tính đa hình là khả năng mang nhiều kiểu khác nhau của đối tượng ,nó cho
phép cùng một thông điệp gửi đi , có thể xử lý được theo nhiều kiểu khác nhau
tuỳ vào đối tượng nhận nó ,nó cũng cho phép che dấu sự cài đặt kahcs đằng sau
giao diện duy nhất
6: Tổng quát hoá là gì? Phân biệt tổng quát hoá và kế thừa?
Tổng quát hoá (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.
Kiến trúc phần mềm của một chương tình máy tính hay hệ thống là cấu trúc của
các thành phần trong hệ thống đó . Kiến trúc phần mềm bao gồm các phẩn tử
phần mềm , các thuộc tính và mối quan hệ giữa chúng . Ngoài ra cũng đề cập
đến các tài liệu phần mềm hệ thống , thuận tiện cho việc trao đổi thông giữa các
thành viên của nhóm dự án
8 : Trình bày ba đặc trưng chính của việc phát triển các hệ thống thông tin
theo phương pháp hướng đối tượng (định hướng bởi các ca sử dụng, lấy
kiến trúc làm trung tâm, phát triển lặp và gia tăng)?
Khi phát triển các hệ thống thông tin theo hướng đối tượng cần chú ý đến ba đặc
trưng sau
Như khái niệm kiến trúc trên cần chú ý đến kiến trúc phần mềm nó cũng phản
ánh cá khái cạnh tĩnh và động của hệ thống , nó được xem là ràng buộc cho
khâu thiết kế và xây dựng hệ thống
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 chuỗi
liên tục các phiên bản hoàn thiện tăng dần
Vòng lặp là các phiên bản được phát triển trong khoảng thời gian xác định các
vòng lặp tập chung chủ yếu phân tích , thiết kế, xây dựng, tích hợp và kiểm thử
tập các yêu cầu
Gia tăng lựa chọn các tập con chức năng hoặc một trong các ca sử dụng liên
quan để phát triển , kiểm chứng thông qua được ca kiểm thử sẽ là gia tăng
9 : Phát biểu các triệu chứng của vấn đề phát triển 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
pần mềm
Để một sản phẩm đạt được chất lượng cao chúng ta cần chú ý đến việc xử lý căn
nguyên mà nó gián tiếp cấu thành lên các triệu chứng
Để cho việc xử lý hiệu quả ơn các căn nguyên hay triệu chứng chúng ta cần đề
cập tới một số vấn đề hướng giải quyết sau
+pha chuyển
Pha khởi đầu: nó tập chung định nghĩa phạm vi , xác định các tác nhân
và các ca sử dụng có thể có , cái nào cần thiết cái nào không, để đưa ra
kế hoạch phát triển
Pha chi tiêt : từ các thông tin của pha khởi đầu tiến hành phát triển , thiết
lập khung kiến trúc cho hệ thống , dự kiến các rủi ro từ đó để có được mô
hình yêu cầu cơ bản cho hệ thống
Pha xây dựng : tiến hành thiếp lập , lập trình , kiểm thử , phát triển , tích
hợp các thành phần khác từ đó để có được một hệ thống phần mềm chạy
được
Pha chuyển giao: bàn giao hệ thống cho người dùng cuối
12: Trình bày luồng công việc trong mô tả RUP?
+ mục tiêu:
hiểu được vấn đề đang tồn tại trong tổ chức và đề xuất cải tiến
Đảm bảo khách hàng người dungg, người phát triển có sự hiểu biết cơ
bản về hệ thống
Để tìm ra những yêu cầu hệ thống cần thiết
yêu cầu : mô tả nghiệp vụ băng phương pháp tình huống sử dụng
Thiếp lập và duy trì sự đúng đắn về yêu cầu khách hàng và những gì mà
hệ thống thực hiện
Giúp cho người phát triển hiểu rõ về yêu cầu hệ thống
Xác định được giới hạn hệ thống
Ước lượng thời gian phát triển và chi phí
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ã hoá 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 thử 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ý các 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 (Environment): Quản lý môi trường mà hệ thống được phát
triển trên đó
13: Trình bày một số kinh nghiệm thực hành tốt của RUP?
Phát triển phần mềm qua các lần lặp: Lập kế hoạch phát triển gia tăng
cho hệ thống dựa trên mức độ ưu tiên từ phía khách hàng,phát triển các tính
năng của hệ thống có độ ưu tiên cao nhất ngay từ những giai đoạn ban đầu
trong quy trình phát triển.
Quản lý các yêu cầu: Tài liệu hoá một cách rõ ràng về các yêu cầu của
khách hàng và theo dõi những thay đổi đối với các yêu cầu này. Phân tích tác
động của những thay đổi đó với hệ thống trước khi chấp nhận chúng
Sử dụng kiến trúc dựa trên thành phần: Cấu trúc hoá kiến trúc hệ
thống thành các thành phần.
Mô hình hoá trực quan phần mềm: Sử dụng các mô hình đồ hoạ UML
để biểu diễn các khung nhìn tĩnh và động của phần mềm
Kiểm tra chất lượng phần mềm : Đảm bảo rằng phần mềm đáp ứng
các tiêu chuẩn chất lượng
Kiểm soát các thay đổi đối với phần mềm : Quản lý các thay đổi đối
với phần mềm bằng cách sử dụng một hệ thống quản lý thay đổi và các công cụ
hỗ trợ khác
14: Lý giải tại sao cần cơ chế “Phân tích và thiết kế hướng đối tượng”?
1.Tác nhân là gì? Lấy ví dụ chỉ ra các tác nhân của một hệ thống cụ thể?
- 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
+Một lớp/ loại người dùng chứ không phải 1 người dùng cụ thể.
+Một người dùng cụ thể có thể đóng vai trò là các tác nhân khác nhau.
+Có thể là người dùng, thiết bị phần cứng hoặc hệ thống phần mềm khác.
ví dụ: tác nhân thủ thư, sinh viên, admin trong hệ thống quản lí thư viện,…
2.Làm thế nào để xác định và kiểm tra các tác nhân của hệ thống?
+Nhóm người nào yêu cầu hệ thống làm việc cho họ?
+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?
+Tên tác nhân phải mô tả vai trò của tác nhân đó một cách rõ rang.
+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á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 hóa để mô hình hóa hành vi tổng quát của chú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.
3.Ca sử dụng là gì? Lấy ví dụ chỉ ra các ca sử dụng của một hệ thống cụ
thể?
-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ể.
+Đặ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.
ví dụ: ca sử dụng đăng nhập, ca sử dụng tìm kiếm, ca sử dụng mượn trả sách
trong hệ thống quản lí thư viện,…
4.Làm thế nào để xác định và kiểm tra 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( use case).
-Đối với mỗi tác nhân tìm được, đặt các câu hỏi sau:
+Các công việc chính mà tác nhân đó muốn hệ thống thực thi?
+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.
+Loại bỏ ca sử dụng không tương tác với một tác nhân nào.
-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)
5.Phân biệt hai quan hệ( tổng quát hoá và giao tiếp) giữa các tác nhân?
6.Phân biệt các quan hệ( tổng quát hoá, bao hàm, mở rộng) giữa các 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
+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
-Mô tả luồng công việc trong tiến trình nghiệp vụ trong mô hình hóa nghiệp vụ
9.Trình bày các thành phần chính trong biểu đồ hoạt động?(activity
diagram)
+Đặc tả cho hành vi được diễn tả như một luồng thực thi thông qua sự sắp xếp
thứ tự của các đơn vị nhỏ hơn.
+Các đơn vị nhỏ hơn bao gồm các hoạt động lồng nhau và các hành động riêng
lẻ.
+Có thể chứa ràng buộc biểu thức Boolean khi hoạt động được gọi hoặc kết
thúc.
-Một chuyển tiếp( transition) là việc chuyển đổi giữa các hoạt động:
+Một chuyển tiếp xuất hiện khi tất cả các hành động của một hoạt động hoàn
thành hoặc khi một sự kiện kích hoạt việc thoát khỏi hoạt động đó.
-Điểm quyết định( decision) là điểm trong một luồng công việc mà ở đó việc
chuyển tiếp từ một hoạt động phân theo các nhành khác nhau tùy điều kiện ràng
buộc( guard condition)
+Sử dụng để mô hình hóa luồng công việc trong quy trình nghiệp vụ.
+Có thể phân chia theo một chiều( hàng hoặc cột) hoặc hai chiều( cả hàng và
cột)
+Chuyển tiếp có thể được vẽ từ làn bơi này tới làn bơi khác
10.Vai trò của làn bơi trong biểu đồ hoạt động là gì?
-Sử dụng để mô hình hóa luồng công việc trong tiến trình nghiệp vụ
-Để phân hoạch các trạng thái hoạt động vào nhóm
-Qúa độ 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
- Ví dụ:
10.Phạm vi truy cập (visibility) được sử dụng để làm gì? Phân biệt ba
phạm vi truy cập (public, private, protected)?
- Phạm vi truy cập được sử dụng để thực hiện khả năng đóng gói trong
OOP
- Phân biệt 3 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 (#)
11..Các ràng buộc và ghi chú trong biểu đồ lớp được sử dụng để làm gì?
Lấy ví dụ minh hoạ?
- Các ràng buộc và ghi chú được sử dụng để:
Được sử dụng cho các liên kết, các thuộc tính, các phương thức và
các lớp.
Các ràng buộc là các hạn chế ngữ nghĩa được viết dưới dạng các
biểu thức Boolean.
- Ví dụ:
Ví dụ:
- Quan hệ 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.
o Whole là sở hữu duy nhất của Part, tạo và huỷ Part.
o Part bị bỏ khi Whole bị bỏ, Part không thể tồn tại nếu Whole
không tồn tại.
Ví dụ:
- Quan hệ tổng quát hóa (generalization): Quá trình bắt đầu từ một lớp
chuyên biệt hóa đến lớp có mức khái quát cao hơn được gọi là quá
trình tổng quát hóa.
Ví dụ: lớp tài khoản tiết kiệm đến lớp tài khoản, từ lớp thanh toán
tiền mặt đến lớp thanh toán.
- Quan hệ phụ thuộc: 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
Ví dụ: Cường độ sáng của đèn thì phụ thuộc vào điện áp
Yêu cầu là: là một tuyên bố về những gì hệ thống phải làm hoặc những đặc tính
hệ thống cần phải có
Có những loại yêu cầu nào trong một vòng đời phát triển hệ thống?
+yêu cầu chức năng: _Hướng tiến trình: tiến trình hệ thống phải thực hiện
+yêu cầu phi chức năng: vận hành , hiệu năng, an ninh, văn hóa chính trị
Phát biểu các chế tác chính trong khâu nắm bắt yêu cầu?
Mô hình nào được sử dụng để truyền đạt hành vi hệ thống: Mô hình ca sử dụng
UML
5.Mô hình ca sử dụng là gì?Các chế tác nào tạo nên mô hình ca sử
dụng?Trình bày vai trò của mô hình ca sử dụng?
Các chế tác tạo nên mô hình ca sử dụng bao gồm : các đặc tả ca sử dụng
và các biểu đồ hoạt động.
Minh họa được các sự kiện dầu vào và đầu ra của hệ thống
VÍ Dụ:
Khi thanh toán tiền bằng thẻ tín dụng, khách hàng . Thẻ tín dụng được
xác định thông qua thẻ số thẻ ( gửi 1 thông điệp cho ht)
Hệ thống sẽ gửi 1 yêu cầu lên để kiểm duyệt thẻ tới bọ phận kiểm duyệt
thẻ
Hệ thống sẽ dựa vào kết quả trả lời của người duyệt: nếu đúng thì trừ tiền
trong tài khoản
Từ điển thuật ngữ định nghĩa các thuật ngữ trong miền vấn đề của hệ thống , mô
tả ở dạng văn bản
MODULE 7: PHÂN TÍCH HƯỚNG ĐỐI TƯỢNG
1. Mục đích của khâu phân tích và thiết kế là gì? Các chế tác nào là đầu
vào và ra cho hoạt động phân tích và thiết kế? Khâu phân tích và
thiết kế liên quan đến các khâu tiến trình khác của RUP như thế
nào?
-Khâu phân tích và thiết kế có liên quan đến các khâu hoạt động khác:
+Khâu mô hình hóa nghiệp vụ cung cấp một ngữ cảnh tổ chức cho hệ thống
+Khâu nắm bắt yêu cầu cung cấp đầu vào chính cho khâu phân tích và thiết
kế
+Khâu kiểm thử kiểm tra hệ thống đã được thiết kế trong khâu phân tích và
thiết kế
+Khâu môi trường hỗ trợ việc xây dựng các chế tác được sử dụng trong
-Các chế tác INPUT/ OUTPUT là đầu vào và đầu ra cho hoạt động phân tích
và thiết kế
2. Trình bày sự khác nhau giữa hoạt động phân tích và hoạt động thiết kế?
Phân tích Thiết kế
-Tập trung vào việc hiểu vấn đề -Tập trung vào việc hiểu giải pháp
-Quan niệm hóa thiết kế -Các thao tác và các thuộc tính
-Hành vi -Hiệu năng
-Cấu trúc hệ thống -Sát với mã nguồn
-Các yêu cầu chức năng -Các vòng đời đối tượng
-Các yêu cầu phi chức năng
2. Trình bày vai trò của kiến trúc sư phần mềm và nhà thiết kế trong
dự án?
-Vai trò của kiến trúc sư phần mềm: dẫn dắt và điều phối các hoạt động kỹ thuật
và các chế tác xuyên suốt dự án
+Nhà thiết kế có vai trò xác định các trách nhiệm, các thao tác, các thuộc tính
và các mối quan hệ của các lớp và chỉ rõ làm thế nào hiện thực hóa chúng trong
môi trường cài đặt
+Nhà thiết kế phải biết các kỹ thuật mô hình hóa ca sử dụng, các yêu cầu hệ
thống và các kỹ thuật thiết kế phần mềm( phương pháp phân tích và thiết kế
hướng đối tượng, UML), các công nghệ cài đặt hệ thống
3. Kiến trúc phần mềm là gì? Trình bày mô hình kiến trúc “khung nhìn
4+1”?
-Kiến trúc phần mềm chứa đựng một tập các quyết định quan trọng về việc tổ
chức một hệ thống phần mềm
-Kiến trúc phần mềm có một quan điểm tĩnh và một quan điểm động
-Kiến trúc phần mềm được diễn đạt ở dạng biểu thức:
+cơ sở lí luận là cần thiết để đánh giá một kiến trúc tốt
+các mẫu kiến trúc là các hướng dẫn để lắp ráp các phần tử trong một số
dạng khuôn mẫu
-Kiến trúc liên quan tới một tập các quyết định thiết kế chiến lược, các quy tắc
hoặc các mẫu kiến trúc ràng buộc cho khâu thiết kế và xây dựng
-Kiến trúc có thể xem như một tập các ràng buộc ban đầu được đặt cho hệ
thống, chúng tạo thành các quyết định cơ bản về việc thiết ké phần mềm
-Kiến trúc đặt ra một khung công việc cho việc thiết kế
-Kiến trúc có thể hiểu là một dạng thiết kế mức cao, thiết kế chiến lược
4. Mẫu (pattern) là gì? Trình bày sự khác nhau giữa mẫu thiết kế và
mẫu kiến trúc?
*Mẫu( pattern):
-Cung cấp một giải pháp chung cho một vấn đề chung trong một ngữ cảnh
nào đó
-Lập điều lệ tri thức chuyên biệt nào đó được thu thập từ kinh nghiệm
-Đưa ra ví dụ về cách giải quyết các vấn đề thực tế bằng giải pháp mô hình
hóa
* Trình bày sự khác nhau giữa mẫu thiết kế và mẫu kiến trúc?
5. Mục đích của hoạt động phân tích kiến trúc là gì? Các chế tác nào là
đầu vào và ra cho hoạt động phân tích kiến trúc?
+Xác định một kiến trúc tiêu biểu cho hệ thống dựa trên kinh nghiệm thu
được từ các hệ thống tương tự hoặc các miền vấn đề tương tự
+Xác định các mẫu kiến trúc, các cơ chế chính và các quy ước về mô hình
hệ thống
+Cung cấp một phần đầu vào cho hoạt động lập kế hoạch dự án
- Chế tác INPUT/ OUTPUT là đầu vào và ra cho hoạt động phân tích kiến
trúc
6. Trình bày mẫu kiến trúc phân tầng? Trong tiếp cận phân tầng điển
hình (4 tầng), mỗi tầng chứa các thành phần nào?
Để giảm độ phức tạp của việc thiết kế và cài đặt mạng, hầu hết các máy tính
đều được phân tích thiết kế theo quan điểm phân tầng. Mỗi hệ thống thành
phần của mạng được xem như một cấu trúc đa tầng, trong đó mỗi tầng được
xây dựng trên tầng trước nó. Số lượng các tầng cũng như tên và chức năng
của mỗi tầng tuỳ thuộc vào nhà thiết kế.
+Nhóm gộp các phần tử giống nhau( liên quan về mặt logic với nhau)
+Phân tách các phần tử mô hình miền với các phần tử mô hình ứng dụng
+Tạo được liên kết lỏng lẻo giữa các thành phần
+Tổ chức đóng gói riêng các thành phần dễ bị thay đổi trong vòng đời hệ
thống( giao diện người dùng, các quy tắc nghiệp vụ)
-Một cơ chế kiến trúc là một quyết định chiến lược về các tiêu chuẩn chung, các
chính sách và các thực thi. Nó là việc hiện thực hóa các vấn đề cần được chuẩn
hóa trong một dự án
-Một cơ chế kiến trúc đưa ra một giải pháp chung cho một vấn đề thường gặp.
Nó có thể là các mẫu về cấu trúc, các mẫu về hành vi hoặc cả hai
-Các cơ chế kiến trúc là một phần quan trọng trong việc kết nối giữa các chức
năng cần thiết của hệ thống với cách các chức năng này được hiện thực hóa, nó
đưa ra các ràng buộc của môi trường thực thi
-Giải pháp tương ứng với các cơ chế kiến trúc cần phải được xây dựng trong
kiến trúc
-Kiến trúc sư lựa chọn các cơ chế, hợp lệ các cơ chế, sau đó kiểm chứng và áp
đặt chúng một cách nhất quán vào phần còn lại của công việc thiết kế hệ thống
-Có 3 loại:
-Các cơ chế phân tích nắm bắt các khía cạnh chính của một giải pháp theo cách
độc lập với môi trường thực thi
+Cung cấp các hành vi chuyên biệt cho các lớp hoặc các thành phần liên quan
đến miền vấn đề
+Tham chiếu đến việc hiện thực hóa cộng tác giữa các lớp và/ hoặc các thành
phần
+Có thể được cài đặt như một khung công việc
+VD: tổ chức lưu trữ bền vững, giao tiếp liên tiến trình, xử lí lỗi và sai sót,
truyền thông điệp, phân tán, an ninh,…
+Gỉa định một số chi tiết về môi trường thực thi nhưng không gắn với một môi
trường thực thi cụ thể nào
-Cơ chế thực thi xác định bản cài đặt chính xác ứng với một môi trường thực thi
cụ thể ( công nghệ nhất định, ngôn ngữ cài đặt,…)
10. Cơ chế phân tích là gì? Lấy ví dụ?
- Mỗi cơ chế phân tích thường được xem xét dựa trên những đặc điểm chính
nào đó
-Những đặc điểm của cơ chế phân tích sẽ nắm bắt một số yêu cầu phi chức năng
của hệ thống
+Phạm vi( granularity): xác định tất cả các lớp mà thể hiện của chúng cần
được lưu trữ cho các lần thực thi sau của hệ thống
+Dung lượng( volume): xác định số lượng các đối tượng cần lưu trữ bền vững
+Thời lượng( duration): xác định khoảng thời gian mà các đối tượng cần lưu
trữ bền vững
+Cơ chế truy cập( access mechanism): làm thế nào các đối tượng được định
danh duy nhất và được truy xuất?
+Tần suất truy cập( access frequency): xem xét các đối tượng có thường
xuyên được truy cập, được cập nhật hay không?
+Độ tin cậy(reliability): xem xét các đối tượng có cần phải bảo toàn sau những
lỗi và xung đột giữa các tiến trình hay không?
11. Lý giải tại sao cần sử dụng các cơ chế phân tích?
12. Mục đích của hoạt động phân tích ca sử dụng là gì? Các chế tác nào là
đầu vào và ra cho hoạt động phân tích ca sử dụng?
-Xác định các lớp phân tích để thực hiện luồng các sự kiện của ca sử dụng
-Phân bổ hành vi ca sử dụng cho các lớp này, sử dụng các hiện thưc hóa ca sử
dụng
-Xác định các trách nhiệm, các thuộc tính và các liên kết của các lớp phân tích
-Liên hệ các lớp phân tích tới từng cơ chế kiến trúc
*Các chế tác INPUT/ OUTPUT là đầu vào và ra cho hoạt động phân tích ca sử
dụng
13. Lớp phân tích là gì? Nêu các kiểu mở rộng (stereotypes) của lớp phân
tích?
-Các lớp phân tích vận dụng các yêu cầu chức năng chính
-Các lớp phân tích mô hình hóa các đối tượng trong miền vấn đề
-Phân loại các lớp phân tích dựa trên 3 khía cạnh của hệ thống:
+Biên giữa hệ thống và các tác nhân -> lớp biên( stereotype dạng
<<boundary>>)
+Thông tin hệ thống sử dụng -> lớp thực thể (stereotype dạng <<entity>>)
+Logic điều khiển của hệ thống -> lớp điều khiển ( stereotype dạng
<<control>>)
14. Trình bày vai trò và cách xác định các kiểu lớp phân tích (lớp biên, lớp
điều khiển, lớp thực thể)? Làm thế nào để phân bổ hành vi ca sử dụng cho
các lớp phân tích?
*Vai trò và cách xác định các kiểu lớp phân tích :
-Kiểm tra
+Phân bổ( gán) trách nhiệm cho các lớp phân tích
+Mô hình hóa tương tác giữa các lớp phân tích trong các biểu đồ tương tác
-Một hiện thực hóa ca sử dụng chỉ ra những lớp nào cần phải được xây dựng để
thực hiện ca sử dụng đó
-Trong UML, các hiện thực hóa ca sử dụng được biểu diễn bởi stereotype từ các
cộng tác (collaboration).
+Stereotype là <<realize>>
-Một hiện thực hóa ca sử dụng có thể được biểu diễn bởi một tập các biểu đồ
UML:
+Biểu đồ lớp UML mô hình hóa khung cảnh của cộng tác, chứa các lớp đối
tượng thực hiện ca sử dụng cùng với các mối quan hệ giữa chúng
+Biểu đồ tương tác mô hình hóa các tương tác của cộng tác trong hiện thực
hóa ca sử dụng
16. Trừu tượng chính (key abstraction) là gì? Những nguồn tài liệu nào
được sử dụng để xác định các trừu tượng chính của hệ thống?
-Một trừu tượng chính( key abstraction) là một khái niệm, thường được phát
hiện ra trong khâu mô hình hóa nghiệp vụ và nắm bắt yêu cầu, hệ thống phải có
khả năng xử lý khái niệm này
-Các trừu tượng chính của miền vấn đề được xác định
17. 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?
18. Làm thế nào để kiểm tra các gói được xác định trong hoạt động phân
tích kiến trúc?
19. Làm thế nào để kiểm tra các lớp phân tích được xác định trong hoạt
động phân tích ca sử dụng?
20. Làm thế nào để kiểm tra các hiện thực hoá ca sử dụng?