Vision dùng để chỉ đến cả hệ thống phần mềm, nó phản ánh mục tiêu nghiệp vụ business objectives của hệ thống, còn scope chỉ liên quan đến từng dự án riêng lẻ hay một
Trang 1ÔN TẬP GIỮA KỲ
Trang 26 Các kỹ thuật thu nhận yêu cầu
7 Các kỹ thuật phân tích yêu cầu
8 Bài tập
Trang 3Product Vision và Project Scope
Vision (hay mission) mô tả thực chất sản phẩm sẽ là cái gì
Project scope xác định một phần của mục đích lâu dài (long-term product vision) của sản phẩm
mà dự án hiện hành đang thực thi
Vision dùng để chỉ đến cả hệ thống phần mềm, nó phản ánh mục tiêu nghiệp vụ (business objectives) của hệ thống, còn scope chỉ liên quan đến từng dự án riêng lẻ hay một lần lặp trong quá trình phát triển tăng tiến các chức năng của hệ thống
BM HTTT - Khoa CNTT - HUI 3
Trang 4Product Vision và Project Scope
Vision thay đổi tương đối chậm, scope thay đổi linh động theo mỗi dự án tùy thuộc vào các ràng buộc về thời gian (schedule), ngân sách (budget), tài nguyên (resource) và chất lượng (quality) của dự án
Các tài liệu nên có của mỗi dự án mới
Vision and scope document
Software Requirement Specification (SRS)
BM HTTT - Khoa CNTT - HUI 4
Trang 5Product vision và project scope
BM HTTT - Khoa CNTT - HUI 5
Trang 6Vision và Scope Document
Tài liệu bao gồm một mô tả về cơ hội kinh doanh của sản phẩm, tầm nhìn và các mục tiêu của sản phẩm, báo cáo phạm vi và các giới hạn của sản phẩm, mô tả đặc tính của khách hàng (characterization of customers), các ưu tiên của dự án, mô tả các tiêu chuẩn đánh giá sự thành công của dự án
Tài liệu cần tương đối ngắn, chỉ nên từ 3 tới 8 trang, phụ thuộc chủ yếu vào bản chất và kích thước của dự án
BM HTTT - Khoa CNTT - HUI 6
Trang 7Vision và Scope Document
Các vấn đề thuộc tầm nhìn và phạm vi (vision and scope) của dự án cần được phân giải rõ trước khi các yêu cầu chức năng (functional requirements) chi tiết được đặc tả đầy đủ
Một tài liệu tầm nhìn và phạm vi (vision and scope) tốt sẽ cung cấp các tham chiếu cần thiết cho việc thêm, xoá bỏ, chỉnh sửa các yêu cầu trong tiến trình phát triển của dự án
BM HTTT - Khoa CNTT - HUI 7
Trang 8Tài liệu về vision và scope
Chủ nhân của tài liệu vision and scope là:
Người tài trợ chính (executive sponsor) của dự án
Người chi tiền (funding authority)
Người phân tích yêu cầu (requirements
analyst) có thể làm việc với owner để viết tài
liệu vision and scope
BM HTTT - Khoa CNTT - HUI 8
Trang 9Tài liệu về vision và scope
Yêu cầu nghiệp vụ nên thu thập từ những ai hiểu rõ vì
sao họ quan tâm đến dự án Họ là:
Customer
Senior management
Project visionary
Product manager
Subject matter expert
Members of the marketing
Người hình dung của dự án
Quản lý sản phẩm
Các chuyên gia lãnh vục
Thành viên của bộ phận marketing
Trang 10Scope of a project
Cần phải xác định scope (=boundary) của phần mềm
Một trong các rủi ro lớn nhất của hệ thống là
để cho scope “phình ra” (‘creep’), không ai biết chính xác hệ thống bao gồm những gì, mất bao lâu và chi phí bao nhiêu để hoàn tất
BM HTTT - Khoa CNTT - HUI 10
Trang 11Scope of a project
BM HTTT - Khoa CNTT - HUI 11
Trang 12Scope of a project
BM HTTT - Khoa CNTT - HUI 12
Trang 13Xá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ôi trườ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
BM HTTT - Khoa CNTT - HUI 13
Trang 14• 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, …
Stakeholder
14
Trang 15Stakeholder 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 15
Trang 16Stakeholder
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 16
Trang 17Thực hành
Bạn là người quản lý sản phẩm cho một công ty công cụ máy Giám đốc yêu cầu bạn phát triển một máy cắt mới quần áo để may váy thời trang theo các kích cỡ và mẫu Máy được bán cho những người làm quần áo khắp thế giới
1. Các stakeholder?
2. Phân tích và đánh giá các stakeholder?
BM HTTT - Khoa CNTT - HUI 17
Trang 18Answer #1
Key stakeholders are:
Giám đốc và các cổ đông trong công ty
Nhân viên bán hàng và tiếp thị của công ty
Khách hàng (những người vận hành máy cắt và chủ của họ)
Quan chức chính quyền phụ trách về sức khỏe và an toàn trong mỗi quốc gia mà ta dự định bán máy cho họ
Các đối thủ cạnh tranh (negative stakeholders)
Nếu công ty có ý định đảm nhận thêm khâu bảo trì máy móc thì đội bảo hành cũng là stakeholder chính
Trang 20Phâ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 20
Trang 21Phân cấp người dùng
BM HTTT - Khoa CNTT - HUI 21
Trang 22Kinh nghiệm phân loại người dù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 22
Trang 23Tài liệu người dù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 23
Trang 24Tìm đại diện người dù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 24
Trang 25Đại diện lớp người dùng
(user representatives)
Đố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 25
Trang 26Người dùng tiêu biểu PC
PC (Product champion) dùng để chỉ những thành viê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ông phải là người đại diện như nhà tài trợ, nhân viên tiếp thị, người quản lý …
BM HTTT - Khoa CNTT - HUI 26
Trang 27Vai trò của Product Champiom
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 27
Trang 28Mộ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ôi trườ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 28
Trang 29PC 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 29
Trang 30Quyề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 30
Trang 31Hạ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ì trước tiên cần nhận biết yêu cầu cơ bản chung cho mọi khách hàng, sau đó xác định các yêu cầu khác từ các loạ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 31
Trang 32Goal và requirement
Goals là cái mà stakeholders muốn thực thi
Goals có thể có nhiều mức độ khác nhau:
Mức cao nhất (highest level): phát biểu về
nhiệm vụ và mục tiêu, chính là mission
statements and objectives
(Có thể dùng Mission = vision = objective)
Mục tiêu lâu dài thì được gọi là policies
Mức thấp nhất (lowest level): gọi là chức năng
cơ bản riêng biệt (individual functions)
BM HTTT - Khoa CNTT - HUI 32
Trang 33Goal và requirement
Mục tiêu chi tiết sẽ trở thành requirement khi:
Có thể kiểm chứng được (fully verifiable)
Được xếp loại ưu tiên trong 1 dự án cụ thể
BM HTTT - Khoa CNTT - HUI 33
Trang 34Question 2
You are a product manager for a machine tool company The directors have asked you to develop a new cutting machine to cut cloth for fashionable dresses of all sizes and patterns The machine will be sold to clothing makers around the world
a What are the major goals for this project?
b Using the list of stakeholders for this project, identify the likely sources of tension (possible conflict) between stakeholders’ goals
Trang 35Answer #2
Major goals:
- Đưa máy cắt ra thị trường đúng lúc và trong ngân sách dự tính
- Phát triển 1 dòng sản phẩm mới
- Đạt được chứng nhận an toàn (safety certificate) ở tất cả các quốc gia dư định bán máy
- Hiểu được yêu cầu trong từng quốc gia mà ta dự định bán máy,
- Chuẩn bị tài liệu cho người dùng và người bán hàng bằng nhiều thứ tiếng tương ứng với các quốc gia mà ta dự định bán máy
- Bảo đảm là bộ phận bảo hành phải sẵn sàng
- Bảo đảm là bộ phận phân phối tiếp thị đã sẵn sàng
- Hiểu rõ các đối thủ cạnh tranh và có chiến lược đối phó
Trang 3636
36
Một yêu cầu là một đặc trưng của hệ thống, hay là sự
mô tả những việc, mà hệ thống có khả năng thực hiện
để hoàn thành mục tiêu của hệ thống
Yêu câù cũng có thê ̉là các ràng buộc trong quá trình phát triển hệ thống
Yêu cầu có thể được ràng buộc bởi hợp đồng hay văn bản
Có những yêu cầu ngầm định (implicit)
Một yêu cầu có thể được nhận biết (known, spoken)/ không nhận biết (forgotten, unspoken…)
Requirements described the “what” of a system, not the
“how”
Yêu cầu (requirement)
Trang 37 Yêu cầu quan trọng vì nó cung cấp các cơ sở cho tất cả công việc phát triển hệ thống sau đó
Ngay khi yêu cầu được xác định, nhà phát triển khởi đầu các công việc kỹ thuật khác như: thiết kế hệ thống, phát triển, kiểm thử, thực thi và vận hành
Vai trò của yêu cầu
37
Trang 38 Yêu cầu được phát biểu (stated requirement)
Yêu cầu thực (real requirement)
Phân loại yêu cầu
38
Trang 39 Là các yêu cầu được cung cấp bởi khách hàng khi bắt đầu phát triển hệ thống
Các dạng yêu cầu:
Yêu cầu về thông tin
Dự toán
Bảng báo giá
Phát biểu công việc (statement of work –
SOW)
Stated Requirements
39
Trang 40 Là các yêu cầu phản ánh nhu cầu xác thực của người dùng
Thường khác nhau rất lớn giữa yêu cầu phát biểu và yêu cầu thực
Việc phân tích các yêu cầu khách hàng (stated requirements) được dùng để xác định và tinh chỉnh các nhu cầu thực sự của khách hàng
Real Requirements
40
Trang 41 Là hệ thống các phương thức có liên quan với
nhau chỉ định cái mà khách hàng muốn hệ
Trang 42 Analysis is the process of determining
what the customer wishes the system to
do and formally creating a list of
requirements that the customer can
understand and agree to do
Modeling is a process of interpreting the
customer requirements into something
that software engineers can understand
Requirements Engineering
42
Trang 43Phân loại yêu cầu trong quá trình
phân tích yêu cầu
43
Gồm hai loại chính:
• Yêu cầu chức năng (Function requirements)
• Yêu cầu phi chức năng (Non Functional Requirements)
Trang 44Yêu cầu chức năng
(Functional requirements)
44
Yêu cầu chức năng (Functional requirements):
chức năng dịch vụ hệ thống cung cấp
Xác định chức năng của phần mềm mà các nhà phát triển phải xây dựng để giúp người dùng hoàn thành nhiệm vụ của họ, thỏa mãn được yêu cầu nghiệp vụ
Đôi khi còn được gọi là behavioral requirements
Ví dụ: “The system shall e-mail a reservation confrimation the user”
Trang 45Yêu cầu chức năng
(Functional requirements)
45
Yêu cầu chức năng (Functional requirements): Yêu
cầu chức năng chỉ ra những gì hệ thống làm, chúng
thường quan hệ các use-case hay những qui tắc
nghiệp vụ (business rule)
• Một số yêu cầu chức năng
• Chức năng tính toán
• Chức năng lưu trữ
• Chức năng tìm kiếm
• Chức năng kết xuất
• Chức năng backup, restore
• Chức năng đa người dùng
• Chức năng đa phương tiện…
Trang 46Yêu cầu chức năng
(Functional requirements)
46
Thí dụ: Trong hệ thống quản lý thư viện
• Người dùng có thể tìm kiếm, download, in những bài
báo
• Người dùng được cấp một vùng lưu trữ riêng để có
thể copy để lưu trữ tài liệu lâu dài…
Trang 47Yêu cầu phi chức năng
(Non-functional requirements
47
Yêu cầu phi chức năng (Non-functional requirements):
Không tập trung vào các chức năng của hệ thống mà chỉ tập trung vào các ràng buộc của hệ thống Những ràng buộc về tiêu chuẩn, thời gian, qui trình phát triển…, chủ yếu
là những yêu cầu về chất lượng
Sáu loại chính của yêu cầu phi chức năng: security, privacy, usability, reliability, availability, and performance
Ràng buộc: phản ảnh những đặc trưng của miền ứng
dụng Chúng có thể là những yêu cầu chức năng hay yêu cầu phi chức năng