Câu hỏi ôn tập
1. Trình bày các bước chạy thử và test hệ thống
2. Có thể áp dụng phương pháp luận PTTK hệ thống thông tin cho các bài toán kỹ thuật được không? Có áp
dụng cho các dự án xã hội được không?
3. Tại sao nói phân tích thiết kế hệ thống là một công việc cực kỳ quan trọng trong quá trình xây dựng hệ
thông tin quản lý. Anh chị hiểu như thế nào câu nói “Sự lãng phí, rủi ro trên giấy còn hơn xảy ra trong thực
tiễn“
4. Những công cụ diễn tả xử lý. Sự khác nhau giữa biểu đồ phân rã chức năng (BPC) và biểu đồ luồng dữ liệu
(BLD). Chúng có mối quan hệ với nhau như thế nào
5. Vòng đời của sản phẩm phần mềm tin học quản lý là gì? Giai đoạn nào quan trọng nhất.
6. Các điều tối kỵ (sai cơ bản dễ phát hiện) khi vẽ BLD, BPC.
7. Những thành phần cấu thành BLD, thành phần nào sử dụng nhãn là động từ? vì sao? Những thành phần nào
sử dụng nhãn là danh từ? Tại sao? Có hệ thống nào mà BLD không có tác nhân ngoài không? Tại sao? Số
tác nhân ngoài tối đa là bao nhiêu?
8. Tại sao cần các thể hiện khác của biểu đồ luồng dữ liệu? Chúng có thể là những cái gì? Các công thức, quy
định, thủ tục dùng để làm gì?
9. Mối quan hệ giữa mô hình thực thể liên kết và mô hình CSDL quan hệ. Phân biệt thực thể và kiểu thực thể,
liên kết và kiểu liên kết, thuộc tính và giá trị thể hiện của thuộc tính? Cho các thí dụ minh hoạ.
10. Vai trò của phụ thuộc hàm (PTH) trong phân tích dữ liệu? PTH sơ đẳng, bộ phận, phụ thuộc hàm trực tiếp,
bắc cầu. Ý nghĩa của với việc chuẩn hoá dữ liệu.
11. Tại sao phải khảo sát hệ thống hiện trạng trước khi tiến hành phân tích và thiết kế hệ thống mới.
12. Xây dựng Mô hình thực thể liên kết của các hệ thống phổ biến sau:
QL Thư viện
QL Kết quả học tập
QL Khách sạn
QL Nhân sự
QL Tuyển sinh
QL Vật tư
QL Kinh doanh
QL Xe máy
QL Dịch vụ nhà cho thuê
                
              
                                            
                                
            
 
            
                 35 trang
35 trang | 
Chia sẻ: hachi492 | Lượt xem: 608 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang tài liệu Giáo trình Quản lý hệ thống thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
 với tài liệu xuất phải đủ, chính xác (kiểm tra không nhập nhằng), dễ hiểu, dễ đọc 
Có 2 hình thức in ra: Khung in sẵn/ không có khung in sẵn 
Trình bày: - Đầu (Heading) 
 - Thân (bao gồm những nội dung cơ bản, gom nhóm có mối liên hệ logic với nhau) 
 - Cuối 
c) Thiết kế các màn hình và đơn chọn: 
Mục đích sử dụng màn hình là đối thoại: đặc điểm của đối thoại là 
 - Vào / Ra gần nhau 
 - Thông tin thường tối thiểu (Cần đâu lấy đấy, không đưa sẵn) 
Yêu cầu thiết kế - Sáng sủa (dễ nhìn, dễ đọc) 
 - Lệnh phải rành mạch (muốn gì? Làm gì?) 
Hình thức đối thoại trên màn hình : Thiết kế màn hình liên quan đến hình thức, định dạng, thiết lập, trình bày 
các thông tin trên màn hình. Bước dầu tiên của thiết kế là phân tích đối thoại giữa người dùng và máy tính. Việc 
phân tích này đòi hỏi cần xác định nhóm logíc của đối thoại liên quan đến các hành vi đơn giản chẳng hạn như 
các yêu cầu người dùng hoặc hiển thị chi tiết về dữ liệu. Các dạng hội thoại thường được đề cập 
 + Câu lệnh, câu nhắc 
 + Đơn chọn (Menu) : Ngày nay người ta dùng đơn chọn phân cấp, nên chú ý lối thoát của mỗi cấp. Kết hợp với 
đơn chọn là các hộp chiếu sáng để tăng tính hấp dẫn 
 + Điền mẫu 
 + Sử dụng các biểu tượng (Icon) để tăng tính trực quan 
d) Thiết kế cái vào 
 1) Chọn phương thức thu nhập thông tin: - On-line 
 - Trì hoãn (đưa qua thời gian, cập nhật sau) 
 - Từ xa 
2) Xác định khuôn mẫu thu nhập thông tin 
 Mẫu có 2 kiểu - Khung (để điền) 
 - Câu hỏi (câu hỏi đóng: trả lời xác định trước, câu hỏi mở: gợi ý) 
 Yêu cầu mẫu - Thuận tiện cho người điều tra 
 - Thuận tịện mã hoá 
 - Thuận tiện người gõ phím 
Page 50 of 70 
 - Nội dung đơn giản, rõ ràng, chính xác 
Tóm lại: 
Thiết kế giao diện là một trong những phần thiết yếu của hệ thống để hệ thống trình bày một phần các thông tin 
mà người sử dụng cần biết. Bởi vậy mục tiêu của nó cần được người thiết kế tiến hành một cách hết sức cẩn 
thận. Các yêu cầu chính cần được xem xét : 
· Loại thiết bị phương tiện giao diện được sử dụng 
· Thiết kế hội thoại người dùng - hệ thống 
· Bản chất của dữ liệu và phương cách mã hoá dữ liệu 
· Các yêu cầu về kỹ thuật đánh giá dữ liệu 
· Thiết lập định dạng màn hình và các báo cáo. 
Bài tập chương 7 
7.1 Hãy thiết kế giao diện cho chương trình cập nhật dữ liệu khi có độc giả yêu cầu mượn sách trong hệ thống 
thư viện. 
72. Đối hệ thống tuyển sinh vào các trường đại học hãy phân định hệ thống máy tính và thủ công cho hợp lý và 
logic 
7.3 Phân định hệ thống quản lý sản xuất của xí nghiệp thành các hệ thống con: Nhân sự, vật tư, lương, kế toán, 
kế hoạch, tiếp thị 
7.4 Phân định hệ thống kinh doanh tiền tệ tại ngân hàng với các chức năng: Tín dụng, tiết kiệm, kế toán ngân 
hàng. 
7.5 Thiết kế dữ liệu đầu vào của hệ thống: 
 Quản lý nhân sự của trường đại học 
 Hoá đơn thanh toán và các phiếu xuất nhập của hệ thống kinh doanh . 
 Hồ sơ bệnh án trong các bệnh viện. 
7.6 Thiết kế tổng thể thực hiện các nhiệm vụ gì ? 
7.7 Thế nào là hệ thống con ? Có phải mọi hệ thống đều phải phân định thành các hệ thống con? Cho ví dụ 
minh hoạ 
Page 51 of 70 
Chương 8 Thiết kế các kiểm soát 
1. Giới thiệu 
Ở một số giai đoạn trong quá trình phát triển của hệ thống bao giờ cũng cần tiến hành các kiểm tra cần thiết để 
đảm bảo việc thực hiện đúng đắn cho hệ thống dự định. 
Việc kiểm soát hệ thống nhằm tránh một số nguy cơ: 
· Sai lỗi do đó phải tiến hành kiểm tra các thông tin thu nhập. 
· Sự cố kỹ thuật do vậy phải tiến hành bảo vệ (an toàn). 
· Ý đồ xấu do đó phải tiến hành bảo mật 
· Rủi ro về môi trường: cháy, bão lụt. 
Ba khía cạnh cơ bản của hệ thống cần được bảo vệ bằng cách kiểm soát đó là: 
· Độ chính xác: phải kiểm tra xem các giao tác đang được tiến hành có được thực hiện chính xác hay 
không và các thông tin được giữ trong cơ sở dữ liệu của công ty có đúng đắn không. 
· Độ an toàn: có một yêu cầu bao trùm về việc gìn giữ tài sản của công ty, để đảm bảo rằng không xảy ra 
mất mát dù cố ý hay vô tình, dù do chểnh mảng hay rủi ro. 
· Độ riêng tư: cũng có nhu cầu kiểm tra xem các quyền của cá nhân và công ty khác có được bảo vệ 
không. Có lẽ khía cạnh quan trọng nhất của vấn đề này là đảm bảo rằng hệ thống dự kiến sẽ tuân thủ 
những hạn chế do Luật bảo vệ dữ liệu áp đặt. 
2. Nghiên cứu việc kiểm tra các thông tin thu nhập hay xuất ra 
· Mục đích: bảo đảm tính xác thực của thông tin 
· Yêu cầu: Mọi thông tin xuất ra hay nhập vàođều phải qua kiểm tra 
· Nơi kiểm tra: 
o Nơi thu nhập 
o Trung tâm máy tính / nơi phân phát 
· Nội dung kiểm tra: phát hiện lỗi và sửa lỗi 
· Hình thức kiểm tra: 
o Tay (thủ công): đầy đủ / không đầy đủ 
o Máy(tự động): trực tiếp / gián tiếp, tham khảo các thông tin khác. 
· Thứ tự kiểm tra: Kiểm tra trực tiếp trước, gián tiếp sau. 
o Trực tiếp: Sự có mặt 
 Khuôn dạng 
 Kiểu 
 Miền giá trị 
