1.49k likes | 1.99k Views
Chương 2. PHÁT TRIỂN YÊU CẦU PHẦN MỀM Xây dựng tầm nhìn và phạm vi dự án Establishing the Product Vision and Project Scope. Nội dung. Xác định những người liên quan (stakeholder) Hiểu nhu cầu khách hàng Thu nhận yêu cầu từ khách hàng Phân biệt goal và requirement
E N D
Chương 2 PHÁT TRIỂN YÊU CẦU PHẦN MỀM Xây dựng tầm nhìn và phạm vi dự án Establishing the Product Vision and Project Scope BM HTTT - Khoa CNTT - HUI
Nội dung • Xác định những người liên quan (stakeholder) • Hiểu nhu cầu khách hàng • Thu nhận yêu cầu từ khách hàng • Phân biệt goal và requirement • Khái niệm Product Vision và Project Scope • Xác định boundary bằng phương pháp soft system • Xác định yêu cầu chức năng bằng phương pháp hard system • Lược đồ ngữ cảnh BM HTTT - Khoa CNTT - HUI
Qui Trình BM HTTT - Khoa CNTT - HUI
Stakeholder là gì • Stakeholder: An individual, group of people, organisation or other entity that has a direct or indirect interest (or stake) in a system. • A stakeholder’s interest in a system may arise from using the system, benefiting from the system (in terms of revenue or other advantage), being disadvantaged by the system (in terms, for instance, of cost or potential harm), being responsible for the system, or otherwise being affected by it. • Stakeholders are legitimate sources of requirements.
Stakeholder • Customers • Users • Requirements analysts • Developers • Testers • Documentation writers • Project managers • Legal staff – nhóm người làm việc hợp pháp • Manufacturing people – người sản xuất • Sales, marketing, field support, help desk, …
Xác định những người liên quan • Stakeholder: • Bao gồm những người, tổ chức mà là một phần của môitrường hệ thống. Hệ thống cung cấp cho họ những lợi ích và họ có tầm quan trọng trong hệ thống • Stakeholder: • Users, operators, bill payers, owners, regulatory agencies, victims, sponsors, maintainers, architects, managers, customers, surrogate customers … BM HTTT - Khoa CNTT - HUI
Các stakeholder của Boeing 787 • Users: passengers that fly on the airplane • Operators: fight crews and mechanics • Bill payers: airline companies • Owners: stockholders of these companies • Regulators: FAA • Sponsor: corporate headquarters • Maintenance: ground crew • Victims: people living near the airports… BM HTTT - Khoa CNTT - HUI
Cần quan tâm tới qui trình BM HTTT - Khoa CNTT - HUI
Các stakeholder khác • Users and operators: employees in the manufacturing plant • Bill payer: Boeing • Owner: stockholders of Boeing • Regulators: OSHA • Victims: physically and emotionally injured workers • Air traffic control tower BM HTTT - Khoa CNTT - HUI
Stakeholder của hệ thống ATM • Khách hàng của ngân hàng • Đại diện của các ngân hàng khác • Người quản lý ngân hàng • Nhân viên thu tiền • Người quản trị CSDL • Người quản lý bảo mật • Kỹ sư bảo trì phần cứng và phần mềm • Những người điều phối ngân hàng… BM HTTT - Khoa CNTT - HUI
Stakeholder • Stakeholder không rõ những gì họ thật sự muốn • Stakeholder diễn đạt yêu cầu theo những thuật ngữ riêng của họ • Những stakeholder có thể có những yêu cầu tranh chấp • Nhân tố quyền lực và tổ chức ảnh hưởng tới yêu cầu hệ thống • Những yêu cầu có thể thay đổi trong quá trình phân tích, có thể xuất hiện những nhân tố mới, những thay đổi về môi trường nghiệp vụ BM HTTT - Khoa CNTT - HUI
Các hoạt động đầu tiên của requirements engineering • Phân tích thông tin thị trường, stakeholder, và nhu cầu của người dùng để suy dẫn các yêu cầu chức năng và phi chức năng. • Hiểu được ảnh hưởng của các yêu cầu đến nghiệp vụ • Hợp nhất các yêu cầu này lại để hoàn thành các đặc tả yêu cầu và hệ thống
Hiểu nhu cầu của khách hàng • Nhà phân tích phải ở trong môi trường của kháchhàng để khám phá các chi tiết và giải thích cho họ • Thiết kế mềm dẻo và tạo mẫu nhanh là những phương tiện xác định yêu cầu của khách hàng BM HTTT - Khoa CNTT - HUI
Phát biểu của khách hàng BM HTTT - Khoa CNTT - HUI
Khách hàng là ai? • Khách hàng là một cá nhân hay 1 tổ chức mong muốn trực tiếp hoặc gián tiếp có lợi từ sản phẩm. • Hai loại khách hàng phần mềm: • Khách hàng cấp quản lý (management level) • Người dùng cuối (end user) BM HTTT - Khoa CNTT - HUI
Khách hàng ở cấp quản lý • Thường là những khách hàng trả tiền hay tài trợ dự án phần mềm. • Khách hàng ở cấp quản lý có nhiệm vụ xác định yêu cầu nghiệp vụ • Mô tả mục tiêu nghiệp vụ mà khách hàng, công ty hay các stakeholder muốn hoàn thành. • Xác lập các thành phần chính cho phần còn lại của dự án • Các yêu cầu nghiệp vụ không đủ chi tiết để giúp các nhà phát triển biết phải xây dựng cụ thể cái gì BM HTTT - Khoa CNTT - HUI
Khách hàng là người dùng cuối • Bao gồm tất cả những ai sẽ thực sự sử dụng sản phẩm • Người dùng có thể mô tả việc dùng sản phẩm chocông việc của họ và những mong đợi về chấtlượng từ sản phẩm BM HTTT - Khoa CNTT - HUI
Đặc tính của khách hàng • Thường cả hai loại khách hàng này đều cho rằnghọ không có nhiều thời gian để làm việc với các nhà phân tích yêu cầu. • Đôi lúc họ nghĩ là nhà phân tích sẽ hình dung ra được cái người dùng cần mà không cần phải thảo luận với nhau. BM HTTT - Khoa CNTT - HUI
Đặc tính của khách hàng • Thường xuất hiện những xung đột giữa yêu cầunghiệp vụ và yêu cầu người dùng. • Yêu cầu nghiệp vụ phản ánh chiến lược của tổchức và các ràng buộc về tài chính mà người dùngcó thể không nhìn thấy được người dùngthường thất vọng về hệ thống mới, họnghĩ mình như “con tốt” của 1 tương lai khôngnhư ý… • Nhà phân tích nên làm việc với các đại diện chínhcủa người dùng và các nhà tài trợ để hòa giải cácxung đột. BM HTTT - Khoa CNTT - HUI
Quanhệkháchhàngvànhàpháttriển • Thường có sự mâu thuẫn giữa người phát triển và khách hàng • Người quản lý thường ưu tiên cho việc phù hợp với lịch làm việc của chính họ BM HTTT - Khoa CNTT - HUI
Chất lượng dưới nhiều góc độ BM HTTT - Khoa CNTT - HUI
Bill of Rights for Software Customers • Expect analysts to speak your language. • Expect analysts to learn about your business and your objectives for the system. • Have analysts explain all work products created from the requirements process. • Have analysts and developers provide ideas and alternatives both for your requirements and for implementation of the product. • Describe characteristics of the product that will make it easy and enjoyable to use... BM HTTT - Khoa CNTT - HUI
Khách hàng với Thu nhận yêu cầu • Xác định tầm quan trọng của quan điểm khách hàng • Là một kỹ thuật đòi hỏi nhiều kiến thức BM HTTT - Khoa CNTT - HUI
Các bước tìm hiểu khách hàng • Nhận biết các lớp người dùng khác nhau • Xác định các nguồn của yêu cầu người dùng. • Chọn và làm việc với cá nhân tiêu biểu cho mỗi lớp người dùng hay nhóm stakeholder khác nhau. • Thỏa thuận các yêu cầu với người ra quyết định của dự án. BM HTTT - Khoa CNTT - HUI
Các khó khăn khi thu thập • Việc không phù hợp giữa sản phẩm mà khách hàng mong đợi và sản phẩm mà nhà phát triểnxây dựng thường do: • Thiếu sự quan tâm của khách hàng. • Khách hàng thường không biết chính xác cái họ thực sự cần • Nhà phân tích yêu cầu cần thu thập user input, phân tích và xác định rõ cần xây dựng cái gì để giúp người dùng hoàn thành công viêc̣ của họ. BM HTTT - Khoa CNTT - HUI
Managing the Customer Relationship • Cầnphảibảođảmđượcsựhợptáccủakháchhàngđểcóthểthunhậnđượcchuyênmônnghiệpvụ (domain expertise) • Vídụ: nếu 1 dựáncólịchbiểucốđịnhvàmốiquanhệvớikháchhàngkhôngđượctốt việctiếpnhậnvềchuyênmônbịhạnchế, dẫnđếnkếtthúcdựánbịquáhạn It is out experience that constant communication with the customer BM HTTT - Khoa CNTT - HUI
Phânloạiyêucầucủakháchhàng • Không nên mong đợi khách hàng sẽ cung cấp 1 danh mục có thứ tự, hoàn chỉnh và đầy đủ mọi nhu cầu của họ. • Analysts cần phải phân loại vo số thông tin lộn xộn mà họ thu thập được thành các loại khác nhau sao cho có thể ghi nhận và sử dụng được một cách hiệu quả. BM HTTT - Khoa CNTT - HUI
Chínloạiyêucầucủakháchhàng BM HTTT - Khoa CNTT - HUI
Nguyên tắc khi thu thập thông tin khách hàng • Tránh làm phiền đến đời sống và công việc thường ngày của khách hàng • Chuẩn xác tối đa, phân biệt rõ thông tin thật giả • Nắm bắt điểm máu chốt, loại bỏ thông tin không cần thiết • Không được tùy tiện để lộ thông tin của khách hàng ra ngoài.
Nhà phân tích yêu cầu - Requirements analyst • Các từ đồng nghĩa: • Nhà phân tích yêu cầu (Requirements analyst) • Nhà phân tích hệ thống (Systems analyst) • Kỹ sư yêu cầu (Requirements engineer) • Nhà quản lý yêu cầu (Requirements manager) • Nhà phân tích (Analyst)Systems analyst
Vai trò của analyst • Nhà phân tích là người chuyển các ý tưởng thànhnhững đặc tả yêu cầu. • Nhà phân tích là người có quan hệ truyền thông với các stakeholder, giúp các stakeholder tìm thấy sự khác nhau giữa cái họ muốn và cái họ thực sự cần • Là người có nhiệm vụ cơ bản là thu thập, phân tích, ghi chép và kiểm tra nhu cầu của các stakeholder • Họ như là một cầu nối giữa cộng đồng kháchhàng và đội phát triển phần mềm. • Nhà phân tích đóng vai trò trung tâm trong việcthu thập và phổ biến thông tin, còn người quản lýdự án (project manager) giữ vai trò lãnh đạotrong việc truyền đạt thông tin dự án
Nhiệm vụ của nhà phân tích • Analyst trước tiên phải hiểu mục tiêu của người dùng, sau đó xác định các yêu cầu chức năng, cho phép người quản lý dự án làm các ước tính, các developers thiết kế, xây dựng và kiểm định sản phẩm. • Thực hiện nhiệm vụ với thời gian tiêu tốn cao (lặp) nhưng nếu không đầu tư thời gian thì có thểdẫn đến hậu quả: phải thực hiện lại, trễ hạn, khách hàng không thỏa mãn BM HTTT - Khoa CNTT - HUI
Nhiệm vụ của Requirements analyst • Xác định yêu cầu nghiệp vụ - Define business requirements. • Xác định các stakeholder và các lớp người dùng-dentify project stakeholders and user classes. • Rút ra những yêu cầu - Elicit requirements • Viết đặc tả yêu cầu-Write requirements specifications • Mô hình hóa yêu cầu-Model the requirements • Điều hành việc đánh giá yêu cầu-Lead requirements validation • Phân loại ưu tiên các yêu cầu- Facilitate requirements prioritization • Quản lý yêu cầu - Manage requirements Assignment ??
Kỹ năng của nhà phân tích • Kỹ năng lắng nghe - Listening skill • Kỹ năng phỏng vấn - Interviewing and questioning skill • Kỹ năng phân tích - Analytical skill, • Kỹ năng điều khiển - Facilitation skills. • Kỹ năng quan sát - Observational skills. • Kỹ năng viết - Writing skills • Kỹ năng tổ chức - Organizational skills • Kỹ năng mô hình hóa - Modeling skills • Kỹ năng giao tiếp - Interpersonal skills • Tính sáng tạo - Creativity • Assignment ??
Phân loại người dùng • Dựa vào các yếu tố sau: • Mức độ thường xuyên người dùng sử dụng sản phẩm • Kinh nghiệm về miền ứng dụng của họ, sự thành thạo về hệ thống máy tính • Các tính năng mà người dùng sử dụng • Các tác vụ để hỗ trợ xử lý nghiệp vụ • Quyền truy xuất và cấp độ bảo mật BM HTTT - Khoa CNTT - HUI
Phân cấp người dùng BM HTTT - Khoa CNTT - HUI
Kinhnghiệmphânloạingườidùng • Nên phân loại người dùng sớm để có thể thu thập yêu cầu từ đại diện của mỗi lớp người dùng. • Không nên e ngại nếu lúc đầu có quá nhiều lớp người dùng • Không nên bỏ qua bất kỳ lớp người dùng nào vì sau này có thể sẽ phải rework • Ghép chung các lớp người dùng nào có yêu cầu tương tự nhau. Nên giảm xuống sao cho không quá 15 lớp người dùng khác nhau. BM HTTT Khoa CNTT - HUI
Tàiliệungườidùng • Ghi chép các lớp người dùng, tính cách, trách nhiệm, và địa điểm làm việc vào tài liệu SRS • Giúp đội phát triển xếp loại độ ưu tiên các yêu cầu • Giúp các tester xây dựng cách sử dụng hệ thống (usage profile for the system) và có thể lập kế hoạch cho việc kiểm thử BM HTTT Khoa CNTT - HUI
Cáclớpngườidùngtronghệthống Chemical tracking BM HTTT Khoa CNTT - HUI
Tìmđạidiệnngườidùng • Mỗi loại dự án đều cần có đại diện người dùng thích hợp để cung cấp tiếng nói chung cho nhóm người dùng đó. • Người đại diện không chỉ tham gia trong giai đoạn thu thập yêu cầu mà trong suốt chu kỳ phát triển dự án BM HTTT Khoa CNTT - HUI
Đạidiệnlớpngườidùng(user representatives) • Each user class needs to be represented • Đối với ứng dụng của công ty: dễ dàng xác định người dùng thực sự cho mỗi lớp người dùng. • Ví dụ: chọn Fred là kỹ sư hóa cho lớp chelmistt • Đối với phần mềm thương mại (commericial software): chỉ có thể có được người dùng thực sự sau khi phát hành phiên bản chạy thử (beta-testing) hay đầu tiên • Nên thiết lập nhóm người tình nguyện (focus group) từ những người dùng phần mềm của mình hay phần mềm của đối thủ BM HTTT Khoa CNTT - HUI
Focus Group • Phải đảm bảo nhóm tình nguyện đại diện cho loại người dùng mà nhu cầu của họ giúp ta phát triển hệ thống. • Nên bao gồm cả người dùng thành thạo và người dùng ít kinh nghiệm • Nếu nhóm tình nguyện chỉ toàn những người mơ mộng (blue –sky thinkers) không thực tế thì có thể sẽ thu được những yêu cầu phức tạp mà người dùng bình thường không hề nghĩ đến BM HTTT Khoa CNTT - HUI
Người dùng tiêu biểu PC • PC (Product champion) dùng để chỉ những thànhviên chính trong cộng đồng người dùng cung cấp cho dự án các yêu cầu. • Cs (Champions) là các người dùng thực sự, khôngphải là người đại diện như nhà tài trợ, nhân viêntiếp thị, người quản lý … BM HTTT - Khoa CNTT - HUI
VaitròcủaProductChampiom(PC) • PC (Product champion) thu thập yêu cầu từ các thành viên khác thuộc lớp người dùng mà họ đại diện và hợp nhất lại yêu cầu không giống nhau. • Phát triển yêu cầu là trách nhiệm chung của nhà phân tích và khách hàng đã được chọn, mặc dù nhà phân tích sẽ là người viết yêu cầu. BM HTTT - Khoa CNTT - HUI
Một PC tốt • Có cái nhìn rõ ràng về hệ thống mới và ủng hộ hệ thống vì họ thấy được lợi ích dành cho họ từ hệ thống mới này. • Là người cởi mở và được đồng nghiệp tín nhiệm. • Là người hiểu biết thấu đáo về nghiệp vụ và môitrường hoạt động của hệ thống. • Nhận thức được tầm quan trọng của họ đối với sự thành công của dự án. BM HTTT - Khoa CNTT - HUI
PC bên ngoài • Khi phát triển phần mềm thương mại, rất khó tìm PC từ bên ngoài. • Nếu có quan hệ công việc gần gũi với 1 số công ty, một số người thể sẵn lòng tham gia vào quá trình thu thập yêu cầu. • Nên khích lệ bằng kinh tế cho các PC bên ngoài như giảm giá sản phẩm hay trả tiền theo giờ khi họ tham gia công việc BM HTTT - Khoa CNTT - HUI
Quyền hạn của product champion • Phương pháp dùng PC chỉ tốt khi mỗi champion có quyền đưa ra các quyết định đại diện cho lớp của minh • Nếu quyết định của champion luôn bị gạt bỏ bởi managers hay SW group thì thời gian và thiện chí của họ sẽ bị lãng phí. • Nhưng champion cũng nên nhớ rằng họ không phải là khách hàng duy nhất BM HTTT - Khoa CNTT - HUI
Hạn chế tử PC • Làm thế nào để tránh chỉ nghe yêu cầu từ CP mà bỏ qua các nhu cầu từ các khách hàng khác. • Nếu khách hàng đa dạng thì nên trước tiên cầnnhận biết yêu cầu cơ bản chung cho mọi kháchhàng, sau đó xác định các yêu cầu khác từ cácloại người dùng khác, từ bộ phận tiếp thị, từ khách hàng riêng lẻ,… BM HTTT - Khoa CNTT - HUI
Hệ thống theo dõi hóa chất(Chemical Tracking) BM HTTT - Khoa CNTT - HUI