Phân tích yêu cầu phần mềm
Để mang đến một sản phẩm phần mềm chất lượng thì việc phân tích yêu cầu là khâu vô cùng quan trọng trong quá trình xây dựng phần mềm. Hoạt động này đòi hỏi sự phối kết hợp rất chặt chẽ giữa khách hàng và người phân tích để vạch ra được xem chúng ta phải phát triển cái gì
2020-04-23

Để mang đến một sản phẩm phần mềm chất lượng thì việc phân tích yêu cầu là khâu vô cùng quan trọng trong quá trình xây dựng phần mềm. Hoạt động này đòi hỏi sự phối kết hợp rất chặt chẽ giữa khách hàng và người phân tích để vạch ra được xem chúng ta phải phát triển cái gì
Để mang đến một sản phẩm phần mềm chất lượng thì việc phân tích yêu cầu là khâu vô cùng quan trọng trong quá trình xây dựng phần mềm. Hoạt động này đòi hỏi sự phối kết hợp rất chặt chẽ giữa khách hàng và người phân tích để vạch ra được xem chúng ta phải phát triển cái gì
1 - Mục tiêu và yêu cầu của phần mềm:
Yêu cầu của phần mềm là tất cả các yêu cầu về phần mềm do người dùng 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, giao diện của phần mềm và một số các yêu cầu khác. Thông thường các yêu cầu phần mềm được phân loại dựa trên 4 thành phần của phần mềm như sau:
- Các yêu cầu về phần mềm
- Các yêu cầu về phần cứng
- Các yêu cầu về dữ liệu
- Các yêu cầu về con người
Mục tiêu quan trọng nhất đối với phần mềm phải thỏa mãn được các yêu cầu và mong muốn của người dùng. Người dùng thường chỉ đưa ra những ý tưởng, nhiều khi rất mơ hồ về phần mềm mà họ mong muốn xây dựng. Và việc của các kỹ sư phát triển phần mềm đó là phải giúp họ đưa những ý tưởng mơ hồ đó thành hiện thực và xây dựng được một phần mềm có đầy đủ các tính năng cần thiết thỏa mãn yêu cầu của người dùng.
2 - Những khó khăn trong việc phân tích, nắm bắt yêu cầu:
2.1 - Những vấn đề từ phía người dùng:
- Người dùng không hiểu họ muốn gì
- Người dùng liên tục thay đổi yêu cầu ngay cả khi việc phát triển sản phẩm đã được bắt đầu
- Người dùng không hiểu về kỹ thuật
- Người dùng không hiểu về quy trình phát triển
2.2 - Những vấn đề từ phía nhà phát triển:
- Ngôn từ của người dùng và nhà phát triển không khớp nhau
- Nhà phát triển cố lái cho yêu cầu của người dùng khớp với một hệ thống hay mô hình sẵn có thay vì phát triển một hệ thống theo nhu cầu của khách hàng
- Việc phân tích có thể do các lập trình viên thực hiện thay vì các nhân viên có kỹ năng phân tích để có thể hiểu được nhu cầu của khách hàng một cách đúng đắn
3 - Các giai đoạn trong phân tích yêu cầu:
3.1 - Tìm hiểu các yêu cầu của phần mềm:
- Phỏng vấn, làm việc nhóm, họp và gặp gỡ đối tác...
- Tìm kiếm các chuyên gia, người sử dụng có hiểu biết về hệ thống cần xây dựng để thu thập được nhiều ý kiến, đóng góp khác nhau
3.2 - Phân tích yêu cầu và thương lượng:
- Phân loại các yêu cầu phần mềm, sắp xếp chúng thành các nhóm có liên quan đến nhau dựa trên yêu cầu và đòi hỏi của người dùng
- Thẩm định từng yêu cầu phần mềm để xác định xem chúng có khả năng thực hiện được hay không
- Xác định các rủi ro có thể xảy ra với từng yêu cầu
- Đưa ra các đánh giá tương đối về giá thành và thời gian thực hiện của từng yêu cầu
- Giải quyết các bất đồng về yêu cầu phần mềm với người dùng trên cơ sở thảo luận và thương lượng
3.3 - Mô hình hóa yêu cầu:
a - Biểu đồ luồng dữ liệu (Data Flow Diagram - DFD) là một kỹ thuật để biểu diễn luồng thông tin vào ra của một chức năng trong hệ thống. Các thành phần biểu đồ luồng dữ liệu bao gồm:
- Các chức năng cần xử lý
- Luồng dữ liệu
- Kho dữ liệu
- Tác nhân: bao gồm tác nhân trong và tác nhân ngoài
b - Biểu đồ thực thể quan hệ. Mô hình quan hệ - thực thể ER (Entity Relationship Model) được sử dụng để thiết kế cơ sở dữ liệu ở mức khái niệm. Mô hình này được sử dụng như một công cụ để trao đổi ý tưởng giữa nhà thiết kế và người dùng cuối trong giai đoạn phân tích, bao gồm ba phần tử cơ bản:
- Kiểu thực thể
- Mối quan hệ
- Các thuộc tính
3.4 - Đặc tả yêu cầu:
a - Phân loại yêu cầu: Yêu cầu được chia thành nhiều loại:
- Yêu cầu chức năng: Mô tả một chức năng cụ thể mà phần mềm cung cấp
- Yêu cầu phi chức năng: Các ràng buộc về chất lượng, môi trường, chuẩn sử dụng, quy trình phát triển phần mềm
- Yêu cầu về sản phẩm: Gồm tốc độ, độ tin cậy, bộ nhớ, giao diện, quy trình tác nghiệp,...
- Yêu cầu về tiến trình phát triển: Gồm các chuẩn, phương pháp thiết kế, ngôn ngữ lập trình....
- Yêu cầu khác: Gồm chi phí, thời gian, bản quyền,...
b - Đặc tả yêu cầu:
- Đặc tả phi hình thức: là cách đặc tả bằng ngôn ngữ tự nhiên
- Đặc tả hình thức: là cách đặc tả bằng các ngôn ngữ đặc tả, công thức và biểu đồ
- Đặc tả chức năng: Thông thường, khi đặc tả chức năng của phần mềm, người ta sử dụng các công cụ tiêu biểu sau: Biểu đồ phân rã chức năng (Functional Decomposition Diagram – FDD), Biểu đồ luồng dữ liệu (Data Flow Diagrams-DFD), Biểu đồ trạng thái,....
- Đặc tả mô tả: Sử dụng các công cụ tiêu biểu sau: Biểu đồ thực thể liên kết (Entity Relationship Diagrams - ERD), Đặc tả logic (Logic Specifications), Đặc tả đại số (Algebraic Specifications)
c - Thẩm định yêu cầu: Sau khi các yêu cầu được xây dựng thì chúng cần được thẩm định xem đã thỏa mãn nhu cầu của khách hàng hay chưa. Mục tiêu của việc thẩm định là xác định xem yêu cầu có thỏa mãn 4 yếu tố sau không:
- Yêu cầu có thỏa mãn nhu cầu người dùng hay không?
- Yêu cầu có mâu thuẫn với nhau hay không?
- Yêu cầu có mô tả đầy đủ tất cả các chức năng và ràng buộc hay không?
- Yêu cầu có đảm bảo các khía cạnh về kỹ thuật, kinh tế và pháp lý hay không?
d - Xây dựng bản mẫu:
Đối với các hệ thống phức tạp, nhiều khi chúng ta không nắm chắc được yêu cầu của khách hàng, chúng ta cũng khó đánh giá được tính khả thi cũng như hiệu quả của hệ thống.
Một giải pháp được đưa ra là xây dựng bản mẫu. Bản mẫu vừa được dùng để phân tích yêu cầu vừa có thể tiến hóa thành sản phẩm cuối cùng. Bản mẫu phần mềm không phải nhằm vào việc thẩm định thiết kế , mà là để thẩm định yêu cầu của người sử dụng.
- オフショア開発
- エンジニア人材派遣
- ラボ開発
- ソフトウェアテスト
電話番号: (+84)2462 900 388
メール: contact@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
無料見積もりはこちらから