Bài giảng Công nghệ phần mềm - Chương 3: Khảo sát và phân tích yêu cầu - Dương Thành Phết

pdf 101 trang cucquyet12 5020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 3: Khảo sát và phân tích yêu cầu - Dương Thành Phết", để 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:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_3_khao_sat_va_phan_tich.pdf

Nội dung text: Bài giảng Công nghệ phần mềm - Chương 3: Khảo sát và phân tích yêu cầu - Dương Thành Phết

  1. TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN CÔNG NGHỆ PHẦN MỀM Chương 3: KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU Thời gian: 6 tiết Giảng viên: ThS. Dương Thành Phết Email: phetcm@gmail.com Website: Tel: 0918158670 – facebook com/DuongThanhPhet 1
  2. NỘI DUNG 1. Thu thập yêu cầu phần mềm 2. Phân tích yêu cầu 3. Đặc tả yêu cầu 4. Xét duyệt yêu cầu 2
  3. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.1. Thu thập yêu cầu là gì?  Mỗi giai đoạn phát triển hệ thống đòi hỏi sự trao đổi giữa nhà phát triển và người dùng để nhận được thông tin có ích và tìm một dải các câu hỏi về ứng dụng. Ví dụ: Khi phân tích tính khả thi, các câu hỏi tương đối rộng và tổng quát:  Đâu là phạm vi của vấn đề?;  Cách tốt nhất để tự động hoá là gì?;  Công ty có cố gắng để phát triển ứng dụng không?;  Công ty có hỗ trợ việc phát triển ứng dụng không? 3
  4. 1. THU THẬP YÊU CẦU PHẦN MỀM Khi phân tích yêu cầu cần tìm các thông tin liên quan đến ứng dụng như:  Các dữ liệu cần thiết là gì?  Các xử lý nào được tiến hành;  Các thông tin chi tiết liên quan? Khi thiết kế cần phát triển thêm: Làm thế nào thông tin có liên quan tới ứng dụng:  Làm thế nào chuyển ứng dụng vào môi trường đã chọn?  Làm thế nào thiết kế dữ liệu logic được chuyển vào thiết kế dữ liệu vật lý?  Các module chương trình được phối hợp với nhau 4 như thế nào?
  5. 1. THU THẬP YÊU CẦU PHẦN MỀM  Các thông tin không xuất phát đâu khác ngoài chính từ yêu cầu của người dùng. Nhiệm vụ của nhà phát triển là phải nắm bắt được các thông tin trên.  Có nhiều cách để thu thập dữ liệu: Phỏng vấn - họp nhóm - quan sát - giới thiệu trước chương trình sau đó xin ý kiến - ấn định công việc tạm thời - làm việc chung - xem xét tài liệu nội bộ, tài liệu ngoài Mỗi phương pháp có ưu, nhược điểm riêng.  Nhà phát triển phần mềm phải biết vận dụng linh hoạt các phương pháp để thu được thông tin một cách hiệu quả nhất 5
  6. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.2. Các tính chất của dữ liệu. Các dữ liệu được phân biệt theo một vài khía cạnh:  Định hướng thời gian.  Cấu trúc.  Nhập nhằng.  Ngữ nghĩa.  Độ lớn. 6
  7. 1. THU THẬP YÊU CẦU PHẦN MỀM  Mỗi yếu tố trên đều quan trọng trong việc xác định các đặc tả của ứng dụng, hướng dẫn cho CNPM biết số lượng và kiểu thông tin nên được chọn.  Các kiểu dữ liệu khác nhau có liên quan tới các loại ứng dụng khác nhau và đòi hỏi các kỹ thuật khai thác thông tin khác nhau.  Không chú ý tới các đặc tính của dữ liệu sẽ dẫn tới lỗi phân tích thiết kế.  Bên cạnh việc thu thập thông tin, cần sử dụng các kỹ thuật định lượng thông tin và biên dịch ứng dụng. 7
  8. 1. THU THẬP YÊU CẦU PHẦN MỀM Tính chất 1: Hướng thời gian. “Tính hướng thời gian của dữ liệu đề cập tới quá khứ, hiện tại hoặc tương lai của ứng dụng.”  Các dữ liệu quá khứ Ví dụ, có thể mô tả công việc đã được biến đổi thế nào qua thời gian, các quy định ảnh hưởng thế nào tới nhiệm vụ, vị trí của nó trong tổ chức. Các thông tin quá khứ là chính xác, đầy đủ. 8
  9. 1. THU THẬP YÊU CẦU PHẦN MỀM  Các thông tin hiện tại là các thông tin đang xảy ra. Ví dụ thông tin ứng dụng hiện tại liên quan tới quá trình hoạt động của công ty, số lượng các lệnh được thực hiện trong ngày hoặc số lượng các hang hoá được sản xuất, các chính sách, sản phẩm, Các thông tin hiện tại nên được chuyển thành các tư liệu cho phù hợp với đội ngũ phát triển để tăng sự hiểu biết của họ về ứng dụng và phạm vi của bài toán 9
  10. 1. THU THẬP YÊU CẦU PHẦN MỀM  Các đòi hỏi trong tương lai liên quan đến các sự thay đổi sẽ diễn ra, chúng không chính xác và rất khó kiểm tra. Các dự đoán kinh tế, khuynh hướng tiếp thị, kinh doanh . 10
  11. 1. THU THẬP YÊU CẦU PHẦN MỀM Tính chất 2: Tính có cấu trúc. “Thông tin thu thập được là những thông tin được tổ chức theo một cấu trúc (khuôn mẫu) nhất định” Có như vậy mới thể hiện một ý nghĩa phản ánh một đối tượng nào đó, điều này là hiển nhiên. Tuy nhiên, trong quá trình thu thập dữ liệu, có khi không hiểu được cấu trúc của thông tin phản ánh, mà rất có thể hiểu theo hướng khác. 11
  12. 1. THU THẬP YÊU CẦU PHẦN MỀM  Cấu trúc của thông tin định hướng về phần mở rộng theo đó thông tin có thể được phân loại theo một cách nào đó.  Cấu trúc có thể tham chiếu tới các hàm, môi trường hoặc dạng dữ liệu hạy hình thức xử lý.  Các thông tin thay đổi từ phi cấu trúc cho tới cấu trúc mà phần cấu trúc được xác định bởi công nghệ phần mềm (SE). 12
  13. 1. THU THẬP YÊU CẦU PHẦN MỀM Thực tế khi phân tích chức năng của nghiệp vụ:  Người quản lý hệ thống không thể kể ra hết vì đó là các công việc của từng bộ phận, cá nhân.  Nên ta chỉ nắm được những cái tổng quan (có tính trừu tượng cao - không rõ ràng, cụ thể).  Với danh sách các chức năng như vậy thì khó có thể thấy được tính cấu trúc của nó. Các nhà phân tích lại phải "ngồi lại" và tổ chức lại các chức năng nghiệp vụ đó. Như vậy thì khi xây dựng chương trình, tránh làm đi làm lại các chức năng giống nhau giữa các bộ phận trong thực tế. Mà ta chỉ cần nêu ra một liên kết (link) từ bộ phận (module) này đến bộ phận khác. 13
  14. 1. THU THẬP YÊU CẦU PHẦN MỀM  Tính "không chuẩn" của dữ liệu thể hiện rõ nhất ở thông tin trong một tờ "hoá đơn".  Hoá đơn thanh toán thể hiện rất nhiều thông tin, như: Số HD, Tên HĐ, Tên khách hàng, Địa chỉ khách hàng,  Sau đó là một bảng liệt kê chi tiết tên các mặt hàng, đơn giá, số lượng, thành tiền Nhưng trong thực tế, không một bảng dữ liệu có khuôn dạng giống như một hoá đơn có mặt trong kho dữ liệu. Điều này là do liên kết dữ liệu từ các bảng khác mà thành, tránh lưu trữ trùng lặp quá nhiêu thông tin. Do vậy, các nhà thiết kế dữ liệu đã tổ chức lại cấu trúc 14 của dữ liệu cần lưu trữ.
  15. 1. THU THẬP YÊU CẦU PHẦN MỀM Tính chất 3: Đầy đủ.  Hơn lúc nào hết, khi tìm hiểu về một đối tượng hay lĩnh vực nào đó, ta luôn cần thông tin phản ánh về nó một cách đầy đủ và chính xác nhất có thể có.  Về mặt lý thuyết thì không bao giờ ta có được toàn bộ thông tin về đối tượng hay lĩnh vực mà ta xử lý.  Trong thực tế cũng như vậy, thông tin mà ta có chỉ là tạm đủ để ta có thể xử lý mà thôi. 15
  16. 1. THU THẬP YÊU CẦU PHẦN MỀM  Các thông tin có thể xếp theo cấp độ tính đầy đủ mà cao nhất là mọi thông tin cần thiết sẽ được biểu diễn.  Mỗi kiểu ứng dụng đòi hỏi một mức độ đầy đủ khác nhau.  Các hệ thống xử lý giao dịch luôn tiếp cận các thông tin đầy đủ và chính xác (ví dụ hệ thống bán vé máy bay).  Tuy nhiên các hệ thống xây dựng theo kiến trúc hệ chuyên gia hay trí tuệ nhân tạo (AI) là minh hoạ tốt nhất việc xử lý thông tin không đầy đủ. 16
  17. 1. THU THẬP YÊU CẦU PHẦN MỀM Tính chất 4: Nhập nhằng.  Tính nhập nhằng là một thuộc tính của dữ liệu không trong sáng về nghĩa hoặc có nhiều nghĩa một cách có chủ định. Tính chất này liên quan đến mức độ ngữ nghĩa. Ví dụ, nhìn thấy một cửa hiệu có biển “Giặt là hấp”, thì một cậu bé có thể hỏi: “Tại sao giặt lại là hấp?” Vào hoàn cảnh này, sẽ phải mất rất nhiều công sức để giải thích. Như vậy có hiện tượng “ông nói gà, bà hoá cuốc”. Để giải quyết vấn đề này cần căn cứ vào ngữ cảnh. 17
  18. 1. THU THẬP YÊU CẦU PHẦN MỀM Tính chất 5: Ngữ nghĩa.  Mọi người trong một tổ chức đều có một tập hợp các định nghĩa cho biết các thuật ngữ, chính sách hoặc các hành động .  Ngữ nghĩa rất quan trọng với việc phát triển ứng dụng và với chính bản thân ứng dụng đó.  Nếu mọi người dùng chung một thuật ngữ mà có cách hiểu khác nhau thì sẽ dẫn đến không thể trao đổi thông tin được.  Đối với ứng dụng thì dữ liệu sẽ không bao giờ xử lý được cho đến khi người sử dụng hiểu được ngữ nghĩa của dữ liệu này. 18
  19. 1. THU THẬP YÊU CẦU PHẦN MỀM  Các ứng dụng sẽ có ý nghĩa xác định với mục dữ liệu được định tính thông qua việc đào tạo và sử dụng lâu dài.  Khi các cán bộ chủ chốt chuyển công tác, thì khả năng chuyển hoá ngữ nghĩa dễ mất.  Việc đánh mất ngữ nghĩa của một công ty có thể gây tổn thất rất lớn cho công ty đó. 19
  20. 1. THU THẬP YÊU CẦU PHẦN MỀM Tính chất 6: Độ lớn (volume).  Là số lượng các sự kiện nghiệp vụ hệ thống phải tiến hành trong một chu kỳ nào đó.  Volume của tạo mới hay thay đổi khách hàng được tiến hành theo tháng hoặc năm, trong đó volume của giao dịch được tiến hành theo ngày giờ hoặc là theo peak volume (peak volume là số các giao dịch được thực hiện trong thời kỳ bận nhất, cuối năm, cuối các quý, chuẩn bị cho báo cáo nộp thuế.  Volume của dữ liệu là một nguồn thông tin phức tạp bởi vì số lượng thời gian cần thiết với một giao dịch đơn lẻ có thể trở thành rất quan trọng đối với lượng lớn dữ liệu cần xử lý sau này. 20
  21. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3. Các kỹ thuật thu thập dữ liệu. Các kỹ thuật thu thập dữ liệu là:  Phỏng vấn  Họp nhóm  Quan sát  Ấn định công việc tạm thời  Xem xét tài liệu  Xem xét phần mềm Mỗi kỹ thuật đều có điểm mạnh và hạn chế và số lượng và kiểu dữ liệu ta thu được khi sử dụng chúng. 21
  22. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.1. Phỏng vấn.  Là việc tập hợp một nhóm ít người trong một khoảng thời gian xác định.  Trong quá trình phỏng vấn, các câu hỏi có thể được thay đổi, qua đánh giá hoặc cảm nhận động cơ, thói quen các bộ phận, quá trình quản lý hoặc các thông tin khác .  Phỏng vấn được dẫn dắt sao cho cả 2 bên tham gia đều cảm thấy thoả mãn với kết quả.  Cuộc phỏng vấn được chuẩn bị kỹ đồng nghĩa với việc hiểu được về người đang được phỏng vấn, có thể hỏi vài câu ban đầu được chuẩn bị, 22
  23. 1. THU THẬP YÊU CẦU PHẦN MỀM Một cuộc phỏng vấn bao giờ cũng có 3 phần:  Bắt đầu: Tự giới thiệu và đặt các câu hỏi đơn giản. (từ câu hỏi tổng quát mang tính quan điểm cá nhân, chú ý đến kết quả trả lời để tìm ra mối các câu hỏi tiếp theo, tùy thái độ của người được phỏng vấn)  Giữa buổi: Tập trung vào chủ đề, lấy mọi thông tin cần lưu ý, sử dụng các kỹ thuật đã chọn ban đầu. Nếu thấy một vài thông tin quan trọng, hãy hỏi xem có thể được thảo luận sau này?  Kết thúc: Tóm tắt các thứ đã nghe, nói những gì sẽ phỏng vấn tiếp. Có thể ghi chép và đề nghị người được hỏi xem xét lại. 23
  24. 1. THU THẬP YÊU CẦU PHẦN MỀM Phỏng vấn có thể sử dụng 2 loại câu hỏi:  Câu hỏi mở: Câu hỏi có nhiều cách trả lời khác nhau, thích hợp cho các chức năng ứng dụng hiện tại cũng như đang đề nghị ý kiến, và mong đọi về ứng dụng được đề ra. Ví dụ: “Ông có thể nói cho tôi về ”, “Ông có thể mô tả làm thế nào ”.  Câu hỏi đóng: Là câu hỏi mà chỉ trả lời “có” hoặc “không” hoặc một câu trả lời cụ thể. Các câu hỏi đóng tốt cho khai thác thông tin thực tế hoặc bắt người dùng tập trung vào phỏng vấn. Ví dụ: “Bạn có dùng các báo cáo hàng tháng không ?” Với các câu trả lời “Có” thì có thể được tiếp nối bằng câu hỏi mở: “Ông có thể giải thích ” 24
  25. 1. THU THẬP YÊU CẦU PHẦN MỀM Các bước tiến hành phỏng vấn thành công:  Tiến hành đặt cuộc hẹn phù hợp với thời gian của phỏng vấn.  Chuẩn bị tốt, tìm hiểu kỹ về người được phỏng vấn.  Đúng giờ.  Có kế hoạch mở đầu: . Giới thiệu bản thân, mục đích. . Sử dụng câu hỏi mở để bắt đầu. . Luôn lưu ý vào câu trả lời. 25
  26. 1. THU THẬP YÊU CẦU PHẦN MỀM  Có kế hoạch cho nội dung chính: . Kết hợp câu hỏi đóng và mở. . Luôn bám sát cách trình bày và phát triển chi tiết. . Luôn cung cấp thông tin phản hồi, ví dụ: “Cho phép tôi trình lạ điều ông vừa nói ”. . Hạn chế ghi chép nếu thấy không tiện.  Có kế hoạch kết thúc: . Tóm tắt nội dung, yêu cầu hiệu chỉnh. . Yêu cầu xác thực lại nội dung, đánh giá lại ghi chép. . Cho biết ngày tháng sẽ nhận được báo cáo, ngày 26 tháng lấy bản hiệu chỉnh, xác nhận lại lịch làm việc.
  27. 1. THU THẬP YÊU CẦU PHẦN MỀM Các câu hỏi theo kiểu có cấu trúc hay phi cấu trúc.  Phỏng vấn có cấu trúc là phỏng vấn trong đó người được phỏng vấn đã có danh sách các mục cần duyệt qua, các câu hỏi xác định và các thông tin cần tìm hiểu đã được xác định trước.  Phỏng vấn không cấu trúc là phỏng vấn được định hướng bởi câu trả lời. Các câu hỏi phần lớn là câu hỏi mở, không có một kế hoạch ban đầu. Do vậy người đi phỏng vấn biết các thông tin cần thiết sẽ dùng từ các câu hỏi mở để phát triển chi tiết hơn về chủ đề. 27
  28. 1. THU THẬP YÊU CẦU PHẦN MỀM  Phỏng vấn có cấu trúc thích hợp khi biết về các thông tin cần thiết trước khi phỏng vấn.  Phỏng vấn phi cấu trúc thích hợp khi không thể đoán trước được chủ đề, hay chưa có thông tin gì về người được phỏng vấn. 28
  29. 1. THU THẬP YÊU CẦU PHẦN MỀM  Các trường hợp điển hình của phỏng vấn là người khách hàng bắt đầu với phỏng vấn phi cấu trúc để cho hai bên nhận thức sơ lược vấn đề. Sau đó, phỏng vấn dần dần trở thành có cấu trúc và tập trung vào các thông tin cần để hoàn chỉnh phần phân tích.  Các kết quả phỏng vấn được trao đổi lại với người được phỏng vấn trong một thời gian ngắn.  Người được phỏng vấn phải được báo trước về thời hạn đối với việc phỏng vấn. Tuy nhiên, có thể xin bố trí bổ sung phỏng vấn trong trường hợp còn nhiều điều cần hỏi hoặc nhiều người cần gặp. 29
  30. 1. THU THẬP YÊU CẦU PHẦN MỀM Bảng so sánh phỏng vấn có cấu trúc và phi cấu trúc. PHỎNG VẤN CÓ CẤU TRÚC PHỎNG VẤN PHI CẤU TRÚC - Dùng dạng chuẩn cho nhiều - Có khả năng mềm dẻo nhất câu hỏi - Cần chăm chú nghe và có kỹ Ưu - Dễ quản lý và đánh giá năng mở rộng câu hỏi. điểm - Đánh giá được nhiều mục đích. - Có thể bao được những thông - Không cần đào tạo nhiều. tin chưa biết - Có kết quả trong các phỏng - Đòi hỏi có thực hành. vấn. Nhược - Chi phí chuẩn bị lớn. - Lãng phí thời gian phỏng vấn. điểm - Tính có cấu trúc có thể không - Người được phỏng vấn có thể thích hợp cho mọi tình huống. định kiến với các câu hỏi. - Giảm tính chủ động của người - Tốn thời gian lựa chọn và phân đi phỏng vấn. tích thông tin. 30
  31. 1. THU THẬP YÊU CẦU PHẦN MỀM  Một kỹ năng tốt là phát triển các sơ đồ như là một phần của tài liệu phỏng vấn.  Khi bắt đầu một cuộc phỏng vấn mới, nên bàn bạc về các sơ đồ và đưa cho họ bản ghi chép để họ có thể kiểm tra sau này.  Bạn sẽ nhận được ngay ý kiến phản hồi về tính chính xác của sơ đồ và hiểu biết của bạn về ứng dụng.  Lợi ích của cách tiếp cận này thể hiện cả mặt kỹ năng và tâm lý. 31
  32. 1. THU THẬP YÊU CẦU PHẦN MỀM  Từ khía cạnh kỹ thuật, thường xuyên được kiểm tra lại các vấn đề được nghe.  Cho tới khi thời gian phân tích kết thúc, bạn và khách hàng đều tin chắc rằng quá trình xử lý ứng dụng là đầy đủ.  Từ khía cạnh tâm lý, bạn làm tăng niền tin của khách hàng vào khả năng phân tích bằng cách trình bày các hiểu biết của mình.  Mỗi khi bạn cải thiện sơ đồ và đi vào phân tích, bạn cũng tăng được niềm tin của người sử dụng rằng bạn có thể xây dựng được ứng dụng đáp ứng được nhu cầu của họ 32
  33. 1. THU THẬP YÊU CẦU PHẦN MỀM  Phỏng vấn thích hợp cho việc nhận thông tin đảm bảo cả số lượng lẫn chất lượng:  Các kiểu thông tin định tính là: Các ý kiến, niềm tin, thói quen, chính sách và mô tả.  Các kiểu thông tin định lượng bao gồm: Tần suất, số lượng, định lượng các mục được dùng trong ứng dụng.  Phỏng vấn là một dạng khác của thu thập dữ liệu có thể làm lạc lối, thiếu chính xác hoặc thông tin không thích hợp. Cần học cách đọc ngôn ngữ bằng cử chỉ, thói quen. Khi phỏng vấn, cần chú ý đến hành động của người được phỏng vấn để có cách ứng xử thích hợp 33
  34. 1. THU THẬP YÊU CẦU PHẦN MỀM Bảng sau liệt kê vài tình huống và kinh nghiệm xử lý Hành vi của người được phỏng vấn. Đáp ứng của người đi phỏng vấn. Đoán các câu trả lời không thừa nhận là Sau phỏng vấn, kiểm tra chéo các không biết câu trả lời. Cố nói những điều lọt tai người đi phỏng Tránh các câu hỏi dễ đoán được câu vấn, sai sự thật. trả lời, kiểm tra chéo các câu hỏi Cho thông tin không đầy đủ Kiên trì hỏi để đạt mục đích. Dừng trình bày khi người đi phỏng vấn Ghi nhanh nhất có thể, chỉ hỏi các ghi chép câu quan trọng Vội vã hay trả lời rời rạc, uể oải Nhanh chóng kết thúc, đề nghị bố trí buổi khác Thể hiện sự không quan tâm, trả lời đứt Nói chuyện vui sau đó chuyển đề tài quãng khác 34
  35. 1. THU THẬP YÊU CẦU PHẦN MỀM Hành vi của người được Đáp ứng của người đi phỏng vấn. phỏng vấn. Không muốn thay đổi môi Động viên cải thiện môi trường hiện tại và so trường hiện tại sánh 2 khuynh hướng. Không hợp tác, từ chối trả Lấy nguồn tin khác và hỏi: “Ông có quan tâm về lời những điều người khác nói về ông hay không?”. Nếu câu trả lời là “Không” thì thôi phỏng vấn. Phàn nàn về vị trí công tác, Tìm ra mấu chốt vấn đề. Cố gắng dẫn dắt về chủ lương, đề chính, ví dụ: “Dường như cơ quan ông có rất nhiều vấn đề, có thể ứng dụng mới mà chúng tôi đề xuất sẽ giải quyết được các vấn đề trên”. Là người thích thú về công Chọn lọc các thông tin cần thiết, không để bị lôi nghệ cuốn vào các vấn đề công nghệ. 35
  36. 1. THU THẬP YÊU CẦU PHẦN MỀM Phỏng vấn và gặp gỡ phù hợp với mọi loại kiểu dữ liệu do đó chúng thường xuyên được sử dụng. Ưu điểm của phỏng vấn:  Nhận được cả thông tin chất lượng và số lượng.  Nhận được cả thông tin đầy đủ và chi tiết.  Là phương pháp tốt cho các yêu cầu bên ngoài. 36
  37. 1. THU THẬP YÊU CẦU PHẦN MỀM Nhược điểm của phỏng vấn:  Đòi hỏi có kỹ năng giao tiếp.  Có thể có kết quả thiên vị vì mang tính chủ quan của người được phỏng vấn.  Có thể dẫn đến các thông tin sai lạc, không liên quan, thiếu chính xác.  Đòi hỏi phải có 3 người để kiểm tra kết quả.  Không thích hợp với số lượng lớn người. 37
  38. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.2. Quan sát. Quan sát có thể tiến hành thủ công hoặc tự động. Theo cách thủ công:  Người quan sát ghi chép lại các hoạt động, các bước xử lý công việc; Xem xác băng ghi hình.  Ghi chép/Băng ghi hình được phân tích cho các sự kiện, các hoạt động, các thông tin công việc. Theo cách tự động:  Máy tính lưu trữ chương trình thường trú, lưu lại vết của các chương trình được sử dụng, email và các hoạt động khác được xử lý.  Các file nhật ký của máy sẽ được phân tích để 38 mô tả công việc.
  39. 1. THU THẬP YÊU CẦU PHẦN MỀM Ưu điểm của quan sát:  Bao trùm được các tiêu chuẩn quyết định, quy trình suy luận, các thủ tục khớp nối (mang tính thực hành).  Kỹ sư phần mềm sẽ không bị định kiến (không bị ảnh hưởng bởi người khác) mà hoàn toàn tập trung vào vấn đề. Quan sát sẽ khắc phục ngăn cách giữa kỹ sư phần mềm và người được phỏng vấn. Nhận được các hiểu biết tốt về môi trường, vấn đề và quá trình xử lý. 39
  40. 1. THU THẬP YÊU CẦU PHẦN MỀM Nhược điểm của quan sát:  Thời gian quan sát có thể không biểu diễn cho các công việc diễn ra thông thường.  Thói quen dễ thay đổi do biết mình bị quan sát (người bị quan sát sẽ mất tự nhiên, hành động có thể bị gò ép).  Mất nhiều thời gian: Người đi quan sát xác định cái gì sẽ được quan sát, xác định thời gian cần thiết cho việc quan sát, xin sự chấp thuận của cả người quản lý và cá nhân trước khi tiến hành quan sát. 40
  41. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.3. Ấn định công việc tạm thời.  Không có gì thay thế được kinh nghiệm.  Với một công việc tạm thời, bạn có được nhận thức đầy đủ hơn về các nhiệm vụ.  Cũng vậy, đầu tiên bạn học các thuật ngữ hoàn cảnh sử dụng nó.  Thời gian kéo dài từ 2 tuần đến 1 tháng đủ dài để bạn có thể quen với phần lớn các công việc thông thường và các tình huống ngoại lệ nhưng không được quá dài để trở thành chuyên gia thực sự đối với công việc. 41
  42. 1. THU THẬP YÊU CẦU PHẦN MỀM  Công việc tạm thời cho bạn cơ sở hình thức hoá các câu hỏi về chức năng nào của phương pháp hiện thời của công việc sẽ được giữ lại và cái nào sẽ bị loại trừ hoặc thay đổi, nghiên cứu được ngữ cảnh hiện tại.  Có thể bằng công việc để thay thế cho các câu hỏi không thực hiện được. Bất lợi của công việc tạm thời là tốn thời gian và sự lựa chọn về thời gian có thể làm tối thiểu hoá vấn đề, không bao hết được các hoạt động hoặc thời gian.  Một nhược điểm khác nữa là kỹ sư phần mềm có thể thiên kiến hoá về quá trình xử lý công việc (do tự mình đã làm), nội dung làm ảnh hưởng đến công việc thiết kế sau này 42
  43. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.4. Họp nhóm (meeting)  Meeting là việc tập trung t>=3 người trong một khoảng thời gian để thảo luận về một chủ đề nhất định.  Meeting có thể vừa bổ sung vừa thay thế phỏng vấn bằng cách cho phép các thành viên kiểm tra lại các kết quả phỏng vấn cá nhân.  Meeting có thể thay thế phỏng vấn bằng cách cung cấp một diễn đàn cho các thành viên cùng tìm ra các yêu cầu và các giải pháp cho ứng dụng. 43
  44. 1. THU THẬP YÊU CẦU PHẦN MỀM  Meeting có thể làm lãng phí thời gian, nếu meeting càng lớn thì càng ít ý kiến nhất trí và thời gian để đi đến quyết định sẽ kéo dài.  Vì vậy nên có kế hoạch cho meeting. Lịch trình cung cấp trước cho các thành viên, số lượng chủ đề cần thảo luận chỉ nên thấp hơn 5 chủ đề.  Meeting nên có thời gian cố định và có địa điểm thống nhất cụ thể với các quyết định cần thiết.  Meeting không nên kéo dài quá 2 giờ để có thể đảm bảo được sự tập trung, chú ý của các thành viên. 44
  45. 1. THU THẬP YÊU CẦU PHẦN MỀM Ưu điểm của họp nhóm:  Có thể ra quyết định mà các thành viên đều phải tuân theo (đa số).  Nhận được cả thông tin tổng hợp và chi tiết.  Là phương pháp tốt cho các yêu cầu bên ngoài.  Tập hợp được nhiều người dùng liên quan. 45
  46. 1. THU THẬP YÊU CẦU PHẦN MỀM Nhược điểm của họp nhóm:  Mất nhiều công sức thời gian và tiền bạc để chuẩn bị.  Nếu số đại biểu nhiều sẽ tốn thời gian để ra được quyết định.  Các ngắt quãng trong cuộc họp dễ làm mọi người phân tán.  Dễ chuyển sang các chủ đề ít liên quan như: chính trị, thể thao, thời trang  Mời không đúng thành viên dẫn đến chậm có kết quả. 46
  47. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.5. Điều tra qua bản câu hỏi:  Được ứng dụng khi cần lấy ý kiến của đại đa số người dùng về một số thông tin để có thể tập hợp số liệu thống kê mà không có điều kiện gặp trực tiếp.  Người thu thập dữ liệu sẽ soạn trước một bản câu hỏi, có thể có sẵn các phương án lựa chọn để người dùng lựa chọn đánh dấu vào, sau đó thu lại và thống kê kết quả. Ví dụ: Bạn thường ứng dụng máy tính vào các lĩnh vực nào sau đây ? A. Giải trí. B. Công việc. C. Do ý thích. D. Không dùng. 47
  48. 1. THU THẬP YÊU CẦU PHẦN MỀM  Người thu thập không cần mất thời gian gặp trực tiếp (như phỏng vấn hoặc họp nhóm) mà vẫn thu được thông tin, không đòi hỏi kỹ năng giao tiếp.  Các câu hỏi trong danh sách có thể là dạng phỏng vấn trên giấy hoặc máy tính.  Ưu điểm chính của câu hỏi là nếu như không cần phải chỉ rõ tên của người trả lời thì thông tin các câu trả lời sẽ có tính trung thực cao hơn.  Các câu hỏi chuẩn xác cung cấp các dữ liệu thực mà theo đó các quyết định có thể được dựa vào.  Các mục câu hỏi, như là phỏng vấn có thể là câu hỏi mở hoặc đóng 48
  49. 1. THU THẬP YÊU CẦU PHẦN MỀM Ưu điểm của bản câu hỏi :  Người cho ý kiến có thể không cần biết tên do vậy cho quan điểm và cảm nhận có tính trung thực cao, có thể dựa vào đó để ra quyết định.  Có thể tiến hành với nhiều người.  Thích hợp với các câu hỏi đóng và hữu hạn.  Phù hợp với công ty đa chức năng và có thể tuỳ biến theo địa phương. 49
  50. 1. THU THẬP YÊU CẦU PHẦN MỀM Nhược điểm của bản câu hỏi :  Khó thực hiện lại được.  Các câu hỏi không được trả lời không có nghĩa là không có thông tin.  Các câu hỏi có thể khó hiểu do yêu cầu cần phải ngắn gọn  Thực hiện đánh giá có thể chậm.  Người dùng ít có khả năng đưa ra ý kiến khác (do tính đóng của các câu hỏi).  Không thể bổ xung thêm thông tin khi đã tiến hành công bố các bản câu hỏi 50
  51. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.6. Xem xét tài liệu:  Khái niệm tài liệu ám chỉ các cẩm nang, quy định, các thao tác chuẩn mà tổ chức cung cấp như là hướng dẫn cho các nhà quản lý và nhân viên.  Các tài liệu không phải luôn nằm trong đơn vị đó. Tài liệu có thể là tài liệu nội bộ, có thể là các ấn phẩm kỹ thuật, các báo cáo nghiên cứu,  Các tài liệu thực sự có ý nghĩa với kỹ sư phần mềm để tìm hiểu các lĩnh vực mà họ chưa từng có kinh nghiệm. Nó hữu ích cho việc xác định các câu hỏi về quá trình thao tác và sản xuất. Tài liệu đưa ra các thông tin mang tính khách quan 51
  52. 1. THU THẬP YÊU CẦU PHẦN MỀM  Tài liệu nội bộ mô tả được ngữ cảnh hiện thời ; phù hợp với việc nghiên cứu có tính lịch sử (quá trình hoạt động lâu dài). Tuy nhiên việc phải cung cấp tài liệu nội bộ làm cho người dùng e ngại, gây thành kiến ; khó có thể nhận biết được quan điểm, động cơ tiến hành công việc.  Tài liệu ngoài cho ta xác định được các khuynh hướng công nghiệp, ý kiến các chuyên gia, các kinh nghiệm của các công ty khác về thông tin, kỹ thuật. Tuy nhiên thông tin có thể không xác đáng, thiếu chính xác và có thể gây thành kiến. 52
  53. 1. THU THẬP YÊU CẦU PHẦN MỀM 1.3.7. Xem xét phần mềm:  Một cách thường xuyên, các ứng dụng phải thay thế các phần mềm cũ. Hệ thống hiện tại có thể đã có phần mềm hỗ trợ từ trước.  Nghiên cứu các phần mềm đã tồn tại cung cấp cho chúng ta các thông tin về quá trình xử lý công việc hiện thời và các mở rộng có ràng buộc bởi thiết kế phần mềm.  Khiếm khuyết của việc thu nhận thông tin từ việc xem xét phần mềm là tài liệu có thể không chính xác hoặc kịp thời, mà có thể không đọc được và thời gian có thể lãng phí nếu ứng dụng đã bị xoá bỏ. 53
  54. 1. THU THẬP YÊU CẦU PHẦN MỀM Kết luận:  Thu thập dữ liệu là bước khởi đầu vô cùng quan trọng trong quá trình phát triển phần mềm.  Những thông tin thu thập là căn cứ để xây dựng phần mềm và là bằng chứng xác thực các yêu cầu của người dùng có được đề cập và có được đáp ứng hay không?  Thu thập dữ liệu có thể được tiến hành trong mọi giai đoạn của quá trình phát triển ứng dụng nhưng có các mục đích khác nhau.  Các đặc tính cần lưu ý của dữ liệu cần thu thập là : tính hướng thời gian ; tính có cấu trúc ; tính đầy đủ ; tính không nhầm lẫn ; ngữ nghĩa và độ lớn. 54
  55. 1. THU THẬP YÊU CẦU PHẦN MỀM  Thu thập dữ liệu có thể theo nhiều kỹ năng: phỏng vấn ; điều tra qua bản câu hỏi ; quan sát ; hội họp ; làm việc chung ; ấn định công việc tạm thời ; xem xét tài liệu và xem xét phần mềm hiện tại.  Mỗi kỹ năng có ưu điểm và nhược điểm riêng.  Tuy nhiên ưu điểm của kỹ năng này có thể khắc phục nhược điểm của kỹ năng kia (ví dụ: các thông tin không thể hỏi được khi phỏng vấn thì có thể tìm được trong quá trình làm việc chung).  Tuỳ từng điều kiện hoàn cảnh cụ thể mà người đi thu thập tài liệu có thể áp dụng kỹ năng cho phù hợp. Mục đích chính là thu thập được nhiều thông tin có tính chân thực cao làm căn cứ cho các công việc sau 55 này
  56. 2. PHÂN TÍCH YÊU CẦU  Phân tích yêu cầu là công việc bao gồm các tác vụ xác định các yêu cầu cho một hệ thống mới hoặc được thay đổi, dựa trên cơ sở là các yêu cầu (có thể mâu thuẫn) mà những người có vai trò quan trọng đối với hệ thống, chẳng hạn người sử dụng, đưa ra.  Việc phân tích yêu cầu có ý nghĩa quan trọng đối với thành công của một dự án.  Việc phân tích yêu cầu một cách có hệ thống còn được gọi là kỹ nghệ yêu cầu (requirements engineering).  Thuật ngữ "phân tích yêu cầu" còn được áp dụng cụ thể cho công việc thuần túy phân tích (thay vì các việc khác chẳng hạn như làm rõ yêu cầu hay viết tài liệu yêu cầu). 56
  57. 3. ĐẶC TẢ YÊU CẦU 3.1. Đặc tả yêu cầu là gì?  Đặc tả một vấn đề là mô tả các đặc trưng của vấn đề đó.  Vấn đề đó có thể là đối tượng, khái niệm, một thủ tục nào đó,  Yêu cầu đầu tiên của đặc tả là phải mang tính chính xác.  Phân tích và định rõ yêu cầu là bước kỹ thuật đầu tiên trong tiến trình CNPM. 57
  58. 3. ĐẶC TẢ YÊU CẦU  Hoạt động phân tích và định rõ yêu cầu hướng tới đặc tả yêu cầu phần mềm được thể như sau: 58
  59. 3. ĐẶC TẢ YÊU CẦU  Các đặc tả thường mang tính trừu tượng hoá cao phân chia thành nhiều mức đặc tả.  Càng ở mức cao (những mức đầu tiên của quá trình làm mịn hoặc chính xác hoá) đặc tả càng trừu tượng.  Càng xuống các mức thấp hơn, đặc tả càng tiến dần tới cụ thể - tức là một thể hiện trên một máy tính cụ thể với một ngôn ngữ lập trình cụ thể - đây chính là quá trình làm mịn dần 59
  60. 3. ĐẶC TẢ YÊU CẦU 3.2. Các loại hình đặc tả. Có hai kiểu đặc tả  Đặc tả hình thức  Đặc tả phi hình thức. 60
  61. 3. ĐẶC TẢ YÊU CẦU 3.2.1. Đặc tả hình thức: Là các đặc tả chính xác, không thể dẫn tới những cách hiểu khác nhau. Đặc tả hình thức sử dụng công cụ chủ yếu là đại số và logic. Ví dụ: Đặc tả một ma trận:  Cấp của ma trận n x n (n là số tự nhiên lẻ).  Phần tử cuối của hàng 1 = phần tử đầu của hàng cuối.  Phần tử trung tâm = TB cộng các phần tử 4 góc.  Có thể diễn đạt như sau: A[n x n] = (a[i, j])n x n; n = 2k + 1, k Z. a[1, n] = a[n, 1]. 61
  62. 3. ĐẶC TẢ YÊU CẦU 3.2.2. Đặc tả phi hình thức: Diễn đạt bằng những ngôn ngữ, tuy không chặt chẽ nhưng được nhiều người biết và có thể trao đổi với nhau để chính xác hoá các điểm chưa rõ ràng, những khái niệm còn mơ hồ. Ví dụ: Có hai con hậu trên bàn cờ. Hai con hậu sẽ đụng độ nếu chúng nằm trên cùng hàng, cùng cột hoặc trên cùng một đường chéo song song với đường chéo chính hay đường chéo phụ. => Rõ ràng ở đây có một số khái niệm mơ hồ. 3.2.3. Đặc tả hỗn hợp: Phối hợp cả hai kiểu đặc tả trên. 62
  63. 3. ĐẶC TẢ YÊU CẦU Trong thực tế, có nhiều loại hình đặc tả như: Đặc tả cấu trúc dữ liệu:  Nêu các thành phần của dữ liệu Ví dụ: Đặc tả phân số: Phân_số = { x/y , x Z , y N } Số_phức = { a + b.i  a, b R } Đặc tả chức năng: Mô tả thông qua việc nêu lên các tính chất hay thuộc tính của tên vào và tên ra. 63
  64. 3. ĐẶC TẢ YÊU CẦU Đặc tả đối tượng: Bao gồm đặc tả cấu trúc dữ liệu và mô tả các chức năng. Ví dụ: Đặc tả đối tượng phân số. PS = { x/y , x Z , y N } Phép cộng: +: PS x PS PS 64
  65. 3. ĐẶC TẢ YÊU CẦU Đặc tả thao tác: Nêu lên trình tự tiến hành công việc. Ví dụ 1: x, y, z PS. Các bước cần thực hiện đối với phép cộng (+) 2 phân số. z = x + y {Quy_đồng_mẫu_số(x, y); z.tử_số = x.tử_số + y.tử_số; z.mẫu_số = x.mẫu_số; }; 65
  66. 3. ĐẶC TẢ YÊU CẦU Ví dụ 2: Quy trình Bán hàng:  Khách hàng yêu cầu được mua hàng.  Hướng dẫn khách xem và lựa chọn hàng hoá.  Thoả thuận hình thức thanh toán: Tiền mặt, séc, chuyển khoản,  Ghi hoá đơn cho khách.  Nhận tiền và giao hàng hoá cho khách. 66
  67. 3. ĐẶC TẢ YÊU CẦU Đặc tả cú pháp:  Thực chất là các định nghĩa có tính truy hồi từ tổng thể đến cơ sở. Mô tả cách lắp ghép các ký hiệu, các từ với nhau lại để tạo thành chương trình.  Ví dụ: Trong ngôn ngữ lập trình PASCAL, tên (định danh - identify) được khái quát như sau: Là dãy các ký tự bắt đầu bằng chữ cái hoặc dấu gạch nối dưới, sau đó có thể là chữ số, chữ cái hoặc dấu gạch nối dưới. =   =  = { A, B, C, , Z }  { a, b, , z } = { 0, 1, 2, , 9 } 67
  68. 3. ĐẶC TẢ YÊU CẦU 68
  69. 3. ĐẶC TẢ YÊU CẦU Đặc tả thuật toán: Các bước để giải quyết bài toán.  Kiểu đặc tả phải phù hợp với giải pháp.  Các yêu cầu của phần mềm có thể được phân tích theo một số cách khác nhau. Các ký thuật phân tích có thể dẫn tới những đặc tả trên giấy hay trên máy tính (được xây dụng nhờ CASE) có chứa các mô tả ngôn ngữ đồ hoạ và tự nhiên cho yêu cầu phần mềm.  Việc làm bản mẫu giúp đặc tả có thể được triển khai, tức là bản mẫu sẽ thể hiện những công việc thực hiện các yêu cầu. Các ngôn ngữ đặc tả hình thức dẫn đến biểu diễn hình thức. 69
  70. 3. ĐẶC TẢ YÊU CẦU 3.3. Các nguyên lý đặc tả.  Đặc tả có thể xem như một tiến trình biểu diễn.  Mục đích cuối cùng của đặc tả là các yêu cầu được biểu thị sao cho dẫn tới việc cài đặt phần mềm thành công.  Balzer và Goldman đề nghị 8 nguyên lý đặc tả tốt. 70
  71. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 1: Phân tách chức năng với cài đặt.  Theo định nghĩa, đặc tả là một mô tả về điều mong muốn (không phải là cách thực hiện).  Đặc tả ở dạng các hàm toán học: Với một tập dữ liệu đầu vào, tạo ra tập dữ liệu đầu ra.  Đặc tả là tìm ra (một hoặc nhiều) kết quả ứng với P (đầu vào), với P biểu thị một tân từ bất kỳ.  Trong đặc tả kết quả thu được phải được diến đạt một cách đầy đủ, đó là cái gì (không phải đó như thế nào).  Là vì kết quả của một hàm (toán học) của đầu vào không bị ảnh hưởng bởi môi trường bao quanh. 71
  72. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 2: Cần ngôn ngữ đặc tả hệ thống hướng tiến trình.  Xét tình huống trong đó môi trường là động và sự thay đổi của nó ảnh hưởng tới hành vi của thực thể nào đó tương tác với môi trường đó (như trong “hệ thống máy tính nhúng”).  Hành vi của nó không thể biểu diễn được ở dạng hàm (toán học) của đầu vào.  Thay vì thế, cần phải sử dụng cách biểu diễn khác - cách mô tả hướng tiến trình, trong đó đặc tả cái gì đã đạt được bằng cách xác định một mô hình các thao tác mong muốn đạt được của hệ thống dưới dạng các công việc đáp ứng chức năng đối với kích 72 thích khác nhau từ môi trường.
  73. 3. ĐẶC TẢ YÊU CẦU  Những đặc tả hướng tiến trình như vậy, trình bày một mô hình về hành vi hệ thống, thông thường đã bị loại ra khỏi các ngôn ngữ đặc tả hình thức, nhưng chúng lại là bản chất nếu nhiều tình huống động phức tạp hơn cần phải được đặc tả.  Trong thực tế, cần phải thừa nhận rằng trong những tình huống như vậy cả tiến trình cần tự động hoá lẫn môi trường tồn tại của nó đều phải được mô tả một cách hình thức.  Tức là, toàn bộ hệ thống các bộ phận tương tác phải được đặc tả chứ không chỉ một thành phần được đặc tả. 73
  74. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 3: Đặc tả phải bao gồm hệ thống có phần mềm là một thành phần trong đó  Một hệ thống bao gồm các thành phần tương tác nhau.  Chỉ bên trong hoàn cảnh của hệ thống toàn bộ và tương tác giữa các thành phần của nó thì hành vi của một thành phần riêng mới có thể được xác định. 74
  75. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 3(tt):  Một hệ thống có thể được mô hình hoá như một tập hợp các sự vật tích cực và thụ động. Những sự vật này có liên quan lẫn nhau và qua thời gian thì mối quan hệ giữa các sự vật thay đổi.  Mối quan hệ động này đưa ra sự kích thích cho các sự vật tích cực, còn gọi là các tác nhân, đáp ứng. Sự đáp ứng có thể gây ra những thay đổi thêm nữa, và do đó, tạo ra thêm kích thích để cho các tác nhân có thể đáp ứng lại. 75
  76. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 4: Đặc tả phải bao gồm cả môi trường mà hệ thống vận hành.  Tương tự, môi trường mà trong đó hệ thống vận hành và tương tác với cũng phải được xác định.  May mắn là điều này đơn thuần chỉ cần sự thừa nhận rằng bản thân môi trường cũng là một hệ thống bao gồm các sự vật tương tác, cả tích cực lẫn thụ động, mà trong đó hệ thống chỉ là một tác nhân.  Các tác nhân khác, theo định nghĩa là không thay đổi bởi vì chúng là một phần của môi trường, giới hạn phạm vi của việc thiết kế và cài đặt về sau. 76
  77. 3. ĐẶC TẢ YÊU CẦU  Trong thực tế, sự khác nhau duy nhất giữa hệ thống và môi trường của nó là ở chỗ nỗ lực thiết kế và cài đặt về sau sẽ vận hành chỉ trong đặc tả cho hệ thống.  Đặc tả môi trường làm cho “giao diện” của hệ thống được xác định theo cùng cách như bản thân hệ thống chứ không đưa vào cách hình thức khác.  Cần phải chú ý rằng bức tranh đặc tả hệ thống được trình bày ở đây chính là bức tranh của tập hợp các tác nhân xoắn xuýt nhau cao độ phản ứng với những kích thích trong môi trường (thay đổi các sự vật) do các tác nhân đó tạo ra. 77
  78. 3. ĐẶC TẢ YÊU CẦU  Chỉ có thông qua những hành động điều phối của tác nhân mà hệ thống mới đạt tới mục tiêu của nó.  Sự phụ thuộc lẫn nhau vi phạm vào nguyên lí phân tách (cô lập với các phần khác của hệ thống và môi trường).  Nhưng đây là một nguyên lí thiết kế, không phải là nguyên lí đặc tả. Thiết kế tuân theo đặc tả, và quan tâm tới việc phân rã một đặc tả thành các mẩu gần tách biệt để chuẩn bị cho cài đặt. 78
  79. 3. ĐẶC TẢ YÊU CẦU  Tuy nhiên đặc tả phải vẽ lại chính xác bức chân dung của hệ thống và môi trường của nó như cộng đồng người dùng cảm nhận theo một cách thức nhiều chi tiết như các giai đoạn cài đặt và thiết kế cần tới.  Vì mức độ chi tiết cần thiết này là khó thấy trước, nếu không nói là không thể, nên đặc tả, thiết kế và cài đặt phải được thừa nhận như một hoạt động tương tác.  Do đó điều mấu chốt là công nghệ cần có để bao quát thật nhiều cho hoạt động này khi bản đặc tả được soạn thảo và thay đổi (trong cả hai giai đoạn phát triển khởi đầu và bảo trì về sau). 79
  80. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 5: Đặc tả hệ thống là mô hình nhận thức.  Đặc tả hệ thống là mô hình nhận thức không phải là một mô hình thiết kế hay cài đặt.  Các sự vật thao tác phải tương ứng với các sự vật của lĩnh vực đó; các tác nhân phải mô hình cho các cá nhân, tổ chức và trang thiết bị trong lĩnh vực đó; các hành động thực hiện thì phải mô hình cho những hoạt động thực tế xuất hiện trong lĩnh vực. 80
  81. 3. ĐẶC TẢ YÊU CẦU  Đặc tả phải có khả năng tổ hợp vào trong nó những qui tắc hay luật bao trùm các sự vật thuộc lĩnh vực.  Một số trong những trường hợp là luật bài trừ những trạng thái (như “hai sự vật không thể đồng thời ở cùng một chỗ và vào cùng một lúc”), và do đó giới hạn hành vi của các tác nhân hay chỉ ra nhu cầu soạn thảo thêm để ngăn cản những trạng thái này khỏi nảy sinh.  Các luật khác mô tả cách các sự vật đáp ứng lại khi bị kích thích (như luật chuyển động của Newton). Những luật này, biểu thị cho “tính vật lí” của lĩnh vực, là phần cố hữu của đặc tả hệ thống. 81
  82. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 6: Đặc tả phải thể hiện tính vận hành.  Đặc tả phải đủ đầy đủ để có thể được dùng trong việc xác định liệu cài đặt được đề nghị có thoả mãn đặc tả cho những trường hợp kiểm thử không.  Tức với kết quả của việc cài đặt trên một tập dữ liệu được chọn một cách tuỳ ý, có thể dùng đặc tả để xác định tính hợp lệ cho những kết quả đó. Du không phải là một đặc tả hoàn toàn về cách thức, vẫn có thể hành động như một bộ sinh các hành vi có thể trong số những hành vi phải có của cài đặt được đề nghị. Do đó, theo một nghĩa mở rộng, đặc tả này phải là vận hành 82
  83. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 7: Đặc tả chấp nhập dung sai về tính không đầy đủ.  Không đặc tả nào có thể là đầy đủ hoàn toàn. Môi trường nó tồn tại thường quá phức tạp cho điều đó.  Một đặc tả bao giờ cũng là một mô hình - một sự trừu tượng hoá - của một tình huống.  Do đó, sẽ không đầy đủ. Hơn thế nữa, như đã được phát biểu nó sẽ tồn tại tại ở nhiều mức chi tiết. 83
  84. 3. ĐẶC TẢ YÊU CẦU  Các công cụ phân tích được sử dụng để giúp cho người đặc tả và để kiểm thử đặc tả phải có khả năng xử lí với tính không đầy đủ.  Một cách tự nhiên điều này làm cho việc phân tích bị yếu đi, khi có thể được thực hiện bằng cách mở rộng phạm vi các hành vi chấp nhận được thỏa mãn cho đặc tả, nhưng một sự suy giảm như vậy phải phản ánh các mức độ bất trắc còn lại 84
  85. 3. ĐẶC TẢ YÊU CẦU Nguyên lý 8: Đặc tả phải được cục bộ hoá và được ghép lỏng lẻo.  Các nguyên lí trước xử lí đặc tả như một thực thể tĩnh. Thực thể này nảy sinh từ cái động của đặc tả.  Cần thừa nhận dù mục tiêu chính của đặc tả là để dùng làm cơ sở cho thiết kế và cài đặt, nó không phải là một sự vật tĩnh dựng sẵn mà là một sự vật động đang trải qua thay đổi đáng kể.  Việc thay đổi xuất hiện trong ba hoạt động chính: . Phát biểu, khi một đặc tả ban đầu đang đươc tạo ra, . Phát triển, khi đặc tả được soạn thảo trong quá trình thiết kế lặp để phản ánh môi trường đã 85 thay đổi và / hoặc các yêu cầu chức năng phụ.
  86. 3. ĐẶC TẢ YÊU CẦU  Với nhiều thay đổi xuất hiện cho đặc tả, điều mấu chốt là nội dung và cấu trúc của nó được chọn để làm phù hợp hoạt động này.  Yêu cầu chính cho sự phù hợp đó là ở chỗ thông tin bên trong đặc tả phải được cục bộ hoá sao cho chỉ một phần nhỏ (một cách lí tưởng) cần phải sửa đổi khi thông tin thay đổi, và ở chỗ đặc tả cần được cấu trúc (ghép) một cách lỏng lẻo để cho từng phần có thể được thêm vào hay loại bỏ một cách dễ dàng, và cấu trúc được điều chỉnh một cách tự động. . 86
  87. 3. ĐẶC TẢ YÊU CẦU  Dù các nguyên lí được Balzer và Goldman tập trung vào tác động của đặc tả trên định nghĩa về ngôn ngữ hình thức, những lời bình luận áp dụng được cho cả mọi dạng đặc tả.  Tuy nhiên, các nguyên lí cần phải được dịch thành sự thực hiện. 87
  88. 3. ĐẶC TẢ YÊU CẦU 3.4. Các mức trừu tượng của đặc tả.  Các đặc tả được thể hiện ở một vài mức trừu tượng khác nhau cùng với mối tương liên giữa các mức.  Mỗi mức nhắm đến các đối tượng đọc khác nhau mà họ có quyền quyết định về việc dựa vào đó mà thực hiện đánh giá bản thiết kế của các nhà phát triển phần mềm.  Gồm các mức sau: 88
  89. 3. ĐẶC TẢ YÊU CẦU Mức 1: Định ra yêu cầu.  Được thể hiện bằng ngôn ngữ tự nhiên về các dịch vụ mà hệ thống sẽ phải cung cấp.  Phần này phải được viết sao cho dễ hiểu đối với khách hàng và người quản lý (người mua phần mềm và người sẽ sử dụng nó).  Kỹ thuật đặc tả phi hình thức là thích hợp cho mức đặc tả này. 89
  90. 3. ĐẶC TẢ YÊU CẦU Mức 2: Đặc tả yêu cầu.  Tài liệu nêu ra các dịch vụ một cách chi tiết hơn, còn được gọi là tài liệu đặc tả chức năng.  Đặc tả ở mức này là phải chính xác đến mức có thể làm cơ sở cho hợp đồng giữa nhà phát triển phần mềm và khách hàng.  Cần được viết sao cho dễ hiểu đối với nhân viên kỹ thuật nơi mua phần mềm và nơi phát triển.  Kỹ thuật đặc tả hình thức là thích hợp cho mức đặc tả này tuy nhiên cũng còn tuỳ thuộc vào trình độ kiến thức cơ bản của khách hàng. Tốt hơn là có thể dùng loại hình hỗn hợp để đặc tả. 90
  91. 3. ĐẶC TẢ YÊU CẦU Mức 3: Đặc tả phần mềm / đặc tả thiết kế.  Dùng làm cơ sở cho việc thiết kế và thực thi.  Cần thể hiện một quan hệ rõ ràng giữa tư liệu này và đặc tả yêu cầu.  Ta phải xác định rằng: đối tượng đọc ở đây chủ yếu là các kỹ sư phần mềm chứ không phải là người sử dụng hoặc người quản lý.  Kỹ thuật đặc tả hình hình thức là hoàn toàn phù hợp cho mức đặc tả này. 91
  92. 4. XÉT DUYỆT YÊU CẦU 4.1. Xét duyệt yêu cầu (Requirements validation)  Việc xét duyệt bản Đặc tả yêu cầu phần do cả người phát triển phần mềm và khác hàng cùng tiến hành.  Bởi vì đặc tả tạo nên nền tảng cho giai đoạn phát triển nên cần phải cực kì cẩn thận trong khi tiến hành cuộc họp xét duyệt.  Việc xét duyệt trước hết được tiến hành ở mức vĩ mô. Tại mức này, người xét duyệt cố gắng đảm bảo rằng bản đặc tả được đầy đủ, nhất quán và chính xác.  Cần đề cập tới các câu hỏi sau: 92
  93. 4. XÉT DUYỆT YÊU CẦU  Các mục tiêu đã được thiết lập cho phần mềm có nhất quán với mục tiêu của hệ thống không?  Những giao diện quan trọng với hệ thống đã được mô tả chưa?  Luồng và cấu trúc thông tin đã được mô tả thích hợp cho lĩnh vực vấn đề chưa?  Các biểu đồ có rõ ràng không? Liệu mỗi biểu đồ có thể đứng riêng không lời giải thích không?  Các chức năng chính có còn bên trong phạm vi và đã được mô tả thích hợp chưa? 93
  94. 4. XÉT DUYỆT YÊU CẦU  Liệu hành vi của phần mềm có nhất quán với thông tin nó phải xử lí và chức năng phải thực hiện không?  Các ràng buộc thiết kế có hiện thực không?  Rủi ro công nghệ phát triển là gì?  Các yêu cầu phần mềm khác đã được xem xét đến chưa?  Các tiêu chuẩn hợp lệ đã được phát biểu chi tiết chưa? Chúng có thích hợp để mô tả một hệ thống thành công không? 94
  95. 4. XÉT DUYỆT YÊU CẦU  Liệu có sự không nhất quán, bỏ sót hay dư thừa nào không?  Việc tiếp xúc với khách hàng có đầy đủ không?  Người dùng đã xét duyệt bản Tài liệu sơ bộ của người dùng hay bản mẫu chưa?  Các ước lượng về Kế hoạch dự án phần mềm bị ảnh hưởng thế nào? 95
  96. 4. XÉT DUYỆT YÊU CẦU  Để trả lời, việc xét duyệt tập trung vào mức chi tiết. Tại đây, mối quan tâm là vào từ ngữ của bản đặc tả.  Làm lộ ra vấn đề có thể ẩn náu bên trong nội dung đặc tả.  Những hướng dẫn sau đây là gợi ý về việc xét duyệt chi tiết bản đặc tả: . Phải quan sát các mối nối có sức thuyết phục (như “chắc chắn”, “do đó”, “rõ ràng”, “hiển nhiên”, “từ đó suy ra rằng”) và hỏi “Tại sao chúng lại có đó?” . Theo dõi những thuật ngữ mông lung (như “một số”, “đôi khi”, “thường”, “thông thường”, “bình thường”, “phần lớn”, “đa số”); yêu cầu làm sáng tỏ. 96
  97. 4. XÉT DUYỆT YÊU CẦU . Khi có nêu danh sách, nhưng không đầy đủ, thì phải đảm bảo mọi khoản mục đều được hiểu rõ. Chú ý vào các từ như “vân vân”, “cứ như thế”, “cứ tiếp tục như thế”, “sao cho”. . Phải chắc chắn phát biểu phạm vi không chứa những giả thiết không được nói rõ (như mã hợp lệ trong khoảng 10 tới 100. Đó là số nguyên, số thực hay số hệ 16? . Phải nhận biết về các động từ mơ hồ như “xử lí”, “loại bỏ”, “nhảy qua”, “xoá bỏ” Có thể có nhiều cách hiểu về nó. 97
  98. 4. XÉT DUYỆT YÊU CẦU . Phải nhận biết các đại từ “vu vơ” (như “mô đun vào/ra liên lạc với mô đun kiểm tra tính hợp lệ dữ liệu và đặt cờ báo kiểm soát của nó.” Cờ kiểm soát của ai? ). . Tìm các câu có chứa sự chắc chắn (như “bao giờ”, “mọi”, “tất cả”, “không một”, “không bao giờ”) rồi yêu cầu bằng chứng. . Khi một thuật ngữ được định nghĩa tường minh tại một chỗ thì hãy thử thay thế định nghĩa này vào chỗ xuất hiện của nó.  Khi một cấu trúc được mô tả theo lời thì hãy vẽ ra bức tranh để giúp hiểu được nó.  Khi một tính toán được xác định thì hãy thử với ít 98 nhất hai ví dụ.
  99. 4. XÉT DUYỆT YÊU CẦU  Một khi việc xét duyệt đã hoàn tất thì bản bản đặc tả yêu cầu phần mềm sẽ được cả khách hàng lẫn người phát triển “ký tắt”.  Bản đặc tả trở thành một “hợp đồng” cho việc phát triển phần mềm.  Những thay đổi trong yêu cầu được nêu ra sau khi bản đặc tả đã hoàn thành sẽ không bị huỷ bỏ.  Nhưng khách hàng phải lưu ý rằng từng thay đổi sau khi kí đều là một mở rộng của phạm vi phần mềm và do đó có thể làm tăng thêm chi phí và / hoặc kéo dài lịch biểu (thời gian thực hiện). 99
  100. 4. XÉT DUYỆT YÊU CẦU  Ngay cả với những thủ tục xét duyệt tốt nhất tại chỗ thì một số vấn đề đặc tả thông thường vẫn còn lại.  Bản đặc tả rất khó “kiểm thử” theo mọi cách có ý nghĩa, và do đó sự không nhất quán hay bỏ sót có thể bị bỏ qua không để ý tới.  Trong khi xét duyệt, người ta có thể khuyến cáo những thay đổi cho bản đặc tả.  Có thể sẽ cực kì khó khăn để lượng định tác động toàn cục của thay đổi; tức là, làm sao việc thay đổi trong một chức năng lại ảnh hưởng tới các yêu cầu cho chức năng khác? 100
  101. BÀI TẬP 1. Trình bày các kỹ thuật thu thập yêu cầu 2. Trình bày mô hình phân tích yêu cầu 3. Trình bày các tài liệu đặc tả yêu cầu 101 10 1