Tải bản đầy đủ (.pdf) (48 trang)

KHẢO SÁT VỀ ĐẶC TẢ YÊU CẦU PHẦN MỀM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (854.08 KB, 48 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

Đặc tả yêu cầu

<small>Giáo viên: Nguyễn Dũng </small>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Nội dung

• <sub>Khái niệm và tầm quan trọng </sub>

• <sub>Phân loại các yêu cầu </sub>

• <sub>Phân tích và xác định u cầu </sub>

• <sub>Đặc tả yêu cầu </sub>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Khái niệm và tầm quan trọng

• <sub>Xác định và đặc tả yêu cầu </sub>

• <sub>Là khâu kỹ thuật đầu tiên của q trình phát </sub>

triển phần mềm. Thiếu nó khơng thể tiếp tục q trình

• <sub>Là sự phối hợp của nhà phát triển và khách </sub>

hàng

• <sub>Nó quyết định chất lượng phần mềm đạt được </sub>

với chi phí dự kiến và thời hạn cho trước

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Các yêu cầu và mục tiêu

• <i><b><sub>Các yêu cầu là các mô tả trừu tượng đến chi tiết </sub></b></i>

về <i><b>dịch vụ mà hệ thống cung cấp </b></i>cũng như các

<i><b>ràng buộc</b></i> lên sự phát triển và hoạt động của nó

• <sub>Mục đích của các u cầu: </sub>

• <sub>Làm cơ sở cho việc mời thầu (cần có giải thích </sub>

từ phía chủ đầu tư)

• <sub>Làm cở sở cho việc ký hợp đồng thầu (cần đủ </sub>

và chi tiết)

• <sub>Làm tư liệu đầu vào cho thiết kế và triển khai </sub>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

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

<small>•</small> <i><b><sub>Yêu cầu người sử dụng </sub></b></i>

<small>•</small> <sub>Đơn giản, dễ hiểu </sub>

<small>•</small> <sub>Diễn đạt bằng ngơn ngữ tự nhiên và sơ đồ về dịch vụ hệ </sub>

<small>thống cần cung cấp và các ràng buộc trong hoạt động của nó </small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Yêu cầu người sử dụng

<small>•</small> <sub>Nên mơ tả </sub>

<small>•</small> <sub>u cầu chức năng </sub> <small>•</small> <sub>Yêu cầu phi chức năng </sub>

<small>•</small> <sub>Dễ hiểu đối với người sử dụng </sub>

<small>•</small> <sub>Khơng có kiến thức chi tiết về kĩ thuật/tin học </sub>

<small>•</small> <sub>Nên được mơ tả bởi: </sub>

<small>•</small> <sub>Ngơn ngữ tự nhiên </sub>

<small>•</small> <sub>Ưu điểm: Dễ hiểu, dễ sử dụng </sub> <small>•</small> <sub>Hạn chế: </sub>

<small>•Khơng rõ ràng, thiếu chính xác, nhập nhằng </small>

<small>•Lẫn lộn giữa u cầu chức năng và phi chức năng </small>

<small>•</small> <sub>Quá mềm dẻo (trình bày nhiều cách) </sub>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Yêu cầu hệ thống

• <sub>Là đặc tả chi tiết hơn yêu cầu người sử dụng </sub>

• <sub>Phục vụ cơ bản cho bước thiết kế </sub>

• <sub>Có thể sử dụng làm một phần của hợp đồng </sub>

• <sub>Có thể sử dụng các mơ hình để mơ tả </sub>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Tài liệu đặc tả

•<sub>Các yêu cầu đối với tài liệu đặc tả </sub>

•<sub>Đặc tả hành vi bên ngồi của hệ thống </sub>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Những người đọc yêu cầu

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Yêu cầu từ nghiệp vụ

<small>•</small> <i><b><sub>Các u cầu chức năng (Function requirement): </sub></b></i>

<small>•</small> <sub>Mơ tả các chức năng hay các dịch vụ mà hệ thống phần </sub>

<small>mềm cần cung cấp </small>

<small>•</small> <i><b><sub>Các yêu cầu phi chức năng (Non-Function requirement): </sub></b></i>

<small>•</small> <sub>Mơ tả các ràng buộc đặt lên dịch vụ và quá trình phát </sub>

<small>triển hệ thống (về chất lượng, về môi trường, chuẩn sử dụng, qui trình phát triển,…) </small>

<small>•</small> <i><b><sub>Các u cầu miền/lĩnh vực ngồi: </sub></b></i>

<small>•</small> <sub>Những u cầu đặt ra từ miền ứng dụng, phản ánh </sub>

<small>những đặc trưng miền đó. </small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Các u cầu chức năng

• <i><b><sub>Mơ tả chức năng hay dịch vụ của hệ thống </sub></b></i> • <sub>Chúng phụ thuộc vào: </sub>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Ví dụ

•<sub>Người sử dụng có thể tìm kiếm tài liệu dựa </sub>

trên các từ khóa có trong tài liệu hoặc tên

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Các yêu cầu phi chức năng

<small>•</small> <sub>Định nghĩa các tính chất và ràng buộc của hệ thống </sub>

<small>•</small> <sub>u cầu tiến trình </sub>

<small>•</small> <sub>u cầu về lưu trữ dữ liệu </sub>

<small>•</small> <sub>Yêu cầu phi chức năng có thể quan trọng hơn yêu cầu </sub>

<small>chức năng. Nếu yêu cầu phi chức năng không được đáp </small>

<small>ứng  hệ thống trở nên vô dụng 14 </small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Các yêu cầu phi chức năng

• <i><b><sub>Yêu cầu về sản phẩm: </sub></b></i>

• <sub>Tốc độ, độ tin cậy, bộ nhớ cần, giao diện,… </sub>

• <i><b><sub>Yêu cầu về tổ chức/tiến trình phát triển: </sub></b></i>

• <sub>Các chuẩn áp dụng, phương pháp thiết kế, </sub>

ngơn ngữ lập trình, mơ trình tiến trình,…

• <i><b><sub>u cầu từ bên ngồi: </sub></b></i>

• <sub>Về chi phí, thời gian, bản quyền, liên kết,… </sub>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Các loại yêu cầu phi chức năng

<small>16 </small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Ví dụ

•<sub>u cầu về sản phẩm </sub>

•<sub>Chỉ sử dụng tối đa 256 MB bộ nhớ </sub>

•<sub>Yêu cầu về tổ chức </sub>

•<sub>Tiến trình phải đáp ứng chuẩn DO178 </sub>

•<sub>u cầu bên ngồi </sub>

•<sub>Hệ thống khơng được để lộ thông tin của </sub>

khách hàng.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Tiến trình kỹ nghệ u cầu

• <sub>Các hoạt động của tiến trình kỹ nghệ </sub>

• <sub>Nghiên cứu khả thi  Báo cáo khả thi </sub>

• <sub>Phân tích, xác định u cầu  Mơ hình hệ </sub>

thống

• <sub>Đặc tả yêu cầu  Các yêu cầu được đặc tả </sub>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

Tiến trình kỹ nghệ yêu cầu

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

Nghiên cứu khả thi

<small>•</small> <sub>Nhằm trả lời câu hỏi: </sub>

<small>•</small> <i><b><sub>Có nên phát triển hệ thống hay khơng? </sub></b></i>

<small>•</small> <sub>Nội dung nghiên cứu khả thi tập trung để trả lời các câu </sub>

<small>hỏi: </small>

<small>•</small> <i><b><sub>Hệ thống được xây dựng sẽ giúp ích gì cho tổ chức? </sub></b></i> <small>•</small> <i><b><sub>Hệ thống sử dụng cơng nghệ nào, kinh phí bao nhiêu, </sub></b></i>

<i><b><small>thời gian bao nhiêu? </small></b></i>

<small>•</small> <i><b><sub>Hệ thống cần phải tích hợp với hệ thống nào đang sử </sub></b></i>

<small>dụng? </small>

<small>20 </small>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Triển khai nghiên cứu khả thi

<small>•</small> <sub>Báo cáo khả thi được viết dựa trên các thông tin, báo cáo </sub>

<small>thu thập được, những đánh giá ban đầu về hệ thống hiện tại và phác thảo các phương án dự kiến </small>

<small>•</small> <sub>Câu hỏi đặt ra cho người của tổ chức: </sub>

<small>•</small> <i><sub>Cái gì xảy ra nếu hệ thống không được triển khai? </sub></i>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Phân tích và xác định yêu cầu

• <sub>Làm rõ: </sub>

• <sub>Phạm vi lĩnh vực ứng dụng </sub>

• <sub>Các dịch vụ hệ thống cần cung cấp </sub> • <sub>Các ràng buộc đặt lên hệ thống </sub>

• <sub>Bằng cách xây dựng các mơ hình phân tích (mơ </sub>

hình nghiệp vụ của hệ thống) để làm rõ các yêu

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

Những khó khăn của phân tích

<small>•</small> <sub>Khách hàng thương mơ hồ về u cầu, khơng biết rõ </sub>

<small>mình muốn gì, dễ lẫn lộn giữa yêu cầu và mong muốn </small>

<small>•</small> <sub>Họ thể hiện yêu cầu theo thuật ngữ riêng </sub>

<small>•</small> <sub>Khách hàng đa dạng, các yêu cầu có thể mâu thuẩn nhau </sub>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

Mục tiêu, mong muốn và yêu cầu

• <i><b><sub>Mục tiêu, mong muốn: là cái hướng tới </sub></b></i>

• <sub>Chẳng hạn: xây dựng giao diện thân thiện với </sub>

người dùng

• <i><b><sub>Yêu cầu: là cái cụ thể, kiểm tra được </sub></b></i>

• <sub>Chẳng hạn: giao diện đồ họa, các lệnh được </sub>

chọn bằng thực đơn hay biểu tượng

 Nhiệm vụ của người phân tích là gợi mở, xác định đúng, đầy đủ, chính xác các yêu cầu

<small>24 </small>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Tiến trình phân tích u cầu

<small>•</small> <sub>Các hoạt động chính: </sub>

<small>•</small> <sub>Tìm hiểu miền ứng dụng </sub> <small>•</small> <sub>Phát hiện, thu thập yêu cầu </sub> <small>•</small> <sub>Phân loại yêu cầu </sub>

<small>•</small> <sub>Giải quyết xung đột (nếu có) </sub> <small>•</small> <sub>Sắp xếp ưu tiên các u cầu </sub>

<small>25 </small>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Các ngun lý

• <i><b><sub>Mơ hình hóa miền thơng tin: </sub></b></i>

• <sub>Xác định các </sub><i><b><sub>thực thể </sub></b></i><sub>dữ liệu (đối tượng) </sub> • <sub>Xác định các </sub><i><b><sub>thuộc tính </sub></b></i><sub>của chúng </sub>

• <sub>Thiết lập </sub><i><b><sub>mối quan hệ </sub></b></i><sub>giữa các dữ liệu </sub>

• <i><b><sub>Mơ hình hóa chức năng: </sub></b></i>

• <sub>Bản chất của phần mềm là biến đổi thơng tin </sub>

<small>•</small> <sub>Xác định các </sub><i><b><sub>chức năng </sub></b></i><sub>(biến đổi thơng tin) </sub>

<small>•</small> <sub>Xác định cách thức dữ liệu (thơng tin) </sub><i><b><sub>di chuyển </sub></b></i>

<small>trong hệ thống (luồng dữ liệu) </small>

<small>•</small> <sub>Xác định các </sub><i><b><sub>tác nhân </sub></b></i><sub>tạo và nhận dữ liệu </sub> <sup>26 </sup>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Các ngun lý

<small>•</small> <i><b><sub>Mơ hình hóa hành vi </sub></b></i>

<small>•</small> <sub>Xác định các trạng thái của hệ thống </sub>

<small>•</small> <sub>Xác định các dữ kiện làm thay đổi hành vi của hệ thống </sub>

<small>•</small> <sub>Phân hoạch, làm mịn: biểu diễn các mô tả ở các mức chi tiết </sub>

<small>khác nhau </small>

<small>•</small> <sub>Làm mịn các mơ hình dữ liệu </sub>

<small>•</small> <sub>Tạo cây (biểu đồ) phân rã chức năng </sub>

<small>•</small> <sub>Biểu diễn hành vi ở các mức chi tiết khác nhau </sub>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

Đặc tả yêu cầu

• <sub>Đặc tả u cầu là </sub><sub>mơ tả u cầu một cách đặc </sub>

biệt. Yêu cầu nên được biểu diễn ở nhiều mức trừu tượng khác nhau: đầy đủ, chính xác dần, nhiều đối tượng có thể đọc:

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

Các mức trừu tượng của yêu cầu

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Ví dụ: Chức năng kiểm tra chính tả

<small>•</small> <sub>Định ra u cầu: Thơng báo lỗi chính tả của văn bản </sub>

• <sub>Đặc tả: </sub>

• <sub>Các lỗi chính tả được gạch đỏ bên dưới </sub> • <sub>Lỗi soạn thảo được gạch xanh bên dưới </sub>

Lỗi chính tả

<small>•</small> <sub>Từ đơn khơng có trong từ điển </sub> Lỗi soạn thảo

<small>•</small> <sub>Thừa dấu cách </sub>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

Đòi hỏi đặc tả yêu cầu

• <i><b><sub>Đầy đủ</sub></b></i><sub>: Mọi yêu cầu của người dùng phải được </sub>

mơ tả

• <i><b><sub>Khơng mâu thuẫn với nhau </sub></b></i>

• <i><b><sub>Chính xác</sub></b></i><sub>: u cầu khơng được mơ hồ </sub>

• <sub>Chỉ được hiểu theo một nghĩa duy nhất </sub>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<small></small><sub>Nhiều cách biểu diễn cho một khái niệm </sub>

<small></small><sub>Khó phân hoạch, khó sửa đổi </sub> <sub>32 </sub>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<small>•</small> <sub>Mơ hình luồng dữ liệu </sub>

<small>•</small> <sub>Mơ hình thực thể - mối quan hệ (ERD) </sub> <small>•</small> <sub>Mơ hình dữ liệu quan hệ </sub>

<small>•</small> <sub>Các mơ hình nghiệp vụ, mơ hình phân tích hướng đối tượng với </sub>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

Đặc tả hình thức

• <sub>Biểu diễn mơ hình tốn học </sub>

• <sub>Khái niệm và ký pháp tốn học </sub>

• <sub>Quy tắc khai báo và biểu diễn biểu thức </sub> • <sub>Các luật biểu diễn biểu thức </sub>

<sub>Có thể tự động hóa giải mơ hình </sub>

<sub>Sử dụng mơ hình cho chứng minh, kiểm </sub>

chứng

<sub>Khó hiểu, khó sử dụng </sub>

<small>34 </small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Thẩm định u cầu

• <sub>Liên quan đến việc kiểm tra tính đúng đắn, tính </sub>

đầy đủ, tính nhất quán, tính hiện thực và kiểm tra được của yêu cầu. Cụ thể trả lời được các câu

hỏi:

• <sub>Cịn nhu cầu nào của người dùng chưa kể đến? </sub> • <sub>Có mâu thuẩn gì giữa các u cầu? </sub>

• <sub>Chức năng, ràng buộc gì chưa kể? </sub> • <sub>Có thực hiện được khơng? </sub>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Các kỹ thuật thẩm định yêu cầu

• <sub>Xem xét lại yêu cầu: </sub> • <sub>Kiểm tra tính thực hiện được </sub>

• <sub>Tạo ca kiểm thử (test case) </sub>

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

Phương pháp xác định, đặc tả u cầu

• <sub>Mơ hình nghiệp vụ (Chức năng) </sub>

• <sub>Biểu đồ phân rã chức năng (FDD) </sub> • <sub>Mơ hình ca sử dụng (use case) </sub>

• <sub>Biểu đồ hoạt động (Activity Diagram) </sub>

• <sub>Biểu đồ chuyển trạng thái </sub> • <sub>Mơ hình luồng dữ liệu (DFD) </sub>

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

Biểu đồ phân rã chức năng

<small>•</small> <i><b><sub>FDD – Function Decomposition Diagram </sub></b></i>

<small>•</small> <i><sub>Xác định phạm vi của hệ thống </sub></i> <small>•</small> <i><sub>Phân hoạch chức năng </sub></i>

<small>•</small> <i><sub>Tạo nền tảng cho thiết kế kiến trúc hệ thống </sub></i>

<small>38 </small>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

Ví dụ:

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

Biểu đồ luồng dữ liệu

•<i><b><sub>DFD – Data Flow Diagram </sub></b></i>

•<sub>Mơ tả q trình xử lý thơng tin nghiệp vụ </sub> •<sub>Biểu diễn cách thức dữ liệu di chuyển, </sub>

được xử lý, lưu trữ trong hệ thống và trao đổi với mơi trường

•<sub>Có nhiều mức trừu tượng khác nhau </sub> •<sub>Làm cở sở cấu trúc phần mềm </sub>

<small>40 </small>

</div><span class="text_page_counter">Trang 41</span><div class="page_container" data-page="41">

Biểu đồ luồng dữ liệu

<small>•</small> <sub>Khái niệm </sub>

<small>•</small> <sub>Tác nhân: người, tổ chức, hệ khác </sub>

<small>•</small> <sub>Đối tượng ngồi hệ thống </sub>

<small>•</small> <sub>Phát sinh hoặc tiếp nhân dữ liệu/thơng tin </sub>

<small>•</small> <sub>Tiến trình: hoạt động nghiệp vụ </sub>

<small>•</small> <sub>Dãy hoạt động tác động lên dữ liệu </sub>

<small>•</small> <sub>Luồng dữ liệu: dữ liệu di chuyển </sub>

<small>•</small> <sub>Dữ liệu di chuyển từ nguồn tới đích </sub>

<small>•</small> <sub>Kho dữ liệu: dữ liệu được lưu trữ </sub>

<small>•</small> <sub>Dữ liệu được lưu trữ ở một vị trí </sub>

<small>Tên luồng dữ liệu </small>

</div><span class="text_page_counter">Trang 42</span><div class="page_container" data-page="42">

Ví dụ: DFD mức 0 bán vé tàu

<small>42 </small>

</div><span class="text_page_counter">Trang 43</span><div class="page_container" data-page="43">

Mơ hình thực thể mối quan hệ

</div><span class="text_page_counter">Trang 44</span><div class="page_container" data-page="44">

Tầm quan trọng của ERD

• <sub>Phân tích dữ liệu độc lập với lưu trữ và xử lý </sub>

• <sub>Nghiên cứu phạm vi miền thơng tin </sub>

• <sub>Tạo ra mơ hình trừu tượng hướng khách hàng </sub>

(mơ hình khái niệm), trực quan

• <sub>Xác định các mối quan hệ mang tính cấu trúc giữa </sub>

các dữ liệu. Dễ dàng chuyển sang mơ hình thiết

</div><span class="text_page_counter">Trang 45</span><div class="page_container" data-page="45">

Phương pháp thu thập yêu cầu

• <sub>Phỏng vấn </sub>

• <sub>Quan sát </sub>

• <sub>Điều tra bằng bảng hỏi </sub>

• <sub>Nghiên cứu tài liệu </sub>

</div><span class="text_page_counter">Trang 46</span><div class="page_container" data-page="46">

Tài liệu u cầu

•<sub>u cầu: </sub>

•<sub>Chỉ mơ tả chức năng, ràng buộc </sub>

•<sub>Khơng mơ tả về phương thức cài đặt </sub> •<sub>Phải dể thay đổi </sub>

<sub>Khó xác định chính xác, đầy đủ ngay </sub> <sub>Phải qua nhiều bước xét lại </sub>

<small>46 </small>

</div><span class="text_page_counter">Trang 47</span><div class="page_container" data-page="47">

Định dạng tài liệu yêu cầu

<small>•</small> <i><b><small>Giới thiệu:</small></b></i><small> Mơ tả sự cần thiết của hệ thống </small>

<small>•</small> <i><b><sub>Thuật ngữ: </sub></b></i><sub>Định nghĩa các khái niệm kỹ thuật được sử dụng </sub>

<small>trong tài liệu này </small>

<small>•</small> <i><b><sub>Định nghĩa yêu cầu người sử dụng: </sub></b></i><sub>yêu cầu chức năng và phi </sub>

<small>chức năng </small>

<small>•</small> <i><b><sub>Kiến trúc hệ thống </sub></b></i>

<small>•</small> <i><b><sub>Đặc tả u cầu hệ thống:</sub></b></i><sub> Mơ tả u cầu cơ bản chi tiết hơn </sub> <small>•</small> <i><b><sub>Mơ hình hệ thống: </sub></b></i><sub>Mơ hình đối tượng, mơ hình luồng dữ liệu </sub>

<small>và ngữ nghĩa dữ liệu,… </small>

<small>•</small> <i><b><sub>Phát triển/thay đổi của hệ thống: </sub></b></i><sub>Các giả thiết, các dự đoán về </sub>

<small>phát triển phần cứng, yêu cầu người dùng </small>

<small>•</small> <i><b><sub>Phụ lục </sub></b></i>

</div><span class="text_page_counter">Trang 48</span><div class="page_container" data-page="48">

Question

<small>48 </small>

</div>

×