Tải bản đầy đủ (.pdf) (56 trang)

BÁO CÁO THI CUỐI KÌ MÔN HỌC PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN

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 (1.25 MB, 56 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN
-----  -----

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
B18DCCN082

Chu Đức Chính

Hà Nội, 01/2022


MỤC LỤC
PART 1: QUESTION.................................................................................................................................1
I.

Q1: Styles of software architecture...............................................................................................1

II.

Q2: Steps for analysis...............................................................................................................10

III.

Q3: Steps for design (cohesion, coupling….give example, Relationship, code…)................19


IV.

Q4: 3 Layer architecture style & MVC...................................................................................24

V.

Q5: DAO? Why? class diagram & code for DAO. Review Appendix B1 & Explain diagram
28

VI.

Q6: Database design.................................................................................................................39

VII.

Q7: Interface design (principles…).........................................................................................47


PART 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ẫu
kiế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
- Layered pattern
- Client-server pattern
- Master-slave pattern

- Pipe-filter pattern
- Broker pattern
- Peer-to-peer pattern
- Event-bus pattern
- Model-view-controller pattern
- Blackboard pattern
- Interpreter pattern
1. Layered pattern
Mẫu kiến trúc này có thể được sử dụng trong các chương trình cấu trúc mà có
thể được phân tách thành các nhóm gồm nhiều cơng việc nhỏ, mỗi nhóm ở các
mức độ trừu tượng hóa cụ thể. Mỗi tầng cung cấp các dịch vụ cho các tầng kế
tiếp cao hơn.
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à domain
layer)
1|Page


- 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ác
dịch vụ lên server và server cung cấp các dịch vụ tương ứng cho các client đó.

Ngồ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.

2|Page


3. Master-slave pattern
Mẫu này bao gồm 2 phần; master and slaves. Thành phần master phân phối
công việc giữa các thành phần slave giống nhau và tính tốn ra kết quả cuối
cùng từ các kết quả mà các slave trả về.
Sử dụng
- Trong việc nhân rộng database, cơ sở dữ liệu master được coi là nguồn dữ
liệu tin cậy và các cơ sở dữ liệu slave được đồng bộ với nó.
- Các thiết bị ngoại vi kết nối tới đường truyền bus của hệ thống máy tính
(master and slave drives).

3|Page


4. 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 ống
này có thể được sử dụng cho việc buffer hoặc cho mục đích đồng bộ hóa.
Sử dụng
- Các trình biên dịch. Các bộ lọc liên tục thực hiện phân tích từ vựng, parsing,
phân tích ngữ nghĩa, và tiến trình tạo mã.
- Quy trình làm việc trong tin học sinh học.


5. Broker pattern
Mẫu này được sử dụng trong các hệ thống phân tán cấu trúc với các thành phần
được tách rời. Các thành phần này có thể tương tác với nhau thông qua các lời
gọi dịch vụ từ xa (remote service invocation). Thành phần broker chịu trách
nhiệm cho việc phối hợp giao tiếp giữa các thành phần.
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ới
dị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.

4|Page


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

5|Page


7. 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ên
các kênh cụ thể ở trên event bus. Các bộ lắng nghe (listener) đăng ký nghe trên
các kênh cụ thể. Các bộ lắng nghe được notify có message mới được phát hành
trên kênh mà nó đã đăng ký trước đó.
Sử dụng
- Phát triển Android
- Dịch vụ Notification

6|Page


8. 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ữ tồ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 đến
thơ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.

7|Page


9. 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ớ tồn cục có cấu trúc chứa các đối tượng từ không
gian 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ợp
với những nguồn kiến thức đang tồn tại.
Sử dụng
- Nhận dạng giọng nói.
- Nhận dạng và tracking phương tiện giao thông.
- Nhận dạng cấu trúc Protein.
- Giải nghĩa tín hiệu Sonar.

8|Page


