Pipe-filter patternMầu này có thể được sử dụng trong các hệ thống cấu trúc mà gồm các thủ tục và xử lý 1 luồng dữ liệu.. Q2: Steps for analysis> Phân tích hệ thống là một quá trình thu t
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
— ^ffl^ —
MÔN HỌC: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
THÔNG TIN
Nhóm môn học: 09
BÁO CÁO THI CUỐI KÌ
Thông tin sinh viên
Hà Nội, 01/2022
Trang 2MỤC LỤC
I.
Trang 3PART 1: QUESTION
I Q1: Styles of software architecture
Một mô hình kiến trúc là một giải pháp chung, có thể tái sử dụng cho một vấn đềthường xảy ra trong kiến trúc phần mềm trong một ngữ cảnh nhất định Các mẫukiến trúc tương tự như mẫu thiết kế phần mềm nhưng có phạm vi rộng hơn
Trong đây em sẽ giới thiệu ngắn gọn 10 mẫu kiến trúc phổ biến hiện nay
Phổ biến nhất là hệ thống thông tin chung gồm 4 tầng như sau:
- Tầng trình diễn - Presentation layer (còn được gọi là UI layer)
- Tầng ứng dụng - Application layer (còn được gọi là service layer)
- Tầng xử lý logic nghiệp vụ - Business logic layer (còn được gọi là domainlayer)
Trang 4- Tầng truy suất dữ liệu - Data access layer (còn được gọi là persistence
layer)
Sử dụng:
- Các ứng dụng desktop nói chung
- Các ứng dụng web thương mại điện tử
2 Client-server pattern
Mầu này bao gồm 2 thành phần; một server và nhiều clients Thành phần server
sẽ cung cấp các dịch vụ cho nhiều thành phần client Các client gửi yêu cầu cácdịch vụ lên server và server cung cấp các dịch vụ tương ứng cho các client đó.Ngoài ra, server tiếp tục lắng nghe các yêu cầu từ client
Sử dụng:
Các ứng dụng online như email, chia sẻ document và banking
Trang 53 Master-slave pattern
Mầu này bao gồm 2 phần; master and slaves Thành phần master phân phốicông việc giữa các thành phần slave giống nhau và tính toán ra kết quả cuốicùng từ các kết quả mà các slave trả về
Trang 64 Pipe-filter pattern
Mầu này có thể được sử dụng trong các hệ thống cấu trúc mà gồm các thủ tục và
xử lý 1 luồng dữ liệu Mỗi bước xử lý được khép kín bên trong 1 thành phần lọc(filter) Dữ liệu cần xử lý được truyền qua đường ống (pipes) Các đường ốngnày có thể được sử dụng cho việc buffer hoặc cho mục đích đồng bộ hóa
Các server publish các năng lực của nó (các dịch vụ và các thuộc tính) cho
broker Các client yêu cầu 1 dịch vụ từ broker và broker sẽ điều hướng client tớidịch vụ phù hợp tương ứng từ bộ đăng ký của nó
Sử dụng
- Phần mềm Message broker như Apache ActiveMQ, Apache Kafka,
RabbitMQ and JBoss Messaging
Trang 76 Peer-to-peer pattern
Trong mẫu này, các thành phần riêng lẻ còn được gọi là các peer Các peer cóthể hoạt động giống như các client, yêu cầu các dịch vụ từ các peer khác, vàcũng giống như 1 server, cung cấp các dịch vụ cho các peer khác Một peer cóthể đóng vai là 1 client hoặc như một server hoặc đóng vai trò cả 2 và nó có thểthay đổi vai trò linh động tùy theo thời điểm
Sử dụng
- Các mạng chia sẻ file như Gnutella và G2
- Các giao thức Multimedia như P2PTV và PDTP
Trang 87 Event-bus pattern
Mầu này phù hợp chính cho các sự kiện và có 4 thành phần chính; event source,event listener, channel và event bus Các nguồn (source) phát hành message trêncác kênh cụ thể ở trên event bus Các bộ lắng nghe (listener) đăng ký nghe trêncác kênh cụ thể Các bộ lắng nghe được notify có message mới được phát hànhtrên kênh mà nó đã đăng ký trước đó
Sử dụng
- Phát triển Android
- Dịch vụ Notification
Trang 98 Model-view-controller pattern
Mầu này còn được gọi là mẫu MVC, chia ứng dụng tương tác thành 3 phần,
gồm
- model - là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng
- view - đây là phần giao diện (theme) dành cho người sử dụng
- controller - bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đếnthông qua view Từ đó, C đưa ra dữ liệu phù hợp với người dùng
Mầu này giúp chia tách các tầng trình diễn thông tin nội bộ khỏi các thông tinđược biểu diễn cho và chấp nhận bởi người dùng Nó phân tách sự phụ thuộc
các thành phần và cho phép tái sử dụng code hiệu quả hơn
Sử dụng
- Kiến trúc cho các ứng dụng World Wide Web trong hầu hết các ngôn ngữlập trình chính
Trang 109 Blackboard pattern
Mầu này phù hợp cho các vấn đề mà không có chiến lược giải pháp xác định đã
biết mầu blackboard gồm 3 thành phần chính
- blackboard - một bộ nhớ toàn cục có cấu trúc chứa các đối tượng từ khônggian giải pháp
- knowledge source - các modules đặc biệt với biểu diễn riêng của nó
- control component - lựa chọn, cấu hình và thực thi các module
Tất cả các thành phần có quyền truy cập tới blackboard Các thành phần có thể tạo
ra đối tượng dữ liệu mới và được thêm vào blackboard Các thành phần tìm kiếm
các loại dữ liệu cụ thể trên blackboard, và có thể tìm chúng theo các mầu phù hợpvới những nguồn kiến thức đang tồn tại
Trang 11Sử dụng
- Ngôn ngữ truy vấn CSDL như SQL
Các ngôn ngữ được sử dụng để mô tả các giao thức truyền thông.
Trang 12II Q2: Steps for analysis
> Phân tích hệ thống là một quá trình thu thập và diễn giải các dữ kiện, xác định
các vấn đề và phân rã một hệ thống thành các thành phần của nó
Phân tích hệ thống được thực hiện với mục đích nghiên cứu một hệ thống hoặccác bộ phận của nó để xác định các mục tiêu của nó Đây là một kỹ thuật giảiquyết vấn đề nhằm cải thiện hệ thống và đảm bảo rằng tất cả các thành phần của
hệ thống hoạt động hiệu quả để hoàn thành mục đích của chúng
Trang 13+ Mô tả chi tiết ca sử dụng
+ Xây dựng biểu đồ giao tiếp
+ Xây dựng biểu đồ hoạt động
o Yêu cầu phi chức năng
+ Thao tác, hiệu năng, bảo mật, văn hóa, chính trị
+ Phác họa giao diện người dùng
2 Phân tích yêu cầu
- Viết tài liệu đặc tả yêu cầu phần mềm
> Phân tích có cấu trúc (Structured analysis) là gì?
Trang 14Phân tích có cấu trúc là một phương pháp phát triển cho phép người phân tích hiểu
hệ thống và các hoạt động của nó một cách hợp lý Đây là một cách tiếp cận có hệthống, sử dụng các công cụ đồ họa để phân tích và tinh chỉnh các mục tiêu của hệthốnghiện có và phát triển một đặc tả hệ thống mới mà người dùng có thể dễ dàng
hiểu được
Nó có các đặc điểm sau:
• Nó là đồ họa chỉ định cách trình bày của ứng dụng
• Nó phân chia các quá trình để đưa ra một bức tranh rõ ràng về luồng hệ
> Công cụ phân tích có cấu trúc (Structured analysis tool)
Trong quá trình Phân tích có cấu trúc, nhiều công cụ và kỹ thuật khác nhau được sửdụng để phát triển hệ thống:
• Sơ đồ luồng dữ liệu (Data Flow Diagrams -DFD)
• Từ điển dữ liệu (Data Dictionary)
• Cây quyết định (Decision Trees)
• Bảng Quyết định (Decision Tables)
• Tiếng Anh có cấu trúc (Structured English)
Mã giả (pseudocode)
Trang 15> Sơ đồ luồng dữ liệu (Data Flow Diagrams -DFD) hoặc Biểu đồ bong bóng (Burble Chart)
Nó là một kỹ thuật được phát triển bởi Larry Constantine để thể hiện các yêu cầucủa hệ thống dưới dạng đồ họa
• Nó cho thấy luồng dữ liệu giữa các chức năng khác nhau của hệ thống và chỉđịnh cách hệ thống hiện tại được thực hiện
• Đây là giai đoạn ban đầu của giai đoạn thiết kế phân chia theo chức năng cácđặc tả yêu cầu xuống mức chi tiết thấp nhất
• Bản chất đồ họa của nó làm cho nó trở thành một công cụ giao tiếp tốt giữangười dùng và nhà phân tích hoặc nhà phân tích và nhà thiết kế hệ thống
• Nó cung cấp một cái nhìn tổng quan về dữ liệu mà một hệ thống xử lý,
những chuyển đổi nào được thực hiện, những dữ liệu nào được lưu trữ,
những kết quả nào được tạo ra và chúng lưu chuyển đến đâu
a, Các yếu tố cơ bản của DFD
DFD dễ hiểu và khá hiệu quả khi thiết kế cần thiết không rõ ràng và người dùngmuốn có một ngôn ngữ ký hiệu để giao tiếp Tuy nhiên, nó đòi hỏi một số lượnglớn các lần lặp để có được giải pháp chính xác và đầy đủ nhất
Trang 16Bảng sau đây cho thấy các ký hiệu được sử dụng trong thiết kế DFD và ý nghĩa củachúng
Nó phụ thuộc vào việc cài đặt Nó cho
thấy những chức năng nào được thực
hiện
Nó là độc lập với việc cài đặt Nó chỉtập trung vào luồng dữ liệu giữa các quytrình
Nó cung cấp thông tin chi tiết về phần
cứng, phần mềm, tệp và con người ở mức
độ thấp
Nó giải thích các sự kiện của hệ thống
và dữ liệu theo yêu cầu của mỗi sự kiện
Nó mô tả cách hệ thống hiện tại hoạt
động và cách một hệ thống sẽ được cài
đặt
Nó chỉ ra cách thức hoạt động củanghiệp vụ; không phải làm thế nào hệthống có thể được cài đặt
> Sơ đồ ngữ cảnh (Context Diagram)
Trang 17Một sơ đồ ngữ cảnh giúp hiểu toàn bộ hệ thống bằng một DFD cung cấp cho bạncái nhìn tổng quan về một hệ thống Nó bắt đầu với việc đề cập đến các quy
trìnhchính với một số chi tiết nhỏ và sau đó chuyển sang cung cấp thêm chi tiết về các
quy trình với cách tiếp cận từ trên xuống
Sơ đồ ngữ cảnh của quản lý nhà ăn (mess management) được hiển thị bên dưới
> Từ điển dữ liệu (Data Dictionary)
Từ điển dữ liệu là một kho lưu trữ có cấu trúc các phần tử dữ liệu trong hệ thống
Nó lưu trữ mô tả của tất cả các phần tử dữ liệu DFD gồm chi tiết và định nghĩa vềluồng dữ liệu, kho dữ liệu, dữ liệu được lưu trữ trong kho dữ liệu và các quy trình
Từ điển dữ liệu cải thiện giao tiếp giữa nhà phân tích và người dùng Nó đóng mộtvai trò quan trọng trong việc xây dựng cơ sở dữ liệu Hầu hết các DBMS đều có từđiển dữ liệu như một tính năng tiêu chuẩn Ví dụ, hãy tham khảo bảng sau:
> Cây quyết định (Decision Trees)
Trang 18Cây quyết định là một phương pháp để xác định các mối quan hệ phức tạp bằngcách mô tả các quyết định và tránh các vấn đề trong giao tiếp Cây quyết định làmột
sơ đồ thể hiện các hành động và điều kiện thay thế trong khuôn khổ cây ngang
Do đó, nó mô tả các điều kiện cần xem xét đầu tiên, thứ hai, v.v
Cây quyết định mô tả mối quan hệ của từng điều kiện và các hành động được phépcủa chúng Một nút hình vuông biểu thị một hành động và một nút tròn biểu thị mộtđiều kiện Nó buộc các nhà phân tích phải xem xét trình tự của các quyết định vàxác định quyết định thực tế cần phải đưa ra
Hạn chế chính của cây quyết định là nó thiếu thông tin trong định dạng của nó để
mô tả những kết hợp điều kiện nào khác mà bạn có thể thực hiện để kiểm tra Nó làmột đại diện duy nhất của các mối quan hệ giữa các điều kiện và hành động
Ví dụ, hãy tham khảo cây quyết định sau:
Give 5% Discount
N = Nữ C1: AdvancePaymentMode C2: PurchaseAmount> = 10,000
No Discount
C3 : RegularCustomer
No Dĩscount
> Bảng Quyết định (Decision Tables)
Bảng quyết định là một phương pháp mô tả mối quan hệ logic phức tạp một cáchchính xác và dễ hiểu
Trang 19• Nó hữu ích trong các tình huống mà các hành động phụ thuộc vào sự xuấthiện của một hoặc một số kết hợp các điều kiện độc lập.
• Nó là một ma trận chứa hàng hoặc cột để xác định một vấn đề và các hànhđộng
Các mục trong bảng quyết định được đưa ra bởi Quy tắc quyết định (Decision
Rules) xác định mối quan hệ giữa các tổ hợp điều kiện và các quá trình hành động.Trong phần quy tắc
Y cho thấy sự tồn tại của một điều kiện
N đại diện cho điều kiện không được thỏa mãn
Một khoảng trống (A blank) - hành động sẽ được bỏ qua
Trang 20> Tiếng Anh có cấu trúc (Structured English)
Tiếng Anh cấu trúc có nguồn gốc từ ngôn ngữ lập trình có cấu trúc giúp mô tả quytrình dễ hiểu và chính xác hơn Nó dựa trên logic thủ tục sử dụng các câu xây dựng
và mệnh lệnh được thiết kế để thực hiện thao tác cho hành động
• Nó được sử dụng tốt nhất khi các chuỗi và vòng lặp trong một chương trìnhphải được xem xét và vấn đề cần các chuỗi hành động với các quyết định
• Nó không có quy tắc cú pháp nghiêm ngặt Nó thể hiện tất cả logic về cấu
trúc quyết định tuần tự và sự lặp lại
Ví dụ, hãy xem chuỗi hành động sau:
if customer pays advance
end i f
else No Discount
er.d if end if
Trang 21• Nó có thể chỉ định logic lập trình vật lý mà không cần mã hóa thực tế trong
và sau khi thiết kế vật lý
• Nó được sử dụng kết hợp với lập trình có cấu trúc
• Nó thay thế các sơ đồ của một chương trình
> Hướng dẫn lựa chọn công cụ thích hợp
Sử dụng các nguyên tắc sau để chọn công cụ thích hợp nhất phù hợp với yêu cầu
• Sử dụng tiếng Anh có cấu trúc nếu có nhiều vòng lặp và hành động phức tạp
• Sử dụng các bảng quyết định khi có một số lượng lớn các điều kiện cần kiểmtra và logic phức tạp
• Sử dụng cây quyết định khi trình tự các điều kiện là quan trọng và nếu có ítđiều kiện cần được kiểm tra
code )
> Thiết kế hệ thống là giai đoạn thu hẹp khoảng cách giữa miền vấn đề và hệ
thống hiện có theo cách có thể quản lý được Giai đoạn này tập trung vào miềngiải pháp, tức là "làm thế nào để cài đặt?"
Đây là giai đoạn mà tài liệu SRS được chuyển đổi thành một định dạng có thểđược thực hiện và quyết định cách hệ thống sẽ hoạt động
Trong giai đoạn này, hoạt động phức tạp của phát triển hệ thống được chia
thành nhiều hoạt động phụ nhỏ hơn, chúng phối hợp với nhau để đạt được mụctiêu chính của phát triển hệ thống
Trang 221 Thiết kế kiến trúc
- Lựa chọn công nghệ mạng cho hệ thống
- Thiết kế tương tranh và an toàn bảo mật
- Phân rã hệ thống thành các hệ thống con
- Xây dụng biểu đồ gói
2 Thiết kế chi tiết
- Xây dựng mô hình lớp thiết kế
- Xây dựng lược đồ cơ sở dữ liệu
- Thiết kế giao diện người dùng
> Mô hình mối quan hệ thực thể (Entity Relationship Model)
Nó là một kỹ thuật được sử dụng trong thiết kế cơ sở dữ liệu giúp mô tả mối quan
hệ giữa các thực thể khác nhau của một tổ chức Các thuật ngữ được sử dụng trong
Thuộc tính (ATTRIBUTES) - Nó chỉ định các thuộc tính của các mối quan hệ Vídụ: mã nhà cung cấp, tên sinh viên Các ký hiệu được sử dụng trong mô hình E-R
và ý nghĩa tương ứng của chúng
Thực thểThực thể yếu
Trang 23(Ex: Từ dob -> age)
E1
l~"v E2
Số lượng tham gia E1:E2 = 1:N
Trang 24Ba loại mối quan hệ có thể tồn tại giữa hai tập dữ liệu: một-một, một-nhiều và
nhiều-nhiều
> Coupling
Kết nối là thước đo tính độc lập của các thành phần Nó xác định mức độ phụthuộc của từng mô-đun phát triển hệ thống vào mô-đun khác Trong thực tế,điều này có nghĩa là sự kết hợp giữa các mô-đun trong hệ thống càng mạnh thìviệc triển khai và duy trì hệ thống càng khó khăn hơn
Mỗi mô-đun phải có giao diện đơn giản, gọn gàng với các mô-đun khác và sốlượng phần tử dữ liệu tối thiểu phải được chia sẻ giữa các mô-đun
- High Coupling
Các loại hệ thống này có sự kết nối với nhau với các đơn vị chương trìnhphụ thuộc vào nhau Những thay đổi đối với một hệ thống con dẫn đến tácđộng lớn đến hệ thống con khác
- Low Coupling
Loại hệ thống này được tạo thành từ các thành phần độc lập hoặc gần nhưđộc lập Một thay đổi trong một hệ thống con không ảnh hưởng đến bất kỳ
hệ thống con nào khác
Trang 25- Coupling Measures
Sự gắn kết ngẫu nhiên được tìm thấy trong một thành phần mà các phần của
nó không liên quan đến phần khác
+ Logical Cohesion - Nó là nơi một số chức năng hoặc phần tử dữ liệu liênquan đến logic được đặt trong cùng một thành phần
+ Temporal Cohesion - Là khi một thành phần được sử dụng để khởi tạo hệthống hoặc tập hợp các biến thực hiện một số chức năng theo trình tự, nhưngcác chức năng có liên quan với nhau theo thời gian liên quan
+ Procedurally Cohesion - Đó là khi các chức năng được nhóm lại với nhautrong một thành phần chỉ để đảm bảo thứ tự này
+ Sequential Cohesion - Là khi đầu ra từ một phần của một thành phần làđầu vào cho phần tiếp theo của nó
> Cohesion
Sự gắn kết là thước đo mức độ chặt chẽ của mối quan hệ giữa các thành phầncủa nó Nó xác định mức độ phụ thuộc của các thành phần của một mô-đun vàonhau Trong thực tế, điều này có nghĩa là nhà thiết kế hệ thống phải đảm bảorằng
- Họ không chia các quy trình thiết yếu thành các mô-đun phân mảnh
- Chúng không tập hợp các quá trình không liên quan với nhau được biểu diễndưới dạng các quá trình trên DFD thành các mô-đun vô nghĩa
Trang 26- Các mô-đun tốt nhất là những mô-đun được gắn kết về mặt chức năng Cácmô-đun tồi tệ nhất là những mô-đun được gắn kết một cách ngẫu nhiên.The worst degree of cohesion
Sự gắn kết ngẫu nhiên được tìm thấy trong một thành phần mà các phần của nókhông liên quan đến phần khác
+ Logical Cohesion - Nó là nơi một số chức năng hoặc phần tử dữ liệu liênquan đến logic được đặt trong cùng một thành phần
+ Temporal Cohesion - Là khi một thành phần được sử dụng để khởi tạo hệthống hoặc tập hợp các biến thực hiện một số chức năng theo trình tự, nhưngcác chức năng có liên quan với nhau theo thời gian liên quan
+ Procedurally Cohesion - Đó là khi các chức năng được nhóm lại với nhautrong một thành phần chỉ để đảm bảo thứ tự này
+ Sequential Cohesion - Là khi đầu ra từ một phần của một thành phần là đầuvào cho phần tiếp theo của nó
IV.Q4: 3 Layer architecture style & MVC
1 3 Layer architecture style
> Mô hình 3-layer gồm có 3 phần chính :
Trang 27- Presentation Layer (GUI) : Lớp này có nhiệm vụ chính giao tiếp với ngườidùng Nó gồm các thành phần giao diện ( win form, web form, ) và thựchiện các công việc như nhập liệu, hiển thị dữ liêu, kiểm tra tính đúng đắn dữliệu trước khi gọi lớp Business Logic Layer (BLL).
- Business Logic Layer (BLL) : Layer này phân ra 2 thành nhiệm vụ :
+ Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chínhnguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer
và lưu xuống hệ quản trị CSDL
+ Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thựchiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về
Presentation Layer
- Data Access Layer (DAL) : Lớp này có chức năng giao tiếp với hệ quản trịCSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu( tìm kiếm, thêm, xóa, sửa,.)
> Ưu điểm
- Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờvào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệtnhư giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sựkết dính
- Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thayđổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đếnlớp gần nhất mà không ảnh hưởng đến cả chương trình
- Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đóthì việc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn
để tuân theo Và việc sử dụng lại khi có sự thay đổi giữa hai môi trường( Winform sang Webfrom ) thì chỉ việc thay đổi lại lớp GUI
Trang 28- Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thìcông việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm đượcnhiều thời gian.
- Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhậnmột nhiệm vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúpcác lập trình viên kiểm soát được khối lượng công việc của mình
2 MVC (Model - View - Controller)
> Trước tiên MVC được viết tắt từ 3 chữ (Model-View-Controller) là một design
pattern nhằm phân tách các phần trong một ứng dụng ra các thành phần riêngbiệt Cụ thể nó sẽ đưa các phần xử lý logic và business (Model) ra khỏi phầngiao diện (View) từ đó giúp việc quản lý và mở rộng code trở nên dễ dàng hơn
Model
Trang 29Đây là thành phần tập trung vào xử lý business logic của ứng dụng Cũng
thường được xem là nơi lưu trữ và xử lý dữ liệu xuyên suốt trong mô hìnhMVC Các thành phần đảm nhiệm vai trò model có thể kể đến bao gồm:
+ Database
+ XML File
+ Data sources
- Controller
Đây là phần sẽ tiếp nhận và xử lý các yêu cầu (request) đến từ phía người dùng
Từ đây các yêu cầu sẽ được chuyển đến các nơi tương ứng để xử lý và nhận lạikết quả phù hợp, sau đó dữ liệu sẽ được đưa sang View để hiển thị cho ngườidùng
Nói một cách khác có thể như Controller là một mắc xích để kết nối 2 thànhphần Model và View lại với nhau để xử lý các yêu cầu từ người dùng
- Có thể tái sử dụng code mà không cần sửa đổi MVC làm cho các lớp model
có thể tái sử dụng mà không cần sửa đổi
Trang 30- Dễ dàng thao tác và chỉnh sửa.
- Mỗi phần có thể được kiểm thử độc lập (Model, view, controller)
V Q5: DAO? Why? class diagram & code for DAO Review Appendix B1
& Explain diagram
1 DAO
> Data Access Object (DAO) Pattern là một trong những Pattern thuộc nhóm cấu
trúc (Structural Pattern) Mầu thiết kế DAO được sử dụng để phân tách logiclưu trữ dữ liệu trong một lớp riêng biệt Theo cách này, các service được chedấu về cách các hoạt động cấp thấp để truy cập cơ sở dữ liệu được thực hiện Nócòn được gọi là nguyên tắc Tách logic (Separation of Logic)
- Ý tưởng là thay vì có logic giao tiếp trực tiếp với cơ sở dữ liệu, hệ thốngfile, dịch vụ web hoặc bất kỳ cơ chế lưu trữ nào mà ứng dụng cần sử dụng,chúng ta sẽ để logic này sẽ giao tiếp với lớp trung gian DAO Lớp DAO nàysau đó giao tiếp với hệ thống lưu trữ, hệ quản trị CSDL như thực hiện cáccông việc liên quan đến lưu trữ và truy vấn dữ liệu (tìm kiếm, thêm, xóa,sửa, )
- DAO Pattern dựa trên các nguyên tắc thiết kế abstraction và encapsulation
Nó bảo vệ phần còn lại của ứng dụng khỏi mọi thay đổi trong lớp lưu trữ, vídụ: thay đổi database từ Oracle sang MySQL, thay đổi công nghệ lưu trữ từfile sang database
- Trong Java, DAO được triển khai theo nhiều cách khác nhau như Java
Persistence API, Enterprise Java Bean (EJP), Object-relational mapping(ORM) với các implement cụ thể như Hibernate, iBATIS, Spring JPA,
> Cài đặt