Chương 4: MÔ HÌNH HÓA QUÁ TRÌNH XỬ LÝ
lượt xem 18
download
Mô hình hóa tiến trình nghiệp vụ (modeling business process) là sự biểu diễn đồ thị các chức năng của quá trình để thu thập, thao tác, lưu trữ và phân phối dữ liệu giữa các bộ phận trong hệ thống nghiệp vụ cũng như giữa hệ thống và môi trường của nó.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chương 4: MÔ HÌNH HÓA QUÁ TRÌNH XỬ LÝ
- MÔ HÌNH HÓA QUÁ TRÌNH XỬ LÝ 4.1. Mô hình hóa tiến trình nghiệp vụ Mô hình hóa tiến trình nghiệp vụ (modeling business process) là s ự biểu di ễn đ ồ thị các chức năng của quá trình để thu thập, thao tác, lưu trữ và phân phối dữ liệu giữa các bộ phận trong hệ thống nghiệp vụ cũng như giữa hệ thống và môi trường của nó. Trong phương pháp phân tích HTTT hướng cấu trúc, các tài li ệu đ ầu tiên c ủa quá trình mô hình hóa quá trình nghiệp vụ là tập hợp các biểu đồ luồng dữ liệu biểu diễn mối liên hệ thông tin bên trong một hệ thống cũng như gi ữa hệ thống với môi tr ường của nó theo một số góc nhìn nhận khác nhau. Các biểu đồ đó là: Biểu đồ ngữ cảnh: cho phạm vi hệ thống và môi trường của nó. Biểu đồ luồng dữ liệu vật lý của hệ thống hiện thời mô tả hệ thống hiện thời, chỉ ra các cái vào, cái ra của nó và các công c ụ, ph ương ti ện đang đ ược s ử d ụng đ ể th ực hiện các chức năng. Biểu đồ luồng dữ liệu logic của hệ thống hiện thời chỉ ra các chức năng xử lý dữ liệu và các dữ liệu được thực hiện trong hệ thống hiện thời và b ỏ qua nh ững y ếu t ố vật chất (con người và các phương tiện vật chất) để thực hiện chúng. Biểu đồ luồng dữ liệu logic cho hệ thống mới biểu diễn các chức năng xử lý dữ liệu và các dữ liệu trong hệ thống mới mà chưa tính đ ến ph ương ti ện v ật ch ất đ ể thực hiện chúng. Biểu đồ luồng dữ liệu vật lý của hệ thống cần xây dựng là sản phẩm thiết kế cần xây dựng cho hệ thống mới. Trong trường hợp sử dụng các công cụ CASE để xây dựng các bi ểu đ ồ trên đây, tất cả các đối tượng và cấu trúc của các biểu đồ được đưa vào từ điển dự án (project dictionary) hay kho dữ liệu của CASE (CASE repository). 4.2. Biểu đồ luồng dữ liệu Các biểu đồ mô tả mô hình nghiệp vụ quá trình xử lý trên đậy dựa trên c ơ sở c ủa mô hình có tên là biểu đồ luồng dữ liệu. 4.2.1. Định nghĩa và ký pháp Có hai loại ký pháp chuẩn được dùng để biểu diễn bi ểu đồ luồng d ữ li ệu, và c ả hai loại đều sử dụng bốn ký pháp để biểu diễn cùng một số sự v ật, đó là: luồng dữ liệu, kho dữ liệu, tiến trình và tác nhân. Những ký pháp được dùng trong tài liệu này là của Gane và Sarson (1979) (loại khác là của Demarco và Yourdon-1979) Luồng dữ liệu (data flow) là các dữ liệu di chuyển từ một vị trí này đến m ột v ị trí khác trong hệ thống trên một vật mang nào đó. Một luồng dữ liệu có thể biểu diễn trên một vật m ạng như đ ơn hàng c ủa khách hay tờ sec trả lương. Nó cũng có thể là một kết quả truy v ấn nh ận đ ược t ừ m ột c ơ s ở dữ liệu được truyền trên mạng, hay những dữ liệu được cập nhật vào máy tính, được hiện ra màn hình hay in ra máy in. Như vậy, luồng dữ li ệu có thể bao gồm nhi ều mảng dữ liệu riêng biệt được sinh ra ở cùng m ột thời gian và di chuyển đ ến cùng m ột đích.
- Trong biểu đồ luồng dữ liệu vật lý, luồng dữ liệu là các d ữ li ệu đ ược l ưu trên mạng vật lý, và vì thế tên luồng dữ liệu được chọn là tên của chính vật mang như: đơn hàng, giấy báo giá, hợp đồng cung ứng, hóa đơn bán hàng… Luồng dữ liệu được ký hiệu bằng mũi tên có chiều chỉ hướng dữ liệu di chuyển và tên của dữ liệu được ghi ở trên nó (hình 4.1). Tên dữ liệu phải là một mệnh đề danh từ và phải thể hiện được sự tổnh hợp của các phần tử dữ li ệu riêng bi ệt ch ứa trong đó. Kho dữ liệu (data store) là các dữ liệu được lưu giữ tại một vị trí. Một kho dữ liệu có thể biểu diễn các dữ liệu được lưu trữ ở nhiều vị trí không gian khác nhau (các thư mục khác nhau, các máy tính khác nhau, một cặp hồ sơ cùng loại,…). M ột kho d ữ liệu có thể chứa dữ liệu về khách hàng, sinh viên, đơn hàng, hóa đơn bán hàng.. Hình chữ nhật khuyết một cạnh (bên phải hay bên trái) được dùng để biểu diễn một kho dữ liệu. Sát cạnh trái (phải) của hình chữ nhật có một ô dùng để ghi số hiệu kho dữ liệu, bên trong hình chữ nhật ghi tên kho dữ liệu (hình 4.1). Tên kho dữ liệu phải là một mệnh đề danh từ, ví dụ: “đơn hàng”, “hóa đơn bán hàng”… Luồng dữ liệu Tên luồng dữ liệu 0 Tên tiến trình Tiến trình Tác nhân Tên tác nhân D 1 Tên kho dữ liệu Kho dữ liệu Hình 4.1. Các ký pháp của biểu đồ luồng dữ liệu Tiến trình (process) là một hay một số công việc hoặc hành động có tác động lên các dữ liệu làm cho chúng di chuyển, thay đổi, được lưu trữ hay phân phối. Quá trình xử lý dữ liệu trong một hệ thống thường gồm nhiều tiến trình khác nhau và mỗi tiến trình thực hiện một phần chức năng nghi ệp v ụ nào đó. Ti ến trình có th ể được xem xét là vật lý nếu có chỉ ra con người hay phương tiện thực thi chức năng đó. Trong trường hợp ngược lại ta có một tiến trìng logic. Hình chữ nhật góc tròn được dùng để ký hiệu một tiến trình. Một đường gạch ngang phía trên chia hình chũ nhật làm hai phần: ph ần trên ghi s ố hi ệu c ủa ti ến trình, phần dưới ghi tên tiến trình (hình 4.1). Tên tiến trình phải là một mệnh đề động từ gồm động từ và bổ ngữ, ví dụ: “tính lương”, “lập đơn hàng”. . . Trong biểu đồ luồng dữ liệu vật lý, tên tiến trình có thể là tên chức năng c ủa bộ ph ận th ực hi ện ti ến trình đó. Ngoài ra, người ta còn thêm vào phần thứ ba ở phía dưới tên đ ể ghi tên người, b ộ phận hay phương tiện thực hiện tiến trình đó. Tác nhân (actor) của một phạm vi hệ thống được nghiên cứu có thể là một người, nhóm người, một bộ phận, một tổ chức hay một hệ thống khác nằm ngoài phạm vi này và có tương tác với nó về mặt thông tin (nhận hay gửi dữ liệu) . Có thể nhận biết
- tác nhân là nơi xuất phát (nguồn), hay nơi đến (đích) của dữ li ệu từ ph ạm vi h ệ th ống được xem xét. Hình chữ nhật được sử dụng để ký hiệu một tác nhân, bên trong nó ghi tên tác nhân (hình 4.1). tên tác nhân phải là một danh từ như “khách hàng”, “nhà cung cấp”,… 4.2.2. Một số quy tắc vẽ biểu đồ luồng dữ liệu Vẽ biểu đồ luồng dữ liệu cần tuân theo các quy tắc sau: - Các “cái vào” của một tiến trình cần khác với “cái ra” của nó. Nguyên tắc này nhấn mạnh rằng, các dữ liệu đã qua một tiến trình phải có thay đ ổi. Ng ược l ại, ti ến trình là không cần thiết vì không tác động gì đến các luồng thông tin đi qua nó. - Các đối tượng trong một biểu đồ luồng dữ li ệu phải có tên duy nhất: M ỗi ti ến trình phải có tên duy nhất. Tuy nhiên một số tác nhân ngoài và kho dữ liệu có thể được vẽ lặp lại. - Các luồng dữ liệu đi vào một tiến trình phải đủ để tạo thành các lu ồng d ữ li ệu đi ra. Tiến trình: - Không một tiến trình nào chỉ có cái ra mà không có cái vào.. Đối tượng chỉ có cái ra thì chỉ có thể là tác nhân (nguồn) - Không một tiến trình nào chỉ có cái vào. Một đối tượng chỉ có cái vào ch ỉ có th ể là tác nhân (đích) Kho dữ liệu - Không có luồng dữ liệu từ một kho đến một kho dữ liệu khác. - Dữ liệu không thể di chuyển trực tiếp từ một tác nhân đến một kho d ữ li ệu và ngược lại. Tác nhân - Dữ liệu không thể di chuyển trực tiếp từ một tác nhân đến một tác nhân. Luồng dữ liệu - Một luồng dữ liệu không thể quay lại nơi mà nó vừa đi khỏi. - Một luồng dữ liệu đi vào một kho có nghĩa là kho dữ liệu được c ập nhật, m ột luồng dữ liệu đi ra khỏi một kho có nghĩa là kho dữ liệu được đọc. 4.2.3. Phân rã biểu đồ luồng dữ liệu a. Định nghĩa Quá trình phân nhỏ mỗi tiến trình của một biểu đồ luồng dữ liệu thành một biểu đồ luồng dữ liệu mới (nếu có thể) gọi là phân rã biểu đồ luồng dữ liệu đã cho. Xét ví dụ cho ở hình 4.2. Tiến trình đầu tiên 1.0 là nh ận và x ử lý đ ơn hàng đ ặt b ữa ăn. Nó chuyển yêu cầu của khách thành bốn đầu ra khác nhau. Nh ư v ậy, ti ến trình 1.0 là đối tượng để phân rã. Giả sử có năm chức năng sau đây mà ti ến trình 1.0 phải th ực hiện là: (1)nhận yêu cầu của khách hàng, (2) chuyển yêu cầu thành thực đơn các món ăn để nhà bếp chế biến, (3) Chuyển yêu cầu thành hóa đơn thanh toán v ới khách hàng, (4) chuyển yêu cầu thành danh sách món ăn đã bán để vào sổ, (5) chuyển yêu cầu thành danh mục thực phẩm cần sử dụng để gửi cho kho . Như vậy, ta có thể biểu diễn sự phân rã tiến trình 1.0 như một biểu đồ luồng dữ li ệu mới v ới năm ti ến trình tương ứng với các chức năng nêu trên (hình 4.3).
- Hóa đơ n thu 1 Nhận và x ử lý Thự c đơ n Nhà bếp Khách hàng đơ n hàng Đ ơ n hàng Thự c phẩm Món ăn 2 3 c ần bán C ập nhật C ập nhật Thự c phẩm món ăn bán s ử dụng Thẻ kho thự c phẩm D1 Món ăn đã bán D1 Hình 4.2. Một phần của biệu đồ luồng dữ liệu hệ thống đặt bữa ăn Chú ý rằng, năm tiến trình mới được đánh số như những tiến trình con c ủa ti ến trình 1.0 là: tiến trình 1.1, tiến trình 1.2,…… Mỗi ti ến trình này và các lu ồng d ữ li ệu đều có tên của nó. Biểu đồ luồng dữ liệu ở hình 4.3 gọi là biểu đ ồ lu ồng d ữ li ệu ở mức dưới của biểu đồ chứa tiến trình 1.0. Nếu biểu đồ luồng dữ li ệu chứa ti ến trình 1.0 là mức 0 thì biểu đồ luồng dữ liệu hình 4.3 gọi là mức 1. 1. 1 1. 3 Đ ơ n hàng Thự c đơ n Đ ơ n hàng Nhận đơ n Chuy ển thành liên 1 hàng món ăn Đ ơ n hàng Đ ơ n hàng liên 3 liên 4 Đ ơ n hàng Liên 2 1 .2 1. 4 1. 5 Bảng kê Lập bảng kê Lập hóa đơ n Lập bảng món Thự c phẩm thự c phẩm s ử thanh toán ăn đã bán dụng B ảng kê hàng bán Hóa đơ n Hình 4.3. Biểu đồ nhận được khi phân rã tiến trình 1.0 b. Đảm bảo sự cân bằng giữa hai mức kề nhau
- Khi phân rã một tiến trình của một biểu đồ luồng thành một biểu đ ồ ở m ức sau thì mọi luồng dữ liệu vào và ra, các tác nhân ngoài và kho dữ liệu liên quan với nó phải được bảo toàn (giữ nguyên) trong biểu đồ ở mức sau. Chẳng hạn, mọi cái vào và cái ra của tiến trình 1.0 trong biểu đồ hình 4.2 đều có mặt trong bi ểu đồ luồng d ữ li ệu hình 4.3 ở mức tiếp theo. Một luồng dữ liệu trên một biểu đồ mức n bao gồm một số luồng con có thể tách ra thành các luồng dữ liệu thành phần trong bi ểu đồ m ức n+1 sao cho mỗi tiến trình nhận luồng dữ liệu thành phần được phân rã là một cái vào của nó (hình 4.4a, 4.4b). Các biểu đồ trên hình 4.4 (a, b) là cân bằng vì các luồng dữ li ệu đều có mặt trong bi ểu đồ ở cả hai mức. Hai nguyên tắc sau được áp dụng để đảm bảo sự cân bằng và bi ểu đồ được vẽ đơn giản hơn. X.0 Đ ơ n hàng và phiếu thanh toán a. Luồng dữ liệu phứ c hợ p X .1 X. 2 Đ ơ n hàng Phiếu thanh toán b. C ác luồng dữ liệu thành phần Hình 4.4. Ví dụ phân rã luồng dữ liệu phúc hợp Một luồng dữ liệu phức hợp có thể chia nhỏ thành các luồng dữ li ệu thành - phần ở mức sau sao cho vẫn giữ nguyên số lượng các luồng dữ liệu đã có trong luồng phức hợp - Cho phép lặp lại một kho dữ liệu hay một tác nhân ở một vài vị trí. Tại mức thấp nhất của biểu đồ luồng dữ liệu có thể thêm các luồng d ữ li ệu m ới để biểu diễn những dữ liệu điều khiển được bổ sung: đó là các thông báo lỗi hay một điều khẳng định nào đó. Luồng dữ liệu bổ sung được bi ểu diễn bằng mũi tên đứt nét (hình 4.5) 1 2 Đ ơ n hàng liên 1 Giải quyết Đ ơ n hàng Nhận và kiểm khách hàng tra đơ n hàng mớ i Khách hàng mớ i 3 Đ ơ n hàng liên 2 Xử lý đơ n hàng Khách hàng cũ
- Hình 4.5. Biểu độ có luồng dữ liệu bổ sung c. Biểu đồ luồng dữ liệu sơ cấp Quá trình phân rã luồng dữ liệu sẽ dừng lại khi đạt đến bi ểu đ ồ m ức th ấp nh ất - gọi là biểu đồ luồng dữ liệu sơ cấp . Những quy tắc sau đây là những gợi ý để dừng quá trình phân rã: - Khi một tiến trình là một quyết định hay m ột tính toán đ ơn gi ản, m ột thao tác d ữ liệu như đọc, cập nhật, tạo, ghi, xoá. - Khi người dùng hệ thống nhận ra được m ọi công vi ệc ho ặc nhà phân tích đã l ập được tài liệu chi tiết để thực hiện các nhiệm vụ phát triển hệ thống một cách tuần tự. - Khi mỗi luồng dữ liệu không cần chia nhỏ hơn để chỉ ra r ằng các d ữ li ệu khác nhau đều đã được quản lý. - Khi đã chỉ ra được mỗi nhiệm vụ nghiệp vụ, ho ặc m ột giao d ịch, thông tin hi ển th ị và báo cáo là những luồng dữ liệu đơn, hay những tiến trình tách bi ệt ứng v ới m ỗi l ựa chọn trên thực đơn mức thấp nhất của hệ thống. Biểu đồ luồng dữ liệu sơ cấp giúp ta dễ dàng kiểm tra được tính nhất quán v ới các tài liệu tạo ra từ các cách xác định yêu cầu khác và cũng giúp ta d ễ dàng chuyển nó sang thiết kế ở bước tiếp theo. Chú ý: Khi phân rã biểu đồ luồng dữ liệu, nếu đã xây dựng được biểu đồ phân rã chức năng (trong mô hình nghiệp vụ) thì có thể lấy m ỗi chức năng t ương ứng c ủa nó làm một tiến trình ở biểu đồ luồng dữ liệu có mức tương đương. 4.4. Phát triển các biểu đồ luồng dữ liệu của một ứng dụng Xây dựng mô hình mô tả các quá trình nghiệp vụ xử lý thông tin bao gồm vi ệc xây dựng một loạt các biểu đồ luồng dữ liệu khác nhau. Mỗi bi ểu đồ luồng d ữ li ệu cho ta một cách nhìn nhận quá trình nghiệp vụ theo một góc độ nhất định: theo cách nhìn vật lý hay logic, hoặc theo cách nhìn ở mức gộp hay chi tiết. 4.4.1. Các loại biểu đồ luồng dữ liệu khác nhau Thường có năm loại biểu đồ luồng dữ liệu khác nhau được sử dụng trong quá trình phát triển hệ thống. Đó là các biểu đồ sau: - Biểu đồ ngữ cảnh - Biểu đồ luồng dữ liệu vật lý của hệ thống hiện thời - Biểu đồ luồng dữ liệu logic của hệ thống hiện thời - Biểu đồ luồng dữ liệu logic cho hệ thống mới - Biểu đồ luồng dữ liệu vật lý cho hệ thống mới Trong biểu đồ luồng dữ liệu của hệ thống hiện thời , phần thú ba trong mỗi tiến trình có thể ghi tên người hay tên của phương tiện thực hiện ti ến trình đó, t ức là tên của “công nghệ” được sử dụng để xử lý dữ liệu. Ví dụ, trong ti ến trình nh ận đ ơn hàng, có thể thêm vào một dòng chỉ người thực hiện là “nhân viên bán hàng”. Việc xây dựng mô hình vật lý (luồng dữ liệu vật lý) của hệ th ống hi ện t ại giúp ta n ắm, hiểu được hệ thống nghiệp vụ của tổ chức. Nhờ vậy mà đặc t ả yêu c ầu c ủa nó chính xác hơn. Để mô hình hóa logic của hệ thống hiện thời , ta chỉ cần bỏ đi các đối tượng vật lý của biểu luồng dữ liệu vật lý hiện thời và chỉ giữ lại những gì là phần c ốt y ếu (logic) của hệ thống, đó là các dữ liệu, các xử lý và các mối quan hệ bản chất gi ữ chúng. Vì các mối quan hệ logic ở đây (thể hiện qua các luồng dữ liệu) không phụ thuộc vào bất
- kỳ yếu tố vật lý nào, do đó ta có thể xem xét sắp đ ặt l ại nó m ột cách h ợp lý, ch ỉ c ần đảm bảo các “logic nghiệp vụ”. Mô hình logic của hệ thống mới nhận được bằng cách bổ sung thêm vào biểu đồ luồng dữ liệu logic của hệ thống hiện tại những yếu tố cần thi ết đ ể đáp ứng m ọi yêu cầu xử lý thông tin đã được xác định cho hệ thống m ới. Bi ểu đ ồ lu ồng d ữ li ệu c ủa h ệ thống mới có thể giống biểu đồ luồng dữ liệu logic của hệ thống hiện thời n ếu không có yêu cầu mới được đặt ra. Thông thường nó được b ổ sung các ch ức năng m ới, các dữ liệu mới cùng các mối quan hẽ phát sinh và bỏ đi những gì đã tr ở nên không c ần thiết. Cuối cùng, biểu đồ luồng dữ liệu cho hệ thống mới (còn gọi là biểu đồ luồng hệ thống) sẽ biểu diễn hệ thống vật lý cần triển khai cho hệ thống m ới. Nó phản ánh quyết định của các nhà phân tích và thiết kế về phương ti ện vật lý đ ược lựa ch ọn áp dụng cho hệ thống mới. 4.4.2. Biểu đồ ngữ cảnh của hệ thống Biểu đồ ngữ cảnh biểu diễn hệ thống ở mức cao nhất. Trong bi ểu đ ồ này ch ỉ g ồm ba loại thành phần: - Một tiến trình duy nhất mô tả toàn hệ thống, trong đó có tên hệ thống và có ch ỉ số là 0. - Các tác nhân ( môi trường của hệ thống). - Các luồng dữ liệu giữa các tác nhân và hệ thống mô tả sự tương tác gi ữa h ệ th ống và môi trường. Biểu đồ ngữ cảnh cho ta một cái nhìn khái quát về hệ thống trong môi tr ường c ủa nó. Trên thực tế, môi trường của một hệ thống bất kỳ rất đa dạng và phong phú. Tuy nhiên, ở đây ta chỉ quan tâm đến các yếu tố của môi trường có ảnh hu ởng đáng k ể lên hệ thống: đó là những tác nhân có tương tác với hệ thống về m ặt thông tin, t ức là có gửi và nhận thông tin, dữ liệu từ hệ thống. Cá tác nhân c ủa h ệ th ống c ần ph ải xác đụnh đầy đủ. Sự thiếu các tác nhân sẽ là nguyên nhân làm cho h ệ th ống đ ược xây dựng không có khả năng hoạt động tốt trên thực tế (trong môi tr ường th ực). Bi ểu đ ồ ngữ cảnh ở hình 4.6 có một tiến trình duy nhất là “Hệ th ống đ ặt b ữa ăn”, b ốn lu ồng dữ liệu và ba tác nhân. Hóa đơ n thu tiền 0 Thự c đơ n Nhà bếp Khách hàng H ệ thống đặt bữ a ăn Đ ơ n hàng Bảng Thông s ố báo cáo Nhà quản lý Hình 4.6. Biểu đồ ngữ cảnh hệ thống đặt bữa ăn. 4.4.3. Biểu đồ luồng dữ liệu mức 0
- Việc phát triển các mô hình biểu di ễn quá trình nghi ệp v ụ c ủa t ổ ch ức đ ược b ắt đầu từ biểu đồ ngữ cảnh. Vận phương pháp và nguyên tắc phân rã bi ểu đồ luồng d ữ liệu ở trên, ta tiến hành phân rã (làm mịn) biểu đồ ngữ cảnh để nhận được bi ểu đồ luồng dữ liệu mức 0 (hình 4.7). a. Ví dụ Trong hình 4.7, tiến trình “0” ở biểu đồ ngữ cảnh hình 4.6 được phân rã thành b ốn tiến trình con. Nó cho ta một hình ảnh chi tiết hơn về hệ thống mà chúng đang nghiên cứu. Các tiến trình này biểu diễn bốn chức năng chính c ủa hệ thống ở mức 0 - đầu tiên. Trước hết, đơn đặt hàng được khách gửi đến. Ở tiến trình 1.0, đơn hàng được xử lý. Kết quả là bốn luồng dữ liệu đã được tạo ra: Hóa đơ n thu tiền 1 Thự c đơ n Nhà bếp Khách hàng Nhận và x ử lý đơ n hàng Đ ơ n hàng Thự c phẩm c ần Món ăn bán 2 3 C ập nhật món C ập nhật thự c Nhà quản lý phẩm sử dụng ăn bán B ảng Thông s ố báo cáo Thẻ kho thự c D2 Món ăn đã bán D1 phẩm 4 Nhận và x ử lý đơ n hàng Hình 4.7. Biểu đồ luồng dữ liệu mức 0 của hệ thống đặt bữa ăn. - Một bảng thực đơn món ăn cần chế bi ến đ ược t ạo ra để g ửi cho nhà b ếp ch ế biến. - Đơn hàng của khách được chuyển thành danh sách các món ăn bán ra để ghi sổ. - Đơn hàng của khách được chuyển thành danh mục thực ph ẩm sử d ụng đ ể g ửi đ ến kho xuất thực phẩm cho bếp làm món ăn. - Hóa đơn thanh toán cho việc đặt bữa ăn được lập ra và gửi cho khách đ ể thanh toán. Chú ý rằng, các tác nhân trong bi ểu đồ ngữ c ảnh cũng tác nhân trong bi ểu đ ồ chi tiết này, đó là: khách hàng, nhà bếp, quản lý khách sạn . Biểu đồ mức này có các tiến trình được đánh số bằng một số tự nhiên và có số 0 đứng sau nó.
- Luồng dữ liệu thực phẩm được tiến trình 1.0 sinh ra và ti ến trình 2.0 có th ể s ẵn sàng nhận nó. Như vậy, giữa tiến trình 1.0 và 2.0 có m ột sự kết dính (cohesion) với nhau: tiến trình 2.0 chỉ có thể thực hiện và cần thực hiện để đảm bảo quy trình ph ục vụ khách khi mà tiến trình 1.0 nhận được đơn hàng, xử lý nó và gửi dữ liệu cho nó. Ngược lại, “cái ra” từ tiến trình 2.0 được đặt vào kho dữ liệu D2. Tiến trình 4.0 có thể lấy nó để lập báo cáo. Trong trường hợp này, gi ữa ti ến trình 2.0 và 4.0 đã không “kết dính” chặt chẽ với nhau. Các tiến trình này vẫn làm việc độc lập và tiến trình 4.0 không thể nhận được “cái vào” bất kỳ lúc nào vì dữ liệu nó cần có thể chưa có, nghĩa là chúng được “ghép nối” lỏng lẻo với nhau. Kho dữ liệu “các món ăn đã bán” có thể trở thành tác nhân ngoài của một tiến trìn khác khi nó có thể nhận dữ liệu từ kho này. b. Quy trình xây dựng Ở đây ta giả thiết rằng đã xây dựng được biểu đồ phân rã chức năng c ủa mô hình nghiệp vụ. Điều này không ảnh hưởng gì đáng kể đến quy trình chung. Vì r ằng, khi không có biểu đồ phân rã chức năng, việc tìm các ti ến trình thành ph ần đ ể phân rã là yêu cầu tất yếu mà các nhà phân tích phải biết. b1. Các dữ liệu đầu vào Dữ liệu đầu vào để phát triển một biểu đồ luồng dữ liệu mức 0 trong tr ường h ợp đầy đủ nhất gồm các loại sau: - Biểu đồ ngữ cảnh của hệ thống - Biểu đồ phân rã chức năng (xem chương 3) - Danh sách các hồ sơ dữ liệu sử dụng (các thực thể dữ liệu) - Ma trận thực - thể chức năng. - Các mô tả khác của tiến trình nghiệp vụ (ví dụ: mô tả chi tiết các chúc năng) b2. Các bước tiến hành Phát triển biểu đồ luồng dữ liệu mức 0 của hệ thống gồm ba thao tác: - Thay thế tiến trình duy nhất của biểu đồ ngữ cảnh bằng các tiến trình con (tương ứng với các chức năng mức một trong biểu đồ phân rã chức năng). - Giữ nguyên toàn bộ các tác nhân ngoài và các luồng dữ liệu trong biểu đồ ngữ cảnh và chuyển sang biểu đồ luồng dữ liệu mức 0. Tuy nhiên c ần đặt lại các đầu mút c ủa các luồng dữ liệu phía hệ thống để gắn một cách thích hợp với các tiến trình con m ới thêm vào. - Thêm vào: + Các kho dữ liệu tương ứng với các hồ sơ dữ liệu đã chọn trong danh sách. + Các luồng dữ liệu từ các tiến trình đến các kho (dựa vào các ô đánh d ấu trong ma trận thực thể - chức năng) và giữa các tiến trình (dựa trên các mô tả khác). 4.4.4.Biểu đồ luồng dữ liệu mức i (với i>=1) Việc phát triển các biểu đồ luồng dữ liệu chi tiết là quá trình ti ếp tục làm m ịn các biểu đồ luồng dữ liệu đã nhận được trước đó. Một biểu đồ luồng dữ liệu mức i nh ận được từ việc phân rã (làm mịn) một tiến trình thuộc biểu đồ luồng dữ li ệu mức i-1. Quá trình làm mịn biểu đồ luồng dữ liệu mức i-1 có thể mô tả như sau: Đối với mỗi tiến trình trong biểu đồ luồng dữ liệu m ức i-1 mà có th ể phân chia thành các tiến trình nhỏ hơn (tức là không tương ứng với m ột chức năng lá trong bi ểu đồ phân rã chức năng) ta sẽ phân rã thành một biểu đồ luồng dữ liệu ở m ức i theo các sau: - Thay thế tiến trình được xét của biểu đồ luồng dữ liệu mứ i-1 bằng ti ến trình con tương ứng với các chức năng của mức tương ứng trong biểu đồ phân rã chức năng.
- - Giữ nguyên toàn bộ các tác nhân ngoài, các kho dữ liệu và các luồng dữ liệu liên quan đến tiến trình được xét trong biểu đồ luồng dữ li ệu mức i-1 và chuy ển chúng sang biểu đồ luồng dữ liệu mức i. Tuy nhiên cần đặt lại các đầu mút của các luồng dữ liệu vào các tiến trình con mới thêm vào một cách thích hợp. Chú ý r ằng: Nếu có m ột tiến trình khác liên quan đến tiến trình được xét thì phải thay nó b ằng m ột tác nhân ngoài trong biểu đồ mới mức i. - Thêm vào các luồng dữ liệu giữa các tiến trình con (dựa trên các mô tả khác) Việc đánh số hiệu các tiến trình trong m ột biểu đ ồ m ới nhận đ ược c ần tuân theo những nguyên tắc sau: Số hiệu của một tiến trình gồm hai phần: phần đầu và phần thứ tự. Phần đầu là số hiệu của tiến trình được sử dụng để phân rã, phần số thứ tự là thứ tự của tiến trình con. Chú ý rằng, mỗi biểu đồ được phát triển chỉ nên thể hiện trên một trang giấy. Về nguyên tắc, một biểu đồ luồng dữ liệu không nên có bảy ti ến trình. 4.4.5. Ví dụ về các loại biểu đồ luồng dữ liệu Để minh họa về sự khác nhau của các loại biểu đồ luồng dữ li ệu ta xét ví d ụ hệ thống quản lý nhập kho. Biểu đồ luồng dữ liệu mô hình hoá hệ thống vật lý hi ện thời được mô tả ở hình 4.9. Trong biểu đồ ở mức 0 của hệ thống này (hình 4.9b) có 6 ti ến trình khác nhau. Phiếu giao Thự c phẩm Bộ phận thự c Sử dụng phẩm s ử dụng 0 Hóa đơ n Nhà cung c ấp H ệ thống quản Thanh toán lý nhập kho Lượ ng Bộ phận t ồn kho t ồn kho Đ ơ n đặt hàng Hình 4.9a. Biểu đồ ngữ cảnh
- Phiếu giao 1 Nhà cung c ấp Ghi nhật ký Hóa đơ n phiếu giao 6 Đ ơ n hàng Phiếu Nhật ký D2 Lập hóa đơ n giao thanh toán Phiếu C ặp x ếp D1 5 giao B ộ phận t ồn kho Lập đơ n Phiếu 2 3 hàng mớ i giao B ộ phận thự c Ghi t ổng thự c So sánh s ử phẩm s ử dụng phẩm nhận dụng và t ồn đượ c kho Lượ ng t ồn kho Tổng Thẻ kho D1 s ử dụng Lươ ng t ồn t ối thiểu 4 Ghi nhật ký t ổng s ử dụng Hình 4.9b. Biểu đồ luồng dữ liệu vật lý của hệ thống quản lý kho Nó cho biết rằng, khi nhận phiếu giao hàng, người qu ản lý ghi các thông tin vào sổ nhật ký và xếp phiếu giao hàng vào trong cặp xếp. Khi sử dụng phiếu giao hàng, người quản lý ghi tổng thực phẩm được phân phối vào thẻ kho. Để tạo ra biểu đồ luồng dữ liệu logic cho hệ thống hi ện thời ta c ần xác đ ịnh những phần tử cơ bản của hệ thống quản lý nhập kho mà người qu ản lý đã thi ết lập, cần bỏ đi những phần tử vật lý của hệ thống như nhà quản lý và những cặp xếp mà nó sử dụng. Có ít nhất bốn tiến trình chính nhất thi ết ph ải th ực hi ện trong h ệ th ống quản lý nhập kho: (1) tính số lượng thực phẩm nhập kho (bổ sung), (2) tính số lượng thực phẩm xuất kho (sử dụng), (3) lập đơn hàng, (4) tạo hóa đơn thanh toán.
- Phiếu giao 1 2 Nhà cung c ấp C ập nhật thự c C ập nhật thự c phẩm bổ sung phẩm s ử dụng Đ ơ n hàng Phiếu giao Tổng bổ sung 3 Hóa đơ n Tổng s ử dụng Tạo đơ n hàng 4 Bộ phận tồn kho Lượ ng t ồn kho Tạo hoá đơ n thanh toán Thẻ kho D1 Lươ ng tồn tối thiểu Hình 4.10. Biểu đồ luồng dữ liệu logic mức 0 cho hệ thống quản lý nhập kho hiện thời những dữ liệu cơ bản được hệ thống sử dụng bao gồm thực phẩm sử d ụng và t ồn kho mà tất cả chúng đều đã được xác định. Cái ra chủ yếu c ủa hệ thống là các đ ơn hàng và hóa đơn thanh toán. Khi chỉ tập vào những phần tử cơ bản này của hệ thống ta có được biểu đồ luồng dữ liệu logic cho hệ thống hiện thời ở hình 4.10. Giả sử nhà quản lý muốn thêm 3 chức năng: - Các dữ liệu đến hệ thống được cập nhật tự động và c ập nh ật ngay t ừ khi nó vùa đến, càng sớm càng tốt. - Hệ thống tự động xác định khi nào một đơn hàng cần được lập. Việc lập đơn hàng tự động đảm bảo mọi thực phẩm trong kho lúc nào cũng sẵn sàng. - Ở một thời điểm bất kỳ ta có thể biết mức tồn kho của m ỗi lo ại th ực ph ẩm là bao nhiêu. Ta cũng có thể ước lượng được số thực phẩm sẽ sử dụng và c ần b ổ sung thêm bao nhiêu trước mỗi thời điểm cố định, và nhà quản lý cũng có th ể c ần ước l ượng đ ủ nhanh mặt hàng nào cần dự trữ nhiều hơn để có sự quan tâm đúng mức.
- Phiếu giao 1 2 Nhà cung c ấp Bộ phận t ồn kho C ập nhật thự c C ập nhật thự c phẩm bổ sung phẩm sử dụng Đ ơ n hàng Nhà quản lý Phiếu giao Tổng bổ sung 3 Hóa đơ n Tổng s ử dụng Mứ c t ồn kho Yêu c ầu Tạo đơ n hàng 4 Lượ ng t ồn kho 5 K ết quả Tạo hoá đơ n Truy v ấn thanh toán Truy v ấn Thẻ kho D1 tồn kho Lươ ng t ồn t ối thiểu Truy v ấn Hình 4.11. Biểu đồ luồng dữ liệu logic mưc của hệ thống quản lý nhập kho mới Biểu đồ luồng dữ liệu logic của hệ thống mới ở hình 4.11 gần gi ống v ới bi ểu đ ồ luồng dữ liệu ở hình 4.9. Nó chỉ có thêm một tiến trình 5.0 để cho phép nhận được câu trả lời về các số ước lượng tồn kho của một m ặt hàng nào đó. Hai yêu c ầu khác còn lại có thể đã được thực hiện trong hệ thống hiện tại. 4.4.6. Phát triển các biểu đồ là một quá trình lặp Biểu đồ luồng dữ liệu vẽ lần đầu tiên ít khi phản ánh tốt đ ược hệ th ống mà ta c ần mô hình hóa. Để có thể mô tả hệ thống tốt hơn ta th ường phải s ửa đ ổi bi ểu đ ồ m ột vài lần. Sự phát triển biểu đồ luồng dữ liệu được lặp lại nhi ều lần đã ghi nh ận m ột sự kiện là: việc xác định yêu cầu và cấu trúc là một quá trình tương tác và là m ột quá trình lặp thuộc pha phân tích của vòng đời hệ thống. 4.5. Sử dụng biểu đồ luồng dữ liệu để phân tích Biểu đồ luồng dữ liệu là một công cụ đa năng để mô hình hóa ti ến trình nghi ệp v ụ cho cả hệ thống hiện tại cũng như hệ thống mới ở c ả dạng logic và dạng v ật lý. Nó được sử dụng để phân tích độ chênh khi phát triển các mô hình tiến trình nghiệp vụ. Qua đây, nhà phân tích phát hiện ra sự khác biệt giữa hai hay nhiều biểu đ ồ lu ồng d ữ liệu biểu diễn 2 hay nhiều trạng thái khác nhau của một hệ thống thông tin (hệ th ống hiện thời và hệ thống mong muốn) hay sự khác bịêt ngay trong khi xây dựng. Khi biểu đồ luồng dữ liệu đã đầy đủ, bằng cách kiểm tra các chi ti ết của nó ta có thể phát hiện ra luồng dữ liệu dư thừa: những dữ li ệu được thu thập mà không s ử dụng, các dữ liệu đã cập nhật ở nhiều nơi…. hay sự không hiệu quả c ủa mô hình liên quan đến sự vi phạm các quy tắc vẽ biểu đồ luồng dữ liệu. Chẳng hạn, s ự vi ph ạm quy tắc: một luồng dữ liệu không thể quay lại nơi mà nó vừa đi khỏi. Việc so sánh các biểu đồ luồng dữ liệu logic khác nhau cho phép xác định một số các phần tử c ần đ ược thảo luận trong khi đánh giá về yêu cầu của hệ thống. Bi ểu đồ luồng d ữ li ệu logic
- của hệ tống mới có thể được sử dụng làm cơ sở lựa chọn các chi ến l ược thi ết k ế v ật lý cho hệ thống mới. 4.6. Ví dụ A. Mô tả bài toán Chúng ta xét bài toán quản lý trông gửi xe đã được mô tả trong ví dụ ở mục 3.5. chương III. B. Bài giải Ở đây chỉ tập trung vào xây dựng các mô hình ti ến trình logic c ủa h ệ th ống. Vì vậy, những gì liên quan đến mô hình nghiệp vụ c ủa bài toán sẽ s ử d ụng các k ết qu ả thu được ở chương 3 a. Phát triển biểu đồ luồng dữ liệu ngữ cảnh Từ các phân tích dữ liệu củ bảng phân tích (bảng 3.4) ta đã xây dựng được biểu đồ ngữ cảnh dưới đây (xem mục 3.5 chương 3) Phiếu chi bồi thườ ng 0 Thông tin v ề xe gở i H Ệ TH ỐNG Vé xe lúc gở i QU ẢN LÝ KHÁCH TRÔNG GỬI XE Vé xe lúc trả Phiếu thanh toán Biên bản s ự c ố Thông tin v ề s ự c ố Hình 4.12. Biểu đồ ngữ cảnh của hệ thống. b. Phát triển biểu đồ luồng dữ liệu mức 0 Thay tiến trình duy nhất của biểu đồ ngữ c ảnh (hình 4.12) b ằng 3 ti ến trình m ới tương ứng chức năng trong biểu đồ phân rã (hình 3.5). Thêm vào 6 kho d ữ li ệu ( ứng với 6 hồ sơ bảng 3.6) và dựa vào ma trận thực thể và chức năng (hình 3.9) v ẽ các luồng dữ liệu còn lại.
- Phiếu chi D7 B ồi thườ ng 3 Biên bản D6 Giải quy ết Sự c ố sự cố Sổ xe vào D3 Phiếu chi Thông tin Biên bản Về s ự c ố Bồi thườ ng 1 Thông tin v ề xe gở i S ổ xe r Khách hàng D4 Nhận xe Vé xe lúc gở i Phiếu Vé xe lúc trả thanh toán D2 Vé xe 2 B ảng gía D1 Trả xe Phiếu D5 thanh toán Hình 4.13. Biểu đồ luồng dữ liệu mức 0 c. Phát triển các biểu đồ luồng dữ liệu các mức 1,2… Từ biểu đồ mức 0 (hình 4.13) và dựa vào biểu đồ phân rã chức năng ta xây d ựng được các biểu đồ luồng dữ liệu mức 1 cho các tiến trình tương ứng cho các hình 4.14, 4.15, 4.16. “hết chỗ” khách T .t.xe 1.2 1.1 Loại xe Sổ xe vào d Kiểm tra chỗ Nhận dạng xe tr ống Vé xe Bảng giá a T.t..xe vào “còn chỗ Sổ xe ra c ” 1.4 1.3 Vé đã ghi Vé xe b Ghi sổ xe vào Ghi vé Hình 4.14. Biểu đồ luồng dữ liệu mức 1: Nhận xe (nét đậm là phần được thay thế hay thêm vào)
- Vé xe khách “vé sai” “không giải quyết” 2.1 2.2 Vé đã kiểm tra Kiểm tra vé Đối chiếu vé - xe T.t..v x đúng Sổ xe ra c ée Phiếu t.toán d 2.3 2.4 Thanh toán Xe đã t.toán Ghi sổ xe ra Phiếu t.toán Hình 4.15. Biểu đồ luồng dữ liệu mức 1: Trả xe (nét đậm là phần được thay thế hay thêm vào) T .t.sự cố khách “không có” 3.2 “xe còn gửi” 3.1 Kiểm tra hiện T .t. sự cố Kiểm tra các sổ “sai” tr ường khách T.t..vé xe Sổ xe vào d Sổ xe ra c đ ng ú Phiếu t.toán c Biên bản f 3.3 Biên bản 3.4 Lập biên bản Biên bản Thanh toán Phiếu t.toán Hình 4.16. Biểu đồ luồng dữ liệu mức 1: Giải quyết sự cố (nét đậm là phần được thay thế hay thêm vào) Trong trường hợp này biểu đồ luồng dữ liệu m ức 1 là m ức th ấp nh ất. Trong trường hợp khác có thể cần tiếp tục phát triển các luồng dữ liệu ở các mức thấp h ơn bằng cách tương tự. Câu hỏi cuối chương 1. Biểu đồ luồng dữ liệu là gì? Phân tích hệ thống cần sử dụng biểu đ ồ lu ồng d ữ liệu để làm gì? 2. Trình bày các khái niệm, ký pháp sử dụng trong biểu đồ luồng dữ liệu?
- 3. Có mấy loại biểu đồ luồng dữ liệu? Mỗi loại biểu đồ dùng khi nào? Giải thích ý nghĩa của nó? 4. Nêu rõ sự khác nhau giữa biểu đồ luồng dữ liệu logic và biểu đồ luồng dữ liệu vật lý? 5. Vì sao cần phát triển cả biểu đồ luồng dữ liệu vật lý và biểu đ ồ lu ồng d ữ li ệu logic cho một hệ thống? Vẽ biểu đồ logic trước khi vẽ biểu đồ luồng dữ liệu vật lý cho một hệ thống mới có lợi gì? 6. Giải thích các nguyên tắc để vẽ biểu đồ luồng dữ liệu? 7. Phân rã nghĩa là gì? Đảm bảo cân bằng khi phân rã là gì? 8. Giải thích nguyên tắc phân rã biểu đồ luồng dữ liệu từ trên xuống? 9. Mô tả cấu trúc của biểu đồ luồng dữ liệu ngữ c ảnh? Gi ải thích ý nghĩa c ủa bi ểu đồ ngữ cảnh? 10. Nêu cách đặt tên các mức khác nhau của biểu đồ luồng dữ liệu? 11. Những thông tin nào là dữ liệu đầu vào để lập biểu đồ mức 0? Trình bày các b ước để xây dựng biểu đồ luồng dữ liệu mức 0? Biểu đồ luồng dữ li ệu mức 0 khác biểu đồ ngữ cảnh ở chỗ nào? 12. Trình bày các bước để xây dựng biểu đồ luồng dữ li ệu m ức i (i>=1)? D ữ li ệu đ ầu vào cho việc xây dựng này là những gì? Biểu đồ luồng dữ liệu có thể sử dụng làm công cụ phân tích như thế nào? 13.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Vẽ ghế xoay phần 1
9 p | 387 | 138
-
Mô phỏng hiển thị mục tiêu Radar trên màn hình máy tính PC
57 p | 550 | 101
-
Bài giảng Lý thuyết tính toán Otomat và ngôn ngữ hình thức - GV. Hồ Văn Quân
316 p | 226 | 56
-
Chương 4 Đối tượng phân tán và thủ tục triệu gọi từ xa
86 p | 236 | 39
-
Tin học ứng dụng - Tối ưu hóa BIOS part 4
31 p | 99 | 33
-
Thiết kế Web và làm hoạt hình với macromedia FLASH nhanh và hiệu quả part 4
22 p | 94 | 22
-
Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow -- 4
16 p | 129 | 21
-
Bài giảng Hệ thống thông tin: Chương 4 - GV. Lê Thị Quỳnh Nga
48 p | 154 | 21
-
Tài liệu môn học: Phân tích và thiết kế HTTT theo UML - Phần 1
64 p | 109 | 19
-
Bài giảng Phân tích & thiết kế hệ thống thông tin: Chương 4 - CĐ CNTT Hữu nghị Việt Hàn
49 p | 105 | 11
-
Kiến thức về mạng và truyền dữ liệu: Phần 1
125 p | 93 | 10
-
Bài giảng Kỹ thuật phần mềm ứng dụng: Chương 4 - ĐH Bách khoa Hà nội
36 p | 37 | 6
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn