GIÁO TRÌNH

Nhập môn Công nghệ phần mềm

Science and Technology

Một số yêu cầu về nhập môn công nghệ phần mềm

Tác giả: Phạm Thị Quỳnh

Yêu cầu hệ thống

Giới thiệu

Các yêu cầu của hệ thống phần mềm thường được chia thành ba loại: yêu cầu chức năng, yêu cầu phi chức năng và yêu cầu miền ứng dụng. Tuy nhiên, trong thực tế chúng ta rất khó phân biết ba loại yêu cầu này một cách rõ ràng.

Mục tiêu

- Tìm hiểu về các yêu cầu hệ thống và đặc điểm của chúng

- Phương pháp xác định các yêu cầu hệ thống

- Nắm rõ các kỹ thuật đặc tả yêu cầu hệ thống và biết cách áp dụng những kỹ thuật này một cách thích hợp.

Ví dụ

Trong chương này, chúng ta sẽ sử dụng một ví dụ về hệ thống thư viện để xác định các loại yêu cầu.

Hệ thống thư viện (LIBSYS) cung cấp một giao diện đơn giản để lưu CSDL về các bài báo trên các thư viện khác nhau. Người sử dụng có thể tìm kiếm, download và in những tài liệu này.

Yêu cầu chức năng

Đặt vấn đề

- Để xây dựng một hệ thống có thể dùng được thực sự, trước hết nó phải đạt được yêu cầu gì?

- Yêu cầu chức năng có phải là quan trọng nhất không?

- Nếu ta không xác định đầy đủ, rõ ràng các yêu cầu chức năng thì sẽ xảy ra chuyện gì?

Yêu cầu chức năng mô tả hệ thống sẽ làm gì. Nó mô tả các chức năng hoặc các dịch vụ của hệ thống một cách chi tiết.

Đặc điểm của yêu cầu chức năng:

- Tính mập mờ, không rõ ràng của các yêu cầu: Vấn đề này xảy ra khi các yêu cầu không được xác định một cách cẩn thận. Các yêu cầu mập mờ có thể được người xây dựng và người sử dụng hiểu theo nhiều cách khác nhau.

- Tính hoàn thiện và nhất quán: Về nguyên tắc, yêu cầu phải chứa tất cả các mô tả chi tiết và không có sự xung đột hoặc đối ngược giữa các yêu cầu. Tuy nhiên, trong thực tế rất khó có thể đạt được điều này.

Xác định các yêu cầu chức năng của LYBSYS

- Người sử dụng có thể tìm kiếm tất cả CSDL hoặc một tập con của CSDL.

- Hệ thống sẽ cung cấp những giao diện thích hợp để người sử dụng đọc tài liệu.

- Tất cả những hoá đơn mà người sử dụng đăng ký để in sao tài liệu có một mã duy nhất.

Yêu cầu phi chức năng

Đặt vấn đề

- Nếu hệ thống chỉ thoả mãn những yêu cầu chức năng thì đã đủ chưa?

- Ví dụ hệ thống không tiện dụng đối với người sử dụng thì sao?

- Yêu cầu phi chức năng bao gồm những vấn đề gì?

Yêu cầu phi chức năng không đề cập trực tiếp tới các chức năng cụ thể của hệ thống. Yêu cầu phi chức năng thường định nghĩa các thuộc tính như: độ tin cậy, thời gian đáp ứng, các yêu cầu về lưu trữ …và các ràng buộc của hệ thống như: khả năng của thiết bị vào/ra, giao diện …

Một số yêu cầu phi chức năng còn có liên quan đến quy trình xây dựng hệ thống. Ví dụ: các chuẩn được sử dụng, các công cụ CASE, ngôn ngữ lập trình …

Các yêu cầu phi chức năng có thể là hạn chế hơn những yêu cầu chức năng. Nhưng nếu nó không được thoả mãn thì hệ thống sẽ không sử dụng được.

Các yêu cầu phi chức năng xuất hiện là do yêu cầu của người sử dụng, ràng buộc về ngân sách, 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 và các tác nhân ngoài khác. Do đó, chúng ta có thể phân loại các yêu cầu phi chức năng như sau:

- Các yêu cầu về sản phẩm xác định ứng xử của sản phẩm như: hiệu năng, khả năng sử dụng, độ tin cậy … của sản phẩm

- Các yêu cầu về tổ chức: các yêu cầu này được lấy từ những chính sách và quy tắc của khách hàng hoặc tổ chức sử dụng hệ thống.

- Các yêu cầu ngoài: được xác định từ các tác nhân ngoài của hệ thống.

Xác định các yêu cầu phi chức năng của LIBSYS

- Yêu cầu về sản phẩm: LIBSYS phải được cài đặt bằng HTML mà không có frame hoặc Java applets.

- Yêu cầu về mặt tổ chức: Quy trình xây dựng hệ thống và các tài liệu chuyển giao phải thoả mãn các quy tắc đã được định nghĩa trong XYZCo-SP-STAN-95.

- Yêu cầu ngoài: Hệ thống không được để lộ các thông tin cá nhân của khách hàng.

