1. Trang chủ
  2. » Thể loại khác

Bài 2 Xác định Yêu cầu

104 368 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 1,33 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Những yêu cầu chức năng và phi chức năngFunctional and non-functional requirements 12  Yêu cầu chức năng Functional requirements  Những tuyên bố statements về dịch vụ hệ thống nên cung

Trang 1

Công nghệ Phần mềm

Xác định Yêu cầu

Giảng viên: Lê Nguyễn Tuấn Thành

Nguyễn Văn Đồng Email: thanhlnt@tlu.edu.vn

nvdong@tlu.edu.vn

Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT

Trường Đại Học Thủy Lợi

Trang 2

Nội dung

2

Quy trình Kỹ thuật tạoYêu cầu

Bài giảng có sử dụng hình vẽ trong cuốn sách “Software Engineering, Ian Sommerville, 8th Edition, 2007”

Trang 3

Yêu cầu của Phần mềm

(Software Requirements)

3

Trang 5

Những chủ đề được đề cập

(Topics covered)

5

 Yêu cầu chức năng và phi chức năng

 Yêu cầu người dùng

 Yêu cầu hệ thống

 Đặc tả giao diện (interface specification)

 Tài liệu yêu cầu phần mềm (the software requirementsdocument)

Trang 6

Kỹ thuật yêu cầu

(Requirements engineering)

6

 Là quá trình thành lập những dịch vụ mà khách hàng yêucầu từ một hệ thống và những rằng buộc trong đó hệthống vận hành và được phát triển

 Những yêu cầu tự bản thân chúng là những miêu tả vềnhững dịch vụ hệ thống và rằng buộc được sinh ra trongquá trình kỹ thuật yêu cầu (requirements engineeringprocess)

Trang 7

 Điều này là không tránh khỏi do những yêu cầu có thể

miêu tả một chức năng kép (dual function):

 Nó có thể là cơ sở cho việc đấu thầu một hợp đồng – do đó phải dễ diễn giải (interpretation);

 Bản thân nó có thể là cơ sở cho một hợp đồng – do đó phải được định nghĩa cụ thể;

 Cả hai phát biểu này đều có thể được gọi là những yêu cầu

Trang 8

Yêu cầu trừu tượng

(Requirements abstraction )

8

“ Nếu một công ty mong muốn ký một hợp đồng (contract)

cho một dự án phát triển phần mềm lớn, nó phải định nghĩa những yêu cầu của nó theo một cách đủ trừu tượng rằng một giải pháp không được định nghĩa trước Những yêu cầu đó phải được viết sao cho nhiều nhà thầu có thể đấu thầu hợp đồng, cung cấp, có thể, những cách khác nhau

để đáp ứng nhu cầu của tổ chức khách hàng Khi hợp đồng

đã được ký kết, nhà thầu phải soạn thảo một định nghĩa hệ thống cho khách hàng chi tiết hơn để khách hàng hiểu và có thể xác nhận điều mà phần mềm sẽ làm Cả hai tài liệu này đều có thể được gọi là tài liệu yêu cầu (requirements document) cho hệ thống ”

Trang 9

Kiểu yêu cầu

(Types of requirement)

9

 Yêu cầu người dùng

 Những phát biểu bằng ngôn ngữ tự nhiên cộng với sơ đồ (diagram) về những dịch vụ hệ thống cung cấp và những rằng buộc vận hành của nó Được viết cho khách hàng.

 Yêu cầu hệ thống

 Một tài liệu có cấu trúc đưa ra những mô tả chi tiết về chức năng hệ thống, dịch vụ và rằng buộc vận hành Định nghĩa những gì nên được thực thi, có thể là một phần trong hợp đồng giữa khách hàng (client) và nhà thầu (contractor)

Trang 10

Định nghĩa và Đặc tả

(Definitions and Specifications)

10

 Định nghĩa yêu cầu người dùng

1 Phần mềm phải cung cấp một cách thức để biểu diễn và truy cập

những tệp bên ngoài được tạo bởi những công cụ khác

 Đặc tả những yêu cầu hệ thống

1 Người dùng nên được cung cấp các phương tiện (facilities) để

định nghĩa kiểu của những tệp tin ngoài (external files)

2 Mỗi kiểu tệp tin ngoài nên có một công cụ đi kèm có thể áp dụng

cho kiểu tệp tin đó

3 Mỗi kiểu tệp tin ngoài nên được biểu diễn bằng một biểu tượng

cụ thể (specific icon) trên màn hình của người dùng

4 Các phương tiện nên được cung cấp cho biểu tượng biểu diễn