10.Interpreter pattern
Mẫu này được sử dụng để thiết kế các thành phần mà thơng dịch các chương
trình được viết trong một ngơn ngữ chun dụng. Mục đích chính nó chỉ rõ
cách đánh giá các dịng chương trình, được biết như các câu hoặc các công thức
được viết trong ngôn ngữ cụ thể. Ý tưởng cơ bản là có 1 lớp cho từng ký hiệu
ngôn ngữ.
Sử 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.

9|Page



II.

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ặc
cá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ải
quyế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ả để hồn thành mục đích của chúng.
Phân tích xác định những gì hệ thống phải làm.
1. Xác định yêu cầu
- Xác định yêu cầu nghiệp vụ
+ Xác định và mô tả các tác nhân
+ Xây dựng bảng thuật ngữ
+ Xác định và mô tả các ca sử dụng nghiệp vụ
10 | P a g e


+ 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
- Xác định yêu cầu hệ thống
o Yêu cầu chức năng
+ Xác định và mô tả các tác nhân
+ Xác định và mô tả các ca sử dụng
+ Xây dựng biểu đồ ca sử dụng
+ Xây dựng kịch bản
+ Xếp ưu tiên các ca sử dụ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
- Phân tích tĩnh
+ Xác định các lớp
+ Xác định quan hệ giữa các lớp
+ Xây dựng biểu đồ lớp
+ Xác định thuộc tính lớp
- Phân tích động
+ Xây dựng biểu đồ giao tiếp
+ Gán phương thức cho các lớp
- 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ì?
Phâ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ệ
11 | P a g e


thống hiệ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ệ
thống.
 Nó mang tính logic hơn là tính vật lý, tức là các phần tử của hệ thống không
phụ thuộc vào nhà cung cấp hoặc phần cứng.
 Đây là một cách tiếp cận hoạt động từ tổng quan cấp cao đến chi tiết cấp thấp
hơn.

 Công cụ phân tích có cấu trúc (Structured analysis tool)
Trong q 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)

12 | P a g e


 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ầu
củ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ữa
ngườ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ùng
muốn có một ngơn ngữ ký hiệu để giao tiếp. Tuy nhiên, nó địi hỏi một số lượng
lớn các lần lặp để có được giải pháp chính xác và đầy đủ nhất.

13 | P a g e


Bảng sau đây cho thấy các ký hiệu được sử dụng trong thiết kế DFD và ý nghĩa của
chúng
Tên kí tự

Kí tự

Ý Nghĩa

Hình vng

Nguồn hoặc đích đến của dữ liệu

Múi tên

Luồng dữ liệu

Hình trịn

Q trình chuyển đổi dữ liệu

Hình chữ nhật

Kho dữ liệu

mở
b, Các loại DFD
DFD logic (Logic DFD)


DFD vật lí (Physical DFD)

Nó phụ thuộc vào việc cài đặt. Nó cho

Nó là độc lập với việc cài đặt. Nó chỉ

thấy những chức năng nào được thực

tập trung vào luồng dữ liệu giữa các quy

hiện.

trình.

Nó cung cấp thơng tin chi tiết về phần

Nó giải thích các sự kiện của hệ thống

cứng, phần mềm, tệp và con người ở mức và dữ liệu theo u cầu của mỗi sự kiện.
độ thấp.
Nó mơ tả cách hệ thống hiện tại hoạt

Nó chỉ ra cách thức hoạt động của

động và cách một hệ thống sẽ được cài

nghiệp vụ; khơng phải làm thế nào hệ

đặt.


thống có thể được cài đặt.

 Sơ đồ ngữ cảnh (Context Diagram)
Mộ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ạn
cá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ình
14 | P a g e


chí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ột
vai 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:
Sr.No.

Tên dữ liệu

Mơ tả

Số kí tự

1


ISBN

Số ISBN

10

2

TITLE

Tên sách

60

3

SUB

Chủ đề sách

80

4

ANAME

Tên tác giả

15


 Cây quyết định (Decision Trees)
Câ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ằng
cá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à
15 | P a g e


