17
1 Qun tryêu cu Tham kho: GeekCorps 2004 9/18/2006 Requirement Management 2 Gii thiu Mt trong nhng hot động đầu tiên Mc tiêu: tìm cái cn xây dng Giao tiếp gia người dùng và người phát trin, vì vy Không có ý hiu phc tp (ngoi trtrong lĩnh vc chuyên môn) Thường dùng ngôn ngtnhiên Hp đồng Các cách thc để xác định yêu cu Các cách thc để chun hóa yêu cu Scenarios, Use Cases, Mockups / Prototypes, Feature Lists Stakeholders Nhng người quan tâm đến sn phm

Week 04-requirements vn

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Week 04-requirements vn

1

Quản trị yêu cầu

Tham khảo: GeekCorps 2004

9/18/2006 Requirement Management 2

Giới thiệu� Một trong những hoạt động đầu tiên � Mục tiêu: tìm cái cần xây dựng� Giao tiếp giữa người dùng và người phát triển, vì vậy

� Không có ý hiệu phức tạp (ngoại trừ trong lĩnh vực chuyên môn)

� Thường dùng ngôn ngữ tự nhiên� Hợp đồng

� Các cách thức để xác định yêu cầu� Các cách thức để chuẩn hóa yêu cầu

� Scenarios, Use Cases, Mockups / Prototypes, Feature Lists

� Stakeholders� Những người quan tâm đến sản phẩm

Page 2: Week 04-requirements vn

2

Thế nào là quản trị yêu cầu ?

9/18/2006 Requirement Management 4

Thế nào là quản trị yêu cầu ?

� Là tiến trình tìm hiểu, sưu liệu và quản lý các yêu cầu.

� Sử dụng những kỹ thuật mang tính hệ thống để đảm bảo yêu cầu:� Complete (đầy đủ)� Consistent (nhất quán)� Relevant (thích đáng)

Page 3: Week 04-requirements vn

3

9/18/2006 Requirement Management 5

Thế nào là quản trị yêu cầu?

� Diễn tả bằng văn xuôi,� Tìm hiểu cái người dùng muốn

� Tổ chức thông tin này lại� Sưu liệu thông tin này� Theo vết thay đổi thông tin này� Quản lý tất cả thay đổi

� Đáp ứng nhu cầu người dùng cuối

� Thiết lập quy trình và thực hiện theo nó

9/18/2006 Requirement Management 6

Thế nào là quản trị yêu cầu?

� Hầu hết các tổ chức phát triển phần mềm đều làm việc này theo những cách thức khác nhau.

� Nhưng thường chúng không mang tính hình thức và mang tính không thống nhất từ dự án này qua dự án khác

� CMM Level 1 vs. CMM Level 2 = Định nghĩa được tiến trình quản lý yêu cầu

Page 4: Week 04-requirements vn

4

Thế nào là một yêu cầu?

9/18/2006 Requirement Management 8

Thế nào là một yêu cầu ?

� Là một khả năng của phần mềm được người dùng yêu cầu, để giải quyết một vấn đề nhằm đạt một mục tiêu nào đó.

� Thành công của dự án = sự thỏa mãn các nhu cầu.

Page 5: Week 04-requirements vn

5

9/18/2006 Requirement Management 9

Nguồn của yêu cầu: khách hàng� Phỏng vấn khách hàng

� Người trả tiền cho chúng ta� Những stakeholders

� Người sử dùng� Người quản lý

� Vấn đề:� Khách hàng có thể không biết họ muốn gì

� Phần mềm là một khái niệm trừu tượng và phức tạp� KH có thể thay đổi ý kiến� KH không có khả năng diễn tả nhu cầu theo những thuật ngữ chuyên

môn� Giao tiếp giữa người chuyên làm mềm <> người bình thường

� Các kỹ thuật� Giao diện� Hệ thống đã tồn tại

9/18/2006 Requirement Management 10

Nguồn của yêu cầu: thị trường

� Đánh giá các sản phẩm cạnh tranh� Những gì trước đây đã được thực hiện ?� Nơi nào là nơi thích hợp cho chúng ta ?� Nhưng, lưu ý tới vấn đề bản quyền, thương hiệu, bằng sáng chế …

� Tự đánh giá khả năng của chúng ta� Chúng ta có thể làm gì tốt hơn đối thủ cạnh tranh ?� Những kiến thức, kỹ năng, ý tưởng mà chúng ta có ?

� Khảo sát thị trường� Phỏng vấn khách hàng (cũ, tiềm năng,…)� Lưu ý tới những quảng cáo: tạo ra nhu cầu thị trường� Quan tâm đến xu hướng phát triển của thị trường

