You are on page 1of 45

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC SÀI GÒN

PHÂN TÍCH THIẾT KẾ


HỆ THỐNG THÔNG TIN

Sinh viên thực hiện: GVHD: TS. Nguyễn Quốc Huy


1/ Nguyễn Quang Hiếu – 3121411071 Lớp: DCT121C3
2/ Đoàn Minh Khôi – 3121411106

TP. Hồ Chí Minh, tháng 04/2023


 Để thiết kế được một hệ thống thông tin ta dựa vào YÊU CẦU (Requirement)
 Việc khó nhất trong xây dựng hệ thống thông tin là lấy YÊU CẦU (Requirement) từ khách hàng
 Tại sao khó ?
+ Cần rất nhiều chức năng
+ Giao diện đẹp
+ Cần phải mô tả kĩ
+ ....
 Khó như vậy thì làm sao lấy YÊU CẦU (Requirement) và lấy mức độ nào là đủ ?
- Yêu cầu (requirement) có 2 mức:
+ User: Tổng quát
+ System: Chi tiết ← Phân tích thiết kế

 Phân tích thiết kế có 3 mức: Quan niệm, Tổ thức (logic), Vật lý.
 Có 9 tài liệu khác nhau để phân tích thiết kế (tài liệu GUI ở mức quan niệm, tài liệu GUI ở mức tổ chức, tài
liệu GUI ở mức vật lý, ......)
Vd :
 Quan niệm: Tổng quát các yêu cầu
- GUI mức quan niệm: bản vẽ phối cảnh nhà ở
 Vật lý: Chi tiết, cụ thể hóa ( từng cột trong 1 table được tổ chức ra sao )
- GUI mức vậy lý: bản vẽ chi tiết nhà ở
 Vậy làm sao để từ bản vẽ quan niệm → bản vẽ vật lý ?
- Thông qua mức trung gian tổ chức (logic)
 Giữa một phần mềm nhỏ và một phần mềm lớn khác nhau là gì ?
- Khác nhau ở 3 điểm:

 Môn này cần học để làm gì ?


- Để làm những dự án lớn, khổng lồ
 Có công cụ nào dùng để lấy yêu cầu ở mức System:
- IBM Rational DOORS
- Sparx Systems Enterprise Architect
- JIRA
- Microsoft Azure DevOps
- Atlassian Confluence
- Usecase: dùng để mô tả ở mức quan niệm
- ....
 Ta cần phân biệt giữa chức năng và hành động:

- Các hành động được sắp xếp → Chức năng (Feature)


- Lược đồ hành động được gọi là Activity diagrams
Chức năng: có quy trình mới làm, là một tập hợp các hành động
 Hành động: Hành động làm thay đổi, ảnh hưởng tới dữ liệu: insert: thêm; delete: xóa; update: sửa.
 Hành động truy vấn dữ liệu: query
 Chuyển dữ liệu, chuyển từ hành động này sang hành động khác: transform
 Hành động xử lý sự kiện: event processing

 Use case: 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ột mục đích cụ
thể.
- Focus usecase: mô tả chức năng
Ví dụ: Use case mô tả phân biệt đăng nhập giữa học viên và giảng viên
○ Use case dùng để gợi nhớ mình lấy đủ yêu cầu.
- Activity Diagram:
∞ Mô hình hóa dữ liệu ERD

ERD: Entity Relation Diagram


- Hoàn toàn không thể dựa vào cảm giác trên 1 hệ thống lớn (có rất nhiều tables) => cần
có phương pháp chuyển từ ERD <-> tables
- Để đạt được thành tựu thì phải trải qua
Ví dụ đơn giản mô hình ERD:

 Từ Requirement (~100 trang) sao biết được đâu là thực thể (Entity) ?
- Thực thể là đối tượng dữ liệu sẽ được lưu trữ trong hệ thống
- Thực thể là danh từ nhưng danh từ chưa chắc là thực thể
- Thực thể ký hiệu là
- Trong hệ thống có nhiều thực thể thì giữa các thực thể là quan hệ, kí hiệu

- Số lượng thực thể và số lượng tables không hoàn toàn đồng nhất

- NV — 2 quan hệ — PB
- NV — 1 quan hệ — TN
- NV — 1 quan hệ — ĐA
- TN — 0 quan hệ — ĐA
 Dựa vào đâu để xác định 2 đối tượng có mối quan hệ ?
- Một chức năng cần có dữ liệu đầu vào, dữ liệu đó được xác định từ nguồn nào, từ đó ta
kết hợp và rút ra những dữ liệu chung cần thiết → Tạo thành quan hệ giữa 2 thực thể
→ Cho dữ liệu đầu ra chính xác (Quan hệ dẫn xuất)
Ví dụ:

- Khi này E1, E2 có quan hệ (Khi dữ liệu E1, E2 được sử dụng chung hoặc một phần dữ
liệu)
- Quan hệ tham gia là dữ liệu dẫn xuất (lấy 1 phần) từ NV và ĐA
- Vậy còn những quan hệ còn lại ?
Ví dụ:

