Mục đích của thu thập và mô hình yêu cầu
Định nghĩa yêu cầu
Phát hiện yêu cầu (Requirements Elicitation)
Đàm phám và phê chuẩn yêu cầu
(Requirements Negotiation and Validation)
Requirements in Context
The purpose of Requirements is to:
Establish and maintain
agreement with the customers
and other stakeholders on
what the system should do.
Give system developers
a better understanding of
the requirements of the system.
To define the boundaries of
(delimit) the system.
Provide a basis for planning the technical contents of the
iterations.
Provide a basis for estimating cost and time to develop the
system.
Define a user interface of the system.
60 trang |
Chia sẻ: candy98 | Lượt xem: 475 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ thống thông tin - Chương 2: Thu nhập và Mô hình yêu cầu - Phần 1: Thu thập yêu cầu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1/13/2017 1
Chương 2:
THU THẬP và MÔ HÌNH
YÊU CẦU
THU THẬP YÊU CẦU
(Requirement Capture)
21/13/2017
Nội dung
Mục đích của thu thập và mô hình yêu cầu
Định nghĩa yêu cầu
Phát hiện yêu cầu (Requirements Elicitation)
Đàm phám và phê chuẩn yêu cầu
(Requirements Negotiation and Validation)
31/13/2017
Requirements in Context
The purpose of Requirements is to:
Establish and maintain
agreement with the customers
and other stakeholders on
what the system should do.
Give system developers
a better understanding of
the requirements of the system.
To define the boundaries of
(delimit) the system.
Provide a basis for planning the technical contents of the
iterations.
Provide a basis for estimating cost and time to develop the
system.
Define a user interface of the system.
41/13/2017
Định nghĩa yêu cầu
"A requirement is a condition or capability to
which a system must conform".
Yêu cầu là các dịch vụ (services) được mong
đợi của hệ thống và các ràng buộc
(constraints) mà hệ thông phải tuân theo.
51/13/2017
Phân loại yêu cầu
Yêu cầu chức năng (Function requirements): các
hành động gì mà hệ thống có thể thực hiện mà
không xem xét các ràng buộc vật lý.
Các dịch vụ hệ thống (System services): các chức năng mà
hệ thống cung cấp
Yêu cầu về dữ liệu (Data requirements): các dữ liệu mà
hệ thống phải xử lý
Yêu cầu phi chức năng (Non-Function
Requirements): các ràng buộc hệ thống, các
thuộc tính và môi trường của hệ thống.
Yêu cầu về giao diện (Look and Feel), Yêu cầu về thực
hiện (Performance), Yêu cầu về bảo mật (Security),
61/13/2017
Các kỹ thuật
Requirements Elicitation: Phát hiện yêu cầu
Use Case Modelling: Lập mô hình usecase
Prototyping: Tạo mô hình phác thảo ban đầu
cho các chức năng và giao diện người dùng
của hệ thống
71/13/2017
Phát hiện yêu cầu
Mục đích:
Nhận diện các cá nhân liên quan (stakeholders) tới
dự án
Tập hợp các yêu cầu mà hệ thông phải thực hiện.
Sắp thứ tự ưu tiên các yêu cầu.
Các bước thực hiện:
Xác định nguồn của các yêu cầu
Thu thập thông tin
Hội thảo để phát hiện yêu cầu (Conduct
Requirements Workshops)
Prototyping
Đánh giá kết quả.
81/13/2017
Xác định nguồn yêu cầu
Stakeholder
là các cá nhân có ảnh hưởng tới kết quả của dự án,
và là các đối tượng chúng ta sẽ làm việc để thu thập
thông tin.
Một nguồn thông tin quan trọng khác là các
tài liệu đang tồn tại của tổ chức mô tả hoạt
động của hệ thống đang sử dụng
Có thể là các mô hình nghiệp vụ (business models)
Hoặc các biểu mẫu thương mại khác.
Xác định và sắp thứ tự ưu tiên các nguồn
thông tin yêu cầu.
91/13/2017
Thu thập thông tin
Mục đích:
Xác định các câu hỏi nào cần được trả lời.
Thu thập và viết tài liệu cho thông tin thu thập
được.
Phương pháp truyền thống để thu thập thông
tin
Interviewing: Phỏng vấn khách hàng và chuyên gia về
lĩnh vực liên quan.
Questionnaires: Bảng câu hỏi.
Observation: Quan sát.
Background reading: Nghiên cứu tài liệu tổ chức và
tài liệu hệ thống phần mềm đang tồn tại.
101/13/2017
Interviewing – Phỏng vấn
Phỏng vấn nhằm đạt được hiểu biết sâu về
mục tiêu của tổ chức, vai trò và yêu cầu
người dùng
Phỏng vấn cấu trúc (Structured interview)
Các câu hỏi xác định trước và có lịch phỏng vấn rõ
ràng.
Phỏng vấn không cấu trúc (Unstructured
interview)
Gặp mặt không chính thức; câu hỏi, mục tiêu không
định trước.
Các loại câu hỏi nên tránh:
Opinionated: Người được phỏng vấn cho ý kiến của
mình.
Biased: Câu hỏi định hướng để tìm câu trả lời cụ thể
Imposing: Giả định câu trả lời cho câu hỏi.
111/13/2017
Questionnaires - Bảng câu hỏi
Nhằm đạt được thông tin từ nhiều người và kết quả
có thể phân tích thống kê.
Đặc điểm:
Bảng câu hỏi có thể được gởi qua thư, email, hoặc dựa web
Dùng thu thập ý kiến hoặc dữ kiện.
Bảng câu hỏi phải được thiết kế tốt và dễ trả lời
Các loại câu hỏi
Câu hỏi mở: câu trả lời có thể không đoán trước được.
Câu hỏi đóng: Câu trả lời được chọn từ danh sách cung cấp
trước.
Có thể dùng câu hỏi đóng và hạn chế câu hỏi mở
Các câu hỏi đóng có thể:
Multi-choice questions: Câu hỏi nhiều chọn lựa
Rating questions: Câu hỏi đánh giá từ yếu tới mạnh
Ranking questions: Câu hỏi xếp hạng. từ 1 – 10 hoặc tỉ lệ %
121/13/2017
Observation - Quan sát
Nhằm tìm kiếm điều thực sự xảy ra, không
phải điều người ta nói.
Bao gồm:
Quan sát người ta thực hiện xử lý công việc như thế
nào và điều gì xảy ra.
Quan sát thụ động: Quan sát các hoạt động mà không bị
dừng ngang hoặc không tham gia trực tiếp dùng camera
Quan sát chủ động: Tham gia trực tiếp vào các hoạt động
xử lý thương mại.
Đi theo một xử lý từ đầu đến cuối.
Đạt được các dữ liệu định lượng để làm cơ sở cho
các cải tiến được cung cấp bởi hệ thống mới.
131/13/2017
Background reading
Nhằm tìm hiểu về tổ chức và mục tiêu kinh
doanh của nó.
Bao gồm:
Tài liệu của tổ chức
Các biểu mẫu thương mại, các thủ tục làm việc, miêu tả
công việc, các kế hoạch thương mại, các hướng dẫn
(manuals), các biểu đồ tổ chức
Tài liệu của hệ thống đang tồn tại
Các biểu mẫu (forms) và các báo cáo (reports), tài liệu
người dùng, tài liệu phân tích và thiết kế hệ thống,
Các yêu cầu về tri thức của lĩnh vực liên quan
Tạp chí thương mại, sách tham khảo
141/13/2017
Các phương pháp hiện đại để phát hiện yêu cầu
Được sử dụng khi rủi ro của dự án cao, các nhân tố
rủi ro bao gồm:
Mục tiêu không rõ ràng
Các thủ tục làm việc không được tài liệu hóa
Các yêu cầu không ổn định
Người phát triển không có kinh nghiệm.
Sư hợp tác củas người dùng không đầy đủ.
Các phương pháp:
Conduct Requirements Workshops
Hội thảo phát hiện yêu cầu
Prototyping
Một GUI, mà mô phỏng ứng xử hệ thống
151/13/2017
Hội thảo phát hiện yêu cầu
Mục đích
Tạo điều kiện cho nhóm dự án gặp các stakeholder của dự án
Để thu thập các yêu cầu tinh tế hơn từ các stakeholder.
Để sắp thứ tự các yêu cầu được tập hợp dựa trên các
stakeholder tham dự hội thảo.
Có thể sử dụng một số kỹ thuật phát hiện thông tin
Brainstorming: Thảo luận tập thể
Trong một thời gian ngắn, cho phép mọi người trình bày ý kiến,
hay cảm nhận quan trọng của mình về dự án.
Role playing: Đóng kịch
Từng thành viên được phân một vai trò đáng quan tâm của dự án.
Thảo luận và ghi nhận trách nhiệm của từng vaui trò
Một kỷ thuật tổ hợp với Role playing là Class Responsibility
Collaboration (CRC) cards
161/13/2017
Prototyping – Tạo hệ thống phác thảo
Prototype là một hệ thống có tính trình diễn
Một mô hình làm việc “nhanh và thô” của giải pháp cho hệ
thống, nhằm kiểm tra một số chức năng nào đó.
Có thể miêu tả GUI cho các ứng xử khác nhau của hệ thống.
Nột dung có thể mã cứng (hard-coded) hơn là truy cập động từ
CSDL.
Không thể thiếu trong quy trình phát triển phần mềm
Tính khả thi và hữu dụng của hệ thống có thể ước lượng qua
prototype trước khi thực sự được cài đặt.
Thường được dùng khi:
Hệ thống xây dựng cho các chức năng thương mại mới.
Dùng trong quá trình xây dựng kịch bản cho use case.
Các yêu cầu xung đột
Có vấn đề truyền thông giữa khách hàng và người phát triển
171/13/2017
Các kiểu Prototyping
“Throw-away” prototype
Bỏ đi khi tiến trình tìm kiếm yêu cầu hoàn tất.
Tập trung vào các yêu cầu ít hiểu biết nhất.
Thường thực hiện ở bước xác định yêu cầu.
Evolutionary prototype
Được giữ lại sau khi tiến trình tìm kiếm yêu cầu
hoàn tất
Thường đưa ra cho sản phẩm cuối cùng.
Hướng đến việc phát triển nhanh hệ thống bằng
cách tập trung vào các yêu cầu đã hiểu biết nhất (là
chung cho nhiều hệ thống)
181/13/2017
Đàm phám và phê chuẩn yêu cầu
Yêu cầu phát hiện từ khách hàng thường:
Chồng chéo và xung đột.
Mơ hồ hoặc không thực tế.
Một số yêu cầu chưa được khám phá.
Cần đàm phán với khách hàng đẩ phê chuẩn yêu
cầu trước khi viết tài liệu yêu cầu.
Các công việc thường phải thực hiện:
Xác định các yêu cầu ngoài phạm vi (Out of scope
requirements)
Xác định các yêu cầu chồng chéo và xung đột.
Phân tích rủi ro và sắp thự tự quyền ưu tiên các yêu
cầu.
191/13/2017
Xác định các yêu cầu ngoài phạm vi
Là nhiệm vụ của bước phân tích yêu cầu
nhằm xác định biên hệ thống (system
boudary)
Các yêu cầu được phân loại ở ngoài phạm vi
do:
Quy định ràng cuộc của tổ chức.
Giới hạn của ngân quỹ của dự án.
Quá khó cài đặt vào hệ thống máy tính.
Có quyền ưu tiên thấp và được loại ra khỏi phiên
bản đầu tiên của hệ thống.
Được cài đặt trong các thiết bị phần cứng khác, nằm
ngoài điều khiển của hệ thống phần mềm.
1/13/2017 20
THU THẬP và MÔ
HÌNH YÊU CẦU
MÔ HÌNH YÊU CẦU HỆ THỐNG
211/13/2017
Tài liệu kết quả của bước yêu cầu
Các đặc tả bổ sung
(Supplementary
Specification)
Bảng chú giải
(Glossary)
Các đặc tả Use Case
(Use Case Specifications)
...
Use-Case Model
Actors
Các Use Case
221/13/2017
What Is a Use-Case Model?
Là mô hình ứng xử hệ thống
System behavior is the outwardly visible and
testable activity of a system and is captured in use
cases.
A model that describes a system’s functional
requirements in terms of use cases.
A model of the system’s intended functions
(use cases) and its environment (actors).
Use cases describe the system, its
environment, and the relationship (or
interactions) between the system and its
environment.
231/13/2017
Lược đồ Use Case
Actor Use case
Communication
association
Withdraw
Client
View Balance
241/13/2017
Actor
Actor là vai trò của con người, thiết bị hay hệ
thống khác mà tương tác trực tiếp với hệ
thống qua các use case.
Ở bên ngoài hệ thống và cần các dịch vụ hệ thống.
Một vai trò không phải là một người cụ thể.
Nhận diện các Actor:
Ai cần đến một dịch vụ nào đó cung cấp bởi hệ
thống?
Hệ thống được dùng ở đâu trong tổ chức?
Ai có lợi ích từ việc dùng hệ thống?
Ai sẽ cung cấp, dùng, hủy thông tin của hệ thống?
Ai hỗ trợ và bảo trì hệ thống?
Hệ thống có dùng các tài nguyên bên ngoài?
251/13/2017
Use case
Use case là một dãy các hành động mà hệ thống
thực hiện nhằm đạt được một kết quả về giá trị
có thể nhận biết được cho một actor cụ thể.
Biểu diễn một đơn vị chức năng đầy đủ.
Một đơn vị chức năng có thể nhìn thấy từ bên ngoài
Mỗi use case có thể được kích hoạt bởi một actor
Một khi kích hoạt, nó có thể tương tác hay cung cấp kết quả
cho actor khác.
Phát hiện từ
Các yêu cầu chức năng được diễn dịch thành các use case
Actor và mục đích của họ đối với hệ thống.
261/13/2017
Quan hệ giữa actor và use case
Communication Association :
Biểu diễn sự truyền thông giữa actor và use case
Hướng mũi tên biểu diễn ai kích hoạt việc truyền
thông.
WithdrawClient
Bank System
Client kích hoạt use case
Withdraw
Use case Withdraw truy cập thông
tin tài khoản từ Bank System
271/13/2017
Video Store case study
Cho khách hàng thuê băng và đĩa video
Tất cả các băng và đĩa đều được mã vạch (bar-
coded) và dùng một thiết bị quét tích hợp với hệ
thống để đọc.
Thẻ khách hàng thành viên cũng được mã vạch.
Các khách hàng có thẻ thành viên có thể đặt thuê
trước các băng video nhận ở một ngày cụ thể
nào đó.
Trả lời các câu hỏi của khách hàng, bao gồm cả
các câu hỏi về các phim mà cửa hàng không có
281/13/2017
Nhận diện actor
Người dùng:
Nhân viên (Employee)
Thiết bị:
Thiết bị quét (Scanning Device)
291/13/2017
Nhận diện Use Case
Các chức năng kích hoạt gián tiếp bởi
Employee thông qua Scanning Device:
Rent Video
Return Video
Chức năng Employee:
Reserve Video
Answer Inquiry
Maintain Customer Information
Maintain Video Information
301/13/2017
Video Store - Use case diagram
Rent Video
Return Video
Reserve Video
Scanning Device
Maintain Customer Answer Enquiry
Employee
Maintain Video
>
311/13/2017
Ví dụ: Hệ thống đăng ký học phần
Hệ thống mới cho phép sinh viên đăng ký học phần và
xem phiếu điểm từ một máy tính cá nhân được kết nối
vào mạng nội bộ của trường. Các giáo sư cũng có thể
truy cập hệ thống này để đăng ký lớp dạy và nhập điểm
cho các môn học.
Trường sẽ giữ lại cơ sở dữ liệu sẵn có về danh mục học
phần mà lưu trữ toàn bộ thông tin về học phần. Hệ
thống mới sẽ đọc các thông tin học phần trong CSDL cũ
nhưng sẽ không cập nhật chúng. Phòng Đào tạo sẽ tiếp
tục duy trì các thông tin học phần thông qua một hệ
thống khác.
Đầu mỗi học kỳ, sinh viên có thể yêu cầu danh sách các
học phần được mở trong học kỳ đó. Thông tin về mỗi
học phần, như tên giáo sư, khoa, và các học phần phần
tiên quyết sẽ được cung cấp để giúp sinh viên chọn
lựa.
Sinh viên được chọn bốn học phần được mở trong học kỳ
tới và có thể chọn thêm hai môn học thay thế trong
trường hợp không thể đăng ký theo nguyện vọng chính.
Các học phần được mở có tối đa là là 100 và tối thiểu là
30 sinh viên. Các học phần có ít hơn 30 sinh viên sẽ bị hủy.
Đầu mỗi học kỳ, sinh viên có một khoảng thời gian để đăng
ký các học phần muốn học. Sinh viên chỉ có thể thêm hoặc
hủy các học phần đã đăng ký trong khoảng thời gian này.
Khi quá trình đăng ký hòan tất, hệ thống sẽ gửi thông tin
đăng ký của các sinh viên tới hệ thống thanh toán (billing
system) để các sinh viên có thể đóng học phí. Nếu một lớp
bị hết chỗ trong quá trình đăng ký, sinh viên phải được
thông báo về sự thay đổi trước khi xác nhận lịch các học
phần đã đăng ký.
Ở cuối học kỳ, sinh viên có thể truy cập vào hệ thống để
xem phiếu điểm. Vì điểm của sinh viên là thông tin nhạy
cảm cần được giữ kín, nên hệ thống phải có cơ chế bảo
mật để ngăn chặn những truy cập không hợp lệ.
Các giáo sư có thể truy cập vào hệ thống để đăng ký những
học phần mà họ sẽ dạy. Họ cũng có thể xem danh sách các
sinh viên đã đăng ký vào lớp của họ, và cũng có thể nhập
điểm sau mỗi khóa học.
331/13/2017
Nhận diện actor
Người dùng:
Sinh viên (Student)
Giáo sư (Professor)
Nhân viên giáo vụ (Registrar)
Hệ thống khác:
Danh mục học phần (Course Catalog)
Hệ thống thanh toán học phí (Billing System)
341/13/2017
Nhận diện Use Case
Chức năng cho mọi actor:
Đăng nhập hệ thống (Login)
Các chức năng sử dụng bởi Student:
Đăng ký học phần (Register for Course)
Xem phiếu điểm (View Report Card)
Các chức năng sử dụng bởi Professor:
Đăng ký môn dạy (Select Courses to Teach)
Nộp điểm (Submit Grades)
Nhiệm vụ của Registrar:
Kết thúc đăng ký (Close Registration)
Cập nhật thông tin giáo sư (Maintain Professor Information)
Cập nhật thông tin sinh viên (Maintain Student Information)
351/13/2017
View Report Card
Student
Register for
Courses
Submit Grades
Course Catalog
Professor
Select Courses
to Teach
Maintain
Student Information
Maintain
Professor Information
Billing System
Registrar
Close Registration
User
Login
361/13/2017
Quan hệ phụ thuộc giữa các use case
Quan hệ bao gồm (Include)
Quan hệ mở rộng (Extend)
371/13/2017
Quan hệ Include
Một use case luôn luôn bao gồm dãy các ứng
xử của một use case khác
Được dùng để tách một dãy các ứng xử giống
nhau mà được dùng bởi nhiều use case
Withdraw
Client
View Balance
List Account
>
>
381/13/2017
Quan hệ Extend
Một use case cung cấp thêm chức năng cho
một use case khác
Biểu diễn ứng xử tùy chọn, nhiều công việc khác
nhau được thực hiện dựa vào việc chọn lựa của
actor.
Chỉ được kích hoạt dưới một điều kiện nào đó.
Điểm mở rộng (extension points) trình bày điều kiện
khi nào việc mở rộng xảy ra.
View BalancePrint Balance
>
391/13/2017
Actor Generalization
Một actor có thể
tham gia vào tất
cả các truyền
thông với các
use case mà
"super actor"
có, ngoài các
use case khác
của nó.
LoginUser
Register for CoursesStudent
Select Courses to TeachProfessor
Close Registration
Registrar
401/13/2017
Use-Case Specifications
Name
Actors
Brief description
Flow of Events
Relationships
Activity diagrams
Use-Case diagrams
Special requirements
Pre-conditions
Post-conditions
Other diagrams
411/13/2017
Use-Case Specifications
Brief description describes the role and purpose of the
use case.
Actors
Flow of events are textual descriptions of what the
system does with regard to the use case. There can be
multiple flows of events — for example, a basic flow
and alternative flows.
Pre-conditions define a constraint on the system
regarding when the use case may start.
Post-conditions define a constraint on the system that
applies after the use case has terminated.
421/13/2017
Use-Case Specifications
Relationships are communicates-associations. The use
case includes and extends relationships that the use
case participates in.
Activity diagrams can be used to illustrate the
structure of the flow of events.
Use-case diagrams can be used to show the
relationships involving the use case.
Special requirements is a textual description that
collects all use-case requirement
Other diagrams can be used to illustrate the use case,
like hand-drawn sketches or screen captures from an
user-interface prototype.
431/13/2017
Use-Case Flows of Events
Là dãy các hành động mà
hệ thống phải thực hiện
và tương tác với actor để
thực hiện Use case
Has one normal, basic
flow (Main Flow or Happy
Path)
Several alternative flows
Các biến thể thường gặp
(Regular variants)
Các trường hợp bất thường
(Odd cases)
Exceptional flows xử lý các
tình huống lỗi
“Happy Path”
441/13/2017
Scenario là một thể hiện của use case, là một
dòng sự kiện qua một use case
Mỗi use case có thể có nhiều kịch bản thực
hiện.
Phải tìm ra một kịch bản tiêu biểu giải quyết chung
cho hầu hết các trường hợp Dòng sự kiện chính
(Main Flow)
Các trường hợp thay đổi khác sẽ xử lý riêng Dòng
lựa chọn hay dòng ngoại lệ (Alternative Flow)
Scenarios là gì ?
451/13/2017
Đặc tả use case: Rent Video
Brief Description
Use case này cho phép nhân viên cửa hàng xử lý yêu
cầu thuê băng hoặc đĩa video của khách hàng.
Actors
Nhân viên (Employee), Thiết bị quét (Scanning
Device)
Preconditions
Không
Postconditions
Videos được cho khách hàng thuê và cơ sở dữ liệu
được cập nhật tương ứng.
461/13/2017
Đặc tả use case: Rent Video (tt)
Main Flow
Use case bắt đầu khi khách hàng muốn thuê băng đĩa
1. Nhân viên dùng thiết bị quét thẻ thành viên của khách
hàng.
2. Hệ thống kiểm tra băng đĩa video thuê quá hạn và mức
độ đáng tin của khách hàng.
3. Nhân viên quét mã vạch của các video khách hàng muốn
thuê. Số lượng băng đĩa khách hàng thuê tối đa là 8.
4. Nhân viên nhập ngày thuê và hạn trả cho từng bản ghi
thuê video.
5. Hệ thống tính toán và hiển thị lệ phí thuê video.
6. Sau khi khách hàng thanh toán, nhân viên in biên nhận
thuê video và chọn chức năng Save
7. Hệ thống cập nhật các bản ghi thuê video.
471/13/2017
Đặc tả use case: Rent Video (tt)
Alternative Flows
1. Khách hàng có video quá hạn
Hệ thống sẽ hiển thị nhắc nhở và ghi chú “quá hạn” tới khách
hàng và use case kết thúc. Nếu video không được trả trong
vòng 2 ngày kể từ hạn trả, một ghi chú khác được khởi tạo và
khách hàng bị ghi nhận là “đã vi phạm” (không đáng tin)
2. Khách hàng không đáng tin
Khách hàng sẽ được yêu cầu đóng tiền thế chấp cho từng video
thuê
3. Khách hàng không có thẻ thành viên
Nhân viên sẽ kích hoạt use case Maintain Customer để đăng ký
và cấp thẻ cho khách hàng.
4. Nếu nhiều hơn 8 video được thuê, hệ thống sẽ hiển thị nhắc
nhở.
5. Thẻ thành viên hoặc video bị hư, máy quét không thể nhận
được, hệ thống sẽ hiển thị nhắc nhở.
481/13/2017
Viết kịch bản use case dạng 2 cột
Actor: Employee Video Store System
1. Nhân viên dùng thiết bị quét thẻ
thành viên của khách hàng.
2. Hệ thống kiểm tra băng đĩa video
thuê quá hạn hoặc mức độ đáng
tin của khách