một kiểu tệp tin ngoài được định nghĩa bởi người dùng

5 Khi người dùng chọn một biểu tượng biểu diễn tệp tin ngoài, hiệu

ứng của việc lựa chọn đó là sử dụng công cụ liên kết với kiểu tệp ngoài đó cho tệp tin được biểu diễn bởi công cụ lựa chọn

Trang 11

Người đọc của yêu cầu

(Requirements readers)

11

Yêu cầu người dùng

(User requirements)

• Nhà quản lý phía khách hàng (Client managers)

• Người dùng cuối của hệ thống (System end-users)

• Kỹ sư phía khách hàng (Client engineers)

• Nhà quản lý phía nhà thầu (Contractor managers)

• Kỹ sư hệ thống (System architects)

Yêu cầu hệ thống

(System requirements)

• Người dùng cuối của hệ thống (System end-users)

• Kỹ sư phía khách hàng (Client engineers)

• Kỹ sư hệ thống (System architects)

• Lập trình viên phần mềm (Software developers)

Đặc tả thiết kế phần

mềm (Software design

specification)

• Kỹ sư phía khách hàng (Client engineers) [có thể]

• Kỹ sư hệ thống (System architects)

• Lập trình viên phần mềm (Software developers)

Trang 12

Những yêu cầu chức năng và phi chức năng

(Functional and non-functional requirements)

12

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

 Những tuyên bố (statements) về dịch vụ hệ thống nên cung cấp, cách hệ thống nên phản ứng với những đầu vào cụ thể và cách hệ thống nên hành xử trong những tình huống cụ thể

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

 Những rằng buộc trên những dịch vụ hoặc chức năng được cung cấp bởi hệ thống như rằng buộc về thời gian, rằng buộc

về tiến trình phát triển, về các chuẩn, …

 Yêu cầu miền (Domain requirements)

 Những yêu cầu đến từ miền ứng dụng của hệ thống và phản ánh các đặc tính của miền đó

Trang 13

Những yêu cầu chức năng

(Functional requirements)

13

 Mô tả chức năng hoặc dịch vụ hệ thống

 Phụ thuộc vào kiểu phần mềm, người dùng mong muốn

và kiểu của hệ thống nơi mà phần mềm được sử dụng

 Những yêu cầu chức năng người dùng có thể là nhữngtuyên bố (statements) ở mức cao về điều mà hệ thốngnên làm

 Những yêu cầu chức năng hệ thống nên miêu tả chi tiếtdịch vụ hệ thống

Trang 14

 Người dùng có thể tìm kiếm, tải về hoặc in những bàibáo này cho mục đích học tập cá nhân

Trang 15

Ví dụ về yêu cầu chức năng của LIBSYS

15

 Người dùng sẽ có thể tìm kiếm hoặc tất cả các bộ cơ

sở dữ liệu ban đầu hoặc chỉ chọn một tập con

 Hệ thống sẽ cung cấp chế độ hiển thị (viewer) thích hợpcho người dùng để đọc tài liệu trong kho tài liệu

 Mỗi đơn hàng sẽ được cấp một số nhận dạng duy nhất(ORDER_ID) mà người dùng sẽ có thể sử dụng để saochép vào khu vực lưu trữ dài hạn (permanent) của tàikhoản đó

Trang 16

Sự không chính xác của yêu cầu

(Requirement imprecision)

16

 Nhiều vấn đề phát sinh khi những yêu cầu không đượcphát biểu chính xác

 Những yêu cầu không rõ ràng (ambiguous requirements)

có thể được diễn dịch theo những cách khác nhau bởingười phát triển và người dùng

 Hãy xem xét thuật ngữ “chế độ hiển thị thích hợp”(appropriate viewers)

 Về phía người dùng (user intention) – chế độ hiển thị với mục đích đặc biệt cho từng kiểu tài liệu khác nhau

 Theo diễn dịch của người phát triển (developer interpretation) – cung cấp một trình xem văn bản (text viewer) để hiển thị nội dung của tài liệu

Trang 17

Sự đầy đủ và nhất quán của yêu cầu

(Requirements completeness & consistency)

17

 Về nguyên tắc, những yêu cầu nên phải hoàn thiện vànhất quán

 Hoàn thiện (complete)

 Chúng nên bao gồm miêu tả về tất cả các phương tiện cần thiết

 Nhất quán (consistent)

 Không nên có xung đột (conflicts) hoặc mâu thuẫn (contradictions) trong những miêu tả về phương tiện hệ thống

 Trên thực tế, không thể tạo ra một tài liệu yêu cầu hoànthiện và nhất quán