- Dựa vào đâu để xác định nguồn dữ liệu cho 1 chức năng ?
 Dựa vào yêu cầu

 Thực thể yếu là gì ?


- Là một thực thể phụ thuộc vào thực thể chính khác, có nghĩa là thực thể chính mà
không tồn tại sẽ kéo theo thực thể phụ thuộc vào mất theo. Thực thể yếu không cần
khóa.
 Bậc của mối kết hợp:
 Mô hình thực thể kết hợp (ERD):
- Là mô hình ở mức quan niệm (mức quan niệm là mức cụ thể hóa)
Mô hình thực thể kết hợp ERD mở rộng
 Đại số quan hệ
 Thực thể và thể hiện của thực thể:
- Giống như lớp và đối tượng. Lớp là thực thể còn thể hiện của thực thể là đối tượng.
Ví dụ:
- Lớp xe có xe hơi, xe đạp là lớp con của lớp xe, lớp con đã bao gồm lớp cha (phân biệt
với đối tượng)
Ví dụ:
NHANVIEN NHANVIENCONGNHAT
A1 A2 A3 A4 A1 A2 A3 A4 A5 A6

 Mỗi thực thể sẽ có thuộc tính. Thuộc tính là dựa vào yêu cầu. Trong mỗi thuộc tính sẽ
có thuộc tính khóa để phân biệt các thể hiện trong các thực thể
 Thuộc tính có nhiều loại:

 Khi ta chọn thuộc tính ta nên xem xét nó thuộc loại thuộc tính gì. Khi nào nên là
đơn ? Đơn trị ? Cơ sở ? Khi nào đơn và khi nào gộp ?
 Dựa vào yêu cầu, tìm hiểu yêu cầu kĩ, xem sau này yêu cầu có mở rộng hay không.
 Thuộc tính đơn trị: giá trị chỉ có 1
Ví dụ: Mã số nhân viên (đơn trị)
Sở thích (đa trị) (vì sở thích cso thể có nhiều sở thích => Làm sao để nó đa trị)
 Thuộc tính cơ sở và thuộc tính dẫn xuất khác nhau như thế nào ?
Ví dụ:
Ngày sinh (cố định) → cơ sở dẫn xuất Tuổi
- Dẫn xuất dựa trên cơ sở đó để dẫn xuất (vd: dựa vào ngày sinh dẫn xuất ra được tuổi)
 Kí hiệu:

 Khóa: phân biệt giữa các instance, giữa các thiết kế với nhau trong 1 thực thể
 Giữa 2 thực thể có bao nhiêu quan hệ ?
- Dựa trên yêu cầu ta sẽ có được các mối quan hệ được rút ra từ các nguồn phù hợp và
đúng với yêu cầu cụ thể, cần thiết và khác nhau.
- Đặt ra câu hỏi cần để làm gì ?
 Thể hiện của mối kết hợp: là tập hợp không trùng lặp thể hiện của các thực thể tham
gia vào mối kết hợp đó

 Bậc của mối kết hợp:


- Là số thực thể tham gia vào mối kết hợp đó
Ví dụ: Quan hệ bậc 3

- Tại sao chỉ phát sinh 2 thuộc tính mà không phải 3 thuộc tính ? (Số thuộc tính phát
sinh này dựa vào đâu?)
 Dựa vào việc lấy thật kĩ yêu cầu
 Bản số:
- Ký hiệu: (min, max)
 Thực thể yếu:
Ví dụ:

- Khi nào là thực thể yếu ?


 Trong hệ thống mình phải quyết định thực thể nào là thực thể yếu.
 Mối kết hợp đệ quy:
- Là mối kết hợp được tạo thành từ cùng 1 thực thể (hay một thực thể không có mối kết
hợp với chính nó)
- Khi nào nên dùng đệ quy, khi nào thì không nên dùng ? Nếu dùng thì ta sẽ triển khai
nó như thế nào ?
 Mối kết hợp mở rộng
- Là mối kết hợp định nghĩa trên ít nhất một mối kết hợp khác.

 Có 6 chức năng
- Lưu trữ thông tin (E1, E2, E3, E4, E5)
- Sắp xếp lớp (E lớp)
- Lập danh sách môn học (Mở MH)
- Phân công giảng dạy (Phân công)
- Lưu trữ thông tin đăng ký môn học (Đăng ký)
- Lưu trữ kết quả học tập (Đăng ký)
 Ta tạo dữ liệu là cho chức năng, mà chức năng thì dựa vào yêu cầu → Là đường đi
đúng
 Cấu trúc phân cấp
Ví dụ:
Chuyển đổi từ cấu trúc bình thường thành cấu trúc phân cấp
 Luật căn bản trên xuống (để chuyển từ ERD sang ERD chi tiết)
Ví dụ:

- Ta áp dụng luật Table khi nào thì mới phù hợp?


 Trong trường hợp này là khi mỗi địa điểm ở 1 quốc gia khác nhau => Ta phải phân
ra, còn các địa điểm giống nhau thì chỉ dùng nơi chốn.
 Nơi chốn mỗi đơn mỗi khác nhau ta áp dụng Table