o Gián tiếp: Kiểm tra 1 thông tin khi mà các thông tin dùng cho việc kiểm tra đó đã được kiểm tra. 
o Kiểm tra tự động: kiểm tra sự ràng buộc toàn vẹn (integrity constrainst) 
2. Cách giai đoạn tiếp cận kỹ thuật phân tích các kiểm soát 
a) Xác định các điểm hở trong hệ thống: Điểm hở là điểm mà tại đó thông tin của hệ thống có tiềm năng bị 
thâm nhập bởi những người trong hoặc ngoài tổ chức. Điều này không chỉ nói tới dạng đầu ra, như đơn mua 
hàng và bảng kiểm kê, mà còn nói tới mọi thông tin bên trong công ty mà nếu bị dùng sai thì có thể làm cho tài 
sản công ty chịu rủi ro. Mỗi khi xác định được điểm hở, cần phải tiến hành ba hoạt động sau: 
· Xác định kiểu đe doạ từ chỗ hở: Các kiểu đe doạ này bao gồm từ các hành động cố ý như ăn cắp hoặc 
phá hoại cho tới các nguy cơ mất mát tài sản và ảnh hưởng tới công việc kinh doanh của công ty, chẳng 
hạn như các quyết định quản lý tồi. Mức độ đe doạ dưới dạng thiệt hại tiềm năng cho hệ thống cũng cần 
được xem xét và tính toán. 
· Đánh giá các đe doạ: mức độ cao, thấp, vừa. Đe doạ cao là mối đe doạ lớn đến hệ thống có thể bị tổn 
thất nghiêm trọng nếu tình huống xấu nhất xuất hiện. Vừa có nghĩa là hệ thống có thể bị thất thoát trong 
những trường hợp tồi nhất nhưng vẫn có thể chịu đựng được mà không ảnh hưởng đến nền kinh doanh. 
Thấp có nghĩa là hệ thống có thể dự kiến được mối đe doạ và chuẩn bị được một số phương tiện để ngăn 
cản. 
· Xác định tình trạng đe doạ: Sau khi thấy được các mối đe doạ có thể có, nhóm kiểm tra có thể kiểm tra 
lại xem những đe doạ này xuất hiện như thế nào. Điều này bao gồm việc dùng mô hình DFD, theo dõi 
ngược lại điểm hở, rà soát các hoàn cảnh được biểu thị bởi từng quá trình và lỗi tiềm năng từ mỗi dòng 
dữ liệu. Giai đoạn này của việc phân tích điều khiển đòi hỏi rất nhiều trí tưởng tượng và óc sáng tạo. 
Một khía cạnh khác cần kiểm tra tại giai đoạn này này là xác suất xuất hiện tình huống đe doạ. Thông 
tin này, cùng với các chi tiết trước đây về “mức độ đe doạ” có thể làm cho nhóm kiểm soát quyết định 
Page 52 of 70 
được về tầm quan trọng của mối nguy hiểm và giúp cho họ quyết định được tầm mức kiểm soát cần 
thực hiện. 
b) Thiết kế các kiểm soát cần thiết: Sau khi đã nắm chắc được mức độ thiệt hại phát sinh từ điểm hở, nhà thiết 
kế phải quyết định các kiểm soát vật lý để ngăn cản hoặc làm giảm thiểu thiệt hại này. 
c) Phân tích các nguy cơ thất thoát dữ liệu: bao gồm việc phát hiện các điểm hơ thường là các chỗ vào ra như 
các file, màn hình, phân tích các đe dọa từ chỗ hở như: phá hoại, lấy cắp gây sự lãng phí, làm sai lệch thông tin. 
d) Các mức bảo mật: 
· Bảo mật vật lí. Khoá, báo động 
· Nhận dạng nhân sự 
· Mật khẩu 
· Tạo mật mã: biến đổi dữ liệu từ dạng nhận thức được sang dạng mã. Phương pháp này tốn kém khó bảo 
trì nhưng phù hợp cho việc truyền dữ liệu và giải mã. 
· Bảo mật bằng gọi lại 
e) Phân biệt riêng tư (Privacy) 
Phân biệt quyền truy nhập khác nhau đối với người dùng và cho phép uỷ quyền 
Biện pháp: 
- Dùng tên mỗi người làm tiền tố cho mọi đối tượng 
Cài đặt (Sequel): 
2 thủ tục : Giao quyền (Grant của Sequel) 
 Rút quyền (Revoke của Sequel) 
+ Giao quyền Grant 
Đối tượng: Dữ liệu quyền là + Đọc (Read) 
 + Chèn (Insert) 
 + Loại bỏ (Delete) 
 + Điều chỉnh giá trị thuộc tính (Update) 
 + Thêm thuộc tính (Expand) 
 + Loại tệp (DROP) 
 + Tạo tệp chỉ dẫn (Index) 
Chương trình : Quyền là RUN (chạy) 
Dạng chung lệnh Grant: 
GRANT ON TO [WITH GRANT OPTION] {được uỷ 
quyền cho người khác} 
Để chạy GRANT đưa thêm và CDL các quan hệ 
- Quyền: (người cho, người nhận, tên quan hệ, Read, Insert, Delete, Expand, Drop (có/ không), Index, Update, 
Option (có/ không)). 
Cập nhật: Tất cả, Không có gì, 1 số 
+ Cập nhật (...) các thuộc tính đựơc cập nhật 
+ Chạy chương trình: Quyền thực hiện chơng trình 
Ví dụ: Sử dụng 
Giáp: Grant read insert on hoá đơn to ất with Grant option 
Ất: Grant read insert on hoá đơn to Bính with Grant option 
Giáp: Grant read insert on hoá đơn toBính with Grant option 
Dấu * là quyền trao trực tiếp cho người sử dụng. 
- Rút quyền REVOKE 
REVOKE on from 
Ví dụ : Giáp: Revoke Read, insert on hoa don from ất 
Giáp Ất 
Bính 
Read, insert 
Read*, Insert* 
Read* 
Giáp Ất 
Bính 
Read* 
Page 53 of 70 
Các trường hợp khúc mắc 
+ N nguồn cho1 quyền 
+Uỷ quyền vòng quanh 
GIÁP ®ẤT ® ĐINH ® BÍNH 
Þ Cần thêm thông tin 
Gán cho mỗi quyền 1 "con dấu" (thực chất giá trị ghi nhận thời điểm) 
* Quy tắc rút quyền: Nếu A bị rút quyền mà A đã uỷ quyền cho B thì B cũng bị rút quyền nếu B không bị nơi 
khác uỷ quyền vào thời điểm trước khiA nhận được quyền đó. 
Ví dụ: 
a) Ất rút quyền Đinh ở thời điểm 20 
b) Loại: Giáp - Ất 
 Ất - Bính 
 Bính - Ất 
 Ất - Đinh 
4. Nghiên cứu khả năng gián đoạn chương trình và sự phục hồi 
a) Các gián đoạn chương trình 
· Nguyên nhân: 
o Hỏng phần cứng 
o Giá mang tệp có sự cố 
o Môi trường 
o Hệ điều hành 
o Nhầm lẫn thao tác 
o Lập trình sai 
· Hậu quả: 
o Mất thì giờ 
o Mất thông tin 
b) Cài đặt các thủ tục phục hồi 
· Chương trình theo mẻ (mất thời gian) 
· Chương trình trực tuyến (on – line): phục hồi 
Nguyên tắc phục hồi sao lục: 
Khi chạy chương trình, bình thường định kì ghi lại 1 số biến mốc quan trọng. 
Khi gián đoán: Khởi động lại chương trình với giá trị biến mốc gần nhất. 
Bài tập chương 8 
8.1 Nêu vai trò của việc thiết kế kiểm soát và bảo mật hệ thống 
8.2 Có thể tránh được mọi sai sót và rủi ro đối với hệ thống không? Cách lựa chọn và khắc phục như thế nào? 
8.3 Hãy chỉ ra nguyên tắc phân quyền và uỷ quyền đối với hệ thống 
GIAP AT BINH 
DINH 
10 
40 
20 
30 
GIAP 
AT 
DINH 
BINH 
MAU 
KY 
10 
15 
20 
40 
50 
GIAP DINH 
AT 
BINH 
Page 54 of 70 
Chương 9 Thiết kế các file dữ liệu 
1. Đại cương 
a) Thiết kế dữ liệu phải dựa vào: 
- Biểu đồ cấu trúc dữ liệu BCD như mô hình quan hệ, mô hình thực thể liên kết E-R, dựa vào biểu đồ luồng dữ 
liệu trong đó đặc biệt lưu tâm đến kho dữ liệu. 
- Hệ Quản trị CSDL có sẵn. 
- Khi thiết kế các file phải đảm bảo sao cho các dữ liệu phải đủ, không trùng lặp, việc truy cập đến các file dữ 
liệu phải thuận tiện, tốc độ nhanh. 
- Mỗi hệ quản trị CSDL có ngôn ngữ định nghĩa dữ liệu. 
Tuy nhiên khi cài đặt cụ thể để cho tiện lợi ta có thể bổ xung thêm một số thuộc tính tính toán, lặp lại một số 
thuộc tính, ghép một số thực thể thành một file.... 
b) File: Người dùng phải biết tổ chức file của mình, đương nhiên có hệ quản lí file dầu sao nó cũng chỉ giúp 
quản lí file chứ không phải quản lí CSDL. 
Fox, Access cũng mới chỉ là hệ quản lí file. 
Nếu có máy tính lí tưởng (tốc độ I/O tương ứng CPU) thì không cần phải làm gì chỉ từ thực thể và liên kết thì ta 
xây dựng được các các file. Vấn đề làm sao để truy nhập các file nhanh và thuận tiện. 
Chú ý: Nhiều khi đã đạt chuẩn 3 NF nhưng để nhanh tiện, 3 NF có thể bị phá vỡ. 
2. Phương pháp thực hiện: 
Từ BCD để nhanh và thuận tiện ta thực hiện các bước sau: 
- Thêm những thuộc tính tình huống (thường là tính toán được, tích luỹ được) 
- Gộp các kiểu thực thể, kiểu liên kết vào 1 file (có thể dư thừa) để bớt số lần truy nhập, tách thành nhiều file vì 
không phải bao giờ cũng dùng hết các kiểu thực thể liên kết trong một lần truy nhập. 
- Lặp lại các thuộc tính từ file khác. 
- Lập các file chỉ dẫn (Index) để truy nhập được nhanh, căn cứ vào xử lí (nhu cầu sử dụng). 
3. Đưa thêm các thuộc tính tình huống và lặp lại các thuộc tính từ các file khác: 
Các thuộc tính tình huống là các thuộc tính tính toán hoặc các thuộc tính tích luỹ: 
Ví dụ: 
Tính toán: Thành tiền = số lượng * đơn giá 
Tổng hợp đồng = å thành tiền 
Tích lũy Số dư tiết kiện, lượng hàng tồn kho, số dư tài khoản. 
Nhiều khi ta phải lập những file tình huống và chấp nhận sự dư thừa. 
4. Nghiên cứu các đường truy nhập 
Mỗi một đường truy cập gắn liền với chức năng xử lí khi ta thấy có yêu cầu truy nhập bằng cách xem lại BLD. 
Mỗi xử lí ta cần chỉ ra các vấn đề sau: 
- Truy nhập file nào ? 
- Sử dụng khoá nào ? 
- Tra cứu gì ? 
- Tần số truy nhập 
Nếu khoá và tra cứu trong cùng 1 file ta nói là truy cập trực tiếp. Còn các trường hợp còn lại nói chung là truy 
cập gián tiếp. Việc truy cập gián tiếp thông quan đường truy cập bằng cách lần theo các mối liên kết 1 – nhiều. 
Ví dụ: 
Xét xử lí: Kiểm tra sử dụng vật tư ta có một phần biểu đồ BLD sau đây: 
Tương ứng ta có biểu đồ BCD sau: 
Người dùng HỆ QTCSDL 
File 
Phân xưởng Sử dụng Vật tư 
Kiểm tra sử 
dụng vật tư 
Page 55 of 70 
Hãy xét 3 yêu cầu truy nhập tương ứng các câu hỏi sau: 
A - Tìm Soluong PX của 1 PX cho biết SH-PX 
B - Tìm đơn giá của các vật tư sử dụng bởi 1 PX biết SH-PX. 
C - Tìm soluong PX của các PX đã sử dụng 1 vật tư đã cho, biết mã VT 
Mỗi yêu cầu tạo ra 1 đường truy nhập gồm nhiều bước: 
- File gì? 
- Tên đường truy nhập (A, B, C) 
- Bước số mấy? 
- Tra cứu gì? 
- Tần số 
Yêu cầu A: 
Thực hiện 1 bước: A/1 truy nhập vào file “Phân xưởng” 
Khoá: SH - PX 
 Tra cứu soluong PX 
 Tần số : (50 lần / ngày) 
Yêu cầu B thực hiện 2 bước: 
* B/1 
Truy cập từ file “sử dụng” 
Với khoá SH-PX 
Tra cứu mã VT 
Tần số 150 lần/ ngày, mỗi lần 50 bản ghi (5000/100, trung bình một phân xưởng sử dụng 50 lần) 
* B/2 
Truy cập từ file “Vật tư” 
Khoá: mã VT 
Tra cứu: đơn giá 
Tần số 7500 lần/ ngày = (1500 ´ 50) 
Yêu cầu C 
* C/1 
Truy cập file “sử dụng” 
 Khoá: mã VT 
Tra cứu SH-PX 
Tần suất 20 lần/ ngày, mỗi lần 2,5 bản ghi (=5000/2000). 
* Cơ /2 
Truy cập từ file “Phân xưởng” 
Khoá: SH-PX 
Tra cứu số lượng PX 
Tần số 50 lần / ngày (=2,5 ´ 20) 
Sử dụng 
Klượng 5000 
Vật tư 
Klượng 2000 
Phân xưởng 
Klượng 100 
Mã vật tư 
Đơn giá 
Nơi SX 
SH-PX 
Số lượng PX 
Ngày lập PX 
SH-PX 
Mã vật tư 
Ngày 
Số lượng SD 
Sử dụng 
Klượng 5000 
Vật tư 
Klượng 2000 
Phân xưởng 
Klượng 100 
C1 
B2 
B1 
A1 
C/2 
Page 56 of 70 
5. Chuyển mô hình thực thể liên kết (hay mô hình quan hệ ) thành các file 
Nguyên tắc: nói chung mỗi 1 kiểu thực thể liên kết thành 1 file (thêm thuộc tính tình huống) 
Khi cần có thể phân rã một thực thể thành những cụm thực thể hay dùng đối với những quan hệ quá lớn. Ngược 
lại có thể gộp các thực thể thành 1 file để hạn chế những đường truy cập gián tiếp, tất nhiên nó sẽ phá vỡ tính 
chất chuẩn hoá. 
Các phương pháp truy cập để lập file chỉ dẫn: 
- Tuần tự 
- Trực tiếp 
- Hàm trực tiếp: mỗi giá trị của khoá là 1 địa chỉ (hay gây sự đụng độ và giải quyết bằng móc nối ra vùng tràn). 
- Tuần tự có chỉ dẫn: các phần tử đặt liên tiếp trên giá mang, có tổ chức, các chỉ dẫn để truy nhập trực tiếp. 
- Móc nối (pointer): ở bộ nhớ ngoài, các phần tử kế tiếp không liền kề, các phần tử tự do cũng móc nối với 
nhau. 
Hạn chế: phải tổ chức trên nền có sẵn do đó chỉ đối chiếu tương đối.... 
Lập file chỉ dẫn căn cứ vào đường truy nhập: 
Trở lại ví dụ trên 
Chú ý: Các đường truy nhập thông qua 
- Thuộc tính kết nối 
- Mối liên kết 1 - nhiều không được vật lí hoá trong mô hình quan hệ (chỉ trong mô hình mạng và phân cấp). 
Bài tập chương 9 
9.1 Khi thiết kế các file dữ liệu ta dựa vào biểu đồ nào. Các căn cứ nào cho ta xác định các thuộc tính của file: 
Tên file, Tên thuộc tính, các khoá và thuộc tính kết nối.. 
9.2 Thiết kế các file trên hệ quản trị cơ sở dữ liệu như FOX, ACCESS có phải là thiết kế mô hình thực thể liên 
kết E-R không? Tại sao. 
9.3 Các đường truy cập vào file dựa vào liên kết nào của mô hình thực thể liên kết E-R? 
9.4 Tại sao khi thiết kế các file đôi khi người ta phá vỡ chuẩn hoá 3NF? Điều đó có gây nên những lỗi cấm 
không? Cho ví dụ minh hoạ. 
9.5 Mục đích của file chỉ dẫn để làm gì? Các kỹ thuật xây dựng file chỉ dẫn. Khi xây dựng các file chỉ dẫn ta 
chịu thêm chi phí gì (những nhược điểm của nó) 
9.6 Thiết kế file dữ liệu và lựa chọn phần mềm là nhiệm vụ của người phân tích thiết kế hay người lập trình 
9.7 Thiết kế các file dữ liệu cho hệ thống: 
- Hệ thống tuyển sinh 
- Hệ thống quản lý học tập 
- Hệ thống quản lý thư viện 
- Hệ thống kinh doanh các thiết bị máy tính 
- Hệ thống quản lý khách sạn 
- Hệ thống quản lý xe máy (có lưu lại chủ cũ sử dụng) 
Tệp chỉ dẫn 
Khoá: 
SH-PX 
Tệp 
Phân xưởng 
Tệp chỉ dẫn 
Khoá: 
Mã VT 
Tệp vật tư 
Tệp chỉ dẫn 
Khoá: 
SH-PX Sử dụng 
Tệp chỉ dẫn 
Mã VT 
Page 57 of 70 
Chương 10. Thiết kế chương trình 
10. 1. Đại cương thiết kế chương trình 
Thiết kế chi tiết bao gồm các thiết kế: 
· Giao diện 
· Kiểm soát 
· Tệp (File CSDL) 
· Chương trình. 
Như vây thiết kế các module chương trình là công việc chính của giai đoạn thiết kế chi tiết. Trong kết quả phân 
tích thiết kế đến nay ta đã có BLD của hệ thống diễn tả các chức năng xử lý logic của hệ thống đồng thời liên 
quan thừa kế dữ liệu, còn chương trình là liên quan điều khiển và cơ sở dữ liệu đã thiết kế ở chương 9 
Ngoài ra các chức năng khác như sau cũng cần được thể hiện trong thiết kế chương trình : 
· Chức năng đối thoại 
· Chức năng xử lí lỗi 
· Chức năng xử lí vào/ ra 
· Chức năng tra cứu CSDL 
· Chức năng Module điều hành 
Chú ý rằng trong phần này ta quan tâm thiết kế nội dung chương trình mà không phải viết chương trình cụ thể, 
vì nhiệm vụ này là của người lập trình viên. Người lập trình khi có bản thiết kế trong tay không nhất thiết phải 
hiểu cả hệ thống mà lập trình theo thiết kế được giao. 
Nội dung chủ yếu trong giai đoạn này 
 Xác định cấu trúc tổng quát 
