Chương 1. Tổng quan về các yêu cầu phần mềm: mô tả khái quát, phương pháp,… Trong chương này giới thiệu về khái niệm, các loại yêu cầu phần mềm, quy trình kỹ thuật, quản trị và đặc tả yêu cầu phần mềm. Phân tích đặc tả yêu cầu Website thời trang nam Coolmate. Trong chương này là tài liệu phân tích đặc tả yêu cầu phần mềm cho Website thời trang nam Coolmate.
Phương pháp ❖ Tìm hiểu các yêu cầu phần mềm. ❖ Thu thập tài liệu, tìm hiểu phân tích, thống kê,… ❖ Sử dụng các kiến thức đã tìm hiểu được để tiến hành viết phân tích đặc tả Website thời trang nam Coolmate. Kết quả dự kiến ❖ Thời gian thực hiện dự án kịp thời, công việc từng phần hoàn thành đúng tiến độ. ❖ Tìm hiểu và trình bày được về các yêu cầu phần mềm.
6 ❖ Sử dụng được các công cụ Rational Rose, CASE Studio. ❖ Phân tích thiết kế CSDL. ❖ Viết tài liệu đặc tả yêu cầu phần mềm theo đúng chuẩn IEEE. ❖ Sử dụng các tài liệu tìm hiểu được để đặc tả yêu cầu phần mềm cho Website thời trang nam Coolmate.
Tổng quan về các yêu cầu phần mềm 1. Yêu cầu phần mềm 1. Khái niệm về yêu cầu phần mềm Các yêu cầu phần mềm (Software Requirements) là một đặc điểm kỹ thuật về những gì mà phần mềm nên được thực hiện. Chúng là những mô tả về cách thức hoạt động, hay một thuộc tính của hệ thống.
Chúng có thể là một ràng buộc nào đó đối với quá trình phát triển của hệ thống. Các yêu cầu phần mềm do khách hàng/người sử dụng phần mềm nêu ra bao gồm: Các chức năng của phần mềm, hiệu năng của phần mềm, các yêu cầu về thiết kế và giao diện, các yêu cầu đặc biệt khác,. Kỹ sư hệ thống có nhiệm vụ ghi chép lại các yêu cầu về phần mềm để phục vụ cho quá trình phân tích và đặc tả các yêu cầu phần mềm. Yêu cầu phần mềm mô tả hệ thống phần mềm sẽ hoạt động như thế nào hay hệ thống có thuộc tính gì.
Yêu cầu phần mềm cũng có thể chính là các ràng buộc trong quá trình phát triển hệ thống phần mềm. Ngoài ra, yêu cầu phần mềm giúp đội phát triển hiểu khách hàng muốn gì và người dùng cuối sẽ tương tác với phần mềm như thế nào. Yêu cầu phần mềm là lý do tại sao? Và là vấn đề quan trọng thế nào? Mà đội phát triển phải hiểu khách hàng muốn gì trước khi bắt đầu thiết kế và xây dựng hệ thống dựa trên máy tính. Có thể hiểu: “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” Hiểu được các yêu cầu của một vấn đề là một trong những nhiệm vụ khó khăn nhất mà một kỹ sư phần mềm (hay đôi khi được gọi là “kỹ sư hệ thống” hoặc “nhà phân tích” phải đối mặt.
Hiểu được các yêu cầu phần mềm dẫn đến sự hiểu biết về sự hoạt động của phần mềm, khách 8 hàng muốn gì và người dùng cuối sẽ tương tác với phần mềm như thế nào. Hiểu được các yêu cầu phần mềm là đóng góp quan trọng trong việc thành bại của một dự án phát triển phần mềm. Hiểu được các yêu cầu giúp nhà phát triển hiểu được khách hàng muốn gì trước khi bắt đầu thiết kế và xây dựng hệ thống dựa trên máy tính. Các loại yêu cầu Hình1.
Mô hình minh họa về các cấp và loại yêu cầu phần mềm. Trong đó: ❖ Vision and score document: Tài liệu về tầm nhìn và phạm vi sản phẩm. Tài liệu trình bày tổng quan về những gì sản phẩm cuối cùng có thể đạt được, xác định các lợi ích nghiệp vụ mà hệ thống sẽ cung cấp. Trình bày về phạm vi dự án, ranh giới giữa những gì vào và ra bao gồm các giới hạn và ràng buộc; tạo điều kiện thuận lợi cho việc đưa ra các cam kết và ưu tiên của dự án; điều kiện tiên quyết để quản lý phạm vi dự án.
9 ❖ User Requirements: Yêu cầu người sử dụng. ❖ Business Rules: Quy tắc nghiệp vụ. ❖ Business Requirements: Yêu cầu nghiệp vụ của phần mềm. ❖ Quality Attributes: Thuộc tính chất lượng.
❖ Non-functional Requirements: Yêu cầu phi chức năng. ❖ Functional Requirements: Yêu cầu chức năng. ❖ External Interfaces Requirements: Yêu cầu về giao diện bên ngoài ❖ Constraints: Các ràng buộc ❖ System Requirements: Yêu cầu hệ thống. ❖ Requirements document: Tài liệu yêu cầu.
❖ Software Requirements Specification: Mô tả (đặc tả) yêu cầu phần mềm. Yêu cầu người sử dụng Yêu cầu người sử dụng (User Requirements): Dành cho khách hàng, được diễn đạt bằng ngôn ngữ tự nhiên và sơ đồ về dịch vụ hệ thống cần cung cấp và các ràng buộc trong hoạt động của nó sao cho đơn giản, dễ hiểu đối với người sử dụng, hạn chế sử dụng hay áp dụng các thuật ngữ có kiến thức chi tiết về kĩ thuật/tin học. Nên mô tả các cầu người sử dụng theo: ❖ Yêu cầu chức năng. ❖ Yêu cầu phi chức năng.
Do yêu cầu người sử dụng được diễn đạt bằng ngôn ngữ tự nhiên nến có các hạn chế nhất định: Quá mềm dẻo dẫn đến không rõ ràng, thiếu chính xác, đôi khi xả ra tình trạng nhập nhằng. Yêu cầu hệ thống Yêu cầu hệ thống (System Requirements) được mô tả đủ chi tiết hơn so với yêu cầu người dùng về các dịch vụ hệ thống cung cấp, các đặc trưng hệ thống cần có và nó cũng được dùng như một hợp đồng giữa khách hàng và nhà phát triển. Thường sử dụng các mô hình để mô tả (phương pháp trình bày mô hình hóa). Yêu cầu chức năng Yêu cầu về chức năng (Functional Requirements) mô tả các chức năng hay các dịch vụ mà hệ thống phần mềm có thể thực hiện nhằm hỗ trợ cho nghiệp vụ của khách hàng/người sử dụng.
Yêu cầu chức năng là danh sách các công việc sẽ được thực hiện trên máy tính cùng với các thông tin mô tả tương ứng. Các yêu cầu chức năng bao gồm: ❖ Yêu cầu chức năng nghiệp vụ. ❖ Yêu cầu chức năng hệ thống. a) Yêu cầu chức năng nghiệp vụ Yêu cầu chức năng nghiệp vụ thuộc nhóm các yêu cầu chức năng.
Yêu cầu chức năng nghiệp vụ bao gồm các chức năng của phần mềm tương ứng với công việc có thật trong thế giới thực mà khách hàng/người sử dụng cần phải thực hiện. Yêu cầu chức năng nghiệp vụ phần mềm thực hiện đảm bảo tính đúng đắn và phù hợp với pháp luật sở tại. Các yêu cầu chức năng nghiệp vụ bao gồm: ❖ Chức năng lưu trữ: Tương ứng với công việc ghi chép thông tin trên sổ sách trong thế giới thực. Yêu cầu này đòi hỏi kèm theo các quy định, mẫu biểu ghi chép của khách hàng; ❖ Chức năng tra cứu: Tương ứng với công việc tìm kiếm, theo dõi và xem thông tin/hoạt động về đối tượng quản lý của khách hàng; 11 ❖ Chức năng tính toán: Tương ứng với công việc tính toán trong thế giới thực theo đúng nhiệm vụ cần thực hiện của khách hàng/người sử dụng.
Các công thức, phương pháp tính cần thực hiện theo theo đúng các quy định nghiệp vụ (có quy định/mẫu biểu/công thức kèm theo cho trước); ❖ Chức năng kết xuất: Tương ứng với công việc lập các loại báo cáo (tổng hợp, chi tiết, …) theo các biểu mẫu cho trước trong thực tế. b) Yêu cầu chức năng hệ thống Yêu cầu chức năng hệ thống thuộc nhóm các yêu cầu chức năng. Yêu cầu chức năng hệ thống bao gồm các chức năng không tương ứng với bất kỳ công việc nào trong thế giới thực, hay là các chức năng phần mềm được phát sinh thêm khi thực hiện công việc trên máy tính thay vì trong thế giới thực. Nó hỗ trợ cho quá trình thực hiện các chức năng nghiệp vụ và người dùng không nhìn thấy được.
Yêu cầu chức năng hệ thống liên quan đến tính bảo mật và tính an toàn. Các yêu cầu chức năng hệ thống bao gồm: ❖ Chức năng môi trường: Định cấu hình thiết bị (máy tính, máy in, thiết bị nhập/xuất, …), ngày giờ, số người làm việc, …; ❖ Chức năng mô phỏng: Mô phỏng các hoạt động của thế giới thực trên máy tính/thiết bị chuyên dụng, giúp cho khách hàng/người sử dụng có cái nhìn trực quan về lĩnh vực trong thực tế; ❖ Chức năng phân quyền: Phân quyền sử dụng giữa các loại/đối tượng người dùng. Đây chính là việc chỉ định người dùng có quyền thực hiện nhiệm vụ/chức năng gì. Việc phân quyền tương ứng với nhiệm vụ của đối tượng người dùng trong thực hiện các nhiệm vụ thực tế; 12 ❖ Chức năng sao lưu: Sao lưu, khôi phục dữ liệu.
Đây là một chức năng quan trọng và không thể thiếu với mỗi hệ thống phần mềm. Yêu cầu phi chức năng Yêu cầu phi chức năng (Non-functional Requirements) bao gồm các yêu cầu liên quan đến chất lượng phần mềm, là sự ràng buộc cách thức thực hiện các yêu cầu chức năng. Yêu cầu phi chức năng mô tả các yêu cầu liên quan đến các ràng buộc như: độ tin cậy, thời gian đáp ứng, độ an toàn, các tiêu chuẩn chất lượng, về môi trường, chuẩn sử dụng, qui trình phát triển, bản quyền, liên kết, … Mỗi yêu cầu phi chức năng có thể thuộc vào yêu cầu của người sử dụng hoặc của nhà phát triển (đại diện là các kỹ sư/kỹ thuật viên/chuyên viên tin học). Trong thực tế, có những yêu cầu rất khó phân biệt được một cách rõ ràng là yêu cầu này thuộc vào yêu cầu chức năng hay yêu cầu phi chức năng.
Mỗi yêu cầu phi chức năng có thể thuộc một trong các yêu cầu sản phẩm, các yêu cầu về tổ chức hay các yêu cầu bên ngoài. ❖ Các yêu cầu về sản phẩm xác định ứng xử của sản phẩm về 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ề sản phẩm như: • Yêu cầu khả dụng (Usability Requirements); • Yêu cầu hiệu quả (Efficiency Requirements); • Yêu cầu hiệu năng (Performance Requirements); • Yêu cầu về không gian (Space Requirements); • Yêu cầu tin cậy (Reliability Requirements); • Yêu cầu khả chuyển (Portability Requirements); • Yêu cầu về tính toàn vẹn (Integrity Requirements); • Yêu cầu về khả năng ghi nhận (Integrity Requirements). 13 ❖ Các yêu cầu về tổ chức (Organizational Requirements) đượ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 về tổ chức như: • Yêu cầu chuyển giao (Delivery Requirements); • Yêu cầu triển khai (Implement Requirements); • Yêu cầu về chuẩn (Standards Requirements). ❖ Các yêu cầu ngoài (External requirements) hay ngoại lai được xác định từ các tác nhân ngoài của hệ thống.