- Quản lý con người (đàn ông hay phụ nữ đều dùng chính sách giống nhau thì dùng luật
này) khác thì dùng T2.

-
Thông tin GIAINOBEL và thông tin GIAIOSCAR khác nhau => Phân loại
 Cấu trúc thông tin khác nhau tách thành 2 thực thể

- Nếu
mà phát sinh dẫn xuất từ 2 chức năng khác thì ta áp dụng T4
- Nếu quản lý ngắn hạn thì dùng T5

- T6 áp dụng khi ta không thể phân rã được nữa thì chúng ta thêm thông tin thuộc tính
vào (thông tin thuộc tính theo yêu cầu) → T6 không bắt buộc áp dụng.

- Cân nhắc xem dùng dữ liệu gộp hay đơn. Khi gộp thì thực thể này có khi thành thực
thể yếu cũng được
- Gộp khi nào ?
 Khi ta không có nhu cầu xử lý từ đơn vị này, địa chỉ chỉ là địa chỉ. Nếu có nhu cầu
thì ta bỏ đi địa chỉ và dùng những thuộc tính đơn.
- Thuộc tính đơn nhưng chuyển thành thực thể yếu

- Lúc nào cần tổng quát lúc nào cần chi tiết ?
 Tùy trường hợp mình cần quản lý thông tin gì, quản lý tới đâu, nếu quản lý chi tiết
thì dùng T8.
Để chuyển từ ERD → ERD chi tiết ta dùng 8 luật, dựa vào yêu cầu xử lý thông tin.
 Chiến lược trên – xuống (top - down): chiến lược thiết kế tổng quát xuống chi tiết.
- Thông thường làm top – down
- Khi nào làm bottom – up (bottom – up là từ chi tiết lên tổng quát) ?
- Muốn phát triển product cho version mới thì ta thiết kế lại, sắp xếp lại dựa vào cái có
rồi.
 Ta dùng bottom – up
- Top – down là ta thấy trước rồi mới triển khai (thiển cận)
Ví dụ: Ứng dụng quản lý băng đĩa
Đặt tên liên quan vì ta biết có liên quan

- Nghiệp vụ khác nhau nên mới tách ra làm 2 cái. Khác nhau về nghiệp vụ => khác
nhau việc xử lý dữ liệu → Có khả năng sinh ra thêm dữ liệu cần lưu trữ => Phải tách
ra làm 2

-
Từ thông tin bán lẻ mình biễu diễn thông tin đó thành hóa đơn
- Có những thông tin mình phải biễu diễn trên nhiều thực thể
- Bán lẻ ≠ bán sỉ: bán sỉ phải đặt hàng, liên quan đến giao hàng (thông tin đặt hàng liên
quan đến giao hàng)
- Quan hệ giữa băng đĩa và đơn hàng là chi tiết đặt hàng, đơn hàng liên quan đến phiếu
giao hàng => bán sỉ phải quản lý khách hàng
- Thông tin và thực thể không đồng nhất với nhau. Một thông tin cso nhiều thực thể, 1
thực thể sinh ra nhiều table.

- Khi đặt hàng sẽ sinh ra đơn hàng (đơn hàng là cái cần lưu trữ)
- Tinh chế lần cuối cùng nên đặt ra tình tiết cần lưu trữ
MỘT SỐ QUY TẮC MÔ HÌNH HÓA
 Quy tắc thứ 1:
- Mọi thuộc tính dùng để mô tả đặc trưng cho một thực thể duy nhất và chỉ mô tả đặc
trưng của thực thể

 Quy tắc thứ 2:


- Tất cả các nhánh nối với mối kết hợp phải là nhánh bắt buộc, nếu không phải tách ra
nhiều mối kết hợp. Trường hợp này được gọi là mối kết hợp ẩn dụ nhiều ngữ nghĩa
khác nhau.
- Mỗi mặt hàng do nhiều nhà cung cấp cung cấp. Công ty sẽ đặt hàng đến nhà cung cấp
cho biết tên mặt hàng cần đặt, số lượng và kho nhận
- Mối quan hệ là một yêu cầu, yêu cầu cần dữu liệu nào thì ta vẽ nguồn dữ liệu đó
(quan hệ rất quan trọng)
 Quy tắc thứ 3:
- Các đặc trưng của một thực thể chỉ phụ thuộc vào thực thể đó mà thôi. Nếu có đặc
trưng nào phụ thuộc vào nhiều thực thể thì đó là đặc trưng của mối kết hợp định nghĩa
trên các thực thể đó.

- Mỗi sinh viên sẽ học nhiều môn khác nhau. Mỗi môn học sinh sẽ đạt 1 điểm số
- Nếu xuất hiện thêm Bảng điểm thì nso sẽ liên quan như thế nào trong quan hệ này ?
 Quan hệ thứ 4:
- Nếu có một thuộc tính của một thực thể phụ thuộc vào thực thể đó và một thuộc tính
khác của thực thể đó thì tồn tại một thực thể ẩn mà cần phải được định nghĩa bổ sung
- Mỗi xe hơi bao gồm các đặc trưng như số xe, màu sắc, loại xe, công xuất, và trọng
lượng mỗi loại xe có một trọng lượng nhất định. Loại xe → trọng lượng
- Phụ thuộc thì nên tách ra thành một đối tượng khác nhưng không tách là sai (cũng có
những cái để nguyên thì đúng)
CÁC QUY TẮC CHUẨN HÓA MÔ HÌNH ERD
 Quy tắc 1:
- Mỗi thuộc tính đều phải có một ý nghĩa và một giá trị duy nhất

 Quy tắc 2:
- Mọi thuộc tính phụ thuộc vào khóa bởi một phụ thuộc hàm sơ cấp. Nghĩa là phụ thuộc
vào toàn bộ khóa chứ không phải phụ thuộc vào một bộ phận thực sự của khóa
 Quy tắc 3: (hay sai)
- Mọi thuộc tính của một thực thể hay của một mối kết hợp phải phụ thuộc vào khóa
bằng một phụ thuộc hàm sơ cấp trực tiếp

MỘT SỐ VẤN ĐỀ THƯỜNG GẶP


 Thực thể hay không thực thể
- Trong một số trường hợp thì khái niệm cần biễu diễn có thể là một đối tượng của thế
giới thực nhưng trong phạm vi ứng dụng thì số thể hiện chỉ là một.
- Nếu không có nhu cầu mở rộng ứng dụng về sau thì không nên xem là thực thể.
 Thực thể hay thuộc tính đơn
- Chọn là thực thể khi có thể xác định một số đặc trưng căn bản như cái thuộc tính, mối
kết hợp tổng quát hóa hay tập con
- Chọn là thuộc tính khi đối tượng có cấu trúc nguyên tố đơn giản và không có các đặc
trưng khác.

 Tổng quát hóa hay thuộc tính


- Tổng quát hóa được chọn khi chúng ta cho rằng một số đặc trưng sẽ được liên kết ở
cấp thấp hơn.
- Trường hợp ngược lại là thuộc tính

 Thuộc tính gộp hay thuộc tính đơn


- Chọn thuộc tính gộp nếu có thể gán một cách tự nhiên cho một khái niệm
- Ngược lại, chọn một tập các thuộc tính đơn nếu chúng diễn tả các đặc trưng độc lập
 Mối kết hợp hay thực thể
- Chọn thực thể nếu khái niệm quan tâm có một số đặc trưng cần mô hình hóa.

 Chọn lược đồ rõ về nghĩa khi có nhiều lược đồ chọn lựa


-Trường hợp này không nên gom lại thành Loại.
Mô Hình Tổ Chức Dữ Liệu
Các bước PTTK TPDL ở mức Logic:
- Xây dựng mô hình quan hệ dữ liệu (tổ chức dữ liệu) từ mô hình thực thể kết hợp (quan niệm dữ
liệu)
- Tối ưu hóa các mô hình quan hệ dữ liệu
- Mô tả các ràng buộc toàn vẹn ở mức thiết kế tổ chức (thường dùng ngôn ngữ toán học)
. Chuyển đổi sang mô hình quan hệ
Có 5 bước:
Bước 1: Chuyển các khái niệm chuyên biệt hóa, tổng quát hóa -> khái niệm quan hệ
Bước 2: Chuyển thực thể sang -> quan hệ.
Bước 3: Chuyển các mối kết hợp -> quan hệ.
Bước 4: Chuẩn hóa các quan hệ.
Bước 5: Xem các ràng buộc toàn vẹn.

TH1:
Ở mức chuyên biệt hóa, không có thuộc tính riêng:
 Số thực thể và số table khác nhau
NHANVIEN (Mã_NV, Họ tên_NV, LOẠI_NV)
Ràng buộc miền giá trị MGT(Loại_NV) ∈ {CN, CV, QL)

TH2: Ở mức chuyên biệt hóa có ít thuộc tính riêng (<=3)

 Bổ sung ràng buộc miền giá trị cho thuộc tính loại E như TH1.
 Bổ sung ràng buộc để đảm bảo ngữ nghĩa.
NHANVIEN (Mã_NV, Họ tên_NV, Chuyên Thngành, bậc thợ, Số lượng NV trực thuộc,
LOẠI_NV)

Ràng buộc miền giá trị MGT(Loại_NV) ∈ {CN, CV, QL}


Trong trường hợp này khi chuyển cần cộng thêm một số ràng buộc toàn vẹn khác (để đảm bảo về
mặt ngữ nghĩa với mô hình ban đầu)
∀ n ∈ NHÂN VIÊN
 Nếu nv. LOẠI NV = “CN” thì
nv. Chuyên ngành = NULL
nv. Slượng NV trực thuộc = NULL
Ngược lại
 Nếu nv. LOẠI NV = “CV” thì
nv. Bậc thợ = NULL
nv. Slượng NV trực thuộc = NULL
Ngược lại
nv. Bậc thợ = NULL
nv. Chuyên ngành = NULL
cuối nếu
Cuối ∀
Ta có được các quan hệ:
 CÔNG NHÂN (Mã_NV, Họ tên NV, Bậc thợ)
 CHUYÊN VIÊN (Mã_NV, Họ tên NV, Chuyên ngành)
 QUẢN LÝ (Mã_NV, Họ tên NV, Slượng NV trực thuộc)