- Phân định các Module CT 
- Xác định mối liên quan giữa các Module đó (thông qua lời gọi và các thông tin trao đổi) 
- Đặc tả các Module chương trình 
- Gộp các Module thành chương trình (Module tải) 
- Thiết kế các mẫu thử (Test CT, chú ý đây cũng là việc của người thiết kế) 
10. 2. Module chương trình 
a) Định nghĩa: Module chương trình có thể hiểu dưới các dạng sau 
· 1 Chương trình con: Dạng Procedure, Function, Subroutine.... 
· 1 cụm lệnh trong chương trình 
· hoặc những ngôn ngữ dùng có UNIT, CLASS, OBJECT... 
b) Các thuộc tính của mô đun chương trình 
Tóm lại 1 Module CT có 4 thuộc tính cơ bản 
 • Vào: thông tin từ CT gọi nó, Ra: Thông tin trả lại cho CT gọi nó 
 • Chức năng hàm biến đổi từ vào ® ra 
 • Cơ chế: Phương thức cụ thể để thực hiện chức năng trên 
 • Dữ liệu cục bộ: chỗ nào nhớ, dữ liệu dùng riêng cho nó 
Đặc trưng ngoài: Các module gọi nó chỉ cần biết đặc trưng này 
Đặc trưng trong thể hiện sự cài đặt của Module 
Việc tách đặc trưng ngoài và đặc trưng trong để tạo độc lập cho sự cài đặt module đối với những module ngoài 
nó. 
Các loại chương trình thường có trong hệ thống quản lý: 
· Chương trình đơn chọn (menu program) 
· Chương trình nhập dữ liệu (data entry program) 
· Chương trình biên tập kiểm tra dữ liệu vào (edit program) 
· Chương trình cập nhật dữ liệu (update program) 
· Chương trình hiển thị, tra cứu (display or inquiry program) 
· Chương trình tính toán (compute program) 
· Chương trình in (print program) 
c) Thiết kế cấu trúc 
Thiết kế có cấu trúc là phương pháp tiến hành phân định các module theo kiểu trên xuống và làm mịn dần từng 
bước 
Phản ánh LT có cấu trúc, tuy nhiên có khác biệt 
· Trong LT có cấu trúc 
o Hướng tới các phương tiện của ngôn ngữ lập trình (mịn dần) 
Tổng 
quát 
Đặc trưng ngoài 
Đặc trưng trong 
Page 58 of 70 
o Mức trên viết CT bằng ngôn ngữ LT có xen thêm ngôn ngữ pseudo code thay cho lời gọi sau 
này như vậy tại 1 bước nào đó mỗi module đã được đặc tả 
o LT có cấu trúc mịn dần nhưng không có chỉ rõ phương pháp mịn dần như thế nào không có 
hướng dẫn từ mức này xuống mức kia 
· Thiết kế có cấu trúc 
o Phân định module về logic 
o Chỉ mô tả như những cái vào/ ra, chuyển giao dữ liệu, chứ nội dung chưa được đề cập. 
o Có hướng dẫn các phân định và ý nghĩa của module 
10.3. Công cụ để diễn tả cấu trúc CT ( lược đồ cấu trúc (LCT)) 
Lược đồ cấu trúc: LCT là công cụ ở đây hết sức thô sơ, thô sơ một cách cố tình để trừu tượng hoá nhằm đi tới 
cách viết các chương trình cụ thể và chi tiết hơn 
a) Biểu diễn các module 
Module được biểu diễn bằng hình chữ nhật trên có ghi nhãn là tên module. 
Trường hợp đặc biệt module đã có sẵn ta biểu diễn thêm hai đường gạch dọc 
b) Kết nối các module: thể hiện bằng lời gọi. 
A gọi B, B thực hiện chức năng của mình rồi quay về A ở vị trí sau lời gọi 
c) Thông tin chuyển giao giữa các module: 
Các module chuyển giao bằng dữ liệu và điều khiển 
Dữ liệu chuyển giao kí hiệu mũi tên và đầu tròn rỗng 
Những thông tin điều khiển (không là đối tượng để xử lí mà dùng trong quá trình điều khiển thực hiện chương 
trình). Kí hiệu mũi tên và đầu tròn đặc 
d) Một số trường hợp đặc biệt 
· Chọn lựa gọi B hay C 
· Lặp A gọi B nhiều lần 
VD 
Note: Nhận xét những module phía trên là module điều khiển càng đi xuống tính chất điều khiển giảm dần, thực 
sự xử lí, biến đổi thông tin 
Nếu triển khai thêm xuống dưới sẽ xuất hiện những module chỉ chế biến thông tin và được gọi từ nhiều module 
khác. 
Trên "xoè ra" Dưới "chụm vào" 
Tên module 
Tên module có 
sẵn 
A 
B 
A 
B B 
A 
B B 
Page 59 of 70 
10. 4. Chất lượng của lược đồ cấu trúc (LCT) 
Một trong những nguyên tắc cơ bản của việc thiết kế có cấu trúc đó là từ một hệ thống lớn ta phân thành từng 
module có thể quản lý được. Tuy nhiên, điều quan trọng là việc chia nhỏ nên thực hiện theo một cách mà các 
module đó thể độc lập với nhau. Các module này có thể tương tác (coupling) hoặc là cố kết (cohention) với 
nhau. 
a) Có sự tương tác (coupling): 
Một trong những phạm vi chất lượng thiết kế là sự tương tác, tức là độ phụ thuộc giữa hai module với nhau. 
Đối tượng cần bàn ở đây là sự tương tác tối thiểu, tức là tạo một module có độ độc lập có thể được. Độ tương 
tác thấp giữa các module chỉ ra sự phân chia tốt trong hệ thống và các module có thể đạt được theo một trong 
ba cách sau: 
· Lược bỏ những mối quan hệ không cần thiết. 
· Giảm bớt các quan hệ cần thiết. 
· Bỏ đi các mối quan hệ lỏng lẻo cần thiết. 
Một trong những điểm chủ yếu của sự tương tác thấp là không có một module nào lo lắng về bất kỳ những chi 
tiết cấu tạo bên trong nó. Các module này có các chức năng và sự xuất hiện các chức năng bên trong nó như 
một hộp đen. 
Tóm lại, sự tương tác thấp nhằm thoã mãn: 
· Sự kết nối giữa hai module càng ít càng tốt, sự thay đổi trong module này không làm ảnh hưởng đến 
module kia. 
· Khi ta muốn thay đổi trong một module thì độ rủi ro rất thấp cần thay đổi module khác 
· Khi quản lý một module, ta không lo lắng về những chi tiết bên trong của các module khác; tức là ta 
muốn hệ thống đơn giản và dễ hiểu. 
10.4.1. Các nguyên tắc của sự tương tác: 
Thực ra, làm giảm sự tương tác giữa các module tức là làm giảm đi sự kết nối phức tạp giữa hai module. Các 
nguyên tắc làm giảm sự tương tác gồm: 
· Tạo các sự kết nối hẹp. 
· Tạo các sự kết nối trực tiếp. 
· Tạo các sự kết nối cục bộ (toàn cục). 
· Tạo các sự kết nối rõ ràng. 
· Tạo các sự kết nối mềm dẻo. 
10.4.1.1 Các sự kết nối hẹp: 
Độ rộng về sự giao tiếp giữa hai module là có nhiều kết nối cần thiết liên kết giữa hai module đó. Một sự tương 
tác hẹp giữa hai module (là tốt) là một cặp module chỉ có một mẩu dữ liệu kết nối với nhau duy nhất, và ngược 
lại nếu có nhiều mẩu dữ liệu kết nối giữa hai module là không tốt. 
10.4.1.2 Các kết nối trực tiếp: 
Giao tiếp giữa hai module là dễ nhận biết nhau nếu một người nào đó lĩnh hội được nó một cách trực tiếp mà 
không cần tham khảo tới nhiều mẫu dữ liệu khác nhau khi tiếp xúc lần đầu. Chẳng hạn, một module nói về chi 
tiết của một khách hàng nào đó (module CUST-DETAILS) mà đã được định nghĩa gồm có các mẫu tin như: tên 
khách hang (CUST-NAME), số tài khoản khách hàng (CUST-ACCOUNT-NUM), địa chỉ khách hang (CUST-
ADDRESS), bản thanh toán của khách hang (CUST-BALANCE), thì lúc đó ta dễ nhận biết chúng giao tiếp với 
thế giới bên ngoài bằng mẫu dữ liệu nào, có lẽ qua trường mẫu tin địa chỉ khách hang (CUST-ADDRESS). 
10.4.1.3. Các sự giao tiếp cục bộ (toàn cục): 
Nếu tất cả các thông tin giao tiếp yêu cầu để hiểu biết về kết nối giữa hai module là chính nó, thì các thông tin 
đó được gọi là cục bộ. Thông tin về kết nối toàn cục là xuyên qua toàn mẫu dữ liệu. Trong trường hợp này, 
thông tin về sự kết nối giữa hai module có lẽ có hàng trăm cách móc nối khác nhau từ module đang gọi hoặc là 
module đã gọi. 
10.4.1.4. Các sự kết nối rõ ràng: 
Sự kết nối rõ ràng giữa hai module là không có lặp lại, không có tính tối nghĩa. Ví dụ có một đoạn trình hợp 
ngữ module A giao tiếp với module B bằng cách thay đổi nội dung trong đoạn trình B, điều này là sự kết nối 
không rõ ràng. 
10.4.1.5. Sự kết nối mềm dẻo: 
Bảo trì một hệ thống máy tính thường bao gồm nhiều thay đổi các liên kết trong số các module trong hệ thống. 
10.4.2. Tương tác bình thường: 
Hai module, A và B gọi là tương tác bình thường nếu như A gọi được B và ngược lại B gọi được A, tất cả các 
thông tin truy cập giữa chúng là các tham số được gọi chính chúng. Tất nhiên, đây là mô tả trường hợp bình 
thường trong sơ đồ có cấu trúc. Hình vẽ 4.2 và 4.3 mô tả trường hợp trên 
Page 60 of 70 
Trong hình 4.2 A gọi tới B nhưng A không truy cập bất cứ điều gì tới B và cũng không nhận được bất cứ điều 
gì từ B. Trường hợp này đánh dấu một điểm zero trong tỉ lệ tương tác. A gọi là tương tác tới B khi và chỉ khi A 
là tên của B. (Như thế khi B thay đổi tên thì A cũng sẽ thay đổi theo). 
10.4.2.1 Tương tác dữ liệu: 
Trong hình 4.3 biểu diễn rộng hơn trong số các kiểu tương tác thông thường, tương tác bình thường cũng có 
nghĩa là tương tác dữ liệu. 
Hai module gọi là tương tác dữ liệu nếu chúng giao tiếp với nhau bằng các tham số, mỗi tham số là một thần 
phần trong mẫu dữ liệu. Dữ liệu tương tác là sự giao tiếp cần thiết giữa nhiều module. Khi nhiều module phải 
giao tiếp với nhau thì dữ liệu tướng tác là không thể tránh khỏi và dữ liệu tương tác này không làm ảnh hưởng 
đến các module miễn là nó được tối thiểu hoá. Ví dụ trong hình 4.4 có tất cả bốn mẩu dữ liệu tương tác gồm: 
tổng số mượn, lãi suất, thời hạn, lãi suất hoàn trả là cần thiết. 
Mặc khác, các thông tin phụ trội khác không cần như thêm vào tên khách hàng làm tăng thêm độ phức tạp, 
không dùng để tính toán tiền trả nợ. 
Tương tác dữ liệu thể hiện tất cả các đặc tính tốt nhất của sự tương tác. Nếu như ta giao tiếp giữa các module 
với nhau bằng những thông tin không cần thiết thì sự tương tác trở nên bị thu hẹp lại. Tương tác dữ liệu cũng có 
nghĩa là khi giao tiếp giữa hai module muốn gì được nấy, hay là các đoạn mã tương tác dữ liệu được thể hiện 
dọc theo các module gọi và các module chuẩn bị các module khác. Có hai điều cần chú ý trong sự tương tác dữ 
liệu: 
· Với sự tương tác dữ liệu càng nhỏ là càng tốt. 
· Với sự tương tác dữ liệu, trong trường hợp có nhiều module tương tác với nhau, thì những thông tin dư 
thừa (không rõ ràng) sẽ làm cho sự tương tác kém hiệu quả và vi phạm đến năm nguyên lý của sự tướng 
ở trên. 
A 
B 
gọi B 
A và B tương tác bình 
thường với nhau, nhưng 
không có gì để nói về nhau 
C 
D 
C và D tương tác bình 
thường với nhau, nhưng giao 
tiếp với nhau qua dữ liệu X 
và Y 
gọi D qua 
X và Y 
Y X 
Hình 4.3 Hình 4.2 
tổng số đã mượn 
Định giá tài sản 
Tính toán tiền trả vay mượn 
kỳ hạn 
lãi suất lãi suất hoàn trả 
nước đi 
ván cờ mới 
ván mới 
Hình 4.4 Hình 4.6 
Chơi cờ 
Thực hiện nước đi 
Page 61 of 70 
10.4.2.2 Tương tác stamp 
Thông thường hai module được gọi là tương tác stamp nếu như module này tương tác tới module khác nhờ vào 
dữ liệu kết nối chung, dữ liệu kết nối này có đầy đủ tính cấu trúc bên trong nó. Ví dụ: dữ liệu kết nối có thể là 
một bản ghi khách hàng gồm có nhiều trường, hình 4.5 thể hiện sự tương tác stamp. 
Trong hình 4.6 có ba tham số: bàn cờ, nước đi, ván cờ mới, tất cả có đầy đủ tính cấu trúc, vì vậy mà chúng thể 
hiện sự tương tác stamp. Sự tương tác này sảy ra khi các dữ liệu cấu trúc lựa chọn có tính chất tự nhiên tới các 
ứng dụng và không có tính mật mờ. Chúng ta hãy xem kỹ trong hình 4.6, sự định nghĩa nước đi của bàn cờ. Khi 
có sự tương tác quanh co thì nên dùng sự tương tác dữ liệu hơn là dùng sự tương tác stamp. 
Mặc dù, khi người thiết kế giỏi cảm thấy dùng sự tương tác stamp là tốt nhưng người thiết kế kém hơn thì cho 
rằng tương tác stamp là không tốt cho cùng một hệ thống, cho nên có hai khuyến nghị được nên ra đây cho 
tương tác stamp: 
· Đừng bao giờ truy cập tới các bản ghi có quá nhiều trường, tới các module mà chỉ một hoặc hai trường 
trong số các trường đó. Xem hình 4.7 mô tả ba module tương tác stamp với nhau 
Bản ghi khách hàng thuê gồm có các trường: số bằng, thành phần câu lạc bộ Marlin, số câu lạc bộ Marlin, xăng 
đã sử dụng, loại xe hơi, số dặm đi được, số ngày sử dụng... Mặc dù, module tính toán tiền thuê cơ sở chỉ yêu 
cầu ba trường cuối cùng, khi nó nhận tất cả các thông tin về khách hàng thuê. Bất kỳ sự thay đổi nào trong bản 
ghi về khách hàng thuê, hoặc là khuôn mẫu hoặc là cấu trúc bản ghi, sẽ làm ảnh hưởng tới tất cả các module 
tham trỏ tới nó, ngay cả các module không tham trỏ tới các trường thay đổi. 
Như ví dụ đơn giản trên nhìn vào hình vẽ 4.7 khi mà trường số câu lạc bộ Marlin thay đổi về khuôn dạng, thì cả 
hai module tính toán tiền thuê cơ sở, module tính toán tiền phải trả cho loại ga sẽ phải thay đổi theo, hoặc là tối 
thiểu biên dịch lại mặc dù các module đó không tham trỏ tới các thành phần của câu lạc Merlin. 
· Nếu như ta muốn gói dữ liệu thành bó thì dùng sự tương tác stamp rất có hiệu quả. 
10.4.2.3 Tương tác điều khiển 
Hai module được gọi là tương tác điều khiển, nếu như module này truy cập tới module kia thông một mảnh 
thông tin kết nối và mảnh thông tin kết nối đó lại tham gia vào sự điểu khiển logic của một module khác nữa. 
Hình 4.2.3 thể hiện hai module tương tác điều khiển với nhau. 
Giá trị làm cho cờ dựng lên để chỉ ra rằng hệ thống đang được điều khiển đọc các bản ghi vào ra. Chẳng hạn 
khi cờ có giá trị bằng 1 có nghĩa là lấy bản ghi chủ kế tiếp, khi cờ bằng 2 thực hiện việc duy chuyển bản ghi kế 
tiếp, khi cờ bằng 3 thực hiện cả hai bước trên, khi giá trị bằng 4 có nghĩa là điều khiển hệ thống in các header... 
Trong hình 4.2.3, module lấy các bản ghi khách hàng quyết định một các rõ ràng đến các thành phần điều khiển 
vào ra của hệ thống. Để mà một module gọi thực hiện một quyết định thì nó phải tính logic của module bị gọi 
tổ chức như thế nào. Chẳng hạn, để chọn đúng giá trị dựng cờ, thì module lấy các bản ghi khách hàng phải biết 
tính logic của hệ thống điều khiển vào ra. Khi hệ thống có nhiều module tương tác với nhau thì sự tương tác 
điều khiển không con thích hợp nữa, vì nó thường chỉ ra sự hiện diện của các module khác làm quan hệ trong 
hệ thống trở nên rối rắm và khó khăn cho việc thiết kế hệ thống. 
10.4.3 Tương tác chung (common coupling) 
Hai module được gọi là tương tác chung nếu chúng đều tham trỏ đến vùng dữ liệu toàn cục giống nhau 
a) Nguyên tắc việc lựa chọn sự tương tác 
· Chọn sự tương tác càng lỏng lẻo càng tốt 
· Chọn sự tương tác càng đơn giản càng tốt 
Do sau này hệ thống sẽ phải sửa chữa đỡ "Rút giây động rừng" (xấu nhất) 
· Tương tác nội dung: Module này can thiệp vào nội dung của module khác 
Lấy các bản ghi khách 
hàng 
Điều khiển vào/ra hệ 
thống 
những gì 
làm cờ 
dựng lên 
bản ghi 
chuyển đi 
bản ghi 
chủ 
Hình 4.2.3 Hai module tương tác điều khiển 
Page 62 of 70 
· Tương tác điều khiển: module này chuyển 1 thông tin điều khiển cho 1 module khác (cờ,...) (khi gửi 1 
thông tin điều khiển thực chất module cấp trên đã biết nội dung module cấp dưới như vậy vi phạm 
nguyên tắc "che dấu"). 
Cần thì vẫn phải dùng tương tác này song tránh nếu được (hạn chế) 
· Tương tác dữ liệu: trao đổi dữ liệu cho nhau (cần chấp nhận tương tác này, tuy nhiên chọn tương tác này 
càng đơn giản càng tốt: chuyển giao qua các phân tích chuẩn: danh sách tham số) 
b) Sự cố kết (Cohension): Sự gắn bó nề mặt logic các phần trong nội bộ của module càng cao càng tốt (mỗi 
module chỉ nên giao 1 nhiệm vụ logic, đừng giao những nhiện vụ phân tán) 
c) Hình thái: Trên xoè ra ® thể hiện sự tinh tế 
 Dưới chụm vào ® thể hiện? 
