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 |
Chia sẻ: hachi492 | Ngày: 07/01/2022 | Lượt xem: 391 | 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