CÂU HỎI ĐƯỢC ĐẶT RA:


Khi nào dùng TH2 và khi nào dùng TH3?
TH3:

CONGNHAN CHUYENVIEN

QUANLY

 Ở TH3 sẽ không bị dư thừa không gian lưu trữ nhưng sẽ truy xuất dữ liệu chậm hơn
TH2:
Ma_NV TBN_NV C.Ngành Bậc thợ SLượng Loại
✓ ✓ C.Nhân
✓ ✓ C.Viên

 Ở TH2 sẽ bị dư thừa không gian lưu trữ nhưng bù lại sẽ cho phép truy xuất dữ liệu rất
nhanh.

Vậy thì phải lựa chọn trường hợp nào là phù hợp và hợp lý
NHƯ THẾ NÀO LÀ HỢP LÝ?
TH3: Khi các thuộc tính riêng lớn hơn 3
TH2: Sử dụng khi các thuộc tính riêng nhỏ hơn 3 vì vậy sẽ truy cập nhanh hơn
Ta được các quan hệ:
 XE ĐẠP ĐIỆN (Số xe, Tên xe, Số bình acquy, Thời gian sạc , Thời gian chạy)
 XE MÁY (Số xe, Tên xe, Số sườn, số máy, Mode, Số loại linh kiện)
C3

 Hủy bỏ tổng quát – Chuyên biệt


 Tạo mối kết hợp từ thực thể tổng quát đến thực thể chuyên biệt

C3(tt) ví dụ:
Ta được các quan hệ:

 NHÂN VIÊN (Mã_NV, Họ tên NV)


 CÔNG NHÂN (Mã_NV, Bậc thợ)
 CHUYÊN VIÊN (Mã_NV, Chuyên ngành)
 QUẢN LÝ (Mã NV, Slượng Nv trực thuộc)
 Thông tin chung -> bản nào cũng có
 Thông tin riêng -> Từng bản có

 Có lợi trong việc cập nhật chỉnh sửa dữ liệu


 Tùy hoàn cảnh mình sử dụng sao cho phù hợp
 TH2 giống dạng chuẩn 1, TH4 giống dạng chuẩn 3

Thực thể yếu:


 Thêm vào quan hệ - thực thể yếu thuộc tính khóa của quan hệ - thực thể chủ
 SINH VIÊN (Mã SV, Họ tên SV, Địa chỉ, NTNS)
 THÂN NHÂN (Mã SV, Tên TN, NgSinh, Quanhe

Mối kết hợp nhiều – nhiều

 Tạo một quan hệ mới biểu diễn một mối kết hợp với thuộc tính là các thuộc tính khóa của các
thực thể liên quan và các thuộc tính riêng của mối kết hợp

 SINH VIÊN (Mã SV, Họ tên SV, Địa chỉ, NTNS)


 MÔN HỌC (Mã MH, Tên MH, Số TC)
 KẾT QUẢ (Mã_SV, Mã_MH, Điểm)

Mối kết hợp Một – Nhiều


 Thêm vào quan hệ - một thuộc tính khóa của quan hệ - nhiều
 Nếu mỗi kết hợp có thuộc tính riêng thì thêm các thuộc tính đó vào quan hệ - một

 SINH VIÊN (Mã SV, Họ tên SV, Địa chỉ, NTNS)


 LỚP (Mã lớp, Tên lớp, Sĩ số)

Mối kết hợp Một – Một


 Thêm vào quan hệ - tham gia bắt buộc thuộc tính khóa của quan hệ - tham gia tùy chọn

 SINH VIÊN (Mã SV, Họ tên SV, Địa chỉ, NTNS)


 LỚP (Mã lớp, Tên lớp, Sĩ số, Mã SV)
Mối kết hợp bậc cao
 Tạo một quan hệ mới với thuộc tính là các thuộc tính khóa của các thực thể liên quan, cộng
với các thuộc tính riêng của mối kết hợp.

 Mở MH: mối kết hợp 1 ngôi bậc 3


 ĐĂNG KÝ, PHÂN CÔNG: Mối kết hợp 2 ngôi, bậc 2

 MỞ MH (Mã MH, Học kỳ, Niên học, Mã lớp)


 ĐĂNG KÝ (Mã SV, Mã MH, Học kỳ, Niên học, Mã lớp, Điểm)
 PHÂN CÔNG (Mã GV, Mã MH, Học kỳ, Niên học, Mã lớp)

Chuyển đổi mô hình ER sang danh sách các quan hệ, phải chuẩn hóa các quan hệ này nhằm mục
đích:
 Giảm thiểu sự trùng lặp dữ liệu
 Tối ưu hóa thời gian cập nhật
 Tránh tình trạng không đồng bộ dữ liệu

Mô hình hóa xử lý mức quan niệm


Xử lý nghiệp vụ
- Một chức năng có đầu vào là data và đầu ra là thông tin
- Một hệ thống có nhiều chức năng
- Khi có nghiệp vụ có thể phát triển những chức năng mở rộng mà không ảnh hưởng đến
giao diện
 Mở rộng không liên quan đến cấu trúc, bảo trì tốt và khi sửa không tốn nhiều chi phí
 Đó là những gì mà PTTK mang lại
1) Mô hình phân rã chức năng – BFD
Biểu diễn sự phân rã có thứ bậc đơn giản các chức năng cần thực hiện
Đây là các module hay các phân hệ phần mềm
Có ý nghĩa là vẫn đồng bộ hóa các số liệu. chức năng khác của phòng ban.
 Sau khi phân hệ mới thì sẽ giảm được độ phức tạp
 Các chức năng:
Mỗi chức năng tương đương với 1 hệ thống phòng ban.
 Thêm các thế hệ mới thì sẽ không ảnh hưởng
 Quan trọng là tính đồng bộ hóa với nhau
CÂU HỎI?
Có bao nhiêu nhà cung cấp ERD?
Có bao nhiêu loại ERD và khác nhau ra sao?
Tỉ lệ doanh nghiệp đã sử dụng ERD?
Các phân hệ phổ biến trong hệ thống ERD?
Thứ tự quan trọng của các phân hệ của 1 hệ thống ?
CÂU TRẢ LỜI
 Có rất nhiều nhà cung cấp ERD
 Phổ biến: SAP, oracle, Dynamíc, …
 Có rất nhiều nhà triển khai và 1 trong số các nhà nổi tiếng là: oracle, Microsoft, Dynamics
 Nguồn lực, chi phí đầu vào
 ERD rất quan trọng
 Có rất nhiều loại ERD
 Để PTTK thì phải nắm rõ đối tượng nào là khác hàng
 Hệ thống hoạch định nguồn lực của doanh nghiệp

CÁC THÀNH PHẦN CỦA BFD


Phòng ban chức năng -> Tạo ra phân hệ -> Mỗi phân hệ có quyền yêu cầu -> Tiến hành PTTK.
 Business requirement of module
LƯỢC ĐỒ DFD
- Vừa biểu diễn cả xử lý lẫn dữ liệu hệ thống khác với ERD (chuyên xử lý Data)
- 1 số lược đồ chỉ chuyên xử lý nghiệp vụ: usecase, activity, sequence
 Cần thiết

Khái niệm Ký hiệu (DeMarco Ký hiệu (Gane & Ký hiệu (Gane & Sarson)
& Youdon) Sarson)
Ô xử lý Một trong các hoạt động
bên trong HTTT
Dòng dữ Sự chuyển đổi thông tin
liệu giữa các thành phần
Kho dữ liệu Vùng chứa dữ liệu, thông
tin trong HTTT
Đầu cuối Một tác nhân bên ngoài
HTTT

- Phân rã đến mức không còn phân rã được nữa


- Mỗi hoạt động cũng có đầu vào đầu ra và được ký hiệu là:
 Ô xử lý (Process):
- Định nghĩa: là một hoạt động xử lý bên trong hệ thống thông tin. Bao gồm:
 Tạo mới thông tin
 Sử dụng thông tin
 Cập nhật thông tin
 Huỷ bỏ thông tin

Tên xử lý = Động từ (Do) + Bổ ngữ (What)


 Rõ ràng cho người đọc

Ô xử lý (Process):
o Ví dụ:
Dòng dữ liệu (Data flow):
o Định nghĩa:
 Dòng dữ liệu biểu diễn sự di chuyển dữ liệu, thông tin từ thành phần này đến thành
phần khác trong mô hình dòng dữ liệu. Các thành phần là xử lý, kho dữ liệu, dòng dữ
liệu
 Không bao hàm dòng điều khiển
o Ký hiệu:

o Tên:

o Ví dụ:

Kho dữ liệu (Data store):


Định nghĩa:
o Để biểu diễn vùng chứa thông tin, dữ liệu bên trong hệ thống thông tin
o Các hình thức kho dữ liệu:
 Sổ sách
 Hồ sơ
 Bảng tra cứu
Đầu cuối (terminal):

Định nghĩa:
 Biểu diễn một thực thể bên ngoài giao tiếp với hệ thống.
Dòng dữ liệu và kho dữ liệu:
 Dòng dữ liệu đi vào kho dữ liệu: biểu diễn việc cập nhật dữ liệu (dòng d1)
 Dòng dữ liệu ra khỏi kho dữ liệu: biểu diễn việc khai thác dữ liệu của kho dữ liệu đó (dòng
d2)
 XỬ LÝ ĐẶTMUA BĂNG ĐĨA

Thônt tin trong kho phiếu nhập:


+ Lưu gì trong đó
 Thông tin nhập kho
 Xử lý thanh toán -> xử lý công nợ
 Xử lý số 7 rất lớn có thể là 1 hệ thống
 Dòng thông tin từ xử lý 5 đến 6 và dòng thông tin từ 5 đến kho phếu nhập là một