� Vấn đề:� Người ta không biết cái người ta muốn là gì ?

� Ví dụ: video telephones� Thị trường thay đổi nhanh chóng� Bảo mật ý tưởng

Page 6: Week 04-requirements vn

6

9/18/2006 Requirement Management 11

Nguồn của yêu cầu:các chuẩn� Các chuẩn và các hệ thống chuyển đổi

� system standards, file formats, network protocols� usability standards� domain standards

� Official standards� written by a standards body

� ANSI� ISO (e.g. Unicode)� IEEE (e.g. Posix)

� Industry standards� Wintel Platform� Java, Dot-Net� Wimp user interface� WAMP, LAMP

9/18/2006 Requirement Management 12

Các loại yêu cầu

� Chức năng� features� user interface� input / output

� Phi chức năng� Hướng người dùng

� performance� precision� reliability

� Hướng người phát triển� maintainability� reusability� interoperability

Page 7: Week 04-requirements vn

7

Những vấn đề trong quản trị yêu cầu ?

9/18/2006 Requirement Management 14

Vấn đề� Nhiều hệ thống thường

� chuyển giao trễ, và vượt ngân sách cho phép� Không đáp ứng đầy đủ yêu cầu của người dùng� Không hoạt động hiệu quả

� Bước đầu tiên để giải quyết vấn đề� � xác định nguyên nhân cốt lõi

� Ví dụ về những nguyên nhân cốt lõi� Thiếu dữ liệu người dùng� Yêu cầu và đặc tả không đầy đủ� Yêu cầu và đặc tả thay đổi

Page 8: Week 04-requirements vn

8

9/18/2006 Requirement Management 15

Tăng chi phí do yêu cầu sai hoặc thiếu sót

0.1

0.5

1

2

5

20

Requirements

Design

Maintenance

Acceptance Testing

Unit Testing

Coding

Tỷ lệ chi phí để sửa chưa theo từng giai đoạn

9/18/2006 Requirement Management 16

Ảnh hưởng của các vấn đề:

� Tái đặc tả� Redefine requirements again

� Tái thiết kế� Change models and dependencies

� Lập trình lại� Re-write code

� Test lại� Change test plan, test case, retest

� Thêm thời gian/nổ lực/tài nguyên:� Vứt sản phẩm � Khách hàng giận dữ� Tăng chi phí bảo trì

� Tài liệu cho phần thay đổi…

Page 9: Week 04-requirements vn

9

Thế nào là quản trị yêu cầu tốt ?

9/18/2006 Requirement Management 18

Quản trị yêu cầu tốt

� Ngăn:� Vượt chi phí và thời gian� Hủy dự án

� Một dự án thành công cần có các yếu tố:� Sự quan tâm của người dùng� Hỗ trợ của người quản lý� Yêu cầu rõ ràng

Page 10: Week 04-requirements vn

10

9/18/2006 Requirement Management 19

Chất lượng của yêu cầu: tính ổn định

� Ổn định� Không có mâu thuẩn� Chương trình sẽ không thể hoạt động nếu yêu cầu mâu thuẩn

� Khó đảm bảo vì� Số lượng yêu cầu lớn� Mâu thuẩn tiềm ẩn

� Ví dụ:� Section 1.2 says: “no more than 128MB of memory needed”� Section 5.8.9 says: “images should be rendered in real time”=> Có mâu thuẩn không ???

� Bản chất vấn đề: mâu thuẩn có thể dẫn tới mọi thứ…� Vấn đề:

� Khó giải thích mâu thuẩn cho khách hàng� Khách hàng muốn những thứ không thể

9/18/2006 Requirement Management 20

Chất lượng của yêu cầu: có thể quản lý được� Tài nguyên phải có thể đáp ứng các yêu cầu

� Có thể làm đúng thời gian ?� Với chi phí cho phép ?� Trong khả năng (kỹ năng) có thể?

� Quản lý rủi ro� Xếp độ ưu tiên các yêu cầu� Phải có thay thế nếu cái chính không hoạt động� Mở ra những vấn đề không thể để nói về những yêu cầu có

thể làm� Quản lý độ phức tạp

� Đừng làm mọi thứ cùng 1 lúc� Quy trình lập� prototyping

Page 11: Week 04-requirements vn

11

9/18/2006 Requirement Management 21

Chất lượng của yêu cầu: sự đặc tả� Càng chính xác và chi tiết càng tốt� Không tốt:

� “program shall be fast”� “it takes a number as input”