Nói chung, chúng ta rất khó xác định chính xác và rất khó thẩm tra những yêu cầu phi chức năng mập mờ. Do đó, trong tài liệu đặc tả yêu cầu, người ta thường bổ sung các mục tiêu. Mục tiêu rất hữu ích đối với người phát triển hệ thống khi nó truyền tải được những mong muốn của người sử dụng hệ thống. Còn với những yêu cầu phi chức năng có thể thẩm định được là những yêu cầu có thể kiểm thử một cách khách quan.

Tuy nhiên, trong nhiều trường hợp thường xảy ra xung đột giữa các yêu cầu phi chức năng đối với những hệ thống phức tạp.

Các mục tiêu và yêu cầu phi chức năng có thể thẩm định được của LIBSYS

- Mục tiêu của hệ thống là dễ sử dụng đối với những người sử dụng có kinh nghiệm và được tổ chức để sao cho tối thiểu hoá được lỗi.

- Các yêu cầu phi chức năng có thể thẩm định được: Những người sử dụng có kinh nghiệm có thể sử dụng được tất cả các chức năng của hệ thống chỉ sau hai tiếng tập huấn. Sau khoá huấn luyện này, số lỗi chương trình gây ra bởi người sử dụng là không quá hai lỗi một ngày.

Yêu cầu miền ứng dụng

Đặt vấn đề

- Yêu cầu đối với đội phát triển hệ thống?

- Các yêu cầu về lĩnh vực ứng dụng của hệ thống thì thuộc vào loại nào trong hai loại trên đã trình bày?

Yêu cầu miền ứng dụng được xác định từ miền ứng dụng của hệ thống và phản ánh các thuộc tính và ràng buộc của miền ứng dụng. Nó có thể là yêu cầu chức năng hoặc phi chức năng.

Nếu yêu cầu miền ứng dụng không được thoả mãn thì có thể hệ thống sẽ không làm việc được.

Sau đây là một số vấn đề liên quan đến yêu cầu miền ứng dụng:

- Khả năng có thể hiểu được: các yêu cầu được biểu diễn dưới ngôn ngữ của lĩnh vực ứng dụng.

- Ẩn ý: Các chuyên gia có hiểu biết về lĩnh vực của họ nhưng họ không biết cách xây dựng những yêu cầu miền ứng dụng một cách rõ ràng, mang tính kỹ thuật.

Yêu cầu về miền ứng dụng của LIBSYS

- Giao diện người dùng chuẩn cho tất cả các CSDL đều dựa trên chuẩn Z39.50.

- Vì vấn đề bản quyền nên một số tài liệu phải xoá ngay khi vừa chuyển đến.

- Phụ thuộc vào yêu cầu của người sử dụng, những tài liệu đó có thể được in ngay trên server và chuyển đến cho người sử dụng hoặc gửi đến cho máy in mạng.

Một số kỹ thuật đặc tả yêu cầu hệ thống

Giới thiệu

Nói chung, ngôn ngữ tự nhiên thường được sử dụng để viết đặc tả yêu cầu hệ thống cũng như yêu cầu của người sử dụng. Tuy nhiên, yêu cầu hệ thống thường chi tiết hơn yêu cầu của người sử dụng nên đặc tả bằng ngôn ngữ tự nhiên thường gặp một số vấn đề sau:

- Không rõ ràng: Người đọc và người viết yêu cầu phải giải thích các từ theo cùng một nghĩa. Ngôn ngữ tự nhiên có bản chất là mập mờ nên để đạt được yêu cầu trên là rất khó khăn.

- Quá mềm dẻo: với cùng một vấn đề nhưng có nhiều cách khác nhau để đặc tả.

- Thiếu khả năng mô-đun hoá: cấu trúc của ngôn ngữ tự nhiên không tương xứng với cấu trúc của các yêu cầu hệ thống.

Vì những lý do này mà đặc tả bằng ngôn ngữ tự nhiên thường gây khó hiểu. Do đó, chúng ta có thể sử dụng một số phương pháp được trình bày trong các phần sau để đặc tả yêu cầu.

Đặc tả bằng ngôn ngữ hướng cấu trúc

Sử dụng ngôn ngữ hướng cấu trúc sẽ yêu cầu người viết đặc tả tuân theo những mẫu được định nghĩa trước. Tất cả các yêu cầu đều được viết theo chuẩn và các thuật ngữ được sử dụng có thể bị hạn chế.

Ưu điểm của phương pháp này là đạt được mức độ diễn tả cao nhất của ngôn ngữ tự nhiên nhưng mức độ đồng nhất lại bị lạm dụng trong các đặc tả.

Đặc tả dựa biểu mẫu (Form-based)

Đặc tả dựa biểu mẫu định nghĩa các chức năng hoặc thực thể, mô tả đầu vào và nơi xuất phát của nó, mô tả đầu ra và nơi nó sẽ đến. Đặc tả dựa biểu mẫu chỉ rõ những thực thể cần thiết, các điều kiện trước và sau (nếu thích hợp), các ảnh hưởng của chức năng.

Biểu đồ trình tự

Biểu đồ trình tự biểu diễn trình tự các sự kiện xảy ra khi người sử dụng tương tác với hệ thống. Nếu ta đọc biểu đồ này từ đầu đến cuối thì ta sẽ thấy được thứ tự của các hành động được thực hiện.