Bài giảng Nhập môn Công nghệ phần mềm - Chương 6: Nắm bắt yêu cầu phần mềm

pdf 12 trang phuongnguyen 4763
Bạn đang xem tài liệu "Bài giảng Nhập môn Công nghệ phần mềm - Chương 6: Nắm bắt yêu cầu phần mềm", để 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_nhap_mon_cong_nghe_phan_mem_chuong_6_nam_bat_yeu_c.pdf

Nội dung text: Bài giảng Nhập môn Công nghệ phần mềm - Chương 6: Nắm bắt yêu cầu phần mềm

  1. Chương 6 Nắmbắt yêu cầuphầnmềm 6.1 Nhiệmvụ củaphântíchyêucầuchứcnăng 6.2 Các artifacts cầntạora 6.3 Các worker tham gia nắmbắtyêucầu 6.4 Qui trình nắmbắtyêucầuphầnmềm 6.5 Tìm các actor và use-case 6.6 Lậpthứ tựưu tiên các use-case 6.7 Chi tiết hóa từng use-case 6.8 Cấutrúclạimôhìnhuse-case 6.9 Thiếtkế prototype giao diệnchotừng use-case 6.10 Kếtchương Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 1 6.1 Nhiệmvụ củanắmbắtyêucầuphầnmềm ‰ Nhiệmvụ củanắmbắtyêucầuphầnmềmlàxâydựng và duy trì mô hình use-case ₫ể ₫ặctả góc nhìn từ ngoài vào hệ thống, cho ta thấytấtcả các chứcnăng mà phầnmềmphải ₫áp ứng cho thế giới bên ngoài, ai là ngườithựchiệntừng chứcnăng tương ứng. ‰ Các ₫iểmbắt ₫ầu cho hoạt ₫ộng nắmbắtyêucầucóthể là : ƒ Từ mô hình nghiệpvụ (business model) cho các ứng dụng nghiệpvụ. ƒ Từ mô hình lĩnh vực (domian model) cho các ứng dụng nhúng. ƒ Từ₫ặctả yêu cầuphầnmềmcầnxâydựng nhưng ₫ượctạorồi bởi nhóm khác và/hoặc dùng phương pháp ₫ặctả khác, theo ₫ịnh dạng khác. ƒ Từ 1 ₫iểm nào ₫ónằmgiữacác₫iểmxuất phát trên. ƒ Từ không có gì. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 2
  2. 6.2 Các artifacts cầntạora ‰ Mô hình use-case = hệ thống các use-case, nó chứa: ƒ các package, nếucó, mỗi package chứa: à các lược ₫ồ use-case, mỗilược ₫ồ chứa: à 1 số Actor : người/hệ thống ngoại/thiếtbị ngoài tương tác vớihệ thống phầnmềm. à 1 số Use-case : các chứcnăng có nghĩamàhệ thống cung cấp cho actor. Thông tin chi tiết kèm theo từng use-case có thể là bảng ₫ặctả chi tiết, flow of events, các yêu cầu phi chứcnăng kèm theo. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 3 6.2 Các artifacts cầntạora à các yêu cầu ₫ặcbiệtcủatừng use-case, hay củatoànbộ các use-case ƒ Đặctả kiếntrúchệ thống phầnmềm theo góc nhìn use-case (view of use-case model) ƒ Bảng thuậtngữ chung. ƒ Các prototype giao diệnvới user (user-interface prototype) Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 4
  3. 6.2 Các artifacts cầntạora 1 Use-Case Model Use-Case System * * Use - Case Actor Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 5 6.2 Các artifacts cầntạora ‰ Ký hiệumiêutả các phầntử trong lược ₫ồ use-case : ƒ Actor : ƒ Use-case : ƒ Note : ƒ Mối quan hệ giữa2 phầntử : Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 6
  4. 6.2 Các artifacts cầntạora ‰ Mỗilược ₫ồ use-case sẽ chứa1 số actor, 1 số use-case, 1 số note và mối quan hệ giữachúng: ƒ Mối quan hệ actor − actor thường chỉ là tổng quát hóa, actor tổng quát sẽ chứanhững tính chất chung mà các actor con ít nhấtsẽ có. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 7 6.2 Các artifacts cầntạora ƒ Mối quan hệ actor − use-case thường chỉ là quan hệ kếthợp (association). ƒ Actor và use-case 1 có quan hệ nhau, nhưng chưacụ thể hóa mối quan hệ. ƒ Actor chủ₫ộng quan hệ với use-case 2 và không chờ₫ợi kếtquả hay phản ứng. ƒ use-case 3 chủ₫ộng quan hệ với actor và không chờ₫ợikết quả hay phản ứng. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 8
  5. 6.2 Các artifacts cầntạora ƒ Mối quan hệ use-case − use-case thường là 1 trong 3 mối quan hệ : tổng quát hóa, include, extend : ƒ usecase 1 chứanhững ₫iểm chung mà usecase 2 và các usecase con khác sẽ có. ƒ Trong thờigianthựchiện usecase 1 có thể ta sẽ phảithựchiện usecase 3. ƒ Trong thờigianthựchiện usecase 1 ta luôn phảithựchiện usecase 4. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 9 6.3 Các worker tham gia nắmbắt yêu cầu Customer Use-case User-Interface Architect System Specifier Designer Analyst Domain Chịu trách nhiệmvề Chịu trách nhiệmvề Expert Chịu trách nhiệmvề Chịu trách nhiệmvề Use-Case Actor Glossary Use-Case User Interface Architecture Model Prototype Description Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 10
  6. 6.4 Qui trình nắmbắtyêucầuphầnmềm Find Actors & Structure the System Analyst Use-Cases Use-Case Model Prioritize Architect Use-Cases Detail a Use-Case Specifier Use-Case Prototype User-Interface Designer User-Interface Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 11 6.5 Tìm các actor và use-case Tìm các actor củahệ thống phầnmềm ‰ Việctìmcácactor phụ thuộcvào₫iểmxuất phát : • nếuxuất phát từ mô hình nghiệpvụ hay lĩnh vựccủahệ thống thì việc tìm actor rất ₫ơngiản: dựa vào mô hình có sẵn, rút trích các actor củamôhình₫ó. • Còn nếuxuất phát từ các ý niệmmơ hồ, thậm chí là null, thì hãy cố gắng trả lờicáccâuhỏisau, nội dung trả lờisẽ chứa1 hay nhiều actor : Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 12
  7. 6.5 Tìm các actor và use-case Tìm các actor củahệ thống phầnmềm à Ai là ngườisử dụng chứcnăng chính yếucủahệ thống ? à Ai phảithựchiệncôngviệcbảodưỡng, quảntrị và giữ cho hệ thống hoạt ₫ộng tốt theo thờigian? à Hệ thống sẽ sử dụng, ₫iềukhiểnthiếtbị phầncứng nào ? à Hệ thống cầntương tác vớinhững hệ thống khác không ? Chúnglàai? à Ai hoặcphầntử nào quan tâm ₫ếnkếtquả ₫ượctạorabởi hệ thống phầnmềm? à Ai hoặcphầntử nào chịu ảnh hưởng bởikếtquả ₫ượctạo ra bởihệ thống phầnmềm? Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 13 6.5 Tìm các actor và use-case Tìm các use-case củahệ thống phầnmềm ‰ Việc tìm các use-case cũng phụ thuộcvào₫iểmxuất phát : • nếuxuất phát từ mô hình nghiệpvụ hay lĩnh vựccủahệ thống thì việc tìm use-case rất ₫ơngiản: dựa vào mô hình có sẵn, rút trích các use-case củamôhình₫ó. • Còn nếuxuất phát từ các ý niệmmơ hồ, thậm chí là null, thì hãy duyệttuầntự từng actor tìm ₫ược, ứng vớimỗi actor hãy cố gắng trả lờicáccâuhỏi sau, nội dung trả lờisẽ chứa 1 hay nhiều use-case : Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 14
  8. 6.5 Tìm các actor và use-case Tìm các use-case củahệ thống phầnmềm à Actor này yêu cầuchứcnăng gì củahệ thống ? à Actor này có phải ₫ọc/tạo/xóa/hiệuchỉnh/lưu thông tin nào củahệ thống, chúng là gì ? à Hệ thống có cầncảnh báo những sự kiện nào cho actor này, chúng là gì ? à Actor này có cầnphải báo hiệuchohệ thống về vấn ₫ề nào không ? Chúng là gì ? à Hệ thống có phảihỗ trợ 1 số công việcthương nhậtcho actor này, chúng là những công việcgì? à Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 15 6.5 Tìm các actor và use-case Nhậndạng các mối quan hệ giữa các phầntử tìm ₫ược à Cố gắng nhậndạng các mối quan hệ giữa các actor-actor, actor- usecase, usecase-usecase ìm ₫ượcrồi phát họalược ₫ồ use-case kếtquả. > User Maint enance POS Login Store Manager > > <<exten Edit User Information Add New User Remove User Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 16
  9. 6.6 Lậpthứ tựưu tiên các use-case ‰ Hệ thống phầnmềmlớnthường cung cấpnhiều use-case, việc hiệnthựctấtcả use-case 1 lần duy nhấtsẽ tốn nhiềuthờigian, kinh phí, dẫn ₫ến ₫ộ rủi ro cao. Do ₫óthường ta sẽ phát triển phầnmềm theo cơ chế lập thông qua nhiều version vớichứcnăng tăng dần : verion 1 chỉ chứa1 số ít các chứcnăng chính yếu, version 2 tăng cường theo 1 số tính năng cầnthiết, ₫ến khi xây dựng ₫ược version n chứa ₫ầy ₫ủ các chứcnăng mong muốn. ‰ Để phụcvụ việc phát triểnphầnmềm theo cơ chế tăng tiếnnhư trên, ta cần ₫ánh giá từng use-case, dựa vào 1 số tiêu chí ₫ể sắp ₫ộ ưu tiên cho các usecase, sắpxếp các use-case có thứ tự theo ₫ộ ưutiêngiảmdần. Việc phát triểnphầnmềmsẽ tuầntự hiện thựctừng use-case, từng nhóm use-case theo thứ tự từ trôn xuống. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 17 6.7 Chi tiết hóa từng use-case ‰ Nhiệmvụ của chi tiết hóa từng use-case là xây dựng các artifacts sau ₫ể miêu tả use-case ở mức ₫ộ cụ thể, rõ ràng và chi tiếtnhư có thể : ƒ Bảng ₫ặctả use-case chứanhững thông tin như : tên, nhiệm vụ, tầmvực, mức ưu tiên, actor chính, ₫iềukiện ₫itrước, ƒ Thông tin quan trọng nhất trong bảng ₫ặctả use-case là “flow of events” củause-case ₫ó, nó gồm: à 1 kịch bản chính miêu tả thứ tự các hoạt ₫ộng cầntiến hành ₫ể thựchiện use-case. Đây là kịch bản ₫ược ₫ánh giá là thường xảyranhất. à 1 số kịch bảnphụ. ƒ Các lược ₫ồ ₫ộng ₫ể thể hiệnhànhvi ₫ộng trong khi thựchiện use-case tương ứng. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 18
  10. 6.7 Chi tiết hóa từng use-case ‰ Các kịch bản thi hành use-case phụ có thể xảy ra vì các lý do sau : ƒ Actor có thể chọnthựchiện 1 nhánh trong nhiều nhánh. ƒ Nếuhơn 1 actor dùng use-case, mỗi use-case có thể kích hoạt việcthựchiện1 kịch bảnriêng, vàmỗikịch bảncóthểảnh hưởng lẫn nhau. ƒ Hệ thống có thể phát hiệnlỗinhập thông tin từ user hay lỗi trong lúc thựchiện các hoạt ₫ộng. ƒ 1 số tài nguyên không hoạt ₫ộng tốt làm use-case không hoàn tất công việc ₫úng. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 19 6.7 Chi tiết hóa từng use-case Xây dựng các lược ₫ồ thể hiệnhànhvi ₫ộng cho use-case ‰ Khi sự tương tác giữa actor và các use-case liên quan có ₫ộ phức tạp cao, ta nên dùng dạng ₫ặctả trực quan ₫ể diễntả hành vi ₫ộng, nó sẽ giúp người phân tích hiiễurõhơnvề use-case : ƒ Lược ₫ồ trạng thái ₫ể miêu tả sự chuyểntrạng thái của thành phầnphầnmềm trong quá trình thựchiện use-case. ƒ Lược ₫ồ cộng tác ₫ể miêu tả sự cộng tác giữacác₫ốitượng use-case và ₫ốitượng actor trong việcthựchiệnuse-case. ƒ Lược ₫ồ hoạt ₫ộng ₫ể miêu tả thuậtgiảivĩ mô ₫ể thựchiện use-case. ‰ Không nên lạmdụng các lược ₫ồ ₫ộng vì ₫ây là ngôn ngữ của người phát triển, user và khách hàng khó lòng hiểunổi. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 20
  11. 6.8 Cấutrúclại mô hình use-case ‰ Mô hình use-case ban ₫ầuthường còn rấtlộnxộn, chưa ₫ầy ₫ủ, khó ₫ọc và duy trì. Do ₫ó, ta phảimôhìnhlại nó thông qua các hoạt ₫ộng sau : ƒ Nhậndạng actor tổng quát chứa các tính chất chung củanhiều actor khác. ƒ Nhậndạng usecase tổng quát chứa các tính chất chung của nhiều usecase khác. ƒ Nhậndạng các usecase nớirộng củatừng usecase chính. ƒ Nhậndạng các usecase phụ thêm (include) củatừng usecase chính. ƒ Di dời, phân phốilại các actor và use-case vào các lược ₫ồ use-case sao cho chúng thỏa mãn tính kết dính cao nhấtvà ₫ộ phụ thuộcítnhất. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 21 6.9 Thiếtkế prototype giao diệnchotừng use-case ‰ Mỗi use-case là 1 chứcnăng mà phầnmềmphải ₫áp ứng vớibên ngoài. Thường ₫ể thựchiện 1 use-case, ta cần 1 hay nhiều ₫ối tượng giao diện, mỗi ₫ốitượng giao diệnsẽ giúp actor tương tác ₫ượcvớiphầnmềmhầu cung cấp thông tin, chọnlựa option, kích hoạtchứcnăng chạy, xem và kiểmtrakếtquả do phầnmềmtạo ra. ‰ Dựavào₫ặctả chi tiếtcủa use-case, ta sẽ phát họasơ lược (prototype) phầntử giao diện cho use-case. ‰ Lưu ý, prototype hoàn toàn mới ở mứcý niệm, chưakếthợpvới ₫ốitượng giao diệncủa công nghệ hiệnthựccụ thể nào. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 22
  12. 6.10 Kếtchương ‰ Chương này ₫ãgiớithiệucácthôngtin cơ bảnvề workflow phân tích yêu cầuchứcnăng như nhiệmvụ, các artifact cầntạo ra, các worker tham gia, qui trình thựchiện. Chương này còn giớithiệu chi tiếtvề hoạt ₫ộng phân tích kiếntrúcphầnmềmvàhoạt ₫ộng phân tích từng use-case chứcnăng. Khoa Khoa học& Kỹ thuật Máy tính Môn : Nhập môn Công nghệ phầnmềm Trường ĐH Bách Khoa Tp.HCM Chương 6 : Nắmbắtyêucầuphầnmềm © 2010 Slide 23