Giáo trình Quản lý hệ thống thông tin

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ê

pdf35 trang | Chia sẻ: hachi492 | Ngày: 07/01/2022 | Lượt xem: 299 | Lượt tải: 0download
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:

  • pdfgiao_trinh_quan_ly_he_thong_thong_tin.pdf