ÔN TẬP GIỮA KỲ

NỘI DUNG

1. Phát biểu vấn đề 2. Tầm nhìn và Phạm vi (Vision and

Scope)

3. Xác định mục tiêu 4. Xác định yêu cầu 5. Xác định StackHolder, lớp người dùng 6. 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

Product 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

Product 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 thời gian (schedule), ngân sách buộc về (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

Product vision và project scope

BM HTTT - Khoa CNTT - HUI 5

Vision 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

Vision 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

Tà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

Tà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ì

 Khách hàng  Người có trách nhiệm trong bô phận quản lý  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

sao họ quan tâm đến dự án. Họ là:  Customer  Senior management  Project visionary  Product manager  Subject matter expert  Members of the marketing department.

BM HTTT - Khoa CNTT - HUI 9

Scope 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

Scope of a project

BM HTTT - Khoa CNTT - HUI 11

Scope of a project

BM HTTT - Khoa CNTT - HUI 12

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ô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

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, …

14

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 15

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 16

Thự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

Answer #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.

Answer #1

 How will you analyse and validate your

stakeholder list?  Kiểm tra (check) và cập nhật (update) danh

sách một cách thường xuyên; duyệt lại (review) và theo dõi (follow) thông qua các cuộc tiếp xúc gặp gỡ với stakeholder chính

Trang 34

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 20

Phân cấp người dùng

BM HTTT - Khoa CNTT - HUI 21

Kinh 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

Tà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

Tì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

Đạ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

Ngườ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

Vai 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

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ô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

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 29

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 30

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ì 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

Goal 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

Goal 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

Question 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.

Answer #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ó

Yêu cầu (requirement)

 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”

36

36

Vai trò của yêu cầu

 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.

37

Phân loại yêu cầu

 Yêu cầu được phát biểu (stated requirement)  Yêu cầu thực (real requirement)

38

Stated Requirements

 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)

39

Real Requirements

 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.

40

Requirements Engineering

 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ệ thống làm gì.

 There are two majors tasks in the requirements

engineering:  Analysis  Modeling

41

Requirements Engineering

 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.

42

Phân loại yêu cầu trong quá trình phân tích yêu cầu

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)

43

Yêu cầu chức năng (Functional requirements)

 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”

44

Yêu cầu chức năng (Functional requirements)

 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…

45

Yêu cầu chức năng (Functional requirements)

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…

46