� Tốt:� “the program shall give a response in less than 1s”� “it takes a 16-bit signed integer as input”

� Những định nghĩa� Luôn là những ý tưởng tốt� Ví dụ: “by 'Number', we always mean a 16-bit signed integer”� Định nghĩa những thuật ngữ chuyên môn, viết tắt

� Quy tắc định nghĩa� Không định nghĩa xoay vòng (phụ thuộc)

9/18/2006 Requirement Management 22

Chất lượng của yêu cầu: không thiên vềcài đặt� Thiên về cài đặt:

� Đưa thông tin về thiết kế� Đưa thông tin về mã nguồn

� Sự dụng những thuật ngữ chuyên môn� Không dùng những từ chuyên môn kỹ thuật� Bạn muốn tập trung vào CÁI GÌ� Bỏ LÀM THẾ NÀO lại phần sau

� Ví dụ không tốt� “store the checked-out books in an array”� “calculate the square root with Newton's algorithm”

� Ví dụ Tốt:� “the library knows which books are checked out”� “return the square root with 5-digit precision”

Page 12: Week 04-requirements vn

12

9/18/2006 Requirement Management 23

Đội ngũ phát triển phần mềm

� Quản lý yêu cầu đụng đến từng cá nhân trong đội ngũ phát triển

� Nếu nhóm xác định yêu cầu làm việc tốt �ảnh hưởng đến kết quả của toàn nhóm phát triển dự án

Những kỹ năng để xác định yêu cầu ?

Page 13: Week 04-requirements vn

13

9/18/2006 Requirement Management 25

Những kỹ năng

� Sáu kỹ năng cần thiết:� Phân tích vấn đề

� Hiểu nhu cầu người dùng� Định nghĩa được hệ thống� Quản lý được phạm vi� Tinh lọc hệ thống

� Xây dựng đúng hệ thống cần thiết

Những kỹ năng làm việc ?

Page 14: Week 04-requirements vn

14

9/18/2006 Requirement Management 27

Các kỹ năng

� Giao tiếp� Phân tích/Suy luận

� Diễn giải� Lập báo cáo� Trình diễn

9/18/2006 Requirement Management 28

Những nhóm liên quan:� Account Manager

� Gặp mặt� Giới thiệu mục đích chung, giới thiệu về tổ chức kinh doanh…� Giới thiệu đội ngũ lấy yêu cầu cho đối tác khách hàng

� Facilitator � Project Manager

� Định nghĩa lịch làm việc� Giữ cho cuộc hợp luôn đi đúng hướng� Quản lý và đàm phán với khách hàng

� Note Taker� Chịu trách nhiệm ghi nhận/nắm bắt các yêu cầu

� Project Manager/Team Member� Domain Experts/Team Leads

� Technical Architect� Software Lead� UI designer� Area Specialists (Expert on Platform X, Feature Y etc)

Page 15: Week 04-requirements vn

15

9/18/2006 Requirement Management 29

Key Stakeholders:

� System End-users (người dùng cuối)� Những người sẽ dùng hệ thống sau khi phát triển

� Customer � Những yêu cầu của họ phải được thỏa mãn

� Domain experts� Cung cấp thông tin nền tảng, chuyên biệt cho việc xây dựng hệ thống

� Project Manager� Quản lý tiến trình lấy yêu cầu. Đảm bảo tính đầy đủ của yêu cầu� Thương lượng, đàm phán giữa các stakeholders

� Software engineers� Chịu trách nhiệm phát triển hệ thống

� QA Test Engineer� Chịu trách nhiệm kiểm chứng hệ thống để đảm bảo chất lượng

9/18/2006 Requirement Management 30

Chi phí cho việc xác định yêu cầu ?

Page 16: Week 04-requirements vn

16

9/18/2006 Requirement Management 31

Chi phí cho việc xác định yêu cầu ?

� Chi phí dự án:� Chiếm từ 15% đến 30% kinh phí toàn dự án

� Khi bỏ ra càng nhiều thời gian cho công đoạn xác định yêu cầu, chúng ta sẽ tiết kiệm thời gian cho:� Thiết kế� Triển khai� Kiểm chứng

9/18/2006 Requirement Management 32

Qui trình lấy yêu cầu

Requirements

eli citation

Requirements

anal ysis and

negotiation

Requirements

documentationRequirements

val idati on

Requirements

document

User needsdomain

i nformation,

exi sti ng system

information,

regulations,

standards, etc.

Agreed

requirementsSystem

specifi cation

Page 17: Week 04-requirements vn

17

9/18/2006 Requirement Management 33