Trang 18

Những yêu cầu phi chức năng

(Non-functional requirements)

18

 Những yêu cầu này định nghĩa những thuộc tính và rằngbuộc, ví dụ: độ tin cậy, thời gian phản ứng, yêu cầu lưutrữ Những rằng buộc là khả năng thiết bị vào/ra (I/O),những biểu diễn hệ thống, …

 Những yêu cầu tiến trình cũng có thể được xác địnhbằng cách ủy nhiệm (mandate) một hệ thống CASE, ngônngữ lập trình hoặc phương pháp phát triển cụ thể

 Những yêu cầu phi chức năng có thể quan trọng hơnnhững yêu cầu chức năng Nếu những yêu cầu này khôngđược đáp ứng, hệ thống sẽ là vô dụng (useless)

Trang 19

Những phân loại phi chức năng

(Non-functional classifications)

19

 Những yêu cầu sản phẩm (product requirements)

 Những yêu cầu xác định rằng sản phẩm được phân phối phải hoạt động theo một cách cụ thể, ví dụ: tốc độ chạy (execution speed),độ tin cậy (reliability),v.v.

 Những yêu cầu tổ chức (organizational requirements)

 Những yêu cầu là hệ quả của những chính sách (policies) và thủ tục (procedures) tổ chức, ví dụ: những tiêu chuẩn quy trình được sử dụng, những yêu cầu thực thi (implementation), v.v.

 Những yêu cầu bên ngoài (external requirements)

 Những yêu cầu phát sinh từ những yếu tố bên ngoài hệ thống

và tiến trình phát triển của nó, ví dụ: yêu cầu về khả năng tương tác (interoperability),yêu cầu pháp lý (legislative),v.v.

Trang 20

Những kiểu yêu cầu phi chức năng (Non-functional requirement types)

20

Trang 21

Ví dụ về Yêu cầu phi chức năng

(Non-functional requirements examples)

21

 Yêu cầu sản phẩm (product requirement)

 8.1 Giao diện người dùng cho LIBSYS sẽ được triển khai dưới dạng HTML đơn thuần mà không có frame hoặc Java applet

 Yêu cầu tổ chức (organizational requirement)

 9.3.2 Tiến trình phát triển hệ thống và những tài liệu chuyển giao (deliverable documents) phải phù hợp với tiến trình và sản phẩm được định nghĩa trong XYZCo-SP-STAN-95.

 Yêu cầu bên ngoài (external requirement)

 7.6.5 Hệ thống sẽ không tiết lộ bất kỳ thông tin về khách hàng ngoài tên và số tham chiếu của họ cho người vận hành

hệ thống

Trang 22

Mục tiêu và Yêu cầu

(Goals and Requirements)

 Yêu cầu phi chức năng có thể xác thực

 Một phát biểu sử dụng một vài đại lượng đo mà có thể được kiểm tra một cách khách quan

 Những mục tiêu là hữu ích cho các nhà phát triển dochúng truyền đạt ý định của người dùng hệ thống

Trang 23

 Một yêu cầu phi chức năng có thể xác thực

 Những người điều khiển có kinh nghiệm (experienced controllers) sẽ có thể sử dụng tất cả chức năng hệ thống sau

2 giờ huấn luyện Sau thời gian huấn luyện này, số lượng trung bình lỗi được tạo ra bởi người dùng kinh nghiệm sẽ không quá 2 lỗi một ngày.

Trang 24

Những số đo cho Yêu cầu

(Requirements measures)

24

Thuộc tính (property) Số đo (measure)

Tốc độ (speed)

Số giao dịch được xử lý / giây

Số người dùng / thời gian đáp ứng sự kiện Thời gian làm tươi màn hình

Số lượng ROM chips Tính dễ sử dụng

(ease of use)

Thời gian huấn luyện

Số lượng khung trợ giúp

Độ tin cậy (reliability)

Thời gian trung bình mà hệ thống lỗi (failure) Xác suất của trạng thái không sẵn sàng (unavailability)

Tỷ lệ xuất hiện lỗi (failure occurrence) Tính sẵn sàng (availability)

Trang 25

Tương tác yêu cầu

(Requirements interaction)

25

 Xung đột giữa những yêu cầu phi chức năng là phổ biếntrong những hệ thống phức tạp

 Hệ thống tàu vũ trụ (spacecraft system)

 Tối giản hóa trọng lượng, số lượng vi xử lý (chip) trong hệ thống nên được tối giản hóa

 Tối giản hóa việc tiêu thụ điện năng (power consumption), những vi xử lý tiêu thụ điện năng thấp nên được sử dụng

 Tuy nhiên, sử dụng vi xử lý điện năng thấp nghĩa là phải sử dụng số lượng nhiều hơn Đâu là yêu cầu quan trọng nhất?