o Tại sao dòng thông tin từ 5 đến 6 không được dùng?
 Xử lý trực tiếp nó tiện hơn
o Tại sao có thủ kho nhưng vẫn có NV nhập xuất?
 Phải tìm nghiệp vụ của thủ kho và nhập xuất kho
 Nhân viên nhập xuất chỉ nhập và xuất số liệu
 Chức năng 3,4 thủ kho chắc chắn phải làm
 Thủ kho sẽ xác định nhật ký tồn kho từ đó biết được có bị hao hụt hay không
Các luật căn bản cho phân tích xử lý
o Luật T1: tinh chế một xử lý thành một cặp xử lý kết nối với nhau bằng dòng dữ liệu. Luật
này được dùng khi ta muốn tinh chế một xử lý thành hai xử lý con với xử lý đầu nhằm
chuyển tiếp dữ liệu thông tin, còn xử lý sau tiếp tục xử lý từ thông tin chuyển tiếp.

o Luật T2: tinh chế một xử lý thành hai xử lý và một kho dữ liệu. Luật này được áp dụng khi
chúng ta muốn tách thành hai xử lý có thời điểm khác nhau. Do đó, dữ liệu chuyển đổi giữa
hai xử lý này phải được lưu lại trong một kho dữ liệu.

 Sài luật 1 và 2 trong 2 tình huống hoàn toàn khác nhau


 Cấp thấp hơn 1 bậc

o Luật T3: Tinh chế một xử lý thành hai xử lý riêng biệt. Luật này được dùng khi hai xử lý
không được kết nối ngay hoặc không có nhu cầu trao đổi thông tin với nhau

Luật T4: phân chia một dòng dữ liệu thành một tập hợp các dòng dữ liệu. Luật này được áp dụng để
tách một dòng dữ liệu tổng hợp thành các dòng dữ liệu có nội dung thông tin độc lập nhau.

 Đây là 2 trường hợp khác nhau.


o Luật T5: tinh chế một dòng dữ liệu thành hai dòng dữ liệu và một ô xử lý. Luật này được áp
dụng khi chúng ta nhận ra dòng dữ liệu tiềm ẩn việc chuyển đổi nội dung thông tin.

 Nếu thông tin từ đầu nguồn và cuối nguồn khác nhau thì phải có một hệ thống ở giữa xử lý
thông tin

o Luật T6: chia một kho dữ liệu thành hai kho độc lập. Luật này được áp dụng khi chúng ta có
thể chia hai tập con của kho dữ liệu mà có thể kết nối với hai xử lý hoặc đầu cuối khác nhau.

Luật T7: tinh chế một kho dữ liệu thành hai kho dữ liệu kết nối bởi một ô xử lý. Luật này được áp
dụng khi chúng ta muốn phân chia dữ liệu thành hai kho dữ liệu tập con mà kho dữ liệu sau được
tạo lập từ kho dữ liệu trước bằng xử lý.

- 7 luật là phân rã Top – Down từ tổng quát xuống chi tiết (Chưa có sản phẩm)
- Không áp dụng được 7 luật này trong trường hợp đã có sản phẩm và cần tối ưu hóa
- Lúc đó thì dùng bottom – up

Phương pháp top-down

 B1: Xây dựng lược đồ khung hệ thống bằng cách xác định các đầu cuối hệ thống và các dòng
dữ liệu vào ra hệ thống từ các đầu cuối
 B2: lặp - Áp dụng các luật phân rã trên xuống phân rã hệ thống
 B3: Kiểm tra bổ sung kho dữ liệu và dòng dữ liệu.
Áp dụng 7 luật

Dừng
Câu hỏi: Khi nào dừng?
 Dừng khi xử lý không thể phân chia được nữa

 3 nhóm chính:
 Xử lý đặt mua
 Xử lý kế toán
 Xử lý bán BD

 BOTTOM – UP
Câu hỏi: Khi nào tiếp cận phương án Top – Down và khi nào tiếp cận phương án Bottom –
Up?
- Phương án Top – Down là phương án xây dựng prototype
- Có đầy đủ chức năng - > số lượng ít -> làm phạm vi nhỏ
- Chiến lược Bottom – Up là tối ưu hóa các prototype
- Từ các xử lý chi tiết
- Dữ liệu nào lưu trữ lâu dài
- Xác định xong mới xác định terminal
- Từ những xử lý ban đầu.
- Xác định kho dữ liệu
- Từ đó xác định đầu cuối terminal

Cần số hóa
Hành động nào nằm trong hệ thống ??
- Hành động nào số hóa thì thuộc hệ thống
- Không số hóa thì không liên quan

 Phương pháp:
o Cách thức xử lý được thực hiện thủ công (do con người thực hiện) hoặc tự động (do máy
tính, con người sử dụng máy tính để thực hiện)

- Cái nào tự động -> đưa vào


- Còn thủ công -> bỏ đi (vì nó không liên quan đến hệ thống)

 Thời gian:
o Biểu diễn thời điểm qui định của hệ thống để thực hiện xử lý (cuối ngày, cuối tuần, đầu
tháng, đầu quý, đầu năm…)

 Nếu hai hình trên đưa vào tự động thì để trong lược đồ
 Tổ chức:
o Biểu diễn vai trò tham gia xử lý  một thành phần tổ chức của hệ thống (dựa vào mô hình tổ
chức) có thể là:
 Một con người cụ thể
 Một chức danh
 Nhóm chức danh
 Mô tả thêm người tham gia xử lý
 Không gian:
o Các địa điểm trong xử lý hệ thống

Giả xử có 3 nơi cách xa về mặt vật lý


Giải pháp dùng web - server không sai
Nhưng không thực tế, vì sao?
- Phân tích phản khả thi
- Về lâu về dài sẽ chậm chưa kể
users tăng lên nhiều
- Với mô tả này khi triển khai một
cách vật lý thì phải biết hạ tâng
công nghệ thông tin.

 Sự biểu diễn trùng lắp nội dung


- Thông tin cũng là đơn hàng? Vậy có sai hay không?
- Nó sai khi mà cùng 1 users làm 2 lần thì sai
- Đây là 2 nơi nên không vấn đề -> hợp lý
Mô hình hoá xử lý mức quan niệm

 Biểu diễn xử lý ở mức nội dung, làm rõ bản chất của xử lý thông tin hệ thống
 Độc lập với các yếu tố vật lý nhằm đạt một mức độ trừu tượng hoá cao
Chuyển đổi MH vật lý sang quan niệm.
 Loại bỏ các yếu tố vật lý
 Các yếu tố tường minh xuất hiện trong mô hình theo ngôn từ, ký hiệu:
 Phương tiện, phương thức
 Hình thức
 …

Câu hỏi:
Tại sao lại có những yếu tố này?
 Để những chổ khác nhau gia công rồi ghép lại
 Chuyển như vậy để đi nói chuyện cụ thể
Verify hệ thống!

- Nhìn gần -> nhìn xa -> nhìn gần -> nhìn xa


 Xem kỹ, xem chi tiết
 Để không xa rời mục tiêu (nhóm làm việc sẽ khó để thực hiện hơn cá nhân)
 Sẽ có 1 cái kho hay nhiều kho đều có thể quản lý bởi 1 hệ thống
c

7 xử lý cho 2 nhóm actor


- NV nhập xuất
- Thủ kho
Lược đồ 2 có vai trò dùng cho 2 nhóm users
- Bao gồm 6 xử lý
- Dev hệ thống chỉ cần phát triển
- 6 xử lý này là đủ cho 7 xử lý trên lược đồ 1
 Sơ đồ vật lý sẽ giải quyết tất cả trường hợp sau đó optimize lại để biết chỉ cần xử lý bao
nhiêu là đủ.
 Vai trò tiếp theo của lược đồ (2) là giúp mở rộng hệ thống nếu có.
 Nếu có yêu cầu phát sinh thêm thì ta bắt đầu từ lược đồ 2
 Đây là yêu cầu phát sinh thêm từ hệ thống

Những xử lý 1,2,3,4,5,6,7 đều là những xử lý đã biết cách thực thi (vì nó đã có lược đồ mức vật lý
rồi
Xử lý 8,9 là những xử lý chưa biết cách thực thi và ta làm lại theo các luồng phân rã Top – Down
cho 9 và 9
Xử lý 3 bị ảnh hưởng do nhận thêm thông tin khi mở rộng.
Phiếu xuất 1 có thêm thông tin đầu vào
Muốn đặc tả các bước xử lý ta thực hiện như sau
 Phần đầu đề, tên chức năng, các dữ liệu đầu vào/ ra
 Phần thân mô tả nội dung xử lý, thương được sử dụng các hình thức đặc tả
 Các phương trình toán học
 Lưu đồ thật giả
 Ngôn ngữ có cấu trúc
Để người phát triển (Developer) biết thông tin cài đặt
VÍ DỤ:
 Tên chức năng: Tính kết quả bảo vệ đồ án
 Đầu vào: Điểm của người phản biện, điểm của người hướng dẫn, số các ủy viên hội đồng,
điểm của từng ủy viên hội đồng
 Đầu ra: kết quả bảo vệ = (điểm của người phản biện + điểm của người hướng dẫn +(Σ điểm
các ủy viên hội đồng / số ủy viên hội đồng)) / 3
 Đây là thông tin bắt buộc trong code note
 Ghi chú dựa trên phân tích thiết kế
 Code theo hướng dẫn
 Tester vẫn biết test case dựa trên hướng dẫn
Câu hỏi đặt ra?
Bảng quyết định và cây quyết định dùng để làm gì?
 Đối với dev đây là ràng buộc cho xử lý đó
 Đối với tester thì đây là đầu vào cho test case
 Càng chi tiết thì càng tiết kiệm chi phí sửa sai
 Sản phẩm của quá trinh phát triển phần mềm
 Phần mềm
 Tài liệu pttk
 Tài liệu hdsd
 Theo từng version
 Mỗi version khác nhau thì bộ ba khác nhau
Bảng quyết định và cây quyết định được

You might also like