Ở mỗi điểm xoè ra chỉ nên 7 ± 2 
Có 2 khái niệm 
· Phạm vi điều kiện của 1 module: Module đó cùng với những module phụ thuộc (được gọi) 
· Phạm vi ảnh hưởng của 1 quyết định: là mọi module (chịu ảnh hưởng) có sử dụng kết quả quyết định đó 
 VD 
 - Chẳng hạn trong B có 1 quyết định q1 mà kết quả của nó AEF thì phạm vi ảnh hưởng: 
AEF 
 Phạm vi điều kiển của A là A, B, C 
· Một thiết kế tốt thì: 
o Phạm vi ảnh hưởng nằm trong phạm vi điều khiển 
o Các quyết định có miền ảnh hưởng càng bé càng tốt 
10.5. Cách thức chuyển BLD thành LCT: 
Thực chất chuyển BLD của hệ thống con thành BLD công đoạn (Job) ở mức bé nhất 
Có 2 phương thức định hướng cho việc chuyển BLD thành LCT 
· Phương thức theo biến đổi (Transform analysis) 
· Phương thức theo thao tác (Transaction analysis) 
Hai phương thức này không đối lập và có thể kết hợp với nhau 
Ở đây chúng ta chỉ đưa ra những gợi ý , định hướng cho nhà phân tích thiết kế 
a) Phương thức theo biến đổi: Dựa theo sự phát hiện trung tâm biến đổi thông tin chủ (tính toán, kết xuất) 
Trung tâm như vậy: có tính chất 
· Các phần còn lại: sẽ bị cắt rời không còn liên kết được với nhau sau khi ta cắt đi trung tâm biến đổi nếu 
"xách" trung tâm biến đổi lên sẽ kéo theo phần còn lại 
· Thượng lưu: luồng thông tin vào 
· Hạ lưu: luồng thông tin ra 
Có 5 bước thực hiện 
(1) Dõi theo luồng dữ liệu vào (thượng lưu) vượt qua các chức năng biến đổi thông tin sơ bộ cho đến khi dữ 
liệu được biến đổi trừu tượng nhất hoặc đến lúc không xem nó là dữ liệu vào được nữa thì chúng ta ngắt (đánh 
dấu) luồng vào từ vị trí đó 
(2) Xác định nguồn dữ liệu ra, đi ngược dòng vượt qua các chức năng chế biến dạng thông tin cho đến khi 
không xem được đó là dữ liệu ra, thì dừng lại và đánh dấu... 
(3) Căn cứ vào các điểm đánh dấu khoanh vùng để cô lập trung tâm biến đổi 
Ví dụ : 
(4) Vẽ 2 mức cao nhất trong LCT 
 Mức 1 là 1 modun chính 
