Phân tích thiết kế hệ thống thông tin - Phân tích hệ thống hướng cấu trúc

pdf 152 trang vanle 3150
Bạn đang xem 20 trang mẫu của tài liệu "Phân tích thiết kế hệ thống thông tin - Phân tích hệ thống hướng cấu trúc", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfphan_tich_thiet_ke_he_thong_thong_tin_phan_tich_he_thong_huo.pdf

Nội dung text: Phân tích thiết kế hệ thống thông tin - Phân tích hệ thống hướng cấu trúc

  1. Phân Tích Thiết Kế Hệ Thống Thông Tin Phân tích hệ thống hướng cấu trúc 1
  2. Nội dung chính 1. Sơ đồ phân rã chức năng (Functional Decomposition Diagram - FDD) 2. Sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) 3. Từ điển dữ liệu (Data Dictionary) 4. Đặc tả quá trình và quyết định có cấu trúc 2
  3. Tài liệu tham khảo [01] Kendall and Kendall, “System Analysis and Design”, 8th Edition, Prentice Hall, 2011. • Chapter 7, 8, 9 3
  4. Sơ đồ phân rã chức năng 4
  5. Phân rã chức năng là gì? Phân rã là quá trình bắt đầu ở một mức độ cao và phân chia các thực thể thành nhỏ hơn và các bộ phận nhỏ hơn có liên quan. Phân rã chức năng là một kỹ thuật phân tích nghiệp vụ để phá vỡ một "hoạt động nghiệp vụ” (business operation) vào các thành phần chức năng. Sơ đồ phân rã chức năng (FDD) cho thấy một tổ chức thứ bậc của các chức năng nghiệp vụ bao gồm các hoạt động nghiệp vụ. Nó không hiển thị chuỗi các sự kiện. FDD là khác biệt với một sơ đồ luồng xử lý (PFD - process flow diagram), trong đó cho thấy trình tự của các sự kiện của một hoạt động nghiệp vụ hoặc 5 chức năng.
  6. Tại sao sử dụng phân rã chức năng? Mục đích chính của sự phân rã chức năng là để phá vỡ hoạt động kinh doanh hoặc chức năng lớn hoặc phức tạp thành nhỏ hơn và những phần dễ quản lý hơn. Vì vậy, tạo điều kiện cho sự hiểu biết về hoạt động nghiệp vụ hoặc chức năng và do đó là một công cụ hữu ích trong việc tiến hành phân tích và thiết kế. Phân rã chức năng được sử dụng trong việc xác định các yêu cầu chức năng của một giải pháp và trong việc xác định những điều này trong tài liệu các yêu cầu chức năng Một chức năng lớn hoặc phức tạp dễ hiểu hơn khi được chia nhỏ bằng cách sử dụng phân rã chức năng. Phân rã chức năng có thể được sử dụng để chia nhỏ hoạt động nghiệp vụ lớn hay phức tạp thành các thành phần nhỏ hơn trước khi phát triển các sơ đồ luồng xử lý. 6
  7. Khi nào sử dụng phân rã chức năng? Phân rã chức năng được sử dụng phổ biến nhất trong giai đoạn phân tích của một dự án để tạo ra các sơ đồ phân rã chức năng như là một phần của tài liệu các yêu cầu chức năng. Nó cũng có thể được sử dụng trong các giai đoạn lập kế hoạch, phân tích và thiết kế của một dự án để giúp làm rõ hoạt động nghiệp vụ 7
  8. Làm thế nào để thực hiện phân rã chức năng? Tổ chức một cuộc họp với các chuyên gia, những người quản lý và làm việc với những hoạt động nghiệp vụ. Xác định và đặt tên cho hoạt động nghiệp vụ được phân rã Đối với mỗi hoạt động nghiệp vụ, bắt đầu từ cấp cao nhất và hỏi: “Hoạt động nghiệp vụ này bao gồm những gì?”. Vẽ các thành phần ở cấp độ đầu tiên. Phân rã các thành phần cấp độ đầu tiên với chức năng của mình và tiếp tục phân rã đến mức thấp hơn cho đến khi đạt được đủ mức độ chi tiết. Vẽ bằng tay phân rã chức năng ban đầu trước các chuyên gia, để họ xác nhận các thành phần. Hỏi các câu hỏi để xác định mục đích của từng chức năng và ghi lại thông tin này. 8
  9. Làm thế nào để thực hiện phân rã chức năng? Kiểm tra cho sự đầy đủ:  Toàn bộ hoạt động nghiệp vụ đại diện?  Có phải tất cả các thành phần được hiển thị?  Các kết nối giữa các thành phần chính xác không? Tinh chỉnh là cần thiết.  Xem xét với các chuyên gia  Làm một kết thúc để kết thúc việc đi qua các hoạt động nghiệp vụ, kiểm tra từng chức năng để xác nhận rằng nó là chính xác.  Hãy hỏi nếu có bất kỳ lĩnh vực khác của hoạt động nghiệp vụ đã không được bao gồm. 9
  10. Course Administration Course Course Course Enrolment Completion Attendance Course Course Course Course Application Payment Assessment Certification 13
  11. Mức độ nào để phân rã chức năng? Sơ đồ phân rã chức năng có thể có nhiều cấp độ của các chức năng được chia thành các thay đổi từ từ tốt hơn. Số lượng các mức độ mà phân rã được thực hiện sẽ phụ thuộc vào kích thước của các hoạt động chức năng hoặc nghiệp vụ ban đầu được phân tích, mức độ định nghĩa yêu cầu và mức độ thấp nhất của phân rã có ý nghĩa. 14
  12. Sơ đồ luồng dữ liệu 16
  13. Sơ đồ luồng dữ liệu (DFD - Data Flow Diagrams) Mô tả các quy trình xử lý và các luồng dữ liệu trong một hệ thống nghiệp vụ dưới dạng ký hiệu đồ họa Mô tả:  Các yếu tố đầu vào của hệ thống  Các quy trình xử lý  Các kết quả đầu ra 17
  14. Ưu điểm của phương pháp tiếp cận luồng dữ liệu Tự do đưa ra các cam kết thực thi về kỹ thuật ngay từ đầu Giúp hiểu về mối tương quan giữa hệ thống và các hệ thống con Truyền đạt cách hoạt động của hệ thống hiện tại cho người sử dụng Phân tích về hệ thống đề xuất 20
  15. Các ký hiệu cơ bản 23
  16. Các thực thể bên ngoài (External Entities) Đại diện cho một bộ phận, một doanh nghiệp, một người, hay một cỗ máy Một nguồn hoặc đích đến của dữ liệu nằm bên ngoài ranh giới của hệ thống Nên được đặt tên với một danh từ 24
  17. Luồng dữ liệu (Data Flow) Chỉ ra sự di chuyển của dữ liệu từ nơi này đến nơi khác Mô tả với một danh từ Đầu mũi tên chỉ hướng di chuyển của luồng dữ liệu Biểu diễn cho dữ liệu về một người, địa điểm, vật hoặc một điều gì đó Ví dụ: Thông tin khách hàng, phiếu chi 25
  18. Quá trình xử lý (Process) Chỉ ra một sự thay đổi hoặc chuyển đổi dữ liệu Đại diện cho công việc được thực hiện trong hệ thống Quy ước đặt tên:  Là tên của hệ thống khi là quá trình ở mức cao nhất  Đặt theo tên của các hệ thống con chính  Dùng hình thức danh-động-tính (verb-adjective noun) từ cho quá trình ở mức chi tiết 26
  19. Kho dữ liệu (Data Store) Nơi lưu trữ dữ liệu cho hoạt động kiểm tra, bổ sung và truy xuất dữ liệu Đặt tên bằng một danh từ mô tả dữ liệu Mỗi kho dữ liệu thường có một số tham chiếu duy nhất, chẳng hạn như D1, D2, D3 Đại diện cho một:  Tủ đựng hồ sơ  Cơ sở dữ liệu (Database)  Tập tin máy tính 27
  20. Các bước trong phát triển sơ đồ luồng dữ liệu 1. Liệt kê các hoạt động nghiệp vụ, từ đó xác định các: thực thể ngoài, luồng dữ liệu, quá trình và kho dữ liệu. 2. Tạo sơ đồ ngữ cảnh 3. Vẽ sơ đồ mức 0 4. Tạo các sơ đồ con cho mỗi quá trình có trong sơ đồ mức 0 5. Kiểm tra lỗi và đảm bảo tên đặt cho mỗi quá trình và luồng dữ liệu là có nghĩa 6. Phát triển DFD vật lý từ DFD luận lý 28 7. Phân vùng DFD vật lý
  21. Các nguyên tắc cơ bản DFD phải có ít nhất một quá trình Không có đối tượng đứng một mình Không có đối tượng kết nối đến chính nó Một quá trình phải có cả hai dòng dữ liệu vào và ra Mỗi kho dữ liệu phải kết nối đến ít nhất một quá trình Các thực thể ngoài không được kết nối đến các thực thể ngoài khác. 29
  22. Tạo sơ đồ ngữ cảnh (Context Diagram) Mức cao nhất trong một sơ đồ luồng dữ liệu Chỉ chứa một quá trình, đại diện cho toàn bộ hệ thống Quá trình này được đánh số là 0 Tất cả các thực thể bên ngoài, cũng như các luồng dữ liệu chính được hiển thị 30
  23. Vẽ sơ đồ mức 0 (Diagram-0) Là sơ đồ phân rã của sơ đồ ngữ cảnh Có thể có đến chín quá trình Mỗi quá trình được đánh số (1,2,3,4, ) Bao gồm các kho dữ liệu chính và tất cả các thực thể ngoài Bắt đầu với luồng dữ liệu từ một thực thể bên phía đầu vào Làm ngược lại với luồng dữ liệu phía đầu ra Kiểm tra luồng dữ liệu đến hoặc đi ra từ một kho dữ liệu Phân tích một quá trình, xem đã được xác định tốt ? Hãy lưu ý về các khu vực mờ (fuzzy) bất kỳ 31
  24. Chú ý đến các chi tiết hơn trong sơ đồ mức 0 (Diagram 0) 32
  25. Các cấp của DFD (Data Flow Diagram Levels) Các DFD được xây dựng trong các lớp Cấp cao nhất là mức ngữ cảnh Mỗi quá trình có thể phân rã xuống một cấp thấp hơn Số của sơ đồ cấp thấp hơn giống như số số của quá trình cha Các quá trình không tạo ra một sơ đồ con được gọi là nguyên tố (primitive) 33
  26. Tạo các sơ đồ con (Creating Child Diagrams) Mỗi quá trình trong sơ đồ 0 có thể được phân rã để tạo ra một sơ đồ con Một sơ đồ con không thể tạo ra đầu ra hoặc nhận đầu vào nếu quá trình cha không tạo ra hoặc nhận Quá trình con được đánh số như quá trình cha  Quá trình số 3 sẽ phân rã Sơ đồ số 3 (Diagrams 3) Các thực thể thường không được hiển thị trên các sơ đồ con dưới sơ đồ 0 Nếu quá trình cha có luồng dữ liệu kết nối với một kho dữ liệu, sơ đồ con cũng có thể có kho dữ liệu như thế. Khi một quá trình không được phân rã nữa nó được gọi là một quá trình nguyên tố (primitive process) 34
  27. Sự khác nhau giữa sơ đồ cha (ở trên) và sơ đồ con (bên dưới) 35
  28. Kiểm tra các lỗi cho các sơ đồ Không có luồng dữ liệu Kết nối kho dữ liệu và hoặc vẽ mũi tên theo các thực thể ngoài trực hướng sai tiếp với nhau 36
  29. Kiểm tra các lỗi cho các sơ đồ Ghi nhãn không chính xác cho các quá trình hoặc luồng dữ liệu Có nhiều hơn chín quá trình trên một sơ đồ luồng dữ liệu Bỏ sót các luồng dữ liệu Tạo phân rã (hoặc phân cấp) không cân bằng trong các sơ đồ con 37
  30. Các lỗi điển hình có thể xảy ra trong một DFD 38
  31. Sơ đồ luồng dữ liệu luận lý và vật lý Luận lý  Tập trung vào các nghiệp vụ và cách nghiệp vụ vận hành như thế nào  Không quan tâm đến hệ thống sẽ được xây dựng như thế nào  Mô tả các sự kiện nghiệp vụ diễn ra và các dữ liệu cần đến và được tạo ra bởi mỗi sự kiện Vật lý  Cho biết hệ thống sẽ được hiện thực như thế nào  Mô tả hệ thống 39
  32. Sơ đồ luồng dữ liệu luận lý và vật lý 40
  33. Các đặc điểm nổi bật phổ biến của sơ đồ luồng dữ liệu luận lý và vật lý Tính chất Luận lý Vật lý Mô hình mô tả cái gì Các nghiệp vụ vận Hệ thống được thực hành như thế nào thi như thế nào (hoặc hệ thống hiện tại vận hành như thế nào) Các quá trình thể hiện Các hoạt động nghiệp Chương trình, mô-dun gì vụ chương trình và các thủ tục thủ công Các kho dữ liệu thể Tập hợp các dữ liệu Các file và cơ sở dữ hiện gì thu thập về cách dữ liệu vật lý, các hồ sơ liệu được lưu trữ thủ công Các kiểu kho dữ liệu Cho thấy tính lâu dài Master files, của dữ liệu transaction files Kiểm soát hệ thống Chỉ ra các kiểm soát Kiểm chứng dữ liệu nghiệp vụ vào 41
  34. Tiến trình của các mô hình từ luận lý sang vật lý 42
  35. Phát triển sơ đồ luồng dữ liệu luận lý: Thuận lợi Truyền thông tốt hơn với người sử dụng Hệ thống ổn định hơn Cho thấy sự hiểu biết tốt hơn của các nhà phân tích về nghiệp vụ Khả năng linh hoạt và bảo trì Xoá bỏ sự dư thừa và giúp tạo ra mô hình vật lý dễ dàng hơn 43
  36. Phát triển sơ đồ luồng dữ liệu vật lý Làm rõ các quá trình nào được thực hiện bởi con người và được tự động hóa Mô tả quá trình chi tiết hơn DFD luận lý Trình tự quá trình phải được thực hiện theo một thứ tự cụ thể Xác định các nơi lưu trữ dữ liệu tạm thời Đặc tả tên thực tế của các tập tin, các bảng trong cơ sở dữ liệu và bản in Thêm các điều khiển để đảm bảo các quá trình thực hiện đúng 44
  37. Biểu đồ luồng dữ liệu vật lý có chứa nhiều mục không tìm thấy trong biểu đồ luồng dữ liệu luận lý Contents of Physical Data Flow Diagrams  Manual processes  Processes for adding, deleting, changing, and updating records  Data entry and verifying processes  Validation processes for ensuring accurate data input  Sequencing processes to rearrange the order of records  Processes to produce every unique system output  Intermediate data stores  Actual file names used to store data  Controls to signify completion of tasks or error conditions 45
  38. Mô hình hóa sự kiện (Event Modeling) và Sơ đồ luồng dữ liệu (Data Flow Diagrams) Một luồng đầu vào từ một thực thể ngoài đôi khi được gọi là một kích hoạt (trigger) bởi vì nó bắt đầu các hoạt động của một quá trình Các sự kiện là nguyên nhân để hệ thống thực hiện một việc nào đó và hành động như là một kích hoạt cho hệ thống Cách tiếp cận để tạo ra DFD vật lý là tạo ra một phân mảnh DFD cho mỗi một sự kiện hệ thống duy nhất 46
  39. Các bảng đáp ứng sự kiện (Event Response Tables) Bảng sự kiện được sử dụng để tạo ra một DFD bằng cách phân tích từng sự kiện và dữ liệu được sử dụng và tạo ra bởi sự kiện Mỗi hàng trong một bảng sự kiện đại diện cho một phân mảnh DFD và được sử dụng để tạo ra một quá trình đơn lẻ trên DFD 47
  40. Một bảng đáp ứng sự kiện cho một cửa hàng Internet 48
  41. Các sơ đồ luồng dữ liệu cho ba dòng đầu tiên của bảng đáp ứng sự kiện cửa hàng Internet 49
  42. Các Use Case và Sơ đồ dòng dữ liệu (Data Flow Diagrams) Mỗi Use case định nghĩa cho một hoạt động và kích hoạt, đầu vào và đầu ra của nó Cho phép các nhà phân tích làm việc với người sử dụng để hiểu được bản chất của các quá trình và các hoạt động, sau đó tạo ra một phân mảnh sơ đồ luồng kiện dữ liệu đơn lẻ 50
  43. Phân vùng Sơ đồ luồng dữ liệu (Partitioning Data Flow Diagrams) Phân vùng là quá trình kiểm tra một sơ đồ luồng dữ liệu và xác định cách để phân chia nó vào các tập hợp: các thủ tục vận hành thủ công và các chương trình máy tính Dùng một đường nét đứt bao quanh một quá trình hoặc nhóm các quá trình cần được đặt trong một chương trình máy tính riêng lẻ 51
  44. Các lý do để phân vùng Các nhóm người dùng khác nhau Thời gian (Timing) Các nhiệm vụ tương tự Hiệu quả (Efficiency) Tính nhất quán (Consistency) Bảo mật (Security) 53
  45. Phân vùng các trang Web (Partitioning Web Sites) Cải thiện cách con người sử dụng các trang web Cải thiện tốc độ xử lý Dễ duy trì các trang web Giữ giao dịch an toàn 54
  46. Truyền thông dùng DFD Sử dụng DFD chưa phân cấp sớm khi biết chắc các yêu cầu thông tin Ghi nhãn có ý nghĩa cho tất cả các thành phần dữ liệu 55
  47. Tóm tắt Các sơ đồ luồng dữ liệu (DFD)  Công cụ phân tích và thiết kế có cấu trúc cho phép các nhà phân tích hiểu về hệ thống và các hệ thống con theo cách trực quan như là một tập hợp các luồng dữ liệu liên quan với nhau Các ký hiệu của DFD  Hình chữ nhật có góc tròn  Hình vuông có viền đôi  Mũi tên  Hình chữ nhật đóng-mở 56
  48. Tóm tắt Tạo DFD luận lý  Sơ đồ luồng dữ liệu mức ngữ cảnh  Sơ đồ luồng dữ liệu luận lý cấp 0  Các sơ đồ con Tạo DFD vật lý  Tạo ra từ sơ đồ luồng dữ liệu luận lý  Phân vùng để tạo điều kiện thuận lợi cho lập trình 57
  49. Tóm tắt Phân vùng các sơ đồ luồng dữ liệu  Cho biết quá trình được thực hiện bởi các nhóm người dùng khác nhau  Các quá trình thực hiện cùng lúc  Các quá trình thực hiện nhiệm vụ tương tự  Nhiều quá trình có thể được kết hợp để tăng hiệu quả về dữ liệu  Các quá trình có thể được phân chia vào các chương trình khác nhau vì lý do bảo mật 58
  50. Bài tập Phân tích thiết kế hệ thống môi giới cho công ty ABC: 1. Chỉ ra các nghiệp vụ chính 2. Xác định các thực thể ngoài, dòng dữ liệu chính, kho dữ liệu chính 3. Vẽ sơ đồ phân rã chức năng 4. Vẽ sơ đồ ngữ cảnh 5. Vẽ DFD-0 59
  51. Từ điển dữ liệu 61
  52. Từ điển dữ liệu (Data Dictionary) Giúp tham khảo dữ liệu về dữ liệu (metadata) Thu thập và kết hợp các thuật ngữ dữ liệu, và giúp những người khác nhau trong tổ chức có cùng cách hiểu về mỗi thuật ngữ 64
  53. Nhu cầu để hiểu về từ điển dữ liệu Cung cấp tài liệu Loại bỏ dư thừa Kiểm chứng sơ đồ luồng dữ liệu Cung cấp một điểm khởi đầu cho việc phát triển các màn hình và báo cáo Xác định các nội dung của dữ liệu được lưu trữ trong các tập tin Để phát triển các quá trình của DFD hợp lý Tạo XML 65
  54. Kho chứa dữ liệu (Data Repository) Một kho chứa dữ liệu là một tập hợp lớn các thông tin về dự án Nó bao gồm:  Thông tin về các dữ liệu được duy trì bởi hệ thống  Thủ tục luận lý và các Use case  Thiết kế màn hình và báo cáo  Các quan hệ dữ liệu  Các yêu cầu của dự án và các chuyển giao hệ thống cuối cùng  Thông tin quản lý dự án 66
  55. Từ điển dữ liệu liên quan đến sơ đồ luồng dữ liệu như thế nào 67
  56. Danh mục từ điển dữ liệu Các luồng dữ liệu (Data flows) Các cấu trúc dữ liệu (Data structures) Các phần tử (Elements) Các kho dữ liệu (Data stores) 68
  57. Lập tài liệu cho luồng dữ liệu 1. ID – số định danh 2. Tên mô tả duy nhất 3. Một mô tả chung về luồng dữ liệu 4. Nguồn gốc của luồng dữ liệu 5. Điểm đến của các luồng dữ liệu 6. Loại luồng dữ liệu 7. Tên của cấu trúc dữ liệu mô tả các phần tử 8. Dung lượng trên một đơn vị thời gian 9. Vùng ghi chúvà ký hiệu thêm 69
  58. Lập tài liệu cho luồng dữ liệu DATA FLOW DESCRIPTION Name: Customer Order Description: Contains customer order information and is used to update the customer master and item filesand to produce an order record. Source: Customer Destination: Process 1 Type of data flow Table/File  Screen Report Form Internal Data Flow Composition (elements): Volume/Time Order Information 10 / hour Comments An order record information for one customerorder. The order may be received by mail, by FAX, or bythe customer telephoning the order processing department directly. 70
  59. Mô tả các cấu trúc dữ liệu Các cấu trúc dữ liệu (data structure) được tạo thành từ nhiều cấu trúc và các phần tử nhỏ hơn Dùng ký hiệu đại số để mô tả các cấu trúc dữ liệu 71
  60. Bộ ký hiệu đại số (Algebraic Notation) Dấu bằng =, có nghĩa là "bao gồm" (is composed of) Dấu cộng +, có nghĩa là “và” (and) Dấu ngoặc {} có nghĩa là yếu tố lặp đi lặp lại Dấu ngoặc [] để chọn một trong các yếu tố Ngoặc đơn () cho một phần tử tùy chọn 72
  61. Ví dụ về cấu trúc dữ liệu Customer Order = Customer Number + Customer Name + Address + Telephone + Catalog Number + Order Date + {Order Items} + Merchandise Total + (Tax) + Shipping and Handling + Order Total + Method of Payment + (Credit Card Type) + (Credit Card Number) + (Expiration Date) 74
  62. Các bản ghi có cấu trúc (Structural Records) Là một cấu trúc có thể bao gồm nhiều phần tử hoặc các bản ghi có cấu trúc Đây là một nhóm các phần tử, chẳng hạn như:  Tên khách hàng (Customer Name)  Địa chỉ (Address)  Điện thoại (Telephone) Mỗi một trong số này cần phải được định nghĩa cho đến khi chúng được chia thành các yếu tố thành phần của chúng 75
  63. Các bản ghi có cấu trúc được sử dụng trong các hệ thống khác nhau Các bản ghi có cấu trúc và các phần tử được sử dụng trong nhiều hệ thống khác nhau được đặt tên không có hệ thống cụ thể (non-system-specific), chẳng hạn như tên đường (street), thành phố (city), và mã bưu điện (zip) Các tên không phản ánh một lĩnh vực chức năng Điều này cho phép các nhà phân tích định nghĩa chúng khi cần và sử dụng trong nhiều ứng dụng khác nhau 76
  64. Ví dụ về bản ghi có cấu trúc 77
  65. Các cấu trúc dữ liệu luận lý và vật lý Cấu trúc dữ liệu luận lý (Logical Data Structures)  Cho thấy các dữ liệu nghiệp vụ cần cho hoạt động hàng ngày Cầu trúc dữ liệu vật lý (Physical Data Structures)  Bao gồm các yếu tố bổ sung cần thiết cho việc thực hiện hệ thống 78
  66. Các cấu trúc dữ liệu vật lý Các lĩnh vực quan trọng được sử dụng để xác định vị trí các bản ghi / mẫu tin Mã số để xác định tình trạng bản ghi Mã số giao dịch để xác định các loại bản ghi / mẫu tin khác nhau Các nhóm mục lặp đi lặp lại Giới hạn về các mục trong một nhóm lặp đi lặp lại Mật khẩu 79
  67. Mô tả phần tử dữ liệu (Data elements) Các đặc tính chung trong mô tả phần tử dữ liệu: 1. Mã (ID) của phần tử 2. Tên của phần tử 3. Bí danh 4. Mô tả ngắn gọn về phần tử 5. Phần tử là cơ sở hoặc dẫn xuất 6. Độ dài của phần tử 7. Kiểu dữ liệu 8. Định dạng đầu vào và đầu ra 9. Các tiêu chuẩn xác nhận 10. Giá trị mặc định 11. Vùng nhận xét hoặc chú thích thêm 80
  68. Các đặc tính phần tử dữ liệu (Data Element Characteristics) 81
  69. Phần tử dữ liệu Mã của phần tử (Element ID) Mục nhập tùy chọn (Optional entry) Cho phép các nhà phân tích xây dựng các mục từ điển dữ liệu tự động 82
  70. Phần tử dữ liệu Tên của phần tử: Phải:  Có tính mô tả (Descriptive)  Duy nhất (Unique) Dựa theo tên của phần tử thường được sử dụng trong hầu hết các chương trình hoặc người sử dụng chính của phần tử 83
  71. Phần tử dữ liệu Bí danh (Aliases): Từ đồng nghĩa hoặc tên khác cho các phần tử Tên được sử dụng bởi người dùng khác nhau trong các hệ thống khác nhau Một MÃ KHÁCH HÀNG (CUSTOMER NUMBER) cũng có thể được gọi là MÃ TÀI KHOẢN THU (RECEIVABLE ACCOUNT NUMBER) hoặc một SỐ HIỆU KHÁCH HÀNG (CLIENT NUMBER) 84
  72. Phần tử dữ liệu Mô tả ngắn gọn về phần tử: Ví dụ mô tả ngắn cho phần tử Customer Number: xác định duy nhất một khách hàng đã thực hiện bất kỳ giao dịch kinh doanh trong vòng năm năm qua 85
  73. Mô tả ngắn gọn về phần tử Phần tử là cơ sở hoặc dẫn xuất: Phần tử cơ bản (base element) là một phần tử được nhập trước vào hệ thống Phần tử dẫn xuất (derived element) là một phần tử được tạo ra bởi một quá trình, thường là kết quả của một phép tính hoặc một chuỗi các biểu thức quyết định 86
  74. Phần tử dữ liệu Độ dài của phần tử: Một số phần tử có độ dài tiêu chuẩn như: chữ viết tắt của tên tiểu bang, mã bưu điện, hoặc số điện thoại Đối với các phần tử khác, chiều dài có thể khác nhau và nhà phân tích và người dùng phải quyết định dựa vào:  Độ rộng của kiểu số (Numeric amount lengths)  Các trường tên và địa chỉ (Name and address fields)  Các trường khác (Other fields) 87
  75. Ví dụ chiều dài của Tên và Địa chỉ Trường Độ dài % dữ liệu phù (Field) hợp (USA) Last Name 11 98 First Name 18 95 Company Name 20 95 Street 18 90 City 17 99 88
  76. Rút gọn dữ liệu (Data Truncation) Nếu phần tử quá nhỏ, dữ liệu sẽ được rút ngắn Các nhà phân tích phải quyết định điều này sẽ ảnh hưởng đến kết quả đầu ra hệ thống như thế nào  Nếu tên một người được rút gọn, thư vẫn có thể được chuyển đến  Nhưng nếu địa chỉ email hoặc địa chỉ Web bị rút gọn thì không thể sử dụng được 89
  77. Phần tử dữ liệu Kiểu dữ liệu (Type of Data): Dữ liệu dạng văn bản (text) hoặc chữ số Các định dạng  Máy tính lớn (Mainframe): đóng gói (packed), nhị phân (binary), hiển thị (display)  Các định dạng trên máy vi tính (PC - Microcomputer)  Các định dạng PC, chẳng hạn như Tiền tệ (Currency), Số (Number), hoặc Khoa học (Scientific), phụ thuộc vào các dữ liệu sẽ được sử dụng 90
  78. Một số ví dụ về các định dạng dữ liệu được sử dụng trong các hệ thống PC Data Type Meaning Bit A value of 1 or 0, a true/false value Char, varchar, text Any alphanumeric character Datetime, smalldatetime Alphanumeric data, several formats Numeric data that are accurate to the least significant digit; can Decimal, numeric contain a whole and decimal portion Float, real Floating-point values that contain an approximate decimal value Int, smallint, tinyint Only integer (whole digit) data Binary, varbinary, image Binary strings (sound, pictures, video) Cursor, timestamp, uniqueidentifier A value that is always unique within a database A number that is always incremented by one when a record is Autonumber added to a database table 91 Currency, money, small Monetary numbers accurate to four decimal places
  79. Phần tử dữ liệu: Định dạng các mã ký tự 92
  80. Phần tử dữ liệu Các tiêu chuẩn xác nhận (Validation Criteria): Đảm bảo rằng các dữ liệu chính xác đã được nắm bắt bởi hệ thống Các phần tử có thể là:  Rời rạc (Discrete), có nghĩa là chúng đã cố định giá trị  Liên tục (Continuous), với một dải các giá trị liên tiếp 93
  81. Phần tử dữ liệu Giá trị mặc định (Default Value): Bao hàm giá trị mặc ​​định bất kỳ mà phần tử có thể có Giá trị mặc định được hiển thị trên màn hình nhập liệu Giảm thiểu việc nhập từ bàn phím  Các giá trị mặc ​​định trên màn hình giao diện đồ họa người dùng (GUI) • Hiển thị ban đầu trong các danh sách thả xuống (drop-down lists) • Được lựa chọn sẵn khi một nhóm các nút radio được sử dụng 94
  82. Phần tử dữ liệu Vùng nhận xét hoặc chú thích thêm (Comment or Remarks Area): Có thể được dùng để chú thích thêm về định dạng ngày, điều kiện kiểm tra tính hợp lệ đặc biệt khi được yêu cầu, phương pháp kiểm tra chữ số được sử dụng, v.v 95
  83. Mô tả kho dữ liệu (Data Stores) Kho dữ liệu được tạo ra cho mỗi thực thể dữ liệu khác nhau được lưu trữ Khi các phần tử cơ bản của luồng dữ liệu được nhóm lại với nhau để tạo thành một bản ghi có cấu trúc (structural record), một kho dữ liệu được tạo ra cho mỗi bản ghi có cấu trúc duy nhất Bởi vì mỗi luồng dữ liệu có thể chỉ thể hiện cho một phần của tập hợp dữ liệu mà một bản ghi có cấu trúc chứa đựng, nên có thể cần nhiều cấu trúc luồng dữ liệu khác nhau để xem xét để có được một mô tả hoàn chỉnh về kho dữ liệu 96
  84. Mô tả kho dữ liệu Mã kho dữ liệu (Data Store ID) Tên tên kho dữ liệu (Data Store Name) Bí danh ​​(alias) cho bảng (table) Mô tả ngắn gọn Kiểu tập tin Định dạng tập tin 97
  85. Mô tả kho dữ liệu 98
  86. Mô tả kho dữ liệu Số lượng các bản ghi tối đa và trung bình vào tập tin cũng như sự tăng trưởng hàng năm Tên tập tin hoặc tập dữ liệu (data set) xác định tên tập tin, nếu biết Cấu trúc dữ liệu nên dùng tên được ghi trong từ điển dữ liệu. Các phần tử dữ liệu có thể được mô tả theo mẫu định sẵn hoặc CASE tool. Các khóa chính và khóa thứ cấp Các ghi chú 99
  87. Mô tả kho dữ liệu Mô tả kho dữ liệu dùng Visible Analyst 100
  88. Tạo từ điển dữ liệu Các mục của từ điển dữ liệu  Được tạo ra sau khi các sơ đồ luồng dữ liệu đã hoàn thành hoặc đang được phát triển. Tạo ra theo cách tiếp cận từ trên xuống (top-down) 101
  89. Hai sơ đồ luồng dữ liệu và các mục từ điển dữ liệu tương ứng cho quá trình Employee Paycheck 102
  90. Phân tích đầu vào và đầu ra Tên mô tả cho đầu vào hay đầu ra Liên hệ với người sử dụng chịu trách nhiệm Bất kể dữ liệu là đầu vào hay đầu ra Định dạng của luồng dữ liệu Các phần tử cho thấy trình tự của các dữ liệu trên báo cáo hoặc màn hình Danh sách các phần tử 103
  91. Phân tích đầu vào và đầu ra 104
  92. Phát triển kho dữ liệu Chỉ ra các dữ liệu còn lại Chứa thông tin có tính chất ổn định hoặc tạm thời Khi kho dữ liệu được tạo ra chỉ cho một báo cáo hoặc màn hình thì nên tham chiếu đây là “theo người sử dụng" (user views) 105
  93. Sử dụng từ điển dữ liệu Để có hiệu quả tối đa, từ điển dữ liệu nên được gàn buộc vào một số chương trình hệ thống Có thể được sử dụng để  Tạo các màn hình (Screens), các báo cáo (Reports), và các biểu mẫu (Forms)  Tạo mã nguồn ngôn ngữ máy tính  Phân tích thiết kế hệ thống, phát hiện sai sót và các lĩnh vực cần làm rõ 106
  94. Tạo các màn hình (Screens), các báo cáo (Reports), và các biểu mẫu (Forms) Sử dụng định nghĩa phần tử và độ dài của chúng Sắp xếp các phần tử sau cho thuận lợi và theo chức năng bằng cách sử dụng các nguyên tắc thiết kế và ngữ cảnh thông thường Các nhóm lặp đi lặp lại trở thành các cột Các bản ghi có cấu trúc được nhóm lại với nhau trên màn hình, báo cáo, hoặc biểu mẫu 107
  95. Phân tích thiết kế hệ thống, phát hiện sai sót và các lĩnh vực cần làm rõ Tất cả các phần tử cơ bản trên một luồng dữ liệu đầu ra phải có mặt trên luồng dữ liệu đầu vào cho quá trình tạo ra đầu ra Một phần tử được dẫn xuất nên được tạo ra bởi một quá trình và phải là đầu ra từ ít nhất là một quá trình mà nó không phải là đầu vào Các phần tử có mặt trong một luồng dữ liệu đi vào hoặc đi ra của một kho dữ liệu phải được chứa trong kho dữ liệu 108
  96. Sử dụng các từ điển dữ liệu để tạo XML XML được sử dụng để trao đổi dữ liệu giữa các nghiệp vụ XML giải quyết vấn đề chia sẻ dữ liệu khi những người sử dụng có hệ thống máy tính khác nhau và phần mềm hoặc các hệ thống quản lý cơ sở dữ liệu khác nhau Tài liệu XML có thể được chuyển đổi thành các định dạng đầu ra khác nhau XML là cách để xác định, sắp xếp, lọc, và chuyển đổi dữ liệu vào một ngôn ngữ dữ liệu phổ quát có thể được sử dụng bởi bất cứ ai XML có thể được tạo ra từ cơ sở dữ liệu, một biểu mẫu, các chương trình phần mềm, hoặc được nhập trực tiếp vào tài liệu, trình soạn thảo văn bản, hoặc chương trình nhập XML 109
  97. Sử dụng các từ điển dữ liệu để tạo XML Từ điển dữ liệu là điểm bắt đầu lý tưởng để phát triển nội dung XML Một định nghĩa tiêu chuẩn của dữ liệu được tạo ra bằng cách sử dụng một tập hợp các thẻ (tag) được thêm vào trước và sau mỗi phần tử hoặc cấu trúc dữ liệu Các phần tử XML cũng có thể chứa các thuộc tính Các tài liệu XML có xu hướng dùng để phản ảnh cấu trúc từ điển dữ liệu 110
  98. Định nghĩa kiểu tài liệu XML (XML Document Type Definitions-DTD) Được dùng để xác định xem nội dung tài liệu XML có hợp lệ hay không DTD có thể được tạo ra bằng cách sử dụng dữ liệu từ điển DTD có thể được sử dụng để xác nhận tính hợp lệ của tài liệu XML 111
  99. Các ví dụ về sử dụng các từ điển dữ liệu để tạo XML Sử dụng một mục nhập từ điển dữ liệu để phát triển nội dung XML. Các tài liệu XML Một loại tài liệu định nghĩa phản ánh cấu trúc từ điển dữ liệu cho tài liệu XML khách hàng 112
  100. XML Schemas Một cách chính xác hơn để xác định nội dung của tài liệu XML Bao gồm số lượng chính xác số lần một yếu tố có thể xuất hiện Bao gồm các loại dữ liệu bên trong các phần tử 113
  101. Đặc tả quá trình và quyết định có cấu trúc Nguyễn Hoàng Ân - Khoa HTTTQL 114
  102. Mục tiêu Hiểu được mục đích của đặc tả quá trình Dùng tiếng Anh có cấu trúc, bảng quyết định, và cây quyết định để phân tích, mô tả và lập tài liệu các quyết định có cấu trúc Chọn lựa một phương pháp phân tích quyết định phù hợp để phân tích các quyết định có cấu trúc và đặc tả quá trình Nguyễn Hoàng Ân - Khoa HTTTQL 115
  103. Nội dung chính Đặc tả quá trình (Process specifications) Tiếng Anh có cấu trúc (Structured English) Bảng quyết định (Decision tables) Cây quyết định (Decision trees) Nguyễn Hoàng Ân - Khoa HTTTQL 116
  104. Tài liệu tham khảo [01] Kendall and Kendall, “System Analysis and Design”, 8th Edition, Prentice Hall, 2011. • Chapter 9 Nguyễn Hoàng Ân - Khoa HTTTQL 117
  105. Đặc tả quá trình Đôi khi được gọi minispecs Dùng để mô tả cho các quá trình nguyên tố cũng như đối với một số quá trình cấp cao hơn trong sơ đồ luồng dữ liệu Được tạo ra cho các phương pháp lớp (class) trong thiết kế hướng đối tượng và các bước trong một use case Nguyễn Hoàng Ân - Khoa HTTTQL 119
  106. Các mục tiêu của việc đặc tả quá trình Giảm sự nhập nhằng của quá trình Mô tả chính xác những gì được thực hiện Xác nhận tính hợp lệ của thiết kế hệ thống Nguyễn Hoàng Ân - Khoa HTTTQL 120
  107. Các quá trình không đặc tả Quá trình đại diện cho đầu vào và/hoặc đầu ra vật lý Quá trình đại diện cho việc xác nhận dữ liệu đơn giản Quá trình sử dụng mã đã được viết trước (prewritten) như chương trình con Nguyễn Hoàng Ân - Khoa HTTTQL 121
  108. Đặc tả quá trình liên quan đến sơ đồ luồng dữ liệu như thế nào Nguyễn Hoàng Ân - Khoa HTTTQL 122
  109. Thông tin đặc tả quá trình Mã số của quá trình (process number) Tên quá trình (process name) Mô tả những gì quá trình thực hiện Danh sách các luồng dữ liệu đầu vào Các luồng dữ liệu đầu ra Kiểu quá trình Sử dụng mã lệnh (prewritten) Mô tả luận lý của quá trình Phương pháp luận lý tham khảo Chỉ ra bất kỳ vấn đề gì chưa được giải quyết Nguyễn Hoàng Ân - Khoa HTTTQL 123
  110. Process Specification Form Number:1.3 Name: Determine Quantity Available Description: Determine if an item is available for sale. If it is not available, create a backordered item record. Determine the quantity available. Input Data Flow Valid item from Process1.2 Quantity on Hand from Item Record Output Data Flow Available item (Item Number + Quantity Sold) to Processes 1.4 & 1.5 Backordered Item to Inventory Control Type of Process Subprogram / Function Name  Online† Batch† Manual Process Logic: IF the Order Item Quantity is greater than Quantity on Hand Then Move Order Item Quantity to Available Item Quantity Move Order Item Number to Available Item Number ELSE Subtract Quantity On Hand from OrderItem Quantity giving Quantity Backordered ENDIF Refer to: Name:___ Structured English† Decision Table† Decision Tree Unresolved Issues: Should the amount that is on order for this item be taken into account? Would this, combined with the expected arrival date of goods on order, change how the quantityNguyễn Hoàngavailable Ân - Khoa is calculated?HTTTQL 124
  111. Mã số của quá trình Phải phù hợp với ID của quá trình trên sơ đồ luồng dữ liệu Cho phép các nhà phân tích làm việc hoặc xem lại bất kỳ quá trình nào, và để xác định vị trí sơ đồ luồng dữ liệu có chứa quá trình một cách dễ dàng Nguyễn Hoàng Ân - Khoa HTTTQL 125
  112. Tên quá trình Giống như tên được hiển thị trong ký hiệu quá trình trên DFD Nguyễn Hoàng Ân - Khoa HTTTQL 126
  113. Mô tả những gì quá trình thực hiện Ví dụ: Xác định nếu một sản phẩm có sẵn để bán. Nếu nó không có sẵn, tạo ra một bản ghi các mặt hàng được đặt trước (backordered). Xác định số lượng có sẵn. (Determine if an item is available for sale. If it is not available, create a backordered item record. Determine the quantity available.) Nguyễn Hoàng Ân - Khoa HTTTQL 127
  114. Danh sách các luồng dữ liệu đầu vào và ra Sử dụng tên được tìm thấy trong sơ đồ luồng dữ liệu và từ điển dữ liệu Các tên dữ liệu được sử dụng trong các công thức hoặc luận lý nên phù hợp với từ điển dữ liệu để tương thích và trao đổi dễ dàng Nguyễn Hoàng Ân - Khoa HTTTQL 128
  115. Kiểu quá trình Theo lô (Batch) Trực tuyến (Online)  Yêu cầu thiết kế màn hình Thủ công (Manual)  Cần phải có các thủ tục được định nghĩa tốt để nhân viên thực hiện các nhiệm vụ của quá trình Nguyễn Hoàng Ân - Khoa HTTTQL 129
  116. Sử dụng mã lệnh (Prewritten) Bao gồm tên của chương trình con (subprogram) hoặc hàm (function) có chứa mã Nguyễn Hoàng Ân - Khoa HTTTQL 130
  117. Mô tả luận lý của quá trình Nội dung này nên nêu rõ chính sách và qui tắc nghiệp vụ, không phải mã giả của ngôn ngữ máy Các quy tắc nghiệp vụ là thủ tục cho phép một công ty vận hành các nghiệp vụ của mình Nguyễn Hoàng Ân - Khoa HTTTQL 131
  118. Các định dạng quy tắc nghiệp vụ phổ biến Định nghĩa các thuật ngữ nghiệp vụ Điều kiện và hành động của nghiệp vụ Các ràng buộc toàn vẹn dữ liệu Các dẫn xuất về toán học và chức năng Những suy luận luận lý Trình tự xử lý Mối quan hệ giữa các sự kiện về nghiệp vụ Nguyễn Hoàng Ân - Khoa HTTTQL 132
  119. Phương pháp luận lý tham khảo Cần chỉ ra nơi cần tham khảo thêm nếu trên bảng đặc tả không có đủ chỗ để mô tả đầy đủ bằng tiếng Anh có cấu trúc, bao gồm tham khảo đến mô tả tiếng Anh có cấu trúc, bảng quyết định, hoặc cây quyết định mô tả luận lý Nguyễn Hoàng Ân - Khoa HTTTQL 133
  120. Chỉ ra bất kỳ vấn đề nào chưa được giải quyết Các phần không đầy đủ về mặt luận lý Những vấn đề này là cơ sở để hình thành nên những câu hỏi được sử dụng sau này trong các cuộc phỏng vấn với người sử dụng hoặc các chuyên gia nghiệp vụ được bổ sung thêm vào nhóm dự án Nguyễn Hoàng Ân - Khoa HTTTQL 134
  121. Cân bằng ngang (horizontal balancing) Cân bằng ngang: tất cả các phần tử luồng dữ liệu ra phải dựa vào luồng dữ liệu vào hoặc được đặc tả trong luận lý của quá trình Cân bằng ngang dùng để kiểm tra mỗi quá trình có các mục từ trong từ điển dữ liệu, các công thức hoặc cách tính để tạo luồng dữ liệu ra Nguyễn Hoàng Ân - Khoa HTTTQL 135
  122. Các quy tắc cân bằng ngang Tất cả các phần tử cơ bản trên một luồng dữ liệu ra phải có trong luồng dữ liệu vào Tất cả các phần tử dẫn xuất của luồng dữ liệu ra phải:  Có trong luồng dữ liệu vào, hoặc  Được tạo ra bởi quá trình Nguyễn Hoàng Ân - Khoa HTTTQL 136
  123. Tiếng Anh có cấu trúc (Structured English) Được sử dụng khi quá trình luận lý liên quan đến các công thức hoặc lặp đi lặp lại, hoặc khi quyết định có cấu trúc không phức tạp Dựa trên luận lý có cấu trúc và các câu lệnh tiếng Anh đơn giản như thêm/cộng (add), nhân (multiply) , và di chuyển (move) Nguyễn Hoàng Ân - Khoa HTTTQL 137
  124. Viết tiếng Anh có cấu trúc Tất cả các biểu thức luận lý sử dụng: cấu trúc tuần tự, cấu trúc quyết định, các cấu trúc chọn, hoặc lặp Sử dụng các từ khóa được chấp nhận như IF, THEN, ELSE, DO, và PERFORM Sử dụng dạng thụt đầu hàng một khối lệnh để cho thấy sự phân cấp (lồng nhau) của các câu lệnh rõ ràng Gạch dưới các từ hoặc cụm từ đã được định nghĩa trong từ điển dữ liệu Làm rõ các câu lệnh luận lý Nguyễn Hoàng Ân - Khoa HTTTQL 138
  125. Ví dụ về luận lý được thể hiện trong cấu trúc tuần tự, cấu trúc quyết định, cấu trúc chọn, và lặp Nguyễn Hoàng Ân - Khoa HTTTQL 139
  126. GET Order Record GET Customer Record Move Order Number to Shipping Statement Move Order Date to Shipping Statement Move Customer Number to Shipping Statement DO format Customer Name (leave only one space between First/Middle/Last) DO format Customer Address lines DO WHILE there are items for the order GET Item Record DO Format Item Line Multiply Unit Price by Quantity Ordered giving Extended Amount Move Extended Amount to Order Item Lines Add Extended Amount to Merchandise Total IF Quantity Backordered is greater than zero Move Quantity Backordered to Order Item Lines ENDIF ENDDO Format the Shipping Move Merchandise Total to Shipping Statement Statement Move 0 to Tax IF State is equal to CT Multiply Merchandise Total by Tax Rate giving Tax ENDIF Move Tax to Shipping Statement DO calculate Shipping and Handling Move Shipping and Handling to Shipping Statement Add Merchandise Total, Tax, and Shipping and Handling giving Order Total Nguyễn Hoàng Ân - Khoa HTTTQL 140 Move Order Total to Shipping Statement
  127. Ưu điểm của tiếng Anh có cấu trúc Làm rõ luận lý và các mối quan hệ có trong ngôn ngữ của con người Là một công cụ giao tiếp hiệu quả, nó có thể được dùng để truyền đạt và được hiểu bởi người dùng trong tổ chức Nguyễn Hoàng Ân - Khoa HTTTQL 141
  128. Từ điển dữ liệu và đặc tả quá trình Từ điển dữ liệu là điểm bắt đầu cho việc tạo ra tiếng Anh có cấu trúc:  Tuần tự một trình tự đơn giản của các câu lệnh MOVE, ADD, và SUBTRACT  Tùy chọn [|] câu lệnh IF THEN ELSE  Các mục lặp {} các phát biểu DO WHILE, DO UNTIL, hoặc PERFORM UNTIL Nguyễn Hoàng Ân - Khoa HTTTQL 142
  129. Bảng quyết định (Decision Tables) Một bảng gồm các hàng và cột, chia thành 4 phần:  Góc trên bên trái mô tả các điều kiện (condition)  Góc trên bên phải là các giá trị chọn lựa cho các điều kiện (Condition alternatives)  Góc dưới bên trái là các tác vụ (action)  Góc dưới bên phải là các chọn lựa tác vụ Nguyễn Hoàng Ân - Khoa HTTTQL 143
  130. Định dạng tiêu chuẩn cho một bảng quyết định Nguyễn Hoàng Ân - Khoa HTTTQL 144
  131. Xây dựng một bảng quyết định để quyết định xem danh mục nào gửi đến khách hàng Nguyễn Hoàng Ân - Khoa HTTTQL 145
  132. Phát triển bảng quyết định 1. Xác định các điều kiện ảnh hưởng đến quyết định 2. Xác định các tác vụ có thể có 3. Xác định các giá trị chọn lựa cho mỗi điều kiện 4. Tính toán số lượng tối đa các cột trong bảng quyết định 5. Điền các giá trị chọn lựa cho mỗi điều kiện 6. Hoàn thành bảng bằng cách chèn một ký hiệu X vào tác vụ đề nghị cho mỗi quy tắc 7. Kết hợp các quy tắc hiển nhiên 8. Kiểm tra các tình huống không thể có 9. Sắp xếp lại bảng cho dễ hiểu hơn Nguyễn Hoàng Ân - Khoa HTTTQL 146
  133. Kiểm tra tính đầy đủ và chính xác Bốn vấn đề chính:  Sự không toàn vẹn (Incompleteness)  Các tình huống không thể có (Impossible situations)  Các mâu thuẫn (Contradictions)  Sự dư thừa (Redundancy) Nguyễn Hoàng Ân - Khoa HTTTQL 147
  134. Nguyễn Hoàng Ân - Khoa HTTTQL 148
  135. Kiểm tra mâu thuẫn và dư thừa trong bảng quyết định Nguyễn Hoàng Ân - Khoa HTTTQL 149
  136. Nguyễn Hoàng Ân - Khoa HTTTQL 150
  137. Bảng quyết định nâng cao Vì số lượng các giá trị lựa chọn và điều kiện làm gia tăng số lượng cột  Ví dụ: Một bảng với bảy điều kiện có hai giá trị lựa chọn sẽ cần 128 cột Để giảm số lượng các cột  Sử dụng các mục mở rộng  Sử dụng quy tắc ELSE  Xây dựng nhiều bảng Nguyễn Hoàng Ân - Khoa HTTTQL 151
  138. Ưu điểm của bảng quyết định Giúp nhà phân tích đảm bảo sự đầy đủ Dễ dàng để kiểm tra các lỗi có thể có  Các tình huống bất không thể có  Các mâu thuẫn  Dư thừa Nguyễn Hoàng Ân - Khoa HTTTQL 152
  139. Cây quyết định (Decision Trees) Cây quyết định được sử dụng khi sự phân nhánh phức tạp xảy ra trong một quá trình ra quyết định có cấu trúc Rất hữu ích trong việc lưu giữ lại chuỗi các quyết định theo một trình tự cụ thể Nguyễn Hoàng Ân - Khoa HTTTQL 153
  140. Vẽ cây quyết định Xác định tất cả các điều kiện và tác vụ cùng với thứ tự và thời gian của chúng (nếu điều này là quan trọng) Bắt đầu xây dựng cây từ trái sang phải, hãy chắc chắn rằng đã liệt kê tất cả các lựa chọn thay thế có thể có trước khi chuyển sang bên phải Nguyễn Hoàng Ân - Khoa HTTTQL 154
  141. Vẽ một cây quyết định để hiển thị các hành động phê duyệt mua hàng không dùng tiền mặt cho một cửa hàng bách hóa Nguyễn Hoàng Ân - Khoa HTTTQL 155
  142. Nguyễn Hoàng Ân - Khoa HTTTQL 156
  143. Ưu điểm của cây quyết định Trình tự kiểm tra các điều kiện và tác vụ thực hiện được nhận thấy ngay lập tức Điều kiện và hành động của cây quyết định được tìm thấy trên một số nhánh nhưng không có trên những nhánh khác So với các bảng quyết định, cây quyết định dễ hiểu hơn đối với những người khác trong tổ chức Nguyễn Hoàng Ân - Khoa HTTTQL 157
  144. Lựa chọn kỹ thuật phân tích quyết định có cấu trúc Sử dụng tiếng Anh có cấu trúc khi có nhiều hành động lặp đi lặp lại hoặc khi việc giao tiếp với người dùng cuối là quan trọng Sử dụng các bảng quyết định khi có sự kết hợp phức tạp của điều kiện, hành động, và các quy tắc hoặc có yêu cầu về một phương pháp hiệu quả tránh các tình huống không thể có, dư thừa và mâu thuẫn Sử dụng cây quyết định khi trình tự các điều kiện và hành động là rất quan trọng hoặc khi không phải tất cả các điều kiện điều liên quan đến mọi hành động (các nhánh khác nhau) Nguyễn Hoàng Ân - Khoa HTTTQL 158
  145. Hỏi đáp Nguyễn Hoàng Ân - Khoa HTTTQL 159
  146. Conditions and Actions 1 2 3 4 5 6 7 Reserves a subcompact Y Y Y N Y N N Do not have one for customer Y Y Y N Y N N Company has account Y Y N Y N Y N Frequent flier membership Y N Y N N Y N Get a free upgrade X X X X X X Get a discount X X X Nguyễn Hoàng Ân - Khoa HTTTQL 160
  147. Conditions and Actions 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Book over the Internet Y Y Y Y Y Y Y N N N N N N N Reserves a subcompact Y Y Y N Y N N Y Y Y N Y N N Do not have one for customer Y Y Y N Y N N Y Y Y N Y N N Company has account Y Y N Y N Y N Y Y N Y N Y N Frequent flier membership Y N Y N N Y N Y N Y N N Y N Get a free upgrade X X X X X X X X X X X X Get a discount X X X X X X Receive a 10 percent discount X X X X X X X Nguyễn Hoàng Ân - Khoa HTTTQL 161
  148. Nguyễn Hoàng Ân - Khoa HTTTQL 162
  149. Conditions and Actions 1 2 3 4 5 6 7 Sufficient quantity on hand Y Y Y Y Y Y N Quantity large enough for discount Y Y Y N N N Wholesale customer Y Y N Y Y N Sales tax exemption filed Y N Y N Ship items and prepare invoice X X X X X X Set up backorder X Deduct discount X X Add sales tax X X X X Nguyễn Hoàng Ân - Khoa HTTTQL 163
  150. Nguyễn Hoàng Ân - Khoa HTTTQL 164