Nội dung 2.1. Phát hiện yêu cầu 2.2. Phân tích và lập tài liệu đặc tả yêu cầu 2.3. Xác nhận yêu cầu 2.4. Các vấn đề khác
06/21/2023 Phân tích yêu cầu phần mềm 2
2.1. Phát hiện yêu cầu 2.1.1. Thiết lập các yêu cầu nghiệp vụ 2.1.2. Kết nối với người dùng 2.1.3. Phát hiện yêu cầu
06/21/2023 Phân tích yêu cầu phần mềm 3
2.1.1. Thiết lập các yêu cầu nghiệp vụ Xác định các yêu cầu kinh doanh, nghiệp vụ • Các yêu cầu kinh doanh nghiệp vụ (Business requirements) đề cập đến một tập hợp các thông tin được tổng hợp lại, mô tả các yêu cầu đối với một hoặc nhiều dự án nhằm đưa ra giải pháp và các kết quả kinh doanh, nghiệp vụ mong đợi. Các cơ hội kinh doanh, các mục tiêu kinh doanh, các chỉ số thành công và tầm nhìn của dự án tạo nên các yêu cầu kinh doanh nghiệp vụ. • Các vấn đề về yêu cầu kinh doanh nghiệp vụ phải được giải quyết trước khi xác định các yêu cầu chức năng và phi chức năng. Việc xác định phạm vi và giới hạn của dự án giúp ích rất nhiều cho các cuộc thảo luận về các tính năng được đề xuất và các mục tiêu. Các yêu cầu kinh doanh nghiệp vụ là tài liệu tham khảo để đưa ra quyết định về các thay đổi và cải tiến yêu cầu được đề xuất cũng như xác định xem liệu một yêu cầu được đề xuất có nằm trong phạm vi yêu cầu nghiệp vụ hay không. 06/21/2023 Phân tích yêu cầu phần mềm 4 2.1.1. Thiết lập các yêu cầu nghiệp vụ Xác định các yêu cầu kinh doanh, nghiệp vụ • Xác định các lợi ích kinh doanh, nghiệp vụ mong muốn: - Chỉ nên bắt đầu một dự án khi đã hiểu rõ về giá trị mà dự án mang lại - Cần đặt ra các mục tiêu kinh doanh nghiệp vụ theo hướng có thể đo lường được và xác định các chỉ số thành công (success metrics) cho phép đo lường sự đáp ứng các mục tiêu đề ra - Yêu cầu kinh doanh nghiệp vụ thường đến từ các bên liên quan như: nhà tài trợ tài chính, giám đốc điều hành công ty, tiếp thị, … BA cần đảm bảo các bên liên quan tham gia vào việc xác định mục tiêu và đồng ý với các mục tiêu đề ra (nhằm tránh rủi ro, kiện tụng, hoặc loại bỏ các mục tiêu) 06/21/2023 Phân tích yêu cầu phần mềm 5 2.1.1. Thiết lập các yêu cầu nghiệp vụ Xác định các yêu cầu kinh doanh, nghiệp vụ • Xác định Tầm nhìn sản phẩm và phạm vi dự án: - Tầm nhìn sản phẩm và phạm vi dự án là 2 vấn đề cốt lõi của yêu cầu nghiệp vụ - Tầm nhìn sản phẩm mô tả ngắn gọn sản phẩm cuối cùng (đạt được các mục tiêu kinh doanh nghiệp vụ), giúp đảm bảo rằng tất cả các bên liên quan đều biết mình đang muốn đi tới đâu và sẽ đạt được những gì. - Phạm vi dự án tạo nên đường biên xác định những gì ở trong và ngoài dự án, giúp đảm bảo chắc chắn rằng các bên liên quan đang đề cập đến cùng một vấn đề của dự án
06/21/2023 Phân tích yêu cầu phần mềm 6
2.1.1. Thiết lập các yêu cầu nghiệp vụ Xác định các yêu cầu kinh doanh, nghiệp vụ • Sự xung đột giữa các yêu cầu nghiệp vụ Ví dụ:
06/21/2023 Phân tích yêu cầu phần mềm 7
2.1.1. Thiết lập các yêu cầu nghiệp vụ Tài liệu tầm nhìn và phạm vi • Tài liệu tầm nhìn và phạm vi tập hợp các yêu cầu nghiệp vụ vào trong một tài liệu duy nhất làm tiền đề cho các bước phát triển dự án tiếp theo • Chủ sở hữu của tài liệu tầm nhìn và phạm vi là nhà tài trợ cho dự án, đơn vị tài trợ hoặc những người có vai trò tương đương; BA có thể làm việc với các cá nhân này để làm rõ các yêu cầu kinh doanh nghiệp vụ và viết tài liệu tầm nhìn và phạm vi. • Tài liệu tầm nhìn và phạm vi chỉ xác định phạm vi ở mức cao; các phạm vi chi tiết sẽ được chỉ ra trong cơ sở phát hành (release baseline) do các nhóm phát triển xác định • Một số nội dung của tài liệu tầm nhìn và phạm vi như mục tiêu kinh doanh, các rủi ro kinh doanh và hồ sơ của các bên liên quan, … có thể được sử dụng lại từ dự án này sang dự án khác • Các dự án lớn mới cần có cả một tài liệu tầm nhìn và phạm hoàn chỉnh và một tài liệu đặc tả yêu cầu
06/21/2023 Phân tích yêu cầu phần mềm 8
2.1.1. Thiết lập các yêu cầu nghiệp vụ Tài liệu tầm nhìn và phạm vi • Mẫu tài liệu tầm nhìnvà phạm vi:
06/21/2023 Phân tích yêu cầu phần mềm 9
2.1.1. Thiết lập các yêu cầu nghiệp vụ Các kỹ thuật biểu diễn phạm vi • Sử dụng Context diagram
06/21/2023 Phân tích yêu cầu phần mềm 10
2.1.1. Thiết lập các yêu cầu nghiệp vụ Các kỹ thuật biểu diễn phạm vi • Sử dụng Ecosystem Map
06/21/2023 Phân tích yêu cầu phần mềm 11
2.1.1. Thiết lập các yêu cầu nghiệp vụ Các kỹ thuật biểu diễn phạm vi • Sử dụng Feature tree
06/21/2023 Phân tích yêu cầu phần mềm 12
2.1.1. Thiết lập các yêu cầu nghiệp vụ Các kỹ thuật biểu diễn phạm vi • Liệt kê Event list
06/21/2023 Phân tích yêu cầu phần mềm 13
2.1.2. Kết nối với người dùng Các lớp người dùng • Lớp người dùng là tập con những người dùng sản phẩm, tập con những khách hàng của sản phẩm hoặc tập con các bên liên quan • Một cá nhân có thể thuộc về nhiều lớp người dùng khác nhau
06/21/2023 Phân tích yêu cầu phần mềm 14
2.1.2. Kết nối với người dùng • Phân lớp người dùng Các lớp người dùng khác nhau ở những khía cạnh nhất định: - Đặc quyền truy cập hoặc mức bảo mật của người dùng (như người dùng thông thường, người dùng khách, quản trị viên) - Các tác vụ mà người dùng thực hiện trong suốt các hoạt động nghiệp vụ - Các tính năng mà người dùng sử dụng - Tần suất sử dụng sản phẩm - Trải nghiệm thuộc miền ứng dụng và chuyên môn về hệ thống máy tính - Các nền tảng mà người dùng sẽ sử dụng (máy tính bàn, máy tính xách tay, máy tính bảng, điện thoại thông minh, …) - Ngôn ngữ mẹ đẻ - Cách thức người dùng tương tác với hệ thống trực tiếp hay gián tiếp 06/21/2023 Phân tích yêu cầu phần mềm 15 2.1.2. Kết nối với người dùng • Phân lớp người dùng Ví dụ về một hệ thống phân cấp các bên liên quan, khách hàng, người dùng và các lớp người dùng
06/21/2023 Phân tích yêu cầu phần mềm 16
2.1.2. Kết nối với người dùng • Xác định các lớp người dùng - Một kỹ thuật xác định và đặc tả các lớp người dùng khác nhau là “expand then contract” (Gottesdiener 2002): + Bắt đầu bằng cách đặt câu hỏi với nhà tài trợ dự án: ai là người mà nhà tài trợ hy vọng sẽ sử dụng hệ thống. + Sau đó, cố gắng nghĩ tới tất cả các lớp người dùng, không bỏ qua lớp người dùng nào. + Tiếp theo, tìm các nhóm có nhu cầu tương tự có thể kết hợp lại hoặc coi là một lớp người dùng chính với một số lớp con. Cố gắng giảm bớt danh sách lớp người dùng xuống khoảng <= 15 lớp.
06/21/2023 Phân tích yêu cầu phần mềm 17
2.1.2. Kết nối với người dùng • Xác định các lớp người dùng - Các mô hình phân tích khác nhau có thể giúp xác định các lớp người dùng. Các thực thể bên ngoài được hiển thị bên ngoài hệ thống trên biểu đồ ngữ cảnh là các ứng viên cho các lớp người dùng. Sơ đồ tổ chức công ty cũng có thể giúp khám phá người dùng tiềm năng và các bên liên quan khác. Trong khi thực hiện phân tích các bên liên quan và người dùng, cần nghiên cứu sơ đồ tổ chức để tìm ra: + Các phòng ban tham gia vào quy trình nghiệp vụ. + Các phòng ban bị ảnh hưởng bởi quy trình nghiệp vụ. + Bộ phận hoặc tên vai trò trong đó người dùng trực tiếp hoặc gián tiếp có thể được tìm thấy. + Các lớp người dùng trải rộng trên nhiều phòng ban. + Các phòng ban có thể có tương tác với các bên liên quan bên ngoài bên ngoài công ty. 06/21/2023 Phân tích yêu cầu phần mềm 18 2.1.2. Kết nối với người dùng • Xác định các lớp người dùng - Ví dụ: Một phần sơ đồ tổ chức công ty dược phẩm:
06/21/2023 Phân tích yêu cầu phần mềm 19
2.1.2. Kết nối với người dùng • Xác định các lớp người dùng Ngoài ra cần kiểm tra lại các tài liệu về các lớp người dùng và các đặc điểm, trách nhiệm và vị trí của họ trong đặc tả yêu cầu phần mềm hoặc trong kế hoạch yêu cầu cho dự án; kiểm tra lại các tài liệu tầm nhìn và phạm vi để tránh sự xung đột và trùng lặp. Ví dụ: Các lớp người dùng của Hệ thống theo dõi hóa chất gồm: - Các kỹ sư hóa học (Chemists) - Người mua (Buyers) - Nhân viên kho hóa chất (Chemical stockroom staff) - Nhân viên phòng Sức khỏe và An toàn (Health and Safety Department staff)
06/21/2023 Phân tích yêu cầu phần mềm 20
2.1.2. Kết nối với người dùng • Persona của người dùng Để các lớp người dùng trở nên sống động, có thể tạo “persona” cho từng lớp người dùng (Cooper 2004; Leffingwell 2011). Một persona là một mô tả của một người giả định, chung chung, đại diện cho một nhóm người dùng có các đặc điểm và nhu cầu tương tự. Sử dụng persona cho phép hiểu các yêu cầu và thiết kế trải nghiệm người dùng để đáp ứng tốt nhất nhu cầu của các cộng đồng người dùng cụ thể.
06/21/2023 Phân tích yêu cầu phần mềm 21
2.1.2. Kết nối với người dùng • Persona của người dùng Ví dụ: Bản mô tả một lớp người dùng Hệ thống theo dõi hóa chất: Fred, 41 tuổi, đã trở thành một nhà hóa học tại Công ty Dược phẩm Contoso kể từ khi nhận bằng Tiến sĩ 14 năm trước. Anh ấy không kiên nhẫn với máy tính. Fred thường làm việc trên hai dự án cùng một lúc trong các lĩnh vực hóa học liên quan. Phòng thí nghiệm của anh ấy chứa khoảng 300 chai hóa chất và bình gas. Trong một ngày, trung bình anh ấy sẽ cần bốn hóa chất mới. Hai trong số này sẽ là hóa chất thương mại trong kho, một sẽ cần phải được đặt hàng, và một sẽ đến từ việc cung cấp các mẫu hóa chất độc quyền của Contoso. Đôi khi, Fred sẽ cần một hóa chất nguy hiểm cần được đào tạo đặc biệt để xử lý an toàn. Khi anh mua hóa chất lần đầu tiên, Fred muốn bảng dữ liệu an toàn vật liệu được tự động gửi đến cho anh qua email. Mỗi năm, Fred sẽ tổng hợp khoảng 20 hóa chất độc quyền mới. Fred muốn một báo cáo về việc sử dụng hóa chất của anh ta cho tháng trước sẽ được tạo tự động và gửi cho anh ta qua email để anh ta có thể theo dõi phơi nhiễm hóa chất của mình. 06/21/2023 Phân tích yêu cầu phần mềm 22 2.1.2. Kết nối với người dùng • Kết nối với đại diện người dùng Mỗi loại dự án đều cần có đại diện phù hợp để cung cấp tiếng nói của người dùng. Những người dùng này nên tham gia trong suốt vòng đời phát triển chứ không phải chỉ trong giai đoạn xác lập yêu cầu khi bắt đầu dự án. Mỗi lớp người dùng cần một người đại diện. Đó có thể là người dùng đến từ chính công ty triển khai dự án, từ các trang web thử nghiệm, … Thay vì phỏng đoán, cần gặp mặt và hỏi trực tiếp những đại diện này. Chú ý: Cần cân nhắc thiết lập các nhóm tập trung của những người dùng hiện tại của sản phẩm hoặc sản phẩm của đối thủ cạnh tranh. Và phải chắc chắn rằng các nhóm tập trung này đại diện cho các lớp người dùng có nhu cầu nhằm thúc đẩy sự phát triển sản phẩm.
06/21/2023 Phân tích yêu cầu phần mềm 23
2.1.2. Kết nối với người dùng • Kết nối với đại diện người dùng Một số cách thức giao tiếp giữa người dùng và nhà phát triển
06/21/2023 Phân tích yêu cầu phần mềm 24
2.1.2. Kết nối với người dùng • Product Champion - Product champion (PC): Là người đứng giữa các thành viên của một lớp người dùng và nhà phân tích kinh doanh dự án, chịu trách nhiệm thu thập các yêu cầu từ các thành viên khác của các lớp người dùng mà họ đại diện và điều hòa sự không nhất quán. Lý tưởng nhất: PC là người dùng thực tế, có một tầm nhìn rõ ràng về hệ thống mới có sự nhiệt tình khi thấy được lợi ích mà hệ thống mới sẽ đem lại cho chính PC và lớp người dùng mà PC đại diện. PC cũng nên là những người giao tiếp hiệu quả, được đồng nghiệp tôn trọng, có sự hiểu biết thấu đáo về miền ứng dụng và môi trường vận hành giải pháp. - External product champions: Thường khó tìm, đôi khi phải dựa vào các chuyên gia tư vấn bên ngoài để thay thế cho người dùng thực tế
06/21/2023 Phân tích yêu cầu phần mềm 25
2.1.2. Kết nối với người dùng • Product Champion Công việc của PC: * Lập kế hoạch: ̵ Tinh chỉnh phạm vi và giới hạn của sản phẩm ̵ Xác định các hệ thống khác để tương tác ̵ Đánh giá tác động của hệ thống mới đối với hoạt động nghiệp vụ ̵ Xác định đường dẫn chuyển tiếp từ các ứng dụng hiện tại hoặc thao tác thủ công ̵ Xác định các tiêu chuẩn và chứng nhận yêu cầu có liên quan
06/21/2023 Phân tích yêu cầu phần mềm 26
2.1.2. Kết nối với người dùng • Product Champion Công việc của PC: * Yêu cầu: ̵ Thu thập đầu vào theo yêu cầu từ người dùng khác ̵ Phát triển các kịch bản sử dụng, trường hợp sử dụng và câu chuyện của người dùng ̵ Giải quyết xung đột giữa các yêu cầu được đề xuất trong lớp người dùng ̵ Xác định các ưu tiên thực hiện ̵ Cung cấp đầu vào liên quan đến hiệu suất và các yêu cầu chất lượng khác ̵ Đánh giá các nguyên mẫu ̵ Làm việc với những người ra quyết định khác để giải quyết xung đột giữa các yêu cầu từ các bên liên quan khác nhau ̵ Cung cấp các giải pháp cụ thể 06/21/2023 Phân tích yêu cầu phần mềm 27 2.1.2. Kết nối với người dùng • Product Champion Công việc của PC: * Xác nhận: ̵ Xem xét bản đặc tả yêu cầu ̵ Xác định tiêu chí chấp nhận ̵ Phát triển các kiểm thử chấp nhận của người dùng từ các tình huống sử dụng ̵ Cung cấp các bộ dữ liệu thử nghiệm ̵ Thực hiện kiểm thử beta hoặc kiểm thử chấp nhận của người dùng
06/21/2023 Phân tích yêu cầu phần mềm 28
2.1.2. Kết nối với người dùng • Product Champion Công việc của PC: * Hỗ trợ người dùng: ̵ Viết các phần tài liệu người dùng và văn bản trợ giúp ̵ Đóng góp cho tài liệu đào tạo hoặc hướng dẫn ̵ Trình diễn hệ thống với các đồng nghiệp.
06/21/2023 Phân tích yêu cầu phần mềm 29
2.1.2. Kết nối với người dùng • Product Champion Công việc của PC: * Quản lý thay đổi: ̵ Đánh giá và ưu tiên sửa lỗi và yêu cầu nâng cao ̵ Tự động điều chỉnh phạm vi của các bản phát hành hoặc lặp lại trong tương lai ̵ Đánh giá tác động của những thay đổi được đề xuất đối với người dùng và quy trình nghiệp vụ ̵ Tham gia vào việc đưa ra quyết định thay đổi
06/21/2023 Phân tích yêu cầu phần mềm 30
2.1.3. Phát hiện yêu cầu 2.1.3.1. Phát hiện yêu cầu 2.1.3.2. Các kỹ thuật phát hiện yêu cầu 2.1.3.3. Lập kế hoạch phát hiện yêu cầu 2.1.3.4. Chuẩn bị cho phát hiện yêu cầu 2.1.3.5. Thực hiện các hoạt động phát hiện yêu cầu 2.1.3.6. Theo dõi sau khi phát hiện yêu cầu 2.1.3.7. Phân loại thông tin đầu vào từ khách hàng 2.1.3.8. Một số vấn đề khác
06/21/2023 Phân tích yêu cầu phần mềm 31
2.1.3.1. Phát hiện yêu cầu • Trọng tâm của phát triển yêu cầu là phát hiện yêu cầu. Đây là quá trình xác định các nhu cầu và ràng buộc của các bên liên quan khác nhau cho một hệ thống phần mềm. • Phát hiện không giống như thu thập, cũng không đơn giản chỉ là ghi chép lại chính xác những gì người dùng nói. Phát hiện là một quá trình hợp tác và phân tích, bao gồm các hoạt động thu thập, khám phá, trích xuất và xác định các yêu cầu. • Phát hiện được sử dụng để khám phá các yêu cầu nghiệp vụ, yêu cầu người dùng, yêu cầu chức năng và phi chức năng, cùng với các loại thông tin khác. • Đây là khía cạnh quan trọng nhưng lại đầy thách thức, dễ bị lỗi và cần các kỹ năng giao tiếp chuyên sâu trong phát triển phần mềm. 06/21/2023 Phân tích yêu cầu phần mềm 32 2.1.3.1. Phát hiện yêu cầu • Các hoạt động trong một phiên phát hiện yêu cầu:
06/21/2023 Phân tích yêu cầu phần mềm 33
2.1.3.1. Phát hiện yêu cầu • Việc lôi cuốn người dùng vào quá trình phát hiện yêu cầu là hết sức cần thiết để có được sự hỗ trợ của người dùng. • BA cần cố gắng hiểu quá trình suy nghĩ đằng sau các yêu cầu của người dùng, theo quá trình này, người dùng sẽ đưa ra quyết định về công việc của họ. • Cần chắc chắn rằng mọi người đều hiểu tại sao hệ thống phải thực hiện một số chức năng nhất định. • Cần cố gắng tìm kiếm các yêu cầu được đề xuất phản ánh các quy trình hoặc quy tắc nghiệp vụ đã lỗi thời hoặc không hiệu quả, không nên đưa vào hệ thống mới.
06/21/2023 Phân tích yêu cầu phần mềm 34
2.1.3.1. Phát hiện yêu cầu • BA phải tạo ra một môi trường thuận lợi cho việc thăm dò kỹ lưỡng sản phẩm. • Để tạo điều kiện giao tiếp rõ ràng, cần sử dụng các thuật ngữ của lĩnh vực nghiệp vụ thay vì các thuật ngữ kỹ thuật (nên ghi lại ý nghĩa của các thuật ngữ nghiệp vụ thuộc miền ứng dụng trong bảng chú giải). • Cần giải thích cho khách hàng hiểu một cuộc thảo luận về các chức năng có thể không phải là một cam kết sẽ đưa các chức năng được thảo luận vào sản phẩm. • Cần tích cực động não và tưởng tượng các khả năng để phân tích các ưu tiên, tính khả thi và các hạn chế trong thực tế, sau đó đề xuất danh sách ưu tiên với các bên liên quan.
06/21/2023 Phân tích yêu cầu phần mềm 35
2.1.3.1. Phát hiện yêu cầu • Chú ý: Đầu ra của phát triển yêu cầu là một sự hiểu biết chung về các nhu cầu của các bên liên quan của dự án. Khi các nhà phát triển hiểu những nhu cầu đó, họ có thể khám phá các giải pháp thay thế để giải quyết chúng. Vì vậy, không nên bắt tay vào thiết kế hệ thống cho đến khi thực sự hiểu được vấn đề!
06/21/2023 Phân tích yêu cầu phần mềm 36
2.1.3.2. Các kỹ thuật phát hiện yêu cầu • Phỏng vấn (Interviews) • Hội thảo (Workshops) • Nhóm tập trung (Focus groups) • Quan sát (Observations) • Bảng câu hỏi (Questionnaires) • Phân tích giao diện hệ thống (System interface analysis ) • Phân tích giao diện người dùng (User interface analysis) • Phân tích tài liệu (Document analysis )
06/21/2023 Phân tích yêu cầu phần mềm 37
Phỏng vấn (Interviews) • Một cách rõ ràng, hiển nhiên nhất để tìm ra những gì mà người dùng của một hệ thống phần mềm cần là trực tiếp hỏi họ. Các cuộc phỏng vấn chính là nguồn yêu cầu đầu vào truyền thống cho cả các sản phẩm thương mại và các hệ thống thông tin, trên tất cả các phương pháp phát triển phần mềm. • Có thể tổ chức các cuộc phỏng vấn cá nhân hoặc phỏng vấn theo nhóm nhỏ. • Nếu mới bắt đầu làm việc với miền ứng dụng, các cuộc phỏng vấn với các chuyên gia sẽ giúp người phỏng vấn chuẩn bị mô hình và dự thảo các yêu cầu để sử dụng trong các cuộc phỏng vấn hoặc các hội thảo tiếp theo. • Các cuộc phỏng vấn cũng thích hợp để phát hiện các yêu cầu nghiệp vụ từ các giám đốc điều hành - những người không có nhiều thời gian. • Nếu có thể thiết lập mối quan hệ với người được phỏng vấn, họ sẽ cảm thấy an toàn khi chia sẻ suy nghĩ của mình trong các cuộc phỏng vấn một - một hoặc phỏng vấn trong một nhóm nhỏ hơn là chia sẻ trong các cuộc hội thảo lớn.
06/21/2023 Phân tích yêu cầu phần mềm 38
Phỏng vấn (Interviews) • Một số lời khuyên khi tổ chức các cuộc phỏng vấn: - Thiết lập mối quan hệ: Để bắt đầu một cuộc phỏng vấn, nên tự giới thiệu về bản thân (nếu người tham dự không biết bạn); ngoài ra, cần xem lại chương trình, nhắc nhở người tham dự về các mục tiêu của phiên và giải đáp bất kỳ câu hỏi hoặc thắc mắc sơ bộ nào về người tham dự. - Phỏng vấn trong phạm vi: Cần giữ cho cuộc thảo luận tập trung vào các mục tiêu đề ra, tránh lạc đề. - Chuẩn bị trước các câu hỏi: Chuẩn bị trước các tài liệu, chẳng hạn như một danh sách các câu hỏi để hướng dẫn cuộc trò chuyện.
06/21/2023 Phân tích yêu cầu phần mềm 39
Phỏng vấn (Interviews) • Một số lời khuyên khi tổ chức các cuộc phỏng vấn: - Đề xuất ý tưởng: Không chỉ đơn giản là ghi lại những gì khách hàng nói, một BA sáng tạo nên đề xuất các ý tưởng và giải pháp thay thế trong quá trình phát hiện yêu cầu. Người dùng có thể sẽ cảm thấy phấn khích khi BA đề xuất các chức năng có thể làm cho hệ thống có giá trị đặc biệt. - Lắng nghe một cách tích cực: Luyện tập các kỹ thuật lắng nghe tích cực (nghiêng người về phía trước, thể hiện sự kiên nhẫn, đưa ra phản hồi bằng lời nói và hỏi lại khi có điều gì đó không rõ ràng) và diễn giải (diễn giải thông điệp của người nói để thể hiện sự hiểu biết của người nghe về thông điệp đó). 06/21/2023 Phân tích yêu cầu phần mềm 40 Hội thảo (Workshops) • Các cuộc hội thảo sẽ khuyến khích sự hợp tác của các bên liên quan trong việc xác định các yêu cầu. • Theo Ellen Gottesdiener (2002), một hội thảo về yêu cầu là một cuộc họp có cấu trúc, trong đó một nhóm các bên liên quan và các chuyên gia nội dung được lựa chọn cẩn thận sẽ làm việc cùng nhau để xác định, tạo, tinh chỉnh và đạt đến kết quả là các sản phẩm (như mô hình và tài liệu) thể hiện các yêu cầu của người dùng. • Hội thảo thường bao gồm một số bên liên quan, từ người dùng đến nhà phát triển và nhân viên kiểm thử. • Facilitator (người điều hành/người hướng dẫn) đóng một vai trò quan trọng trong việc lập kế hoạch hội thảo, lựa chọn những người tham gia và dẫn dắt họ đạt được kết quả mong đợi. • Có thể xem xét việc có thêm Facilitator bên ngoài hoặc BA thứ 2 để BA thứ nhất dành toàn bộ sự chú ý của mình cho việc thảo luận.
06/21/2023 Phân tích yêu cầu phần mềm 41
Hội thảo (Workshops) • Với các hội thảo chuyên sâu, có nhiều người tham gia trong thời gian dài (vài ngày): Cần lên kế hoạch cẩn thận để tránh lãng phí thời gian; các tài liệu cho hội thảo cần được chuẩn bị trước; cần sử dụng các kỹ thuật phát hiện yêu cầu trước các hội thảo, sau đó tập hợp các bên liên quan để cùng nhau làm việc về các vấn đề cần thiết.
06/21/2023 Phân tích yêu cầu phần mềm 42
Hội thảo (Workshops) • Một số lời khuyên để tổ chức các hội thảo phát hiện yêu cầu hiệu quả - Thiết lập và thực thi các nguyên tắc cơ bản: Nên thống nhất một số nguyên tắc hoạt động cơ bản, ví dụ: Hội thảo bắt đầu và kết thúc đúng giờ; mọi người cần để điện thoại ở chế độ im lặng; tại một thời điểm chỉ một người phát biểu; các cá nhân cần tích cực đóng góp ý kiến; hội thảo tập trung vào các vấn đề chính hơn là các vấn đề cá nhân; … - Phân công nhiệm vụ cho các thành viên: Facilitator cần phải đảm bảo rằng các nhiệm vụ đã được phân công cho các thành viên đảm nhiệm: ghi chép, chú ý thời gian, quản lý phạm vi thảo luận, quản lý việc thực hiện các nguyên tắc, và đảm bảo cho mọi người đều nghe được. - Lập kế hoạch chương trình hội thảo: Mỗi hội thảo cần có một kế hoạch rõ ràng được lập và gửi cho những người tham gia trước khi bắt đầu hội thảo để họ biết các mục tiêu và kết quả mong đợi nhằm có sự chuẩn bị phù hợp.
06/21/2023 Phân tích yêu cầu phần mềm 43
Hội thảo (Workshops) • Một số lời khuyên để tổ chức các hội thảo phát hiện yêu cầu hiệu quả - Hội thảo trong phạm vi: Tham khảo các yêu cầu nghiệp vụ để xác nhận xem các yêu cầu mà người dùng đề xuất có nằm trong phạm vi dự án hay không. Cần giữ cho cuộc hội thảo tập trung vào các mục tiêu của phiên hội thảo, tránh lạc đề. - Lưu lại các vấn đề cần xem xét sau: Một loạt thông tin ngẫu nhiên nhưng quan trọng có thể xuất hiện trong các cuộc thảo luận phát hiện yêu cầu: các thuộc tính chất lượng, quy tắc nghiệp vụ, giao diện người dùng, các ý tưởng, … Cần ghi lại các vấn đề này để thể hiện sự tôn trọng đối với người đề xuất chúng và để thảo luận tiếp nếu cần. - Thời gian thảo luận: Xem xét phân bổ khung thời gian cố định cho mỗi chủ đề thảo luận. Cuộc thảo luận có thể cần phải kết thúc muộn song khung thời gian được lập sẽ giúp tránh tình trạng một chủ đề kéo dài quá lâu khiến các chủ đề quan trọng khác bị bỏ qua vì hết thời gian. Khi hết thời gian thảo luận một chủ đề, cần tóm tắt trạng thái và các bước tiếp theo trước khi rời khỏi chủ đề đó. 06/21/2023 Phân tích yêu cầu phần mềm 44 Hội thảo (Workshops) • Một số lời khuyên để tổ chức các hội thảo phát hiện yêu cầu hiệu quả - Duy trì các nhóm thảo luận nhỏ nhưng bao gồm các bên liên quan phù hợp: Các nhóm nhỏ có thể làm việc nhanh hơn nhiều so với các nhóm lớn. Các hội thảo đông thành viên tham gia có thể bị sa lầy vào các cuộc trò chuyện hoặc tranh cãi. Cần xem xét việc tổ chức song song nhiều hội thảo để phát hiện các yêu cầu của các lớp người dùng khác nhau. Những người tham gia hội thảo có thể bao gồm: PC và các đại diện người dùng khác, có thể là chuyên gia về chủ đề, BA, nhà phát triển và nhân viên kiểm thử. Kiến thức, kinh nghiệm và thẩm quyền đưa ra quyết định là điều kiện để tham gia các hội thảo phát hiện yêu cầu. 06/21/2023 Phân tích yêu cầu phần mềm 45 Hội thảo (Workshops) • Một số lời khuyên để tổ chức các hội thảo phát hiện yêu cầu hiệu quả - Lôi cuốn các thành viên tham gia hội thảo: Đôi khi một số thành viên tham gia sẽ ngừng đóng góp ý kiến cho cuộc thảo luận, có thể họ thất vọng vì một số lý do nào đó, có thể do các thành viên khác không nhận thấy mối quan tâm của họ, hoặc có thể họ không muốn phá vỡ công việc mà nhóm đã hoàn thành đến thời điểm hiện tại. Cũng có thể do các bên liên quan đã ngăn cản những người tham gia tích cực hoặc do nhà phân tích quá độc đoán. Facilitator cần phải đọc được ngôn ngữ cơ thể (thiếu giao tiếp bằng mắt, bồn chồn, thở dài, kiểm tra đồng hồ), nắm bắt lý do tại sao một thành viên nào đó lại rút lui khỏi cuộc thảo luận, và cố gắng thu hút lại thành viên đó. Với các cuộc hội thảo từ xa, Facilitator càng cần phải chú ý lắng nghe để biết ai không tham gia vào hội thảo, có thể hỏi trực tiếp những thành viên luôn im lặng để biết được họ có bất kỳ suy nghĩ nào cần chia sẻ với cuộc thảo luận hay không. Facilitator cũng phải đảm bảo rằng mọi người đều nghe rõ khi các thành viên khác phát biểu. 06/21/2023 Phân tích yêu cầu phần mềm 46 Nhóm tập trung (Focus groups) • Nhóm tập trung: Là một nhóm đại diện cho những người dùng được triệu tập trong hoạt động phát hiện yêu cầu nhằm tạo đầu vào và các ý tưởng về các yêu cầu chức năng và các thuộc tính chất lượng của một sản phẩm. Các phiên làm việc theo nhóm tập trung phải được thiết kế tương tác, cho phép tất cả người dùng đều có cơ hội nói lên suy nghĩ của họ. Các nhóm tập trung rất hữu ích cho việc khám phá thái độ, ấn tượng, sở thích và nhu cầu của người dùng (IIBA 2009). Chúng đặc biệt có giá trị khi phát triển các sản phẩm thương mại không có sẵn quyền truy cập cho người dùng cuối.
06/21/2023 Phân tích yêu cầu phần mềm 47
Nhóm tập trung (Focus groups) • Thông thường, mỗi sản phẩm sẽ có một lớp người dùng lớn và đa dạng, vì vậy cần chọn các thành viên cho nhóm tập trung một cách cẩn thận. Nên chọn những người dùng đã sử dụng các phiên bản trước đó hoặc các sản phẩm tương tự với sản phẩm đang phát triển. Có thể chọn nhóm người dùng cùng loại (và giữ nhiều nhóm tập trung cho các lớp người dùng khác nhau) hoặc chọn một nhóm đại diện cho toàn bộ phổ các lớp người dùng để mọi người đều được đại diện như nhau. • Các nhóm tập trung nên được khuyến khích. Các phiên làm việc với nhóm tập trung có thể được ghi lại để xem xét. Tuy nhiên, không nên mong đợi kết quả phân tích định lượng từ các nhóm tập trung, mà nên chú ý đến các phản hồi chủ quan cần được đánh giá và ưu tiên khi phát triển các yêu cầu. Những người tham gia trong các nhóm tập trung cũng thường không có thẩm quyền ra quyết định cho các yêu cầu.
06/21/2023 Phân tích yêu cầu phần mềm 48
Quan sát (Observations) • Khi người dùng được yêu cầu mô tả chi tiết cách thức họ thực hiện các công việc, có thể họ sẽ gặp khó khăn, họ có thể mô tả thiếu hoặc không chính xác. Nguyên nhân thường là do các nhiệm vụ rất phức tạp, khó có thể nhớ hết mọi chi tiết, hoặc có thể do người dùng đã quá quen thuộc với việc thực hiện một nhiệm vụ đến mức nó trở thành thói quen, họ không nghĩ đến và khó có thể nói rõ mọi thứ họ làm. Vì vậy, việc quan sát chính xác cách người dùng thực hiện nhiệm vụ của họ là một giải pháp tốt.
06/21/2023 Phân tích yêu cầu phần mềm 49
Quan sát (Observations) • Việc quan sát rất tốn thời gian, vì vậy chúng không phù hợp với mọi người dùng hay mọi nhiệm vụ. Nên chú ý, tránh làm gián đoạn các hoạt động của người dùng, nên giới hạn thời gian quan sát (ví dụ: trong hai giờ hoặc ít hơn). Nên chọn các nhiệm vụ quan trọng hoặc có rủi ro cao và các lớp đông người dùng để quan sát. • Việc quan sát quy trình làm việc của người dùng trong môi trường tác vụ cho phép BA xác thực thông tin được thu thập từ các nguồn khác, để xác định các chủ đề mới cho các cuộc phỏng vấn, để nhìn thấy các vấn đề với hệ thống hiện tại và để xác định các cách mà hệ thống mới có thể hỗ trợ tốt hơn cho quy trình làm việc. • BA phải tóm tắt và tổng quát hóa các hoạt động của người dùng được quan sát để đảm bảo rằng các yêu cầu được áp dụng cho toàn bộ lớp người dùng, chứ không chỉ cho một cá nhân đó. BA cũng có thể đề xuất ý tưởng để cải thiện quy trình nghiệp vụ hiện tại của người dùng.
06/21/2023 Phân tích yêu cầu phần mềm 50
Quan sát (Observations) • Các quan sát có thể diễn ra trong im lặng hoặc có sự tương tác. Quan sát im lặng sẽ là thích hợp khi người dùng bận rộn không thể bị gián đoạn. Các quan sát tương tác cho phép BA làm gián đoạn tác vụ giữa của người dùng và đặt các câu hỏi. Điều này cho phép BA hiểu ngay tại sao người dùng lại thực hiện một lựa chọn hoặc những gì người dùng đã suy nghĩ khi thực hiện một số hành động. Cần ghi lại những gì đã quan sát được để phục vụ cho việc phân tích sau này. BA cũng có thể cân nhắc đến việc quay video nếu được phép.
06/21/2023 Phân tích yêu cầu phần mềm 51
Bảng câu hỏi (Questionnaires) • Bảng câu hỏi là một cách để khảo sát các nhóm người dùng lớn để hiểu nhu cầu của họ. Phương pháp này không tốn kém, lại dễ dàng triển khai trên diện rộng, được xem là một lựa chọn hợp lý để phát hiện thông tin từ một lượng người dùng lớn. Kết quả phân tích các bảng câu hỏi có thể được sử dụng làm đầu vào cho các kỹ thuật phát hiện yêu cầu khác. Ví dụ: Có thể sử dụng một bảng câu hỏi để xác định các vấn đề lớn nhất của người dùng đối với hệ thống hiện có, sau đó sử dụng các kết quả để thảo luận về thứ tự ưu tiên với những người ra quyết định trong một hội thảo. Bảng câu hỏi cũng có thể được sử dụng để khảo sát phản hồi của người dùng về các sản phẩm thương mại.
06/21/2023 Phân tích yêu cầu phần mềm 52
Bảng câu hỏi (Questionnaires) • Việc chuẩn bị các câu hỏi tốt là thách thức lớn nhất với kỹ thuật bảng câu hỏi. Một số lời khuyên quan trọng cần chú ý (Colorado State University, 2013): - Cung cấp các phương án trả lời bao gồm toàn bộ các phương án có thể. - Đưa ra các phương án trả lời đa dạng, bao gồm cả các phương án loại trừ lẫn nhau và các phương án toàn diện (liệt kê tất cả các lựa chọn có thể và/hoặc cho phép người dùng viết một phương án lựa chọn khác mà BA chưa nghĩ tới). - Không đặt câu hỏi theo cách bao hàm ngụ ý câu trả lời “đúng". - Nếu có sử dụng thang đo, cần sử dụng chúng một cách nhất quán trong suốt bảng câu hỏi.
06/21/2023 Phân tích yêu cầu phần mềm 53
Bảng câu hỏi (Questionnaires) • Một số lời khuyên quan trọng cần chú ý (Colorado State University, 2013): - Nếu muốn sử dụng kết quả của bảng câu hỏi cho việc phân tích thống kê, nên sử dụng các câu hỏi đóng với hai hoặc một số lựa chọn cụ thể. Các câu hỏi mở sẽ cho phép người dùng trả lời theo bất kỳ cách nào mà họ muốn, do đó sẽ rất khó để tìm kiếm sự tương đồng trong câu trả lời của những người dùng khác nhau. - Xem xét, xin ý kiến tư vấn của chuyên gia trong việc thiết kế và quản trị bảng câu hỏi để đảm bảo đã đặt đúng câu hỏi với đúng đối tượng. - Luôn kiểm tra bảng câu hỏi trước khi phân phát nhằm tránh trường hợp các câu hỏi không rõ ràng hoặc có một số câu hỏi quan trọng bị bỏ qua. - Không đặt quá nhiều câu hỏi, nếu không người dùng sẽ không muốn trả lời. 06/21/2023 Phân tích yêu cầu phần mềm 54 Phân tích giao diện hệ thống • Phân tích giao diện là một kỹ thuật phát hiện yêu cầu độc lập đòi hỏi kiểm tra các hệ thống kết nối với hệ thống đang phát triển. • Phân tích giao diện hệ thống (System interface analysis) cho thấy các yêu cầu chức năng liên quan đến việc trao đổi dữ liệu và các dịch vụ giữa các hệ thống (IIBA 2009). Biểu đồ ngữ cảnh và các bản đồ ecosystem nên được xem xét, nghiên cứu. • Đối với mỗi hệ thống có giao tiếp với hệ thống đang phát triển, cần xác định các chức năng trong hệ thống đó mà có thể dẫn đến các yêu cầu cho hệ thống mới. Những yêu cầu này có thể mô tả những dữ liệu nào sẽ được chuyển đến các hệ thống khác, những dữ liệu nào nhận được từ các hệ thống khác và các quy tắc về dữ liệu, chẳng hạn như tiêu chí xác nhận dữ liệu. • Việc phân tích còn cho phép khám phá những chức năng hiện có nhưng lại không cần thực hiện trong hệ thống mới. Ví dụ, BA nghĩ rằng cần phải thực thi các quy tắc xác thực cho đơn đặt hàng trong giỏ hàng trên trang web thương mại điện tử trước khi chuyển nó đến hệ thống quản lý đơn hàng. Tuy nhiên, thông qua việc phân tích giao diện hệ thống, BA có thể biết rằng nhiều hệ thống chuyển đơn hàng đến hệ thống quản lý đơn hàng đã thực hiện việc xác thực, vì vậy không cần phải xây dựng chức năng này.
06/21/2023 Phân tích yêu cầu phần mềm 55
Phân tích giao diện người dùng • Phân tích giao diện người dùng (User interface analysis) là một kỹ thuật phát hiện yêu cầu độc lập, dựa trên việc nghiên cứu các hệ thống hiện có để khám phá các yêu cầu người dùng và các yêu cầu chức năng. Cách tốt nhất là tương tác trực tiếp với các hệ thống hiện có. Tuy nhiên, nếu cần có thể phân tích qua các hình chụp giao diện có trong cuốn Hướng dẫn sử dụng phần mềm. Nếu không có bất kỳ hệ thống nào trước đó, thì có thể phân tích qua giao diện của các hệ thống tương tự. • Việc phân tích này có thể giúp BA khám phá các tính năng tiềm năng. Dựa theo các giao diện người dùng hiện có, BA có thể biết được các bước phổ biến mà người dùng thực hiện trong hệ thống và dự thảo các trường hợp sử dụng để người dùng xem xét. • Chú ý: Không phải chức năng nào trong hệ thống hiện có cũng là cần thiết và nên đưa vào hệ thống mới. Giao diện người dùng trong hệ thống mới cũng không nhất thiết phải được thiết kế theo cách tương tác với người dùng như trong các hệ thống đã có.
06/21/2023 Phân tích yêu cầu phần mềm 56
Phân tích tài liệu • Phân tích tài liệu (Document analysis) đòi hỏi phải kiểm tra bất kỳ tài liệu hiện có nào về các yêu cầu phần mềm tiềm năng. • Các tài liệu hữu ích nhất bao gồm: các bản đặc tả yêu cầu, quy trình nghiệp vụ, các bài giảng và hướng dẫn sử dụng của các ứng dụng hiện có hoặc các ứng dụng tương tự, các tài liệu mô tả các quy định/tiêu chuẩn của công ty hoặc của ngành cần tuân theo hoặc các quy định mà sản phẩm phải tuân thủ. • Khi thay thế một hệ thống hiện có, các tài liệu trong quá khứ có thể tiết lộ các chức năng cần phải được giữ lại, cũng như các chức năng đã lỗi thời, nên lược bỏ. • Đối với việc triển khai các giải pháp đóng gói, các tài liệu của nhà cung cấp có thể đề cập đến các chức năng mà người dùng hệ thống mới cần, nhưng BA cần phải tiếp tục khám phá cách thực thi nó trong môi trường đích mới. 06/21/2023 Phân tích yêu cầu phần mềm 57 Phân tích tài liệu • Việc đánh giá, so sánh cho phép chỉ ra những thiếu sót trong các sản phẩm khác, hướng giải quyết trong hệ thống mới để hệ thống mới có lợi thế cạnh tranh. • Các báo cáo về các vấn đề và các yêu cầu nâng cấp được thu thập từ người dùng có thể giúp BA đưa ra các ý tưởng để cải thiện hệ thống trong các phiên bản tương lai. • Việc phân tích tài liệu, nghiên cứu và soạn thảo sẵn một số yêu cầu cho phép giảm thời gian dành cho các cuộc họp phát hiện yêu cầu. • Việc phân tích tài liệu còn có thể tiết lộ những thông tin mà người dùng không nói ra, do họ không nghĩ đến hoặc không nhận thức được chúng.
06/21/2023 Phân tích yêu cầu phần mềm 58
2.1.3.3. Lập kế hoạch phát hiện yêu cầu • Ở giai đoạn đầu của dự án, BA nên lập kế hoạch tiếp cận dự án để phát hiện các yêu cầu. Ngay cả một kế hoạch đơn giản cũng làm tăng cơ hội thành công và đặt kỳ vọng thực tế cho các bên liên quan. • Với các cam kết rõ ràng về nguồn tài nguyên, lịch trình và sản phẩm cần đạt trong kế hoạch phát hiện yêu cầu sẽ cho phép tránh tình trạng những người tham gia bỏ đi làm việc khác. • Một kế hoạch phát hiện yêu cầu bao gồm các kỹ thuật được sử dụng, thời điểm và mục đích sử dụng. • Một kế hoạch giống như một bản hướng dẫn và nhắc nhở trong suốt dự án, BA cũng có thể cần phải thay đổi kế hoạch trong suốt dự án. 06/21/2023 Phân tích yêu cầu phần mềm 59 2.1.3.3. Lập kế hoạch phát hiện yêu cầu Cần lập kế hoạch phát hiện yêu cầu với các nội dung sau: • Các mục tiêu phát hiện yêu cầu: Cần lập kế hoạch các mục tiêu phát hiện yêu cầu cho toàn bộ dự án và các mục tiêu cho mỗi hoạt động trong kế hoạch. • Các chiến lược và kỹ thuật sử dụng trong kế hoạch: Quyết định sử dụng các kỹ thuật nào với các nhóm thuộc các bên liên quan khác nhau. Có thể kết hợp bảng câu hỏi, hội thảo, các chuyến thăm khách hàng kết hợp phỏng vấn cá nhân và các kỹ thuật khác, tùy thuộc vào khả năng tiếp cận với các bên liên quan, giới hạn thời gian và kiến thức về hệ thống hiện có. • Lịch trình và ước tính tài nguyên: Xác định các khách hàng và những người tham gia phát triển cho các hoạt động phát hiện yêu cầu khác nhau, cùng với ước tính về nỗ lực và lịch trình cần thiết.
06/21/2023 Phân tích yêu cầu phần mềm 60
2.1.3.3. Lập kế hoạch phát hiện yêu cầu • Các tài liệu và các nhu cầu hệ thống cho việc phát hiện yêu cầu độc lập: Cần chuẩn bị sẵn tất cả các thứ cần thiết cho việc phân tích tài liệu, phân tích giao diện hệ thống hoặc phân tích giao diện người dùng để sử dụng khi cần. • Các sản phẩm dự kiến của các nỗ lực phát hiện yêu cầu: Nhận thức về việc sẽ tạo ra các use case, phân tích các kết quả bảng câu hỏi hoặc đặc tả thuộc tính chất lượng, ... giúp đảm bảo rằng BA đang nhắm đúng mục tiêu của các bên liên quan, các chủ đề và các chi tiết trong quá trình phát hiện yêu cầu. • Các rủi ro: Xác định các yếu tố có thể cản trở khả năng hoàn thành các hoạt động phát hiện yêu cầu như dự định; ước tính mức độ nghiêm trọng của từng rủi ro và quyết định cách để giảm thiểu hoặc kiểm soát các rủi ro đó. 06/21/2023 Phân tích yêu cầu phần mềm 61 2.1.3.3. Lập kế hoạch phát hiện yêu cầu • Gợi ý về các kỹ thuật phát hiện yêu cầu sử dụng cho một số loại dự án:
06/21/2023 Phân tích yêu cầu phần mềm 62
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu • Các hoạt động chuẩn bị cho một phiên phát hiện yêu cầu:
06/21/2023 Phân tích yêu cầu phần mềm 63
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu • Lên kế hoạch về phạm vi và chương trình của phiên phát hiện yêu cầu: Quyết định về phạm vi của phiên có tính đến lượng thời gian cho phiên. Có thể xác định phạm vi phiên bằng cách sử dụng một tập các chủ đề hoặc câu hỏi, liệt kê một tập hợp quy trình cụ thể hoặc các trường hợp sử dụng sẽ được khám phá. Điều chỉnh phạm vi của phiên với phạm vi tổng thể của dự án được xác định trong các yêu cầu nghiệp vụ nhằm giữ vững chủ đề của cuộc trò chuyện. Trong chương trình nên ghi rõ các chủ đề sẽ được đề cập, thời gian cho từng chủ đề, và các mục tiêu cần đạt. Chia sẻ chương trình với các bên liên quan trước khi bắt đầu.
06/21/2023 Phân tích yêu cầu phần mềm 64
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu • Chuẩn bị tài nguyên: Đăng ký lịch sử dụng các tài nguyên vật lý cần thiết, ví dụ: phòng, máy chiếu, số điện thoại, và các thiết bị hội nghị truyền hình. Ngoài ra, cần lên lịch cho những người tham gia, chú ý sự khác biệt về múi giờ đối với các thành viên không cùng địa điểm, và có thể thay đổi lịch trình mỗi lần gặp để tránh tình trạng luôn gây bất tiện cho một thành viên nào đó. Thu thập tài liệu từ nhiều nguồn khác nhau, có thể tiếp cận với các hệ thống khi cần thiết, tham gia các khóa đào tạo trực tuyến để tìm hiểu về các hệ thống hiện có.
06/21/2023 Phân tích yêu cầu phần mềm 65
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu • Tìm hiểu về các bên liên quan: Xác định các bên liên quan cho phiên, tìm hiểu về sở thích văn hóa và khu vực của các bên liên quan. Nếu một số thành viên tham gia không biết ngôn ngữ sử dụng trong phiên, cần xem xét việc cung cấp trước cho họ các tài liệu hỗ trợ, chẳng hạn như các slide, để họ có thể đọc trước hoặc theo dõi. Các slide có thể liệt kê các câu hỏi cụ thể sẽ được hỏi trong phiên hoặc chỉ đơn giản là cung cấp bối cảnh của phiên. • Chuẩn bị câu hỏi: Cần chuẩn bị sẵn các câu hỏi. Với một cuộc phỏng vấn hoặc hội thảo, nên sử dụng kết quả từ các kỹ thuật phát hiện yêu cầu khác để xác định các câu hỏi chưa được giải quyết.
06/21/2023 Phân tích yêu cầu phần mềm 66
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu Chú ý khi chuẩn bị các câu hỏi: - Không nên đặt câu hỏi chung chung dạng “Bạn muốn gì?” Có thể hỏi “Bạn cần làm gì?”. - Có thể đặt câu hỏi “Tại sao?” nhiều lần để hiểu quy trình nghiệp vụ và để biết được làm thế nào để hệ thống mới có thể cải thiện hiệu suất của họ. - Thử tưởng tượng bạn đang học cách làm việc của người dùng hoặc thực sự làm công việc đó theo hướng dẫn của người dùng Câu hỏi: Bạn sẽ thực hiện các tác vụ nào? Bạn có câu hỏi gì? - Một cách tiếp cận khác là thử đóng vai trò của một người học việc từ một người dùng chính. Người dùng được phỏng vấn sẽ hướng dẫn cuộc thảo luận và mô tả những gì họ thấy.
06/21/2023 Phân tích yêu cầu phần mềm 67
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu Chú ý khi chuẩn bị các câu hỏi: - Có thể sử dụng các câu hỏi thăm dò xung quanh các ngoại lệ: "Điều gì có thể ngăn người dùng hoàn thành thành công một nhiệm vụ?", "Làm thế nào để hệ thống đáp ứng với các điều kiện lỗi khác nhau?", "Còn gì có thể . . . " , "Chuyện gì xảy ra khi . . . ", "Bạn có bao giờ cần . . . ", "Bạn nhận được . . . ở đâu?", "Tại sao bạn (hoặc không phải bạn) . . . ", "Có ai từng . . . ", … - Khi xây dựng một hệ thống mới thay thế cho hệ thống cũ, có thể đặt câu hỏi dạng: "Ba điều làm bạn khó chịu nhất với hệ thống hiện tại là gì?"
06/21/2023 Phân tích yêu cầu phần mềm 68
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu Chú ý khi chuẩn bị các câu hỏi: - Ghi nhớ: BA có thể không có hoặc không cần một kịch bản với các câu hỏi hoàn hảo cho một cuộc phỏng vấn hoặc hội thảo. Việc chuẩn bị các câu hỏi là để giúp BA chủ động hơn và có thể cần đến khi gặp khó khăn. Các câu hỏi cần được đặt ra một cách tự nhiên và thoải mái - như một cuộc trò chuyện - không nên như một cuộc thẩm vấn. Tùy vào diễn biến của cuộc thảo luận, có thể bỏ qua các câu hỏi đã chuẩn bị sẵn.
06/21/2023 Phân tích yêu cầu phần mềm 69
2.1.3.4. Chuẩn bị cho phát hiện yêu cầu • Chuẩn bị các mô hình nếu cần: Việc phân tích các mô hình có thể được sử dụng trong các phiên phát hiện yêu cầu để giúp người dùng cung cấp các yêu cầu tốt hơn. Một số mô hình hữu ích nhất là các biểu đồ use cases và các biểu đồ process flows bởi vì chúng rất gần với cách nghĩ của mọi người về việc thực hiện các công việc của họ.
06/21/2023 Phân tích yêu cầu phần mềm 70
2.1.3.5. Thực hiện các hoạt động phát hiện yêu cầu
• Thực hiện các hoạt động phát hiện yêu cầu trong phiên phát hiện yêu cầu:
06/21/2023 Phân tích yêu cầu phần mềm 71
2.1.3.5. Thực hiện các hoạt động phát hiện yêu cầu
Các vấn đề cần chú ý:
• Giáo dục các bên liên quan: Cần chỉ dẫn cho các bên liên quan về cách tiếp cận phát hiện yêu cầu của BA và lý do vì sao BA chọn phương pháp đó. Giải thích các kỹ thuật thăm dò sẽ được sử dụng, chẳng hạn như use cases và process flows. Điều đó giúp các bên liên quan cung cấp các yêu cầu tốt hơn, đồng thời cho phép mô tả cách BA sẽ nắm bắt thông tin và gửi cho họ các tài liệu để kiểm tra lại sau phiên phát hiện yêu cầu.
06/21/2023 Phân tích yêu cầu phần mềm 72
2.1.3.5. Thực hiện các hoạt động phát hiện yêu cầu
Các vấn đề cần chú ý:
• Ghi chép tốt: Cần chỉ định một người chịu trách nhiệm ghi chép chính xác các nội dung trong cuộc thảo luận. Các ghi chép bao gồm cả danh sách người tham dự, những người được mời nhưng không tham dự, những quyết định được đưa ra, những hành động được thực hiện và ai là người chịu trách nhiệm, những vấn đề nổi bật, những vấn đề then chốt của cuộc thảo luận. Nếu không bố trí được người chuyên ghi chép, BA cần chuẩn bị để viết tốc ký, ghi chép thật nhanh hoặc sử dụng thiết bị ghi âm (nếu người tham gia đồng ý) và các thiết bị hỗ trợ khác nếu có thể (audio pen, bảng, máy ảnh, …)
06/21/2023 Phân tích yêu cầu phần mềm 73
2.1.3.5. Thực hiện các hoạt động phát hiện yêu cầu
Các vấn đề cần chú ý:
• Nên chuẩn bị trước các câu hỏi, tuy nhiên nếu có các câu hỏi bất chợt nảy sinh trong quá trình thảo luận, có thể ghi lại bằng ký hiệu viết tắt để dễ dàng quay lại khi cần. Với các biểu đồ phức tạp, không nên cố gắng nắm bắt mà nên chụp hình lại hoặc phác thảo nhanh ra giấy. • Khai thác không gian vật lý: Có thể sử dụng các bức tường trong phòng hội thảo để treo các bảng, các sơ đồ hoặc dán ghi chú, … Nên mời những người tham gia cùng tham gia vào việc vẽ sơ đồ, tạo danh sách, … Nếu có hiện vật (các mô hình, các yêu cầu hiện có hoặc các hệ thống hiện có, …) hãy chiếu chúng lên tường (theo kỹ thuật “Wall of Wonder” - Gottesdiener (2002)) 06/21/2023 Phân tích yêu cầu phần mềm 74 2.1.3.5. Thực hiện các hoạt động phát hiện yêu cầu
Các vấn đề cần chú ý:
• Việc tạo điều kiện cho các phiên hợp tác với những người tham gia ở nhiều địa điểm đòi hỏi sự sáng tạo hơn. Cần cân nhắc đến việc sử dụng các công cụ hội nghị trực tuyến để chia sẻ các slide và cho phép tương tác, hoặc sử dụng các công cụ tổ chức hội nghị truyền hình nếu cần.
06/21/2023 Phân tích yêu cầu phần mềm 75
2.1.3.6. Theo dõi sau khi phát hiện yêu cầu • Sau khi hoàn tất hoạt động phát hiện yêu cầu, cần tổ chức và chia sẻ các ghi chú, lập tài liệu về các vấn đề mở và phân loại các thông tin mới được thu thập.
06/21/2023 Phân tích yêu cầu phần mềm 76
2.1.3.6. Theo dõi sau khi phát hiện yêu cầu • Tổ chức và chia sẻ các ghi chú: Đối với các cuộc phỏng vấn hoặc hội thảo, việc tổ chức các ghi chú sẽ mất nhiều thời gian và nỗ lực hơn so với việc phát hiện yêu cầu độc lập do phải tổng hợp các ghi chú từ nhiều nguồn. Cần xem lại và các cập nhật ghi chú ngay sau khi phiên hoàn tất. Ngay sau đó, chia sẻ bản tổng hợp các ghi chú với những người tham gia và yêu cầu họ xem xét chúng để đảm bảo rằng bản ghi chú đã đầy đủ và chính xác. Có thể tổ chức các cuộc thảo luận tiếp theo để giải quyết bất kỳ mâu thuẫn và những vấn đề còn thiếu sót nếu có. Chia sẻ bản tổng hợp ghi chú với những người vắng mặt để họ nhận thức được tiến độ. 06/21/2023 Phân tích yêu cầu phần mềm 77 2.1.3.6. Theo dõi sau khi phát hiện yêu cầu • Lập tài liệu về các vấn đề mở: Trong các hoạt động phát hiện yêu cầu, có thể có các vấn đề cần được khám phá thêm, các lỗ hổng kiến thức hoặc các câu hỏi mới nảy sinh. Các vấn này cần được ghi lại trong một công cụ theo dõi các vấn đề. Đối với mỗi vấn đề, cần ghi lại bất kỳ các ghi chú có liên quan đến việc giải quyết chúng; ghi lại tiến độ đã thực hiện, người chịu trách nhiệm và thời hạn giải quyết các vấn đề.
06/21/2023 Phân tích yêu cầu phần mềm 78
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng • Đừng mong đợi các khách hàng sẽ trình bày một danh sách ngắn gọn, đầy đủ và được tổ chức tốt về các nhu cầu của họ! BA luôn phải phân loại vô số các thông tin yêu cầu từ khách hàng thành nhiều loại khác nhau để có thể ghi chép và sử dụng chúng một cách thích hợp
06/21/2023 Phân tích yêu cầu phần mềm 79
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Yêu cầu kinh doanh/nghiệp vụ (Business requirements): Bất cứ điều gì mô tả về tài chính, thị trường hoặc lợi ích kinh doanh nghiệp vụ mà các khách hàng hoặc tổ chức muốn đạt được từ sản phẩm. Hãy lắng nghe các phát biểu về giá trị mà người mua hoặc người dùng phần mềm muốn nhận được, ví dụ: “Cần nâng cao thị phần tại khu vực X thêm Y phần trăm trong vòng Z tháng” “Cần tiết kiệm X $ tiền điện đang bị lãng phí mỗi năm bởi các bộ phận hoạt động kém hiệu quả”
06/21/2023 Phân tích yêu cầu phần mềm 80
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Yêu cầu người dùng (User requirements): Tuyên bố chung về các mục tiêu của người dùng hoặc các tác vụ, nhiệm vụ mà người dùng cần thực hiện, thường được trình bày dưới dạng các trường hợp sử dụng, các tình huống hoặc các câu chuyện của người dùng. Khi khách hàng nói: “Tôi cần <làm gì đó>”, tức là họ đang mô tả yêu cầu của người dùng, ví dụ: ̵ “Tôi cần in hóa đơn bán hàng cho khách”
06/21/2023 Phân tích yêu cầu phần mềm 81
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Quy tắc nghiệp vụ: Khi một khách hàng nói rằng chỉ một số người dùng nhất định có thể thực hiện một hoạt động trong các điều kiện cụ thể, tức là có thể khách hàng đang trình bày về một quy tắc nghiệp vụ. Chúng không phải là yêu cầu phần mềm, nhưng từ đó có thể rút ra một số yêu cầu chức năng để thực thi các quy tắc. Một số cụm từ như: “Phải tuân thủ . . .”, “Nếu <một số điều kiện là đúng> thì <một cái gì đó xảy ra>”, “Phải được tính theo . . .” sẽ thường được nhắc đến, ví dụ: ̵ “Một khách hàng mới sẽ phải trả 30% phí tư vấn và chi phí đi lại”. ̵ “Việc phê duyệt thời gian nghỉ phép phải tuân thủ chính sách nghỉ phép HR của công ty”, …
06/21/2023 Phân tích yêu cầu phần mềm 82
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Yêu cầu chức năng (Functional requirements): Mô tả các hành vi có thể quan sát được của hệ thống trong những điều kiện nhất định và các hành động mà hệ thống sẽ cho phép người dùng thực hiện. Ví dụ: “Nếu áp suất vượt quá 40.0 psi, đèn cảnh báo áp suất cao sẽ bật sáng” “Người dùng phải có khả năng sắp xếp danh sách các dự án theo thứ tự bảng chữ cái tăng dần hoặc giảm dần”
06/21/2023 Phân tích yêu cầu phần mềm 83
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Các thuộc tính chất lượng (Quality attributes): Mô tả hệ thống cần làm tốt một cái gì đó như thế nào, thường chứa các từ mô tả đặc điểm mong muốn của hệ thống: nhanh, dễ dàng, thân thiện với người dùng, đáng tin cậy, an toàn, ví dụ: “Phần mềm cho thiết bị di động cần đáp ứng nhanh các thao tác chạm màn hình” “Chức năng giỏ hàng phải đơn giản, dễ sử dụng” BA cần phải làm việc với người dùng để có thể viết rõ ràng các thuộc tính chất lượng nhằm kiểm chứng được chúng sau này.
06/21/2023 Phân tích yêu cầu phần mềm 84
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Yêu cầu giao diện bên ngoài (External interface requirements): Mô tả các kết nối giữa hệ thống với thế giới bên ngoài, bao gồm giao diện cho người dùng, phần cứng và các hệ thống phần mềm khác. Thường gặp các cụm từ như: “Phải đọc tín hiệu từ . . .”, “Phải gửi thông điệp tới . . .”, “Phải có khả năng đọc tệp theo định dạng …”, “Giao diện phải tuân theo chuẩn …”, … Ví dụ: “Ứng dụng di động sẽ gửi hình ảnh kiểm tra tới ngân hàng sau khi tôi chụp hình đang ký gửi” “Hệ thống phải gửi thông tin đặt hàng vào hòm thư của tôi sau khi tôi nhấn nút Gửi đơn hàng”
06/21/2023 Phân tích yêu cầu phần mềm 85
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Các ràng buộc (Constraints): Các ràng buộc thiết kế và triển khai sẽ hạn chế các tùy chọn của nhà phát triển. Các thiết bị với các phần mềm nhúng thường có các ràng buộc vật lý như kích thước, trọng lượng và giao diện kết nối. Các cụm từ thường gặp: “Phải được viết bằng <một ngôn ngữ lập trình cụ thể>”, “Không thể vượt quá <một số giới hạn>”, “Phải sử dụng ...”. Ví dụ: “Kích thước các tập tin được gửi không vượt quá 10 MB” “Trình duyệt phải sử dụng mã hóa 256 bit cho tất cả các giao dịch an toàn”
06/21/2023 Phân tích yêu cầu phần mềm 86
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Yêu cầu dữ liệu (Data requirements): Các yêu cầu về định dạng, kiểu dữ liệu, miền giá trị hoặc giá trị mặc định, thành phần của một cấu trúc dữ liệu nghiệp vụ phức tạp, hoặc một báo cáo sẽ được tạo, … Ví dụ: “ZIP code có 5 chữ số, theo sau là dấu gạch nối và bốn chữ số mặc định là 0000” “Một đơn hàng bao gồm: định danh khách hàng, thông tin vận chuyển và một hoặc nhiều sản phẩm với mã sản phẩm, số lượng theo đơn vị tính, đơn giá, thành tiền”
06/21/2023 Phân tích yêu cầu phần mềm 87
2.1.3.7. Phân loại thông tin đầu vào từ khách hàng
Một số gợi ý phân loại các thông tin yêu cầu:
• Ý tưởng giải pháp (Solution ideas): Nhiều yêu cầu từ người dùng lại là những ý tưởng thực sự. Chẳng hạn, khi họ mô tả cụ thể cách thức tương tác với hệ thống để thực hiện một số hành động tức là họ đang đề xuất một giải pháp. Ví dụ: “Sau đó tôi chọn Tỉnh mà tôi muốn gửi gói hàng đến từ một danh sách các tỉnh được thả xuống” “Điện thoại phải cho phép người dùng vuốt ngón tay để điều hướng giữa các màn hình”
06/21/2023 Phân tích yêu cầu phần mềm 88
2.1.3.8. Một số vấn đề khác • Nhận biết thời điểm hoàn thành việc phát hiện yêu cầu • Một số điểm cần lưu ý khi phát hiện yêu cầu • Các yêu cầu giả định và yêu cầu ngầm • Tìm kiếm các yêu cầu còn thiếu