Mức 2 tiếp theo gồm 3 modun 
1 modun vào cho mỗi luồng dữ liệu vào (trái) 
Nguồn 1 
Nguồn 2 
A B 
D E F 
C 
G 
I 
H 
K J 
L 
Nguồn 2 
x1 x2 x3 
x4 Q1 Q3 
S1 
S2 
S3 
Q4 
Q2 y4 y3 y2 y1 
Page 63 of 70 
1 modun ra cho mỗi luồng dữ liệu ra (phải) 
 và 1 modun thông tin biến đổi (giữa) 
Quay lại Ví dụ trên 
(5) Triển khai mỗi module (vào, ra, biến đổi) ở mức trên thành mức thấp hơn làm xuất hiện dần các module 
tương ứng với chức năng xử lí trong BLD 
 Ví dụ 
b) Phân tích theo thao tác (giao dịch): [Transaction Analysis] Đó là các thông tin mà khi xuất hiện thì nó khởi 
động một loạt các chức năng trong BLD. Một giao tác bao gồm: 
· Các sự kiện trong môi trường hệ thống (event) 
· Tác nhân kích thích (stimulus) 
· Các hành động (activity) 
· Các phản ứng, đáp ứng của hệ thống (response) 
· Những kết quả, ảnh hưởng của giao tác (effect) 
 VD: Đơn hàng đến khởi động một loạt các chức năng; đặc điểm là luôn có một chức năng phân loại thông tin 
giao dịch 
Các bước thực hiện: 
(1) Phát hiện 1 chức năng xử lí trong BLD: nhận 1 luồng dữ liệu vào và cho ra nhiều dữ liệu loại trừ lẫn nhau 
(2) Xác định các loại giao tác khác nhau tương ứng với các luồng ra của chức năng nói trên và các chức năng 
được khởi động từ các giao tác đó 
(3) Vẽ LCT ở 2 mức cao nhất 
 Mức 1: 1 module chính 
 Mức 2: 1 module cho mỗi loại giao tác và các module giao tác này được module chính gọi qua phép chọn. 
Cũng có thể thêm các module lấy các thông tin vào/ra 
 VD 
Y4 
Chính 
S1 
Lấy X4 Lấy Y4 Tạo S1 Trao S1 
x4 S1 
Lấy X4 
Lấy X3 C 
Lấy X2 B 
 Lấy X1 A 
Tạo S1 
Q3 Q4 
Trao S1 
Tạo S2 Trao S3 
(H) (I) 
Å 
Chức 
năng 
phân 
loại 
Giao 
dịch Å 
Å 
Module chính 
Lấy giao tác Giao tác 1 Giao tác 2 Đưa kết quả ra Giao tác 3 
Page 64 of 70 
(4) Triển khai các module xuống mức thấp 
 Các mức thấp hơn có thể phối hợp theo cả hai phương pháp 