Yêu cầu phi chức năng (Non-functional requirements

 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.

47

Yêu cầu phi chức năng (Non-functional requirements

Một số yêu cầu phi chức năng • Độ tin cậy, thời gian đáp ứng, các yêu cầu về lưu

trữ…

• Các chuẩn được sử dụng, các công cụ CASE, ngôn

ngữ lập trình…

• Yêu cầu của người sử dụng: dễ sử dụng, thân thiện • Ràng buộc về ngân sách • Phù hợp với các chính sách của tổ chức sử dụng hệ

thống

• Yêu cầu tương thích giữa phần cứng và phần mềm • Các yêu cầu từ các tác nhân ngoài khác…

48

Yêu cầu phi chức năng (Non-functional requirements

Ví dụ Trong hệ thống quản lý thư viện • Yêu cầu sản phẩm: giao diện người dùng không chứa

frame và applet java

• Yêu cầu tổ chức: qui trình phát triển hệ thống và tài liệu phân phối phải phù hợp theo tiêu chuẩn “STAN- 07” (sử dụng ngôn ngữ, phương pháp thiết kế…)

• Yêu cầu ngoài: hệ thống không được lộ thông tin của

khách hàng (tên, số tham chiếu…)

49

Phân loại yêu cầu

50

Đặc trưng của yêu cầu

 Khả thi - Feasible  Có giá trị - Valid  Không nhập nhằng - Unambiguous  Dễ kiểm chứng - Verifiable  Dễ biến đổi - Modifiable  Toàn vẹn - Consistent  Đầy đủ - Complete  Lần vết được - Traceable

51

Các mức yêu cầu

Software Requirement bao gồm 3 mức phân biệt:  Yêu cầu nghiệp vụ (Business requirements)  Yêu cầu người dùng (User requirements)  Yêu cầu chức năng (Functional requirements)

52

Yêu cầu nghiệp vụ (Business requirements)

 Biễu diễn các mục tiêu của tổ chức hay khách hàng yêu

cầu hệ thống phải có

 Yêu cầu nghiệp vụ thường do người tài trợ cho dự án, khách mua phần mềm, người quản lý các người dùng, bộ phận tiếp thị (maketing)…cung cấp

 Thường được ghi nhận trong phần đặc tả (vision) và phạm vi (scope) của tài liệu, đôi khi còn được gọi là tuyên bố dự án (project charter) hay tài liệu yêu cầu thị trường (market requirements document)

53

Yêu cầu người dùng (User requirements)

 Mô tả mục tiêu (goal) hay tác vụ (task) của người

dùng đối với hệ thống.

 Các cách để biểu diễn yêu cầu người dùng:

 Use cases, scenario  Bảng event-response.

 Yêu cầu người dùng mô tả cái (what) mà người dùng

có thể làm đối với hệ thống.

 Ví dụ: use case "Make a Reservation" dùng trong các website của hàng không, thuê xe, hay khách sạn.

54

Yêu cầu chức năng (Functional requirements)

 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à yêu cầu về hành vi

(behavioral requirements)

 Ví dụ: Hệ thống sẽ gởi một xác nhận giữ chỗ

cho khách hàng…

55

Các kỹ thuật thu nhận yêu cầu

 Document Sampling  Interviewing  Survey and observation  Questionaires  Workshop and Brainstorming  JAD (Joint Application Development)

sessions

Document Sampling

 Document Sampling  Interviewing  Survey and observation  Questionaires  Workshop and Brainstorming  JAD (Joint Application Development)

sessions

Interviewing

• Là kỹ thuật trực tiếp và đơn giản • Nếu bạn cần biết một số điều, bạn hỏi

một vài người

 Có 5 bước cơ bản để phỏng vấn

 Chọn người được phỏng vấn  Thiết kế câu hỏi phỏng vấn  Chuẩn bị cho phỏng vấn  Hướng dẫn phỏng vấn  Thực hiện phỏng vấn tiếp

Interviewing

Chọn người phỏng vấn  Cần một kế hoạch phỏng vấn

 Danh sách tất cả những người để phỏng vấn  Khi nào mỗi người sẽ được phỏng vấn  Mục đích gì ở họ sẽ được phỏng vấn

 Danh sách có thể là không chính thức … hoặc nó có

thể là một phần của phân tích dự án  Danh sách được dựa vào thông tin cần  Tốt để tạo ra các phối cảnh khác nhau

 Người quản lý (Managers)  Người dùng (Users)

 Chọn những người cho các lý do chung  Phỏng vấn được lặp đi lặp lại

Interviewing

Thiết kế câu hỏi  Đừng hỏi thông tin mà có thể đạt được tại nơi khác  Muốn chỉ ra khía cạnh người phỏng vấn  Mong muồn tạo nên thông tin tốt hơn.

Interviewing

Câu hỏi đóng

* Có bao nhiêu cuộc điện thoại được nhận trên một ngày? * Có bao nhiêu loại khách hàng? * Bạn muốn hệ thống mới cung cấp thông tin gì?

• Yêu cầu câu trả lời cụ thể • Có nhiều lựa chọn. • Có bao nhiêu yêu cầu • Người phân tích sẽ điều khiển • Thông tin rõ ràng

Câu hỏi mở

• Không yêu cầu câu trả lời cụ thể • Để thu thập thông tin và dữ liệu • Người phân tích có thể sửa đổi • Tạo một hệ thống hiệu quả

Câu hỏi tìm kiếm

Tiếp tục câu hỏi Có gạn lọc Khuyến khích mở rộng câu trả lời Chỉ ra những gì bạn nghe và thích thú

* Bạn nghĩ gì về hệ thống hiện tại? * Những vấn đề cơ bản nào bạn đối mặt hàng ngày? * Bạn quyết định chiến dịch quảng cáo thực hiện như thế nào? * Tại sao? * Bạn có thể đưa cho tôi một số ví dụ? * Bạn có thể giải thích chi tiết hơn?

Interviewing

Thiết kế câu hỏi  Đừng hỏi thông tin mà có thể đạt được tại nơi khác  Muốn chỉ ra khía cạnh người phỏng vấn  Mong muồn tạo nên thông tin tốt hơn.

Interviewing

Chiến lược phỏng vấn

EXAMPLES?

TOP DOWN

High Level Very General Mức cao rất chung Medium-Level Moderately Specific Mức trung gian Xác định ở mức độ vừa phải Low-Level Very Specific

BOTTOM UP

Mức thấp rất chi tiết

Interviewing

Hướng dẫn phỏng vấn  Trình diễn chuyên nghiệp và không thiên vị  Xây dựng quan hệ (và trung thực) với người được  phỏng vấn  Ghi chép tất cả thông tin  Kiểm tra tổ chức cách giải quyết theo băng thu âm  Đảm bảo bạn hiểu tất cả các kết quả và ngôn ngữ  Chia ra các sự kiện từ các quan điểm  Đưa ra cho người được phỏng vấn thời gian để hỏi  câu hỏi  Đảm bảo để cảm ơn người được phỏng vấn  Kết thúc thời gian

Interviews

Interviews

Exercise - Part 1

 Find a partner for this exercise  Think e-commerce system (hệ thống thương mại). You will now serve as “customer” for that project and your partner will act as “project lead – cố vấn” (of requirements consultant) for you.

 Create an interview outline (be sure to include your name, customer name,

system name) that addresses at least 2 high-priority or high-risk items.

 Conduct the interview  Translate the responses into possible requirements. For each possible

requirement, answer the following: a. What kind of requirement is it? b. How does it (can it) meet the necessary condition for a requirement?  Switch roles, you become the project lead and you partner the customer for

their project. Repeat the above with the new roles and project

Questionnaires

 Được sử dụng thêm vào trong quá trình phỏng vấn. Mục tiêu là chứa đựng thông tin từ bộ phận tiêu biểu của nhiều khách hàng.

 Bản câu hỏi hữu dụng khi người phân tích cần thu thập thông tin từ nhiều người. Nếu có ít thời gian thì bản câu hỏi rất hữu dụng.

 Bản câu hỏi có thể không cho kết quả như ý từ những câu trả lời vì họ rất bận rộn và họ có thể cho rằng nó không quan trọng.

 Có thể bao gồm những câu hỏi đóng và câu hỏi mở.

Questionnaires

Có những loại câu hỏi đóng sau:

1. Fill-in-the-blanks – Điền vào khoảng trống. 2. Dichotomous(Yes or No type) – Loại Yes hay No. 3. Ranking scale questions – Câu hỏi xếp loại. 4. Multiple-choice questions – Câu hỏi nhiều lựa chọn. 5. Rating scale questions are an extension of the multiple- choice questions – Câu hỏi phân loại là mở rộng của câu hỏi nhiều lựa chọn .

Workshop and Brainstorming

 Có thể là kỹ thuật năng động nhất để thu thập

yêu cầu.

 Tập hợp tất cả các stakeholder chính cùng với nhau trong 1 giai đoạn tuy ngắn nhưng rất tập trung.

 Sử dụng facilitator có kinh nghiệm từ bên ngoài trong quản lý yêu cầu có thể bảo đảm cho sự thành công của workshop.

 Brainstorming là phần quan trọng nhất của

workshop.

Brainstorming

Ý tưởng then chốt JAD

 Cho phép người quản lý dự án, người dùng và

người phát triển làm việc với nhau

 Có thể giảm phạm vi đến 50%  Tránh đòi hỏi quá chi tiết hoặc quá mơ hồ  JAD được như 1 kỹ thuật để phát triển yêu

cầu của 1 hệ thống và trong các giai đoạn đầu của dự án phần mềm.

 Mục đích: tập hợp MIS và người dùng cuối

trong cơ chế của 1 workshop, để cùng thống nhất (consensus) với nhau các yêu cầu của hệ thống.

Quản lý các vấn đề trong phiên JAD

 Giảm sự thống trị  Khuyến khích việc không liên quan của người

đóng góp

 Bên ngoài cuộc thảo luận  Chương trình nghị sự một chiều  Sự đồng ý mạnh mẽ  Xung đột không được giải quyết  Xung đột đúng  Sử dụng sự hài hước

JAD Team Members

 Session leader coordinator – Người lãnh đạo  User information source – Thông tin người dùng  Manager information source – Thông tin người quản lý  Sponsor champion – Người bảo trợ  System analyst listener – Nhà phân tích hệ thống  Scribe recorder – Máy ghi âm, người ghi chép  IS staff listener – Người nghe

Việc dùng bảng có thể giúp nắm bắt được yêu cầu của stakeholder rõ ràng và chặt chẽ hơn. Bảng quyết định

Condition Stub

Condition Entry

1

2

3

4

5

6

Customer is individual ?

Y Y

.

.

.

.

Customer shopkeeper or retailer ?

. Y Y Y Y

.

Order-size 85 copies or more ?

.

. Y

.

.

.

Order-size 49-84 sarees ?

.

. Y

.

.

.

Order-size 13-48 copies ?

.

.

.

.

. Y

Order-size 12 or more ?

. Y

.

.

.

.

Order-size less than 12?

Y

.

.

.

. Y

Allow 50% discount

. X X

.

.

Allow 40% discount

.

. X

.

.

.

Allow 30% discount

X

.

.

.

. X

Allow 15% discount

.

.

.

.

. X

Bảng quyết định (Decision Tables)

Example: Consider the recruitment policy of ABC Software Ltd. • •

It the applicant is a BE then recruit otherwise not. If the person is from Computer Science, put him/her in the software development department and if the person is from non-computer science background put him/her in HR department. If the Person is from Computer Science and having experience equal to or greater than three years, take him/her as Team leader and if the experience is less than that then take the person as Team member. If the person recruited is from non Computer Science background, having experience less than three years, make him/her Management Trainee otherwise Manager

Bảng quyết định (Decision Tables)

Định nghĩa phân tích yêu cầu

I

 Là quá trình suy luận các yêu cầu hệ thống thông qua quan sát hệ thống hiện tại, thảo luận với các người sử dụng, phân tích công việc.

U H

- T T N C a o h K

 Việc này có thể liên quan với việc tạo một hay nhiều mô hình khác nhau. Nó giúp các phân tích viên hiểu biết hệ thống.

 Các mẫu hệ thống cũng có thể được phát triển để

- T T T H n ô M ộ B

mô tả các yêu cầu.

79

HƯỚNG DẪN SUY LUẬN YÊU CẦU (REQUIREMENTS ELICITATION GUIDELINES)

QUY TRÌNH PHÁT TRIỂN YÊU CẦU GỢI Ý 1. Định nghĩa tầm nhìn và phạm vi của dự án 2. Xác định các lớp người dùng 3. Xác định các đại diện thích hợp của mỗi lớp người

dùng

4. Xác định người ra quyết định về yêu cầu và quy

trình ra quyết định của họ

5. Chọn các kỹ thuật suy luận mà bạn sẽ dùng 6. Ứng dụng các kỹ thuật suy luận để phát triển các use cases và xếp thứ tự ưu tiên các use cases đó cho từng phần của hệ thống

BM HTTT Khoa CNTT - HUI 80

HƯỚNG DẪN SUY LUẬN YÊU CẦU (REQUIREMENTS ELICITATION GUIDELINES)

QUY TRÌNH PHÁT TRIỂN YÊU CẦU GỢI Ý 7. Thu thập thông tin về các thuộc tính chất lượng và các yêu cầu phi chức năng khác từ người dùng.

I

U H

8. Phác thảo các use cases từ các yêu cầu chức

năng cần thiết

9. Rà xét các mô tả use-case và các yêu cầu chức

- T T N C a o h K

năng

- T T T H n ô M ộ B

10. Phát triển các mô hình phân tích, nếu cần thiết, để làm sáng tỏ hiểu biết của những người tham gia suy luận về các phần của yêu cầu

81

HƯỚNG DẪN SUY LUẬN YÊU CẦU (REQUIREMENTS ELICITATION GUIDELINES)

QUY TRÌNH PHÁT TRIỂN YÊU CẦU GỢI Ý 11. Phát triển và đánh giá các nguyên mẫu giao diện người dùng nhằm trực quan hoá các yêu cầu chưa được hiểu kỹ

12. Phát triển các test cases dưới dạng ý tưởng từ các

use cases

13. Sử dụng các test cases để kiểm tra các use cases, các yêu cầu chức năng, các mô hình phân tích, các nguyên mẫu

14. Lặp lại các bước từ 6 đến 13 trước khi thực hiện

thiết kế và xây dựng từng phần của hệ thống

BM HTTT Khoa CNTT - HUI 82

Ma trận CRUD

I

U H

- T T N C a o h K

 Là 1 cách để tìm yêu cầu bị thiếu.  Viết tắt của Create, Read, Update, and Delete.  Ma trận CRUD cho sự tương quan giữa các action của hệ thống với các thực thể dữ liệu giúp ta biết được mỗi data item được tạo, đọc, cập nhật, xóa ở đâu và như thế nào.

- T T T H n ô M ộ B

83

Ma trận CRUDL cho hệ thống theo dõi hóa chất

CRUDL (Create, Read, Update, Delete, List) Có thể rút ra các suy luận gì từ ma trận trên khi nói đến thực thể Requester ???

84 Bộ Môn HTTT - Khoa CNTT - HUI

Process Modeling Technique

 Kỹ thuật mô hình hóa quy trình (model driven) phù hợp cho cả elicitation và analysis.  Data flow diagrams (DFDs)  Use case analysis (use case = business

process)

Data flow diagrams (DFDs)

 Được sử dụng trong 1 thời gian dài  Tập trung vào dòng dữ liệu và cấu trúc dữ liệu hơn là vào dịch vụ (services).  DFD chi ra luồng dữ liệu của hệ thống thông tin, mối qua hệ giữa những luồng dữ liệu và làm thế nào dữ liệu được lưu trữ tại vị trí cụ thể

Data flow diagrams (DFDs)

Elements of Data Flow Diagrams(Những thành phần của

DFD)  The External Entity - Tác nhân ngoài: nằm bên ngoài hệ thống, mô tả dữ liệu nguồn và dữ liệu đích của hệ thống

 The Data Flow - Luồng dữ liệu: mô tả sự di chuyển của

dữ liệu.

 The Data Store - Kho lưu trữ: mô tả dữ liệu mà nó

không di chuyển.

 The Process - Quá trình: mô tả một hoạt động mà thay

đổi hay duy trì dữ liệu.

Data flow diagrams (DFDs)

Process

Data flow

Data store

External entity

Sơ đồ ngữ cảnh

 Mức ngữ cảnh mô tả toàn bộ hệ thống ở mức tổng quá và hoạt động môi trường bên ngoài của nó và chỉ toàn bộ hệ thống như một quá trình.  Diễn tả toàn bộ hệ thống bằng một ô xử lý  DFD ngữ cảnh là sơ đồ ở mức tổng quát nhất  DFD ngữ cảnh xác định phạm vi của hệ thống  DFD ngữ cảnh không có kho dữ liệu

Sơ đồ ngữ cảnh

 Vẽ một chức năng biểu diễn thực thể hệ thống

(process 0)

 Xem hệ thống như là một hộp đen  Nhận dạng ranh giới hệ thống  Ranh giới giữa hệ thống đích và môi trường bên

ngoài

 Tìm tất cả danh sách các đầu vào và đầu ra tại đỉnh đến hoặc đi từ thực thể ngoài, vẽ như các luồng dữ liệu

 Vẽ các thực thể ngoài như nguồn hoặc đích của các

luồng dữ liệu

Sơ đồ ngữ cảnh

 Hệ thống được mong đợi tự động hoá hoạt động của

thư viện  Hai người dùng bên ngoài (terminators)  3 mục dữ liệu vào  1 mục dữ liệu ra

 Một chức năng mức đỉnh (transform) -- Issue library

item

Thẻ thư viện

Yêu cầu

Thư viện

Độc giả

Đưa ra ngày

Nhân viên thư viện

Kết quả

Sơ đồ ngữ cảnh

Example: Student result management system (Hệ thống quản lý điểm cho sinh viên)

Administrator

Student information Reports generated

Subject

Marksheet generated

Student result Management System

Student

Marks

Student performance reports generated

The context diagram

Sơ đồ ngữ cảnh

Example: Student result management system (Hệ thống quản lý điểm cho sinh viên)

Administrator

User account maintenance

Student information Reports generated

0

Subject

Subject info entry

Marksheet generated

Student result Management System

Student

Student info entry

Student performance reports generated

Marks

Marks entry

0 – Level DFD of result management system

Sơ đồ DFD mức 0

Sơ đồ ngữ cảnh

Exercise : Railway Reservation System Railway caters to the need of passenger. Tickets can be booked for different classes. Some concessions are available for categories like students, old people, etc. there is a special category for reserving tickets for handicapped people, military, MPs. There is a certain surcharge levied for special trains. Fare computation depends on the class, category, train, and distance. The passenger is issued a confirmed ticket if seat is available. She/he gets a waitlisted/RAC ticket if she/he so desires. Vẽ sơ đồ ngữ cảnh

Phương pháp Use Case

 Use Case: Mô tả những chức năng của hệ

thống từ hướng nhìn của người sử dụng.

 Use case diagram:

 Là một mô hình trong UML (Unified Modeling

Language)

 Mô tả các chức năng mà hệ thống cung cấp  Cho biết người dùng nào có thể tương tác với

chức năng nào

Phương pháp Use Case

 Use Case: chức năng  Actor: Tác Nhân  Association: mối kết hợp

System

Actor

Use Case

Relationship

Phương pháp Use Case

 Actor (Tác Nhân): là một người hoặc một vật nào đó tương tác với hệ thống, sử dụng hệ thống. Một tác nhân sẽ có một tên, và cái tên này cần phải phản ánh lại vai trò của tác nhân. Một tác nhân giao tiếp với hệ thống bằng cách gửi hoặc là nhận thông điệp

GiangVien

Sinhvien

Hệ thống thanh toán Hệ thống Bảo mật

Xác định tác nhân

 Ai sử dụng chức năng chính của hệ thống?  Ai sẽ duy trì, quản lý và giữ cho hệ thống

làm việc?

 Những phần mềm/hệ thống khác mà hệ

thống cần tương tác?  Những hệ thống máy tính khác  Những ứng dụng khác chạy trên cùng một máy

tính (i.e. X client/server)

 Chú ý: tránh nhầm lẫn giữa sự tương tác

(interaction) với đầu vào (input)

99 Use Case Modeling

Xác định tác nhân

 Là ai

 Sử dụng hệ thống?  Cài đặt hệ thống?  Khởi động hệ thống?  Duy trì hệ thống?  Thoát hệ thống?  Thu thập thông tin từ hệ thống?  Cung cấp thông tin cho hệ thống?

 Chuyện gì xảy ra tại một thời điểm định trước?

100 Use Case Modeling

Thời gian?

 Xem thời gian như là một tác nhân  Tác nhân thời gian có thể kích hoạt một

Use Case

101 Use Case Modeling

Phương pháp Use Case

 Use Case (chức năng): Use Case là sự mô hình hoá những chức năng của hệ thống từ hướng nhìn của người sử dụng

 Mỗi Use Case là một tập hợp của các hành động được thực hiện bởi một tác nhân tác động vào hệ thống để tạo ra một kết quả có thể quan sát được, tức là một giá trị đến với một tác nhân cụ thể.

Nhậpđiểm

Xem điểm

Đăng ký học phần

Đặc tính của use case

 Phải luôn được bắt đầu bởi một actor.  Use case cung cấp giá trị cho một actor. Giá trị này

không đòi hỏi phải luôn luôn nổi bật nhưng nó phải có thể nhận thấy được.

 Use case phải là một đơn vị đầy đủ. Thường hay sai lầm chia use case thành các use case nhỏ hơn và khi thực thi 1 use case này thì cần dùng đến các use case khác. Một use case sẽ không đầy đủ nếu không tạo ra được giá trị cuối dù cho để có giá trị cuối này phải xảy ra nhiều giao tiếp.

103 PTTKHT bang UML - BM HTTT

Tìm kiếm Use Case

 Với mỗi tác nhân, ta xác định:

 Những dịch vụ nào tác nhân yêu cầu từ hệ

thống?

 Hệ thống có lưu trữ thông tin không?

 Đọc, tạo, hủy, hiệu chỉnh, lưu trữ thông tin

 Liệu tác nhân cần được thông báo về các sự kiện trong hệ thống, hay tác nhân cần thông báo cho hệ thống về việc gì đó không?

 Công việc thường ngày của tác nhân có đơn

giản không?

 Không nên chỉ tập trung vào hệ thống hiện tại

104 Use Case Modeling

Mối quan hệ giữa các Use Case

 Association (mối kết hợp): Là sự kết hợp giữa những

Actor và Use case.  Type of relationship

 Uses Relationship – Quan hệ sử dụng  Extends Use Case Relationship – Quan hệ mở rộng  Generalization relationship – Quan hệ tạo nhóm

Relationship

 Khi một nhóm các Use Case cùng chung một hành vi nào đó thì hành vi này có thể được tách riêng ra thành một Use Case riêng biệt và nó có thể được sử dụng bởi các Use Case kia.

«include»

OpenIncident

HelpDispatcher

«include»

AllocateResources

Quan hệ sử dụng giữa các Use Case

Generalization

<> & <>

 Là 2 mối quan hệ giữa 2 use case với nhau  Include: Nếu trong quá trình thực hiện use case A Người dùng luôn luôn/hầu như đều phải thực hiện use case B.

 A <>B

include

A

B

<> & <>

 Extend: nếu trong quá trình thực hiện use case A người

dùng có thể /lâu lâu phải thực hiện use case B

 B<>A

extend

A

B

Example: Using <>

Lược đồ UC của hệ thống đặt chỗ trước

111 PTTKHT bang UML - BM HTTT

Đóng gói UC

112 PTTKHT bang UML - BM HTTT

Exercise

 Start by listing a sequence of steps a user might take in order to complete an action. For example a user placing an order with a sales company might follow these steps.  Browse catalog and select items.  Call sales representative.  Supply shipping information.  Supply payment information.  Receive conformation number from salesperson.

Exercise

USE CASES VÀ KỊCH BẢN SỬ DỤNG (USE CASES AND USAGE SCENARIOS)

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

 Use case là một tập hợp các kịch bản (scenario) thông thường có liên quan nhau.  Một kịch bản được gọi là một tiến trình chuẩn (normal course) của các sự kiện nối tiếp nhau tạo nên use case, nó cũng được gọi là tiến trình chính (main course), tiến trình cơ sở (basic course), luồng chuẩn (normal flow), hay là “đường yên lành” (happy path).  Tiến trình chuẩn được mô tả bằng cách liệt kê

một dãy đối thoại (dialogue elements) hoặc dãy tương tác giữa actor và hệ thống.

115

Mẫu mô tả UC

 Tên (Name)

 Tên của UC, có nghĩa gần với mục đích người sử

dụng

 Các tác nhân (Actors)  Mục đích (Goals)  Các yêu cầu (Requirements) (tùy chọn)

 Cung cấp khả năng lần vết

 Điều kiện tiên quyết (Pre-Conditions)

 Các điều kiện cần thiết cần phải có trước khi thực

hiện mộ UC

 Có thể là một UC khác (không giống với quan hệ

<>)

116 Use Case Modeling

Biểu mẫu mô tả UC

 Mô tả (Description)

 Mô tả các tiến trình cơ bản hoặc bình thường của hệ thống nếu hệ

thống hoạt động như dự định (mọi thứ điều đúng)

 Điều kiện sau (Post-conditions)

 Trạng thái của hệ thống sau khi UC được thực thi  Các giá trị đưa ra cho các tác nhân  Phân biệt giữa biến thể và các ngoại lệ

 Các biến thể (Variations)

 Các điều kiện dẫn tới việc phân nhánh  Mô tả các tiến trình thay thế hoặc là tên mở rộng của UC

 Các ngoại lệ (Exceptions)

 Những điều kiện không mong đợi dẫn tới việc phân nhánh (xung đột

với điều kiện sau)

 Mô tả các tiến trình thay thế  Ví dụ

117 Use Case Modeling

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

118

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

119

Use case của hệ thống theo dõi hóa chất

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

120

Mô tả Use case “request a chemical”

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

121

Mô tả Use case “request a chemical”

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

122

Mô tả Use case “request a chemical”

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

123

Mô tả Use case “request a chemical”

I

U H

- T T N C a o h K

- T T T H n ô M ộ B

124

Bài tập

 Phát biểu vấn đề  Dẫn nhập (Background)  Xác định mục tiêu  Xác định yêu cầu  Xác định StackHolder  Các kỹ thuật thu nhận yêu cầu  Các kỹ thuật phân tích yêu cầu  Bài tập