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
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:
- bai_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
- 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
- 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
- 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
- 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
- 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.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
- 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
- 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
- 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
- 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
- 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
- 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