+ Phân tích theo biến đổi chính 
+ Phân tích theo các giao tác (phụ trợ) 
c) Cấu trúc lại hệ thống: 
Xem lại toàn bộ hệ thống xem có phù hợp với các yêu cầu đề ra hay không để chỉnh lý kịp thời 
10. 6. Đóng gói thành module tải 
Đây là giai đoạn cuối của khâu thiết kế các module để dẫn đến lập trình được. Ta có thể coi LCT là 1 chương 
trình cũng được. Nhưng thường chương trình như vậy lớn quá nên có nhu cầu đóng gói, tải dần từng module 
vào bộ nhớ trong 
Có một vài cách đóng gói 
· Đóng gói theo dòng dữ liệu vào (đóng gói theo các phạm vi điều khiển) có hình dáng chẻ dọc lược đồ, 
chuyển giao theo nguồn dữ liệu hoặc 
· Đóng gói chẻ ngang theo mức LCT thường đối với các module lựa chọn. 
· Đóng gói theo 1 Thư viện CT 
· Đóng theo Module gọi lặp thường xuyên và ghép chung vào module gọi 
Nếu phép chọn buộc phải cắt ra thì nên khảo sát phép chọn cân đối hay không, gộp nhánh được gọi luôn (nhánh 
nặng thoả điều kiện nằm ngay sau if) vào chương trình con 
Chính 
Lấy giao 
tác hợp lệ 
Chuyển sang 
dạng mới 
Lấy giao 
tác 
Kiểm tra sự 
hợp lệ 
Kiểm tra K1 Kiểm tra K2 Kiểm tra K.. Kiểm tra Kn 
Kiểm tra chữ Kiểm tra số Kiểm tra mã đ/c 
Viết các lỗi 
phát hiện 
In danh sách 
mới 
A 
B 
E G 
C 
D 
F H 
A 
B 
E G 
C 
D 
F H 
Page 65 of 70 
Đặc tả các module: 
Đặc tả các module nhằm đề cập đến nội dung chi tiết của từng module bằng một ngôn ngữ giải thuật nào đó 
chẳng hạn 
· Sơ đồ khối (flowchart) 
· Ngôn ngữ giả trình (Pseudo code). 
Dựa trên đặc tả này người xây dựng chương trình sẽ mã hoá thành các chương trình ứng dụng một cách dễ 
dàng. Phương pháp và kỹ thuật đặc tả các module được đề cập đến trong các môn học trước: Tin học đại cương, 
cấu trúc dữ liệu và giải thuật, Kỹ thuật lập trình, Công nghệ phần mềm... 
10.7. Lập các mẫu thử (test) 
Người thiết kế hệ thống sau khi thiết kế các module còn có trách nhiệm thiết kế và đưa ra các mẫu thử nhằm 
đảm bảo tính khách quan. Các mẫu thử này chính là các yêu cầu người lập trình phải đảm bảo thực hiện đúng 
các chức năng và yêu cầu khái quát của hệ thống cũng như các yêu cầu chi tiết của từng module chương trình. 
Test : -Từng chương trình 
-Toàn bộ hệ thống 
Hiện nay "test" gần như là biện pháp duy nhất để kiểm tra chương trình. Về lý thuyết chúng ta đã biết là có các 
phương pháp chứng minh sự đúng đắn, độ phức tạp, thời gian thực hiện và không gian lưu trữ, cũng như tính 
hiệu quả của chương trình nhưng các công cụ này hiện chưa khả thi về ứng dụng. Như Diskjstra đã phát biểu: 
"Mẫu thử chỉ chứng minh sự có mặt của lỗi chứ không chứng minh được sự vắng mặt của lỗi " 
a) Các loại mẫu thử 
1. Loại mẫu thử hoàn chỉnh / không hoàn chỉnh 
Mẫu thử hoàn chỉnh bảo đảm dự kiến mọi trường hợp có mặt trong chương trình. Mẫu thử không hoàn chỉnh 
khi ta chỉ cần kiểm tra các điểm mốc quan trọng, còn các phần thứ yếu, không quan trọng có thể cho phép bỏ 
qua không ảnh hưởng sai lệch đến tính chất của hệ thống cũng như từng module riêng lẻ 
2. Loại mẫu thử Ngẫu nhiên / không ngẫu nhiên. 
Trước tiên ta nên thử không ngẫu nhiên, sau đó tiến hành những mẫu thử ngẫu nhiên. Có nhiều cách sinh các 
mẫu ngẫu nhiên; thường sinh theo luật xác suất Baux hoặc phương pháp Von Newman 
Ví dụ: Lấy dữ liệu 4 con số đặt là x0 
Sau đó lấy 4 con số ở giữa của bình phương x0 (x02 ) đặt là x1 . 
Cứ tiếp tục như vậy với các xi 
 Chẳng hạn x0 = 1147 
 x02 = 1315609 x1 = 3156 
 x12 = 98012763 x2 =0127 
B 
A 
C 
A 
B 
C 
D 
Module 
Phân tích viên 
hệ thống 
Mẫu thử 
Người lập trình 
viên 
Thiết kế 
Xây dựng 
chương trình 
Mẫu 
Kết quả 
Page 66 of 70 
Dãy Fibônacy: F(n +2) = F(n +1) + F(n) 
- Phương pháp thương: Lấy 2 số A, B rất lớn 
 xi +1 = A * xi - B * q , q : thương số của phép chia. 
Như vậy ta xem xi +1 là số dư của phép chia A* xi với B. Dãy này, ngẫu nhiên và tuần hoàn 
- Chọn ngẫu nhiên (chữ, chữ pha số) 
3. Mẫu thử đa dạng, phong phú và đủ lớn 
b) Trình bày mẫu thử: 
 - Mẫu thử có thể được trình bày theo bảng có dạng sau 
Mẫu thử (1) Kết quả thu được (2) Kết quả mong đợi (dự đoán) (3) 
Sai lệch thực tế 
giữa (2) và (3) Nhận xét 
D
1 d2 dn k1 k2 kn k1 k2 kn % % 
-Mẫu thử có thể sinh bằng các "bộ sinh" tự động bằng cách chỉ ra công thức sinh 
c) Các cách thử chương trình bằng mẫu thử 
- Thử tính đúng đắn. 
- So kết quả thu được với kết quả chờ đợi 
- Nếu trong quá trình phức tạp, yêu cầu chương trình in các trị trung gian. 
- Kiểm tra các giá trị trung gian. 
- Kiểm tra vệt chương trình. 
- Thử hiệu năng: các mẫu thử, lớn, phải cho 1 thời gian để thực hiện 
Bài tập chương 10 
1. Từ biểu đồ luồng dữ liệu hãy xây dựng lược đồ cấu trúc chương trình cho hệ thống : 
Tính lương 
Check out cho khách 
Giao dịch mượn trả sách 
2. Thông tin bàn giao giữa các module là gì, chỉ ra các nguyên tắc cụ thể 
3. Trong các hệ thống hệ quản trị CSDL các tương tác giữa các module có xảy ra hay không? Cách khắc phục 
4. Các phương pháp thử đánh giá hệ thống ở một số đặc tính sau 
 + Đúng đắn và ổn định của module chương trình 
+ Tính thời gian thực hiện 
+ Độ phức tạp 
+ Tính thân thiện 
+ Tính dễ sủa chữa 
+ Tính mở 
..... 
Hãy bàn luận về các tính chất trên để làm rõ các nguyên tắc cơ bản khi thiết kế 
Page 67 of 70 
Chương 11. Lập trình - Chạy thử - Bảo trì 
1. Lập trình 
a. Thành lập tổ lập trình 
Tổ lập trình là một nhóm tham gia việc viết các Môdul và được lắp ghép thành hệ thống. Việc thiết kế hệ thống 
càng chi tiết bao nhiêu và mang tính hệ thống cao sẽ giúp cho việc thực hiện cài đặt và phát triển hệ thống hoàn 
thiện bấy nhiêu. 
- Một chương trình ứng dụng trung bình có từ 8000 đến 15.000 câu lệnh và trung bình người ta có thể viết được 
30 câu lệnh 1 ngày. 
- Từ cơ sở trên tạo nhóm lập trình bao gồm bao nhiêu người trong khoảng thời gian bao lâu. 
b. Chọn ngôn ngữ lập trình 
- Những ngôn ngữ mang tính hệ thống viết được ra môi trường thường dùng là C, C++, Pascal và môi trường 
chuyên dùng: Cobol, Fox, Access, VB, Lotus Notes. Môi trường điển hình hiện nay là: HQT CSDL 
(ORACLE). 
c. Cài đặt các tệp, biết các đoạn chương trình chung 
d. Soạn thảo chương trình cho từng đơn vị xử lý 
- Yêu cầu đối với các chương trình: 
 + Vào ra phải đúng đắn 
 + Dễ đọc, dễ hiểu để còn bảo trì 
 + Dễ sửa, dễ nâng cấp 
 + Chạy phải nhanh, tiết kiệm bộ nhớ có hiệu quả không gian, thời gian. 
 + Tối ưu hoá về mã: thể hiện ở thời gian và chỗ chiếm bộ nhớ. 
