Giáo trình Kỹ thuật phần mềm - Bài 4: Phân tích, đặc tả yêu cầu - Nguyễn Văn Vy

pdf 78 trang huongle 1480
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kỹ thuật phần mềm - Bài 4: Phân tích, đặc tả yêu cầu - Nguyễn Văn Vy", để 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:

  • pdfgiao_trinh_ky_thuat_phan_mem_bai_4_phan_tich_dac_ta_yeu_cau.pdf

Nội dung text: Giáo trình Kỹ thuật phần mềm - Bài 4: Phân tích, đặc tả yêu cầu - Nguyễn Văn Vy

  1. Kỹ nghệ phần mềm Software Engeneering Nguyễn Văn Vỵ Bộ môn Công nghệ phần mềm- Khoa CNTT- ĐHCN Email: vynv@coltech.vnu.vn
  2. Bài 4: Phõn tớch, đặc tả yờu cầu NguyễnVănVỵ Nội dung „ Khái niệm vμ tầm quan trọng „ Phân loại các yêu cầu „ Phân tích vμ xác định yêu cầu „ Đặc tả yêu cầu „ Định dạng tμi liệu yêu cầu Bộ mụn Cụng nghệ phần mềm – ĐHCN 2
  3. TÀI LiỆU THAM KHẢO NguyễnVănVỵ 1. Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giỏo trỡnh kỹ nghệ phần mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008 2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling language User Guid. Addison-Wesley, 1998. 3. M. Ould. Managing Software Quality and Business Risk, John Wiley and Sons, 1999. 4. Roger S.Pressman, Software Engineering, a Practitioner’s Approach. Fifth Edition, McGraw Hill, 2001. 5. Ian Sommerville, Software Engineering. Sixth Edition, Addison- Wasley, 2001. 6. Nguyễn Văn Vỵ. Phõn tớch thiết kế hệ thống thụng tin hiện đại. Hướng cấu trỳc và hướng đối tượng, NXB Thống kờ, 2002, Hà Nội. Bộ mụn Cụng nghệ phần mềm – ĐHCN 3
  4. Khái niệm, tầm quan trọng NguyễnVănVỵ Xác định vμ đặc tả yêu cầu: „ Lμ khâu kỹ thuật đầu tiên của quá trình phát triển phần mềm. Thiếu nó không thể tiếp tục quá trình „ Lμ sự phối hợp của cả nhμ phát triển vμ khách hμng „ Nó quyết định chất l−ợng phần mềm đạt đ−ợc với chi phí dự kiến vμ thời hạn cho tr−ớc. Bộ mụn Cụng nghệ phần mềm – ĐHCN 4
  5. Các yêu cầu vμ mục tiêu NguyễnVănVỵ „ Các yêu cầu lμ các mô tả từ trừu t−ợng đến chi tiết về dịch vụ mμ hệ thống cung cấp cũng nh− các rμng buộc lên sự phát triển vμ hoạt động của nó „ Mục đích các yêu cầu:  Lμm cơ sở cho việc mời thầu (cần có giải thích)  Lμm cơ sở ký kết hợp đồng thầu (cần đủ chi tiết)  Lμm t− liệu đầu vμo cho thiết kế vμ triển khai (cần đầy đủ, chính xác, không mâu thuẫn ) Bộ mụn Cụng nghệ phần mềm – ĐHCN 5
  6. Giá phải trả cho việc tìm vμ sửa lỗi NguyễnVănVỵ 60-100 100 mức chi phớ (lần) 10.0 10 3.0 1.5 1.0 1.5 1 0.75 xỏc định thiết mó kiểm k.thử Đưa vào y.cầu kế húa thử tớch hợp sử dụng Mức chi phớ phải trả do sút lỗi qua cỏc giai đoan Bộ mụn Cụng nghệ phần mềm – ĐHCN 6
  7. Các loại yêu cầu NguyễnVănVỵ „ Yêu cầu ng−ời dùng: y Đơn giản, dễ hiểu Diễn đạt bằng ngôn ngữ tự nhiện vμ sơ đồ Nêu rõ dịch vụ hệ thống cung cấp vμ các rμng buộc trong hoạt động của nó „ Yêu cầu hệ thống: Mô tả đủ chi tiết về các dịch vụ hệ thống cung cấp Các đặc tr−ng mμ hệ thống cần có Nh− một hợp đồng giữa khách hμng vμ nhμ thầu „ Yêu cầu khi đặc tả (phần mềm) Đủ chi tiết lμm cơ sở cho thiết kế vμ triển khai Bộ mụn Cụng nghệ phần mềm – ĐHCN 7
  8. Những ng−ời đọc yêu cầu NguyễnVănVỵ „ Ng−ời dùng hệ thống „ Ng−ời quản lý của khách hμng „ Kỹ s− của khách hμng „ Ng−ời quán lý nhμ thầu „ Nhμ kiến trúc hệ thống „ Các nhμ phát triển vμ bảo trì phần mềm ™ yêu cầu viết ra cần đáp ứng đ−ợc tất các đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 8
  9. Yêu cầu từ nghiệp vụ NguyễnVănVỵ „ Các yêu cầu chức năng Mô tả các chức năng hay các dịch vụ mμ hệ thống phần mềm cần cung cấp „ Các yêu cầu phi chức năng Mô tả các rμng buộc đặt lên dịch vụ vμ quá trình phát triển hệ thống (về chất l−ợng, về môi tr−ờng, chuẩn sử dụng, qui trình phát riển ) „ Các yêu cầu miền/lĩnh vực (ngoμi) Những yêu cầu đặt ra từ miền ứng dụng, phản ảnh những đặc tr−ng của miền đó Bộ mụn Cụng nghệ phần mềm – ĐHCN 9
  10. Các yêu cầu chức năng NguyễnVănVỵ „ Mô tả chức năng hay các dịch vụ của hệ thống „ Chúng phụ thuộc vμo:  loại phần mềm sẽ đ−ợc xây dựng  sự mong muốn của khách hμng  loại hệ thống mμ phần mềm trợ giúp „ Mức độ các yêu cầu:  trừu t−ợng: hệ thống lμm gì  chi tiết: nhiệm vụ cụ thể hệ thống cần thực hiện Bộ mụn Cụng nghệ phần mềm – ĐHCN 10
  11. Yêu cầu phi chức năng NguyễnVănVỵ „ Yêu cầu về sản phẩm: tốc độ, độ tin cậy, bộ nhớ cần, giao diện „ Yêu cầu về tổ chức/ tiến trình phát triển: các chuẩn áp dụng, ph−ơng pháp thiết kế, ngôn ngữ lập trình, mô hình tiến trình „ Yêu cầu từ bên ngoμi: về chi phí, về thời gian, bản quyền, liên kết Bộ mụn Cụng nghệ phần mềm – ĐHCN 11
  12. Các loại yêu cầu phi chức năng NguyễnVănVỵ Yêu cầu phi chức năng Yêu cầu sản Yêu cầu về Yêu cầu từ phẩm tổ chức bên ngoài Yêu cầu hiệu Yêu cầu tin Yêu cầu khả Yêu cầu hoạt Yêu cầu đạo quả cậy chuyển động bên trong lý Yêu cầu khả Yêu cầu Yêu cẩu triển Yêu cầu về Yêu cầu dụng chuyển giao khai chuẩn pháp lý Yêu cầu về Yêu cầu Yêu cầu cá Yêu cầu về hiệu năng khôngr gian nhân an toàn Bộ mụn Cụng nghệ phần mềm – ĐHCN 12
  13. Tiến trình kỹ nghệ yêu cầu NguyễnVănVỵ Các hoạt động của tiến trình kỹ nghệ: „ Nghiên cứu khả thi ặ Dự án khả thi „ Phân tích, xác định yêu cầu ặ Mô hình hệ thống „ Đặc tả yêu cầu ặ Các yêu cầu đ−ợc đặc tả „ Thẩm định yêu cầu ặ Tμi liệu yêu cầu Bộ mụn Cụng nghệ phần mềm – ĐHCN 13
  14. Sơ đồ tiến trình kỹ nghệ yêu cầu NguyễnVănVỵ Nghiên cứu Phân tích, xác khả thi định yêu cầu Đặc tả yêu cầu Báo cáo khả thi Mô hình Thẩm định hệ thống yêu cầu Các đặc tả yêu cầu Tài liệu Yêu cầu Bộ mụn Cụng nghệ phần mềm – ĐHCN 14
  15. Nghiên cứu khả thi NguyễnVănVỵ „ Mục tiêu của nghiên cứu khả thi lμ đi đến kết luận: Có nên phát triển hệ thống hay không? „ Nội dung nghiên cứu khả thi tập trung để trả lời các câu hỏi sau:  Hệ thống đ−ợc xây dựng sẽ giúp gì cho tổ chức?  Hệ thống sử dụng công nghệ nμo, kinh phí bao nhiêu, thời gian bao lâu?  Hệ thống cần phải tích hợp với các hệ thống nμo đang sử dụng? Bộ mụn Cụng nghệ phần mềm – ĐHCN 15
  16. Triển khai nghiên cứu khả thi NguyễnVănVỵ „ Báo cáo khả thi đ−ợc viết dựa trên thông tin, báo cáo thu thập đ−ợc, những đánh giá ban đầu về hệ thống hiện tại vμ phác hoạ các ph−ơng án dự kiến „ Câu hỏi đặt ra cho ng−ời của tổ chức:  Cái gì xẩy ra nếu hệ thống không đ−ợc triển khai?  Những vấn đề gì đang đặt ra cần giải quyết?  Hệ thống đ−ợc đề suất trợ giúp họ nh− thế nμo?  Những tích hợp gì cần phải có?  Công nghệ mới gì, kỹ năng gì cần có?  Những tiện ích gì cần sự trợ giúp từ hệ thống Bộ mụn Cụng nghệ phần mềm – ĐHCN 16
  17. Phân tích tìm ra yêu cầu NguyễnVănVỵ „ Phân tích vμ xác định yêu cầu: còn gọi lμ phát hiện yêu cầu. „ Các nhμ kỹ thuật cùng với khách hμng (ng−ời dùng, kỹ s−, nhμ quản lý, chuyên gia miền, ) lμm rõ: ƒ phạm vi lĩnh vực ứng dụng ƒ các dịch vụ mμ hệ thống cần cung cấp ƒ các rμng buộc đặt lên hoạt động của nó „ Bằng cách xây dựng các mô hình phân tích (mô hình nghiệp vụ của hệ thống) để lμm rõ các yêu cầu trên Bộ mụn Cụng nghệ phần mềm – ĐHCN 17
  18. Những khó khăn của phân tích NguyễnVănVỵ „ Khách hμng th−ờng mơ hồ về yêu cầu, không biết rõ mình muốn gì, dễ lẫn lộn giữa yêu cầu vμ mong muốn. „ Họ thể hiện yêu cầu theo thuật ngữ riêng „ Khách hμng đa dạng, có thể có yêu cầu mâu thuẫn „ Những yếu tố tổ chức vμ chính sách có thể ảnh h−ởng đến yêu cầu „ Yêu cầu th−ờng mang tính đặc thù, khó hiểu, khó có chuẩn chung „ Các yêu cầu thay đổi trong quá trình phân tích: môi tr−ờng nghiệp vụ thay đổi, có ng−ời liên quan mớí Bộ mụn Cụng nghệ phần mềm – ĐHCN 18
  19. Mục tiêu, mong muốn vμ yêu cầu NguyễnVănVỵ „ Mục tiêu, mong muốn : lμ cái h−ớng tới Ví dụ:"xây dựng giao diện thân thiện với ng−ời dùng" „ Yêu cầu: lμ cái cụ thể, kiểm tra đ−ợc Ví dụ: "giao diện đồ họa, có các lệnh đ−ợc chọn bằng thực đơn hay biểu t−ợng" nhiệm vụ của ng−ời phân tích lμ gợi mở, xác định đúng, đầy đủ, chính xác các yêu cầu Bộ mụn Cụng nghệ phần mềm – ĐHCN 19
  20. Tiến trình phân tích yêu cầu NguyễnVănVỵ „ Các hoạt động chính bao gồm:  Tìm hiểu miền ứng dụng  Phát hiện, thu thập yêu cầu  Phân loại yêu cầu  Giải quyết xung đột (nếu có)  Sắp −u tiên các yêu cầu  Thẩm định yêu cầu Bộ mụn Cụng nghệ phần mềm – ĐHCN 20
  21. Tiến trình phân tích yêu cầu NguyễnVănVỵ đặc tả thẩm định yêu cầu yêu cầu hiểu miền Sắp ứng dụng −u tiên thu thập giải quyết yêu cầu xung đột phân loại Bộ mụn Cụng nghệ phần mềm – ĐHCN 21
  22. Các nguyên lý NguyễnVănVỵ 1. Mô hinh hóa miền thông tin Phải hiểu vμ biểu diễn đ−ợc miền thông tin (problem domain):  Xác định các thực thể dữ liệu (đối t−ợng)  xác định các thuộc tính của chúng  thiết lập các mối quan hệ giữa các dữ liệu Bộ mụn Cụng nghệ phần mềm – ĐHCN 22
  23. 2. Mô hình hóa chức năng NguyễnVănVỵ Bản chất của phần mềm lμ biến đổi thông tin  Xác định các chức năng (biến đổi thông tin)  Xác định cách thức dữ liệu (thông tin) di chuyển trong hệ thống (luồng dữ liệu)  xác định các tác nhân tạo dữ liệu (nguồn) vμ tác nhân tiếp nhận dữ liệu (đích) ™ Mô hình chung của mọi quá trình  xuất sản : Các Sản xuất Các Nguồn (xử lý) đích (vào) (ra) Quy tắc nghiệp vụ, điều khiển Bộ mụn Cụng nghệ phần mềm – ĐHCN 23
  24. 3. Mô hình hóa hμnh vi NguyễnVănVỵ Phần mềm (hệ thống) có trạng thái (hμnh vi) „ xác định các trạng thái của hệ thống „ ví dụ: giao diện đồ họa, phần trong ứng dụng web „ xác định các dữ kiện lμm thay đổi hμnh vi hệ thống „ ví dụ: máy xay các phê có 2 trạng thái: nghỉ, lμm việc - bật đèn bật công tắc - cho n−ớc - mở bếp, pha 1. nghỉ 2.Pha cμ phê -tắt đèn - tắt bếp tắt công tắc Bộ mụn Cụng nghệ phần mềm – ĐHCN 24
  25. 4. Phân hoạch, lμm mịn NguyễnVănVỵ Lμm mịn, phân hoạch vμ biểu diễn các mô tả ở các mức chi tiết khác nhau  lμm mịn các mô hinh dữ liệu  tạo cây (biểu đồ) phân rã chức năng  biểu diễn hμnh vi ở các mức chi tiết khác nhau Nhận yêu cầu Gom hμng Bán hμng Giao hμng Thanh toán Bộ mụn Cụng nghệ phần mềm – ĐHCN 25
  26. Nhìn vấn đề từ ngoμi, bản chất NguyễnVănVỵ „ Nhin nhận bản chất của yêu cầu: lμm gi (chức năng)?  điều kiện gi (rμng buộc)? „ Không quan tâm đến cách thức cμi đặt (lμm nh− thế nμo, khi nμo, ở đâu?  lμ quá trình vật lý) Bộ mụn Cụng nghệ phần mềm – ĐHCN 26
  27. Ph−ơng pháp thu thập yêu cầu NguyễnVănVỵ „ Phỏng vấn „ Quan sát „ Điều tra bằng bảng hỏi „ Nghiên cứu tμi liệu „ Joint Application Design -JAD Bộ mụn Cụng nghệ phần mềm – ĐHCN 27
  28. Đặc tả yêu cầu NguyễnVănVỵ Đặc tả yêu cầu lμ mô tả yêu cầu một cách đặc biệt. Yêu cầu nên đ−ợc biểu diễn ở nhiều mức trừu t−ợng khác nhau: đầy đủ, chính xác dần. Nhiều đối t−ợng có thể đọc:  ng−ời sử dụng  nhμ quản lý  lập trình viên  kỹ s− phát triển, bảo trì Bộ mụn Cụng nghệ phần mềm – ĐHCN 28
  29. Các mức trừu t−ợng của yêu cầu NguyễnVănVỵ Xác định yêu cầu:  mô tả các dịch vụ mμ phần mềm cung cấp  viết bằng ngôn ngữ tự nhiên  h−ớng ng−ời dùng Đặc tả yêu cầu:  tμi liệu có cấu trúc (theo mô hình/ph−ơng pháp)  mô tả đầy đủ, chi tiết, chính xác yêu cầu  dùng lμm bản hợp đồng Bộ mụn Cụng nghệ phần mềm – ĐHCN 29
  30. Ví dụ: chức năng kiểm tra chính tả NguyễnVănVỵ Định ra yêu cầu: thông báo các lỗi chính tả của văn bản Đặc tả: - các lỗi chính tả đ−ợc gạch đỏ bên d−ới - lỗi soạn thảo đ−ợc gạch xanh bên d−ới Lỗi chính tả: - từ đơn không có trong từ điển Lỗi soạn thảo: - thừa dấu cách - không viết hoa đầu câu Bộ mụn Cụng nghệ phần mềm – ĐHCN 30
  31. Đòi hỏi đặc tả yêu cầu NguyễnVănVỵ Đầy đủ: mọi yêu cầu của ng−ời dùng phải đ−ợc mô tả Không mâu thuẫn lẫn nhau Chính xác: yêu cầu không đ−ợc mơ hồ  Chỉ có thể hiểu theo một nghĩa duy nhất  Có thể ánh xạ đặc tả vμo ch−ơng trình  Chi phí phát sinh do sửa đổi ít nhất có thể Dễ thay đổi:  thay đổi đ−ợc  ít ảnh h−ởng đến cáí khác Bộ mụn Cụng nghệ phần mềm – ĐHCN 31
  32. Phân hoạch yêu cầu NguyễnVănVỵ Có thể phân hoạch yêu cầu theo hai cách „ Phân loại theo đặc tr−ng:  Yêu cầu t−ơng hỗ: chịu ảnh h−ởng của môi tr−ờng  Yêu cầu nảy sinh: Nhận ra trong quá trình phát triển  Yêu cầu hệ quả: Lμ kết quả của việc áp dụng hệ thống dựa trên máy tính  Yêu cầu t−ơng thích: Phụ thuộc vμo hệ khác hay tiến trình tổ chức „ Phân hoạch theo mức độ quan trọng: chính, phụ Bộ mụn Cụng nghệ phần mềm – ĐHCN 32
  33. Thẩm định yêu cầu NguyễnVănVỵ Liên quan đến kiểm tra tính đúng đắn, tính đầy đủ, tính nhất quán, tính hiện thực vμ kiểm tra đ−ợc của yêu cầu. Cụ thể trả lời đ−ợc các câu hỏi: 1. Còn nhu cầu nμo của ng−ời dùng ch−a kể đến? 2. Có gì mâu thuẫn giữa các yêu cầu? 3. Chức năng; rμng buộc gì ch−a kể? 4. Có thực hiện đ−ợc không? 5. Có thể kiểm tra nó nh− thế nμo? Bộ mụn Cụng nghệ phần mềm – ĐHCN 33
  34. Các kỹ thuật thẩm định yêu cầu NguyễnVănVỵ 1. Xem xét lại yêu cầu: ƒ Phân tích một cách có hệ thống ƒ Lấy ý kiến khách hμng ƒ Tiến hμnh h−ờng xuyên 2. Lμm bản mẫu: ƒ Sử dụng mô hình khả dụng ƒ Kiểm tra tính thực hiện đ−ợc 3. Tạo ca kiểm thử: kiểm tra tính kiểm tra đ−ợc 4. Sử dụng CASE: kiểm tra tính nhất quán Bộ mụn Cụng nghệ phần mềm – ĐHCN 34
  35. Quản lý vμ tiến hoá yêu cầu NguyễnVănVỵ „ Các yêu cầu có thể thay đổi do: ƒ Sự −u tiên thay đổi ƒ Môi tr−ờng nghiệp vụ & kỹ thuật thay đổi „ Quản lý thay đổi yêu cầu: ghi chép „ Tiến hoá yêu cầu: ƒ chính xác hoá lại ƒ phân hoạch & sắp −u tiên ƒ Bổ sung mới Bộ mụn Cụng nghệ phần mềm – ĐHCN 35
  36. Quan hệ giữa phân tích vμ thiết kế NguyễnVănVỵ „ Phân tích chỉ nên đ−a ra giả thiết tối thiểu về thiết kế hệ thống „ Yêu cầu phải không mâu thuẫn với kỹ thuật máy tính vμ tμi nguyên hiện có- t−c lμ có tính tới các yếu tố khi thiết kế Bộ mụn Cụng nghệ phần mềm – ĐHCN 36
  37. Ph−ơng pháp xác định, đặc tả yêu cầu NguyễnVănVỵ „ Mô hình nghiệp vụ (chức năng): ƒ Biểu đồ phân rã chức năng ƒ Ma trận thực thể  chức năng ƒ Mô hình ca sử dụng ƒ Biểu đồ hoạt động „ Biểu đồ chuyển trạng thái „ Mô hình luồng dữ liệu „ Biểu đồ thực thể - mối quan hệ (dữ liệu) Bộ mụn Cụng nghệ phần mềm – ĐHCN 37
  38. Biểu đồ phân rã chức năng NguyễnVănVỵ Function Decomposition Diagram - FDD ƒ Xác định phạm vi của hệ thống ƒ Phân hoạch chức năng ƒ Tạo nền tảng cho thiết kế kiến trúc hệ thống 1.Cn Cn.goc 1.1. cn Tên =động từ+bổ ngữ 1.2.cn 1.cn 2.cn 3.cn 2.Cn chức năng dạng chuẩn 2.1. cn dạng bảng Bộ mụn Cụng nghệ phần mềm – ĐHCN 38
  39. Ví dụ: biểu đồ phân rã chức năng NguyễnVănVỵ gốc Kinh doanh bán hàng (Mức 0) Tiếp nhận đơn Giải quyết Xử lý đơn Gom và gửi hàng khách hàng hàng (Mức 1) Ghi nhận đơn Thu thông tin Đối chiếu đơn - Gom hμng hμng khách thẻ kho theo phiếu Kiểm tra đơn Thoả thuận Thoả thuận bán Thoả thuận lá hμng mua bán hμng nhận hμng Kiểm tra khách Ký kết hợp Lập phiếu Tổ chức gửi đồng giao hμng hμng Biểu đồ phân r∙ chức năng nghiệp vụ kinh doanh bán hàng Bộ mụn Cụng nghệ phần mềm – ĐHCN 39
  40. Biểu đồ luồng dữ liệu NguyễnVănVỵ Data flow diagram - DFD „ Mô tả quá trình hoạt động xử lý thông tin nghiệp vụ „ Biểu diễn cách thức dữ liệu di chuyển, đ−ợc xử lý, l−u trữ trong hệ thống vμ trao đổi với môi tr−ờng (kể từ các đầu vμo khác nhau đến các đầu ra sử dụng ) „ Có nhiều mức trừu t−ợng khác nhau (phân tích có cấu trúc) „ Lμm c− sở cấu trúc hệ thống phần mềm Bộ mụn Cụng nghệ phần mềm – ĐHCN 40
  41. Khái niệm của DFD NguyễnVănVỵ „ Tác nhân đối t−ợng ngoμi hệ thống phát sinh hoặc tiếp nhận dữ liêu/thông tin „ Tiến trình: dãy hoạt động tác động (đọc, ghi, xóa, biến đổi, phân phối, trình diễn) lên dữ liêu „ Luồng dữ liệu: dữ liệu di chuyển từ nguồn đến đích (bên trong, ngoμi phạm vi hệ thống) „ Kho dữ liệu: dữ liệu l−u trữ ở một ví trí Bộ mụn Cụng nghệ phần mềm – ĐHCN 41
  42. Ký pháp luồng dữ liệu NguyễnVănVỵ Có 2 loại ký pháp chuẩn. D−ới đây lμ của Sarsen: tên t.n. tác nhân:  ng−ời, tổ chức, hệ khác  tên là danh từ tên t.tr. tiến trình:  Hoạt động nghiệp vụ  tên = động từ + bổ ngữ tên luồng luồng dữ liệu:  dữ liệu di chuyển  tên là danh từ, vật mang  dữ liệu đ−ợc l−u trữ a tên kho kho dữ liệu:  tên là danh từ, vật mang Bộ mụn Cụng nghệ phần mềm – ĐHCN 42
  43. Nguyên tắc xây dựng NguyễnVănVỵ „ Tiến trình lμ duy nhất, phải có luồng dữ vμo & ra „ Các luồng dữ liệu vμo phải đủ để tạo ra các luồng ra „ Không có luồng dữ liệu giữa: ƒ tác nhân - tác nhân ƒ tác nhân - kho dữ liệu ƒ kho dữ liệu - kho dữ liệu „ Luồng dữ liệu không quay lại nơi xuất phát „ Lμm mịn cần đảm bảo có đầy đủ các yếu tố của b−ớc tr−ớc (tác nhân, luồng dữ liệu, kho dữ liệu) „ Cho phép vẽ lặp tác nhân, kho dữ liệu Bộ mụn Cụng nghệ phần mềm – ĐHCN 43
  44. Các b−ớc xây dựng PDFD (biểu đồ luồng dữ liệu vật lý) NguyễnVănVỵ „ Xây dựng mô hình nghiệp vụ: ƒ Xác định tác nhân ƒ Phân rã chức năng hệ thống ặ ( tiến trình t−ơng ứng) ƒ Vẽ DFD ngữ cảnh ƒ Tìm các hồ sơ dữ liệu ƒ Lập ma trận thực thể - chức năng „ Lμm mịn PDFD cho các mức từ DFD ngữ cảnh (sử dụng các yếu tố từ mô hình nghiệp vụ) Bộ mụn Cụng nghệ phần mềm – ĐHCN 44
  45. Ví dụ: các mức lμm mịn DFD NguyễnVănVỵ aa bb A1A1 F0F0 A2A2 Mữc ngữ cảnh F2 c f S2 aa F1 S1 Mức 0 F5 d F6 bb d F3 e g s2 f Mức 1 F5.1 F5.2 g e Bộ mụn Cụng nghệ phần mềm – ĐHCN 45
  46. Biểu đồ ngữ cảnh hệ thống NguyễnVănVỵ ƒ Mô tả hệ thống trong môi tr−ờng ƒ Hệ thống: lμ một tiến trình duy nhất ƒ Môi tr−ờng: các tác nhân có t−ơng tác với hệ thống ƒ T−ơng tác: các luồng dữ liệu giữa tác nhân-hệ thống Yêu cầu đặt vé Hệ thống Khách hμng vé bán vé DFD hệ thống bán vé Bộ mụn Cụng nghệ phần mềm – ĐHCN 46
  47. Ví dụ: biểu đồ luồng dữ liệu mức 0 NguyễnVănVỵ Khách yêu cầu hμng 1.0 2.0 phân tich Kiểm tra Bảng giờ tầu yêu cầu giờ tầu 3.0 4.0 vé Khách đặt chỗ Phát hμnh vé hμng DS đặt chỗ bảng giá Bộ mụn Cụng nghệ phần mềm – ĐHCN 47
  48. Mô hình thực thể - mối quan hệ (Entity - Relationships model) NguyễnVănVỵ Khái niêm. Các phần tử mô hình thực thể liên kết vμ bản số của mối quan hệ thực thể thuộc tính kế thừa Bộ mụn Cụng nghệ phần mềm – ĐHCN 48
  49. Khái niệm(t) NguyễnVănVỵ Thực thể: chỉ lớp các ƒ đối t−ợng thế giới thực  có đặc tr−ng chung ƒ khái niệm độc lập  ta muốn xử lý Quan hệ: chỉ mối quan hệ vốn có ƒ t−ơng tác hoặc giữa các ƒ phụ thuộc hay sở hữu thực thể Thuộc tính: Kế thừa: ƒ các đặc tr−ng ƒ sự thừa kế giữa ƒ của thực thể hay mối quan hệ các thực thể Bộ mụn Cụng nghệ phần mềm – ĐHCN 49
  50. Ví dụ về mô hình E-R NguyễnVănVỵ Quan hệ t−ơng tác Học kỳ mãmôn mã sv tên tênmôn sinh viên học môn học địa chỉ của số học trình thuộc mã tr−ờng têntr−ờng mãngμnh tênngμnh tr−ờng ngành lớp vật lớp khái Quan hệ phụ thể niệm thuộc, sở hữu Bộ mụn Cụng nghệ phần mềm – ĐHCN 50
  51. Tầm quan trọng của mô hình E-R NguyễnVănVỵ „ Phân tích dữ liệu độc lập với việc l−u trữ vμ xử lý „ Nghiên cứu phạm vi miền thông tin „ Tạo ra mô hinh trừu t−ợng h−ớng khách hμng (mô hình khái niệm), trực quan: lμm công cụ giao tiếp „ Xác định mối quan hệ mang tính cấu trúc giữa các dữ liệu. Dễ dμng chuyển sang mô hình thiết kế Bộ mụn Cụng nghệ phần mềm – ĐHCN 51
  52. Các b−ớc xây d−ng NguyễnVănVỵ a. Đầu vào  Các hồ sơ sử dụng (đã , sẽ dùng)  Từ diển dữ liệu (mô tả chi tiết mỗi mục tin) b. Các b−ớc y Liệt kê, chính xác hóa, chọn mục tin từ hồ sơ y Xác định các thực thể vμ thuộc tính y Xác định các mối quan hệ vμ thuộc tính y Vẽ biểu đổ mô hình y Rút gọn, hoμn thiện mô hình Bộ mụn Cụng nghệ phần mềm – ĐHCN 52
  53. Từ điển dữ liệu NguyễnVănVỵ „ Ph−ơng pháp (văn phạm) có tính hinh thức để mô tả dữ liệu mμ hệ thống xử lý „ Ký pháp để mô tả các dữ liệu điều khiển vμ miền giá trị của chúng (vd. on/off) „ Chứa đựng các thông tin về nơi (mô đun) vμ cách thức xử lý dữ liệu „ Có các rμng buộc nghiệp vụ lên nó „ Th−ờng đ−ợc tạo bằng các công cụ trợ giúp (CASE) Bộ mụn Cụng nghệ phần mềm – ĐHCN 53
  54. Khoản mục từ điển dữ liệu NguyễnVănVỵ „ Tên (Name): tên dữ liệu „ Biệt danh (Aliases): tên gọi khác „ Vị trí (Where): nơi (môđun) xử lý/sử dụng „ Cách thức (How): vai trò của dữ liệu, cách thức xử lý „ Ký pháp (Description): ký pháp mô tả dữ liệu „ Định dạng (format): kiểu, quy mô, giá trị mặc định „ Quy tắc nghiệp vụ (rules): rμng buộc liên quan đến dữ liệu khác Bộ mụn Cụng nghệ phần mềm – ĐHCN 54
  55. Lμm bản mẫu trong phân tích NguyễnVănVỵ Trong nhiều tr−ờng hợp, mô hình chạy thử lμ ph−ơng pháp duy nhất để xác định yêu cầu phần mềm lớn, phức tạp bản mẫu (= trực quan)  bản mẫu phần mềm: phát triển yêu cầu  bản mẫu phần cứng: kiểm tra thiết kế Bộ mụn Cụng nghệ phần mềm – ĐHCN 55
  56. Các b−ớc lμm bản mẫu NguyễnVănVỵ B−ớc 1: Đánh giá yêu cầu vμ xác định có nên lμm bản mẫu không độ phức tạp, chủng loại, khách hμng B−ớc 2: Biểu diễn vắn tắt yêu cầu yêu cầu chức năng/yêu cầu phi chức năng B−ớc 3: Thiết kế nhanh kiến trúc, cấu trúc dữ liệu Bộ mụn Cụng nghệ phần mềm – ĐHCN 56
  57. Các b−ớc lμm bản mẫu NguyễnVănVỵ B−ớc 4: Phát triển, kiểm thử - sử dụng các thμnh phần sẵn có - dùng các ngôn ngữ bậc cao - các thuật toán dễ cμi đặt B−ớc 5: Ng−ời dùng đánh giá b−ớc quan trọng nhất??? B−ớc 6: Lặp lại 2~5 cho đến khi đủ yêu cầu Bộ mụn Cụng nghệ phần mềm – ĐHCN 57
  58. Ưu điểm, nh−ợc lμm bản mẫu NguyễnVănVỵ  Loại bớt hiểu nhầm  Phát hiện thiếu hụt chức năng vd: soạn thảo kéo theo kiểm tra chính tả  Phát hiện các điểm yếu: - khó sử dụng, - thao tác không an toμn  Kiểm tra tính khả thi/hữu ích - có thể xây dựng đ−ợc không - có thực sự cần không Bộ mụn Cụng nghệ phần mềm – ĐHCN 58
  59. Ưu điểm, nh−ợc lμm bản mẫu NguyễnVănVỵ Lμm cơ sở cho đặc tả lμm phần mềm giống nh− thế nμy, nh−ng tốt hơn  Huấn luyện ng−ời sử dụng  Hỗ trợ kiểm thử (so sánh kết quả) lμm bản mẫu lμ kỹ thuật tránh rủi ro Bộ mụn Cụng nghệ phần mềm – ĐHCN 59
  60. Ưu điểm, nh−ợc lμm bản mẫu NguyễnVănVỵ  Các yêu cầu phi chức năng th−ờng không đ−ợc thể hiện đầy đủ Lμm tăng chi phí: cần phải −ớc l−ợng chính xác chi phí của bản mẫu  Các yêu cầu thay đổi quá nhanh khiến bản mẫu trở nên vô nghĩa Ng−ời dùng không dùng bản mẫu theo cách thông th−ờng (kết quả đánh giá không có giá trị) Bộ mụn Cụng nghệ phần mềm – ĐHCN 60
  61. Ngôn ngữ lμm bản mẫu NguyễnVănVỵ „ Java „ Visual Basic „ Prolog, Lisp, Python „ Các ngôn ngữ script khác „ Perl, php, shell script Bộ mụn Cụng nghệ phần mềm – ĐHCN 61
  62. Bản mẫu giao diện/mẫu trực quan NguyễnVănVỵ „ Sử dụng các ngôn ng−/công cụ trực quan „ VB „ Delphi, J Builder „ FrontPage „ Sử dụng lại một l−ợng lớn các th− viện có sẵn „ Tính cấu trúc không cao, khó tích hợp kết quả của nhiều nhóm, khó bảo tri Bộ mụn Cụng nghệ phần mềm – ĐHCN 62
  63. Các ph−ơng pháp đặc tả NguyễnVănVỵ Có nhiều ph−ơng pháp, phân lọai: ƒ Đặc tả phi hình thức ƒ Đặc tả bán hình thức ƒ Đặc tả hình thức hoá „ Đặc tả phi hình thức:  Bằng ngôn ngữ tự nhiên  Bằng bảng, sơ đồ, hình vẽ tùy chọn ƒ không chặt chẽ, dễ hiểu nhầm ƒ nhiều cách biểu diễn cho một khái niệm ƒ khó phân hoạch, khó sửa đổi Bộ mụn Cụng nghệ phần mềm – ĐHCN 63
  64. Đặc tả bán hình thức NguyễnVănVỵ „ Đặc tả dựa trên mô hình  khái niệm  ký pháp độ họa  quy tắc biểu diễn  các b−ớc xây dựng  giải thích ™ Mức hình thức hóa khác nhau, tùy mức độ hình thức hóa các khái niệm & quy tắc biểu diễn ™ Xử lý mô hình cần sự tham gia của con ng−ời ™ Nhiều loại mô hình  ứng dụng rộng rãi Bộ mụn Cụng nghệ phần mềm – ĐHCN 64
  65. Ví dụ: đặc tả bán hình thức NguyễnVănVỵ Mô hình luồng dữ liệu (DFD) Mô hình thực thể  mối quan hệ (E-R model) Mô hình dữ liệu quan hệ Các mô hình nghiệp vụ, mô hình phân tích h−ớng đối t−ợng với UML Bộ mụn Cụng nghệ phần mềm – ĐHCN 65
  66. Đặc tả hình thức hóa NguyễnVănVỵ „ Biểu diễn mô hình toán học ƒ khái niệm vμ ký pháp toán học ƒ quy tắc khai báo vμ biểu diễn biểu thức ƒ các luật biến đổi biểu thức ™ Có thể tự động hóa giải mô hình ™ Sử dụng mô hình cho chứng minh, kiểm chứng ™ Khó hiểu, khó sử dụng "không ai biết chắc phải lμm gì khi ch−a có đặc tả" Bộ mụn Cụng nghệ phần mềm – ĐHCN 66
  67. Đặc tả hình thức: Ví dụ NguyễnVănVỵ QUEUE (Elem: [Unefined ặ Elem] ) Sort: Queue làm giàu từ List Imports: INTEGER Đặc tả này định nghĩa một hàng đợi cú cấu trỳc dữ liệu vào trước ra trước. Do đúnúcúthể được đặc tả như một danh sỏch với phương thức chốn là thờm một phần tử vào cuối của hàng đợi. Mụ tả cỏc phương thức của hàng đợi được trỡnh bày ở hỡnh 10.12 Get (Queue) ặ (Elem, Queue) Get (Create) = (Undefined, Create) Get (Cons (Q, v)) = (Head (Q), Tail (Cons (Q, v ))) Đặc tả đại số kiểu hàng đợi Queue Bộ mụn Cụng nghệ phần mềm – ĐHCN 67
  68. Đặc tả hình thức: ví dụ NguyễnVănVỵ unsigned integer digit unsigned number + unsigned integer . digit E unsigned integer - Bộ mụn Cụng nghệ phần mềm – ĐHCN 68
  69. đặc tả hinh thức hóa NguyễnVănVỵ  Ưu điểm tính chính xác (duy nhất) của định nghĩa đúng đắn??? Nh−ợc điểm - khó hiểu, tốn thời gian mô tả - không áp dụng đ−ợc với mọi bμi toán (các yêu cầu phi chức năng) Cần phối hợp giữa đặc tả hình thức vμ đặc tả phi hình thức Bộ mụn Cụng nghệ phần mềm – ĐHCN 69
  70. Ngôn ngữ đặc tả hình thức NguyễnVănVỵ Đặc tả yêu cầu: ƒ Z: mô tả biến đổi trạng thái ƒ L−ới Petri ƒ Đặc tả đại số ƒ Phương pháp máy trạng thái Đặc tả thiết kế: ƒ RAISE ƒ flowchart, pseudo co Bộ mụn Cụng nghệ phần mềm – ĐHCN 70
  71. Tài liệu yêu cầu NguyễnVănVỵ a. Yêu cầu tμI liệu  Chỉ mô tả về chức năng, rμng buộc  Không mô tả về ph−ơng thức cμi đặt  Phải dễ thay đổi - khó xác định đ−ợc đầy đủ chính xác ngay - phải qua nhiều b−ớc xét duyệt lại Bộ mụn Cụng nghệ phần mềm – ĐHCN 71
  72. Định dạng của tμi liệu yêu cầu NguyễnVănVỵ Chuẩn IEEE 830-1984 1. Giới thiệu 2. Mô tả chung 3. Yêu cầu chi tiết 1. Giới thiệu 1.1 Mục đích 1.2 Phạm vi 1.3 Định nghĩa (định nghĩa, từ viết tắt) 1.4 Tμi liệu tham khảo 1.5 Mô tả cấu trúc tμi liệu Bộ mụn Cụng nghệ phần mềm – ĐHCN 72
  73. Định dạng của tμi liệu yêu cầu NguyễnVănVỵ 2. Mô tả chung 2.1 Tổng quan về sản phẩm 2.2 Chức năng sản phẩm 2.3 Đối t−ợng ng−ời dùng 2.4 Rμng buộc tổng thể 2.5 Giả thiết vμ sự lệ thuộc Bộ mụn Cụng nghệ phần mềm – ĐHCN 73
  74. Định dạng của tμi liệu yêu cầu NguyễnVănVỵ 3. Yêu cầu chi tiết 3.1 Yêu cầu chức năng 3.1.1 Yêu cầu chức năng 1 3.1.1.1 Giới thiệu 3.1.1.2 Dữ liệu vμo 3.1.1.3 Xử lí 3.1.1.4. Kết quả 3.1.2 Yêu cầu chức năng 2  3.1.n Yêu cầu chức năng n  Bộ mụn Cụng nghệ phần mềm – ĐHCN 74
  75. Định dạng của tμi liệu yêu cầu NguyễnVănVỵ 3. Yêu cầu chi tiết 3.5 Thuộc tính 3.5.1 Tính bảo mật 3.5.2 Tính bảo trì 3.6 Các yêu cầu khác Phụ lục Bộ mụn Cụng nghệ phần mềm – ĐHCN 75
  76. Câu hỏi ôn tập NguyễnVănVỵ 1. Phân tích yêu cầu nghĩa lμ gì? 2. Mục tiêu của phân tích yêu cầu lμ gì? 3. Các công đoạn của tiến trình phân tích yêu cầu? 4. Nhứng khó khăn của phân tích yêu cầu? 5. Có những loại yêu cầu nμo? 6. Nêu những yêu cầu phi chức năng? 7. Nêu các nguyên lý của phân tích yêu cầu? 8. Các ph−ơng pháp thu thập thông tin cho các yêu cầu lμ những ph−ơng pháp nμo? 9. Đặc tả yêu cầu cần có những tính chất gì? Bộ mụn Cụng nghệ phần mềm – ĐHCN 76
  77. Câu hỏi ôn tập NguyễnVănVỵ 9. Nội dung thẩm định yêu cầu lμ gì? 10. Các ph−ơng pháp mô hình hoá để phân tích yêu cầu lμ những ph−ơng pháp nμo? 11. Nêu các b−ớc lμm mẫu để xác định yêu cầu? 12. Ph−ơng pháp lμm mẫu để xác định yêu cầu có những −u vμ nh−ợc điểm gi ? 13. Những ngôn ngữ nμo đ−ợc dùng lμm mẫu? Có những loại ph−ơng pháp đặc tả nμo? Mô tả tóm tắt nội dung của nó? 14. Trình bμy nội dung đặc tả yêu cầu theo chuẩn IEEE 843- 1984? Bộ mụn Cụng nghệ phần mềm – ĐHCN 77
  78. Câu hỏi và thảo luận NguyễnVănVỵ Bộ mụn Cụng nghệ phần mềm – ĐHCN 78