một sơ đồ thể hiện các hành động và điều kiện thay thế trong khn 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ép
của chúng. Một nút hình vng 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:

 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ách
chính xác và dễ hiểu.
16 | P a g e


 Nó hữu ích trong các tình huống mà các hành động phụ thuộc vào sự xuất
hiệ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 thành phần của Bảng Quyết định
Stub điều kiện (Condition Stub) - Nó nằm ở góc phần tư phía trên bên trái, liệt kê

tất cả các điều kiện cần được kiểm tra.
Stub hành động (Action Stub) - Nó nằm ở góc phần tư phía dưới bên trái, phác thảo
tất cả các hành động cần thực hiện để đáp ứng điều kiện như vậy.
Mục nhập điều kiện (Condition Entry)- Nó nằm ở góc phần tư phía trên bên phải,
cung cấp câu trả lời cho các câu hỏi được hỏi trong góc phần tư Stub điều kiện.
Mục nhập hành động (Action stub) - Nó nằm ở góc phần tư phía dưới bên phải cho
biết hành động thích hợp là kết quả của các câu trả lời cho các điều kiện trong góc
phần tư mục nhập điều kiện.
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.
X - hành động sẽ được thực hiện.
Điều kiện
Advance
payment made

Quy tắc 1

Quy tắc 2

Quy tắc 3

Quy tắc 4

Y

N


N

N

-

Y

Y

N

Purchase
amount >=
10000
17 | P a g e


Regular
Customer

-

Y

N

-


X

X

-

-

-

-

X

X

Hành động
Give 5%
discount
Give no
discount

 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ả quy
trì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ình
phả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:

 Mã giả (Pseudocode)
Mã giả không tuân theo bất kỳ ngơn ngữ lập trình nào và diễn đạt logic bằng tiếng
Anh đơn giản.
18 | P a g e


 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 ngun tắc sau để chọn cơng cụ thích hợp nhất phù hợp với yêu cầu
của bạn
 Sử dụng DFD ở phân tích cấp cao hoặc cấp thấp để cung cấp tài liệu hệ
thống tốt.
 Sử dụng từ điển dữ liệu để đơn giản hóa cấu trúc nhằm đáp ứng yêu cầu dữ
liệu của hệ thống.
 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ểm
tra 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.
III.

Q3: Steps for design (cohesion, coupling….give example, Relationship,
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ền
giả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ục
tiêu chính của phát triển hệ thống.
19 | P a g e


1. 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
mơ hình E-R.
Thực thể (ENTITY) - Nó chỉ định các đối tượng thực riêng biệt trong một ứng
dụng. Ví dụ: nhà cung cấp, mặt hàng, sinh viên, khóa học, giáo viên, v.v.
Quan hệ (RELATIONSHIP) - Chúng là những mối quan hệ phụ thuộc có ý nghĩa
giữa các thực thể. Ví dụ, các mặt hàng cung cấp của nhà cung cấp, giáo viên dạy
các khóa học, sau đó việc cung cấp và dạy là mối quan hệ.
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
Kí tự

Ý nghĩa
Thực thể
Thực thể yếu

20 | P a g e


Quan hệ

Quan hệ xác định

Thuộc tính

Thuộc tính khóa

Thuộc tính có nhiều giá trị
(Ex: Phone)
Thuộc tính đa hợp (Ex: name)
Thuộc tính kế thừa
(Ex: Từ dob -> age)

E2 tham gia đầy đủ trong R

Số lượng tham gia E1:E2 = 1:N

21 | P a g e



Ba 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ình
phụ 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.

22 | P a g e


- 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ên
quan đế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ưng

cá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 nhau
trong 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ần
củ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ào
nhau. Trong thực tế, điều này có nghĩa là nhà thiết kế hệ thống phải đảm bảo
rằ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 q trình khơng liên quan với nhau được biểu diễn
dưới dạng các quá trình trên DFD thành các mô-đun vô nghĩa.

23 | P a g e


×