2. Chạy thử và ghép nối 
Chạy thử và ghép nối để cho ra một mẫu thử hệ thống 
3. Thành lập các tài liệu hướng dẫn sử dụng 
Tài liệu hướng dẫn đóng vai trò quan trọng với người sử dụng 
a. Đại cương 
Mục đích của tài liệu là để trao đổi, liên lạc. Nhà phân tích tham gia phát triển hệ thống cần trao đổi với một số 
người trước, trong và sau tiến trình phân tích và thiết kế đã được thảo luận ở đây. Thông tin thu được cần phải 
được ghi lại theo khuôn dạng làm thuận tiện cho việc thâm nhập và tìm kiếm. Kết quả của hoạt động phân tích 
và các ý tưởng được xem xét trong giai đoạn thiết kế (cả những ý tưởng được chấp thuận cũng như bị loại bỏ) 
đều cần được thâu tóm dưới dạng văn bản nào đó, trước hết để giúp làm đầy đủ tiến trình phát triển rồi thứ nữa 
để hỗ trợ cho việc chạy và bảo trì hệ thống khi nó đi vào hoạt động. 
Về cơ bản có hai khuôn dạng tài liệu. Chúng liên quan tới hai nhóm người tham gia trong việc phát triển, và 
các nhu cầu thông tin khác nhau: 
 + Người dùng. (Thuật ngữ được dùng ở đây bao hàm cả nhà quản lý, người chủ và người vận hành hệ 
thống). Tài liệu cho những người này phải được chuẩn bị một cách chính thức bởi nhóm phát triển (một số 
trong họ cũng chính là người dùng). Tài liệu này được xem như một phần của việc bàn giao hệ thống. Trong 
phương pháp luận Systemscraft, các tài liệu bàn giao bao gồm 
 Đặc tả yêu cầu nghiệp vụ 
 Đặc tả thiết kế hệ thống 
 Tài liệu cho người dùng 
 Hướng dẫn vận hành 
 + Người phát triển. (Thuật ngữ được dùng ở đây bao hàm cả nhà phân tích, người thiết kế, người làm 
bản mẫu, người lập trình, người quản lý dự án, chuyên gia CSDL... đã tham gia vào tiến trình phát triển. Ta 
cũng có thể kể cả một số người dùng có tham gia nhiều vào phát triển hệ thống) Tài liệu cho những người này 
trong suốt thời kỳ nghiên cứu. Các tài liệu này thường được gọi là Hồ sơ giấy tờ làm việc. 
b. Các hướng dẫn chung 
 b1. Phần cứng và phần mềm ứng dụng. 
 b2. Hướng dẫn về các phương thức khai báo 
 b3. Về các người sử dụng 
 b4. Các hướng dẫn dùng khác 
c. Giới thiệu chương trình, trình tự khai thác 
 c1. Danh sách các chương trình 
 c2. Mô tả chi tiết 
 c3. Trình tự khai thác 
d. Đặc trưng của các đầu vào: đưa ra các mẫu 
Page 68 of 70 
e. Đặc trưng của các tệp 
 e1. Đặc trưng chung 
 e2. Cấu trúc tệp 
e3. Các tệp chỉ dẫn 
f. Đặc trưng của các đầu ra 
 f1. Đặc trưng chung 
 f2. Cấu trúc lúc trình bày 
g. Hướng dẫn cho các nhân viên điều hành hệ thống 
4. Bảo trì hệ thống 
- Song song với quy trình kiểm tra thì ta phải tiến hành bảo trì hệ thống. 
 + Sửa các lỗi 
+ Điều chỉnh theo yêu cầu mới 
+ Cải thiện hiệu năng của hệ thống. Muốn vậy ta phải hiểu được chương trình từ những tài liệu để lại, 
phải lần ngược dấu vết khi phát hiện lỗi. 
- Bảo trì gồm 4 mức: 
 + Mức 0: Giới hạn trong chương trình 
 + Mức 1: Bảo trì mức vật lý: liên quan đến phần cứng 
 + Mức 2: Mức truy nhập tổ chức 
 + Mức 3: Mức quan niệm, khái niệm hay logic 
- Các loại bảo trì: 
 + Bảo trì sửa chữa: 17% đến 20% 
 + Bảo trì thích ứng: 18% đến 25% 
 + Bảo trì hoàn thiện: cải tiến hệ thống để nó chạy tốt hơn, ổn định hơn, nhanh hơn... chiếm từ 50% đến 
60%. 
Tóm lại chu trình phát triển của hệ thống truyền thông như sau: 
Khảo sát 
Phân tích Bảo trì và phát 
triển 
Cài đặt Thiết kế 
Xây dựng 
Page 69 of 70 
Câu hỏi ôn tập 
1. Trình bày các bước chạy thử và test hệ thống 
2. Có thể áp dụng phương pháp luận PTTK hệ thống thông tin cho các bài toán kỹ thuật được không? Có áp 
dụng cho các dự án xã hội được không? 
3. Tại sao nói phân tích thiết kế hệ thống là một công việc cực kỳ quan trọng trong quá trình xây dựng hệ 
thông tin quản lý. Anh chị hiểu như thế nào câu nói “Sự lãng phí, rủi ro trên giấy còn hơn xảy ra trong thực 
tiễn“ 
4. Những công cụ diễn tả xử lý. Sự khác nhau giữa biểu đồ phân rã chức năng (BPC) và biểu đồ luồng dữ liệu 
(BLD). Chúng có mối quan hệ với nhau như thế nào 
5. Vòng đời của sản phẩm phần mềm tin học quản lý là gì? Giai đoạn nào quan trọng nhất. 
6. Các điều tối kỵ (sai cơ bản dễ phát hiện) khi vẽ BLD, BPC. 
7. Những thành phần cấu thành BLD, thành phần nào sử dụng nhãn là động từ? vì sao? Những thành phần nào 
sử dụng nhãn là danh từ? Tại sao? Có hệ thống nào mà BLD không có tác nhân ngoài không? Tại sao? Số 
tác nhân ngoài tối đa là bao nhiêu? 
8. Tại sao cần các thể hiện khác của biểu đồ luồng dữ liệu? Chúng có thể là những cái gì? Các công thức, quy 
định, thủ tục dùng để làm gì? 
9. Mối quan hệ giữa mô hình thực thể liên kết và mô hình CSDL quan hệ. Phân biệt thực thể và kiểu thực thể, 
liên kết và kiểu liên kết, thuộc tính và giá trị thể hiện của thuộc tính? Cho các thí dụ minh hoạ. 
10. Vai trò của phụ thuộc hàm (PTH) trong phân tích dữ liệu? PTH sơ đẳng, bộ phận, phụ thuộc hàm trực tiếp, 
bắc cầu. Ý nghĩa của với việc chuẩn hoá dữ liệu. 
11. Tại sao phải khảo sát hệ thống hiện trạng trước khi tiến hành phân tích và thiết kế hệ thống mới. 
12. Xây dựng Mô hình thực thể liên kết của các hệ thống phổ biến sau: 
QL Thư viện 
QL Kết quả học tập 
QL Khách sạn 
QL Nhân sự 
QL Tuyển sinh 
QL Vật tư 
QL Kinh doanh 
QL Xe máy 
QL Dịch vụ nhà cho thuê 
13. Sự khác nhau cơ bản khi thành lập biểu đồ cấu trúc dữ liệu (BCD) theo mô hình thực thể liên kết và mô 
hình quan hệ. 
14. Phân định ranh giới hệ thống phần thực hiện bằng máy tính và thủ công để làm gì. Cách chủ đạo của 
phương pháp này. 
15. Kỹ thuật chính khi thu thập thông tin và các bước thực hiện của nó. 
16. Mã hoá dữ liệu: Các phương pháp mã cơ bản , phương pháp nào coi là tốt nhất.. Hãy mã hoá sinh viên bằng 
số thẻ, xác định mã này 
17. Điểm hở là gì. Tại sao cần nghiên cứu các điểm hở và các phương pháp bảo mật thông tin. Mật khẩu và mật 
mã khác nhau thế nào? Quyền ưu tiên là gì trong PTTK. 
18. Biểu đồ cấu trúc dữ liệu (BCD) dạng mô hình thực thể liên kết E-R có liên quan đến các bảng dữ liệu trong 
FOXPRO và ACCESS như thế nào, chúng có thay thế được nhau không? 
19. Thiết kế FILE dựa vào những phần gì trước đó ? Các bước của một đường truy cập FILE đối với mỗi yêu 
cầu là gì? Diễn giải các bước đối với các yêu cầu khi truy cập các hệ Thư viện (SACH, ĐOCGIA, 
MUONTRA), hệ khách sạn (PHONG, KHACH, CHECK_IN_OUT), vv... 
20. Module chương trình là gì? Các thuộc tính cơ bản của một module. Đặc trưng trong và đặc trưng ngoài. 
21. Phân biệt các biểu đồ sau (rất hay nhầm): 
a. Biểu đồ BPC 
b. Giao diện MENU hệ thống 
c. Sơ đồ tổ chức 
d. Lược đồ cấu trúc chương trình 
22. Chất lượng của một LCT. 
23. Tại sao nói rằng thiết kế mẫu thử là nhiệm vụ của người PTTK hệ thống, Các tiêu chuẩn của mẫu thử cần 
đạt được. 
24. Tại sao luồng dữ liệu vào/ ra từ kho dữ liệu đôi khi không có tên? 
Page 70 of 70 
25. Chức năng sơ cấp là gì? Trong BLD, chức năng sơ cấp đòi hỏi điều gì mà thành phần khác không nhất thiết 
phải có? 
26. Anh chị có nhận xét gì khi học xong môn PTTK hệ thống thông tin (ngắn gọn, gạch đầu dòng) 
            Các file đính kèm theo tài liệu này:
 giao_trinh_quan_ly_he_thong_thong_tin.pdf giao_trinh_quan_ly_he_thong_thong_tin.pdf