Trang 26

Yêu cầu miền

(Domain requirements)

26

 Xuất phát từ ứng dụng miền và miêu tả những đặc điểm

và tính năng của hệ thống mà phản ánh miền

 Yêu cầu miền là yêu cầu chức năng mới, là những rằngbuộc trên những yêu cầu hiện có hoặc định nghĩa nhữngtính toán cụ thể

 Nếu những yêu cầu miền không được thỏa mãn, hệthống có thể không hoạt động (unworkable)

Trang 27

Yêu cầu miền của hệ thống thư viện

(Library system domain requirements)

27

 Sẽ có một giao diện người dùng chuẩn cho tất cả cơ sở

dữ liệu, mà sẽ dựa trên chuẩn Z39.50

 Do những hạn chế về bản quyền (copyright), một số tàiliệu phải bị xóa ngay khi đến Tùy thuộc vào yêu cầu củangười dùng, những tài liệu này

 hoặc sẽ được in cục bộ trên máy chủ hệ thống để chuyển tiếp một cách thủ công đến người dùng

 hoặc được định tuyến đến một máy in trên mạng

Trang 28

Những vấn đề của Yêu cầu miền

(Domain requirements problems)

Trang 29

Yêu cầu người dùng

(User requirements)

29

 Nên miêu tả những yêu cầu chức năng và phi chức năngtheo một cách mà chúng có thể được hiểu bởi ngườidùng hệ thống, những người không có kiến thức kỹthuật chi tiết

 Những yêu cầu người dùng được định nghĩa sử dụngngôn ngữ tự nhiên, các bảng và biểu đồ mà có thể đượchiểu bởi tất cả người dùng

Trang 30

Những vấn đề với ngôn ngữ tự nhiên

(Problems with natural language)

30

 Thiếu tính minh bạch (lack of clarity)

 Sự chính xác là khó mà không làm cho tài liệu trở nên khó đọc

 Sự nhầm lẫn yêu cầu (requirements confusion)

 Những yêu cầu chức năng và phi chức năng có xu hướng bị phân biệt nhầm lẫn

 Sự hợp nhất yêu cầu (requirements amalgamation)

 Nhiều yêu cầu khác nhau có thể được diễn đạt cùng nhau

Trang 31

Yêu cầu cho LIBSYS

(LIBSYS requirement)

31

 4.5 LIBSYS sẽ cung cấp một hệ thống kế toán tài chính

để duy trì hồ sơ của tất cả các khoản thanh toán đượcthực hiện bởi người dùng hệ thống

 Người quản lý hệ thống có thể cấu hình hệ thống saocho người dùng thông thường có thể nhận được tỷ lệchiết khấu (discounted rates)

Trang 32

Yêu cầu cho lưới trình soạn thảo

(Editor grid requirement)

32

 2.6 Những tính năng của lưới (grid facilities): để hỗ trợđịnh vị các thực thể (entities) trên một sơ đồ, ngườidùng có thể bật lên một lưới theo hoặc centimet hoặcinch Ban đầu, lưới này bị tắt đi Lưới có thể được bậtlên hoặc tắt đi bất kỳ lúc nào trong quá trình soạn thảo

và có thể được chuyển đổi giữa cm và inch bất kỳ lúcnào Một lựa chọn lưới sẽ được cung cấp trên mộtkhung nhìn nhỏ vừa (reduce-to-fit view) nhưng số lượngdòng hiển thị của lưới sẽ được giảm xuống để tránh làmđầy sơ đồ nhỏ hơn bởi những dòng này

Trang 33

Phân tích vấn đề của 2 yêu cầu vừa nêu

 Yêu cầu lưới trộn lẫn 3 kiểu yêu cầu khác nhau

 Yêu cầu chức năng mức khái niệm (sự cần thiết của một lưới trong soạn thảo)

 Yêu cầu phi chức năng (những đơn vị của lưới: cm, inch)

 Yêu cầu UI phi chức năng (sự chuyển đổi của lưới)

Trang 34

Một trình bày có cấu trúc

(Structured presentation)

34

2.6.1 Những tính năng của lưới

Trình soạn thảo sẽ cung cấp một tính năng lưới, là một ma trận những dòng ngang và dọc cung cấp một nền (background) cho cửa sổ trình soạn thảo Đây là

một lưới thụ động nơi mà sự sắp hàng của những thực thể là trách nhiệm của người sử dụng

Lý do cơ sở (rationale): Một lưới giúp người sử dụng tạo một

sơ đồ gọn gàng với các thực thể được sắp khoảng cách tốt Mặc dù một lưới chủ động, nơi các thực thể đính vào (snap- to) các đường của lưới, có thể hữu ích, việc sắp vị trí này có thể không chính xác Người sử dụng là người tốt nhất để quyết định vị trí của những thực thể

Đặc điểm kỹ thuật (specification): ECLIPSE / WS / Tools / DE /

FS Mục 5.6

Nguồn (source): Ray Wilson,Văn phòng Glasgow

Trang 35

Hướng dẫn viết yêu cầu

(Guidelines for writing requirements)

35

 Hãy phát minh ra một định dạng chuẩn và sử dụng

nó cho tất cả các yêu cầu

 Sử dụng ngôn ngữ một cách nhất quán Sử dụng cho cácyêu cầu bắt buộc (mandatory requirements), nên sửdụng cho các yêu cầu mong muốn (desirablerequirements)

 Sử dụng văn bản được làm nổi bật để xác địnhnhững phần quan trọng của yêu cầu

 Tránh sử dụng thuật ngữ máy tính (computer jargon)

Trang 36

 Chúng được dự định là một cơ sở để thiết kế hệthống

 Chúng có thể được đưa vào hợp đồng hệ thống

 Yêu cầu hệ thống có thể được định nghĩa hoặc minhhoạ sử dụng mô hình hệ thống (system models)

Trang 37

Phân biệt: Yêu cầu và Thiết kế

(Requirements and Design)

37

 Về nguyên tắc, yêu cầu nên phát biểu về CÁI (what) mà

hệ thống nên làm, còn thiết kế nên miêu tả CÁCH (how)

hệ thống làm điều đó

 Trong thực tế, yêu cầu và thiết kế là không thể tách rời

 Một kiến trúc hệ thống có thể được thiết kế để cấu trúc các yêu cầu;

 Hệ thống có thể liên kết với các hệ thống khác để tạo ra yêu cầu thiết kế;

 Việc sử dụng một thiết kế cụ thể có thể là một yêu cầu miền.

Trang 38

Các vấn đề với đặc tả ngôn ngữ tự nhiên

(Problems with NL specification)

38

 Sự mơ hồ (Ambiguity)

 Người đọc và người viết yêu cầu phải phiên dịch những

từ giống nhau theo cùng một cách Ngôn ngữ tự nhiên là không rõ ràng vì vậy điều này rất khó khăn.

 Quá linh hoạt (Over-flexibility)

 Điều tương tự có thể được nói bằng một số cách khác nhau trong đặc tả.

 Thiếu tính mô-đun hóa

 Cơ cấu ngôn ngữ tự nhiên không phù hợp để cấu trúc những yêu cầu hệ thống

Trang 39

Những thay thế cho đặc tả bằng ngôn ngữ tự nhiên

Ký hiệu đồ

hoạ

Một ngôn ngữ đồ họa, bổ sung bằng các chú thích văn bản, được sử dụng để định nghĩa các yêu cầu chức năng cho hệ thống Một ví dụ ban đầu của một ngôn ngữ đồ họa như thế là SADT Bây giờ, những mô tả use-case sử dụng và biểu đồ trình tự thường được sử dụng.

Đặc tả toán

học

Đây là những ký hiệu dựa trên các khái niệm toán học như các máy hoặc tập hữu hạn trạng thái Những đặc tả rõ ràng này làm giảm các tham số giữa khách hàng và nhà thầu về chức năng của hệ thống Tuy nhiên, hầu hết khách hàng không hiểu những đặc tả hình thức và miễn cưỡng chấp nhận nó như một hợp đồng hệ thống.

Trang 40

Đặc tả ngôn ngữ được cấu trúc

(Structured language specifications)

40

 Sự tự do của người viết yêu cầu bị giới hạn bởi mộtkhuôn mẫu được định nghĩa trước cho các yêu cầu

 Tất cả các yêu cầu được viết theo một cách chuẩn

 Thuật ngữ (terminology) sử dụng trong mô tả có thể bịhạn chế

 Ưu điểm là hầu hết các biểu cảm của ngôn ngữ tựnhiên được duy trì nhưng một mức độ đồng nhất bịbắt buộc trong đặc tả

Ngày đăng: 18/12/2017, 17:04

TỪ KHÓA LIÊN QUAN

w