Tin tức và phân tích của tất cả các thiết bị di động

Chất lượng của phần mềm: làm thế nào để bạn xác định các yêu cầu?

Khách hàng của bạn muốn có một ứng dụng phần mềm mới và bạn đã ghi lại tất cả các yêu cầu về chức năng. Bạn biết ứng dụng nên làm gì. Nhưng bạn có biết ứng dụng cần phải chính xác đến mức nào và khách hàng của bạn mong đợi điều gì về khả năng tìm hiểu và cài đặt không? Các yêu cầu phi chức năng cũng phải được ghi lại, nếu không sẽ phát sinh hiểu lầm. Một hướng dẫn hữu ích là tiêu chuẩn ISO 9126 cho chất lượng phần mềm.

Khi thảo luận với khách hàng của bạn, hầu hết sự chú ý có thể sẽ tập trung vào các yêu cầu chức năng; đó là cách mọi chuyện thường diễn ra. Nhưng khách hàng cũng có những kỳ vọng nhất định ở các lĩnh vực khác. Tốt nhất bạn nên hỏi rõ ràng về điều này, nếu không đó sẽ chỉ là những mong muốn không thành lời. Nếu sau đó ứng dụng không đáp ứng được những mong đợi tiềm ẩn của khách hàng thì một cuộc chiến sẽ xảy ra. Cả hai bên đều được hưởng lợi từ các yêu cầu rõ ràng, rõ ràng và có thể đo lường được.

ISO (Tổ chức Tiêu chuẩn hóa Quốc tế) là một tổ chức phi chính phủ hợp nhất các viện tiêu chuẩn hóa từ 158 quốc gia. Ban thư ký trung ương được đặt tại Geneva ở Thụy Sĩ. Chuẩn mực ISO 9126 mô tả các thuộc tính chất lượng chung mà các nhà sản xuất phần mềm nên ghi nhớ. Tiêu chuẩn không cho biết phần mềm phải đáp ứng mức độ nào đối với các thuộc tính khác nhau đó, nhưng nó tạo thành một danh sách kiểm tra hữu ích. Cũng không có giấy chứng nhận cho tiêu chuẩn này.

Tiêu chuẩn bao gồm bốn phần: mô hình chất lượng, số liệu bên ngoài, số liệu nội bộ và số liệu chất lượng sử dụng. Phần 1 của tiêu chuẩn này (ISO 9126-1) mô tả một mô hình chất lượng có thể áp dụng cho các sản phẩm phần mềm. Mô hình chất lượng này xác định một số phẩm chất hoặc thuộc tính chất lượng, được chia thành sáu loại.

– chức năng (chức năng)
– độ tin cậy
– khả năng sử dụng
– hiệu quả (hiệu quả)
– khả năng bảo trì
– tính di động
Chúng tôi xem xét chúng từng cái một.

CHỨC NĂNG
Ứng dụng sẽ làm mọi thứ người dùng cần. Nhưng mọi thứ là gì? Ứng dụng nên có những tính năng gì? Chính xác thì nó nên hoạt động như thế nào?

Người dùng tương lai mà bạn đang nói chuyện dựa trên trải nghiệm cá nhân của họ với phần mềm. Ví dụ: nếu anh ấy làm việc với một ứng dụng phần mềm xác thực mọi số VAT được nhập, anh ấy cho rằng đây là một phần tiêu chuẩn của ‘trí thông minh’ của máy tính và anh ấy có thể không nêu rõ ràng đó là yêu cầu đối với ứng dụng mới.

Các câu hỏi khác. Ứng dụng nên chính xác đến mức nào? Nó có nên tương tác với các ứng dụng khác không? Điều gì cần thiết cho điều đó? Có những thỏa thuận nhất định từ các công ước, tiêu chuẩn, quy định, luật pháp, v.v. phải được tuân thủ không?

Người không được ủy quyền không được phép sử dụng phần mềm hoặc dữ liệu – các yêu cầu bảo mật là gì?

ĐỘ TIN CẬY
Ứng dụng sẽ không bao giờ thất bại. Ừ thì có, nhưng không lâu đâu. Nó có thể ngừng sử dụng trong bao lâu trước khi khách hàng của bạn gặp bất tiện?

Nếu là một ứng dụng thanh toán, nó có thể không phải là một vở kịch nếu nó không hoạt động trong hai ngày. Tuy nhiên, nếu nó liên quan đến một ứng dụng nằm trong chuỗi sản xuất báo, việc ngừng hoạt động chưa đầy một giờ có thể có nghĩa là thời hạn của máy in không được đáp ứng – một thảm họa.

Điều gì sẽ xảy ra sau khi khởi động lại? Dữ liệu có cần được phục hồi không? Nếu ai đó mắc lỗi, phần mềm sẽ bị lỗi. Hay điều đó không được phép? Những lỗi nào cần được bắt? Điều gì sẽ xảy ra nếu một phần của phần mềm bị lỗi?

KHẢ NĂNG SỬ DỤNG
Phần mềm phải thân thiện với người dùng. Thân thiện với người dùng như thế nào? Người dùng mong đợi điều gì ở phần mềm này về mặt đó?

Một số người dùng gõ rất nhiều dữ liệu. Họ ghét phải buông bàn phím và buộc phải sử dụng chuột. Trong trường hợp đó, tốt nhất là cung cấp một lệnh thay thế trong giao diện người dùng cho mỗi lệnh chuột được đưa ra bằng bàn phím.

Phần mềm phải dễ học. Nhưng có gì dễ dàng? Không có hướng dẫn sử dụng? Có sách hướng dẫn nhưng không có khóa học? Tốt nhất là chỉ định điều này. Phần mềm này cũng được xây dựng trên cơ sở các khái niệm nhất định. Người dùng trong tương lai phải có khả năng hiểu được nó. Làm thế nào điều đó nên được thực hiện?

Người dùng phải có khả năng xử lý ứng dụng một cách dễ dàng. Nếu anh ấy hoặc cô ấy biết mình muốn gì, anh ấy sẽ có thể nhanh chóng đưa ý tưởng của mình vào thực tế. Làm thế nào trơn tru?

HIỆU QUẢ
Phần mềm phải hiệu quả. Nhưng hiệu quả như thế nào? Tùy thuộc vào môi trường, các yêu cầu có thể khác nhau. Chương trình nên phản hồi đầu vào của người dùng nhanh như thế nào? Quá trình xử lý hàng loạt sẽ mất bao lâu? Thế nào là tốt, thế nào là chấp nhận được, thế nào là xấu? Nếu khách hàng không nói rõ thì bạn phải đoán.

Nếu người dùng ứng dụng có khách hàng trực tuyến hoặc trước mặt họ trong cửa hàng, cả khách hàng và nhân viên đều mất thời gian chờ phản hồi từ ứng dụng. Nếu ứng dụng hoạt động với các dịch vụ, tốt nhất nên thống nhất về hiệu suất mong đợi theo cách có thể đo lường được. Bởi vì kiến ​​trúc phải được điều chỉnh theo yêu cầu, điều này có tác động đến chi phí của dự án.

Khách hàng của bạn mong đợi điều gì về hành vi tài nguyên? Cơ sở dữ liệu, bộ nhớ, đĩa có khả năng xử lý những gì?

KHẢ NĂNG BẢO TRÌ
Khách hàng của bạn có kế hoạch sử dụng phần mềm trong thời gian dài. Các yêu cầu sẽ thay đổi, vì vậy ứng dụng phải có khả năng thay đổi. Các yêu cầu về khả năng bảo trì là gì? Nếu có vấn đề xảy ra trong tương lai, lập trình viên hiện tại có thể tìm ra vị trí xảy ra lỗi trong ứng dụng; phải có khả năng gỡ lỗi, phải có thông báo lỗi. Một thay đổi nhỏ có thể chỉ cần một nỗ lực nhỏ.

Nếu một sự thay đổi tốn quá nhiều thời gian và tiền bạc thì nỗ lực đó không còn xứng đáng nữa. Và việc thử nghiệm cũng phải có thể thực hiện được. Nếu chương trình chưa được kiểm tra, nó sẽ không hoạt động.

Ví dụ rõ ràng nhất trong lĩnh vực này là vấn đề của năm 2000. Các lập trình viên tìm kiếm các trường ngày tháng trong chương trình để sửa đổi chúng. Nếu không tìm thấy chúng, họ không thể thay đổi chương trình và toàn bộ ứng dụng sẽ bị loại bỏ vì không thể bảo trì được.

Vấn đề này có thể tránh được bằng cách sử dụng các tiêu chuẩn lập trình, các quy tắc về cấu trúc chương trình và tên của các biến.

KHẢ NĂNG DI ĐỘNG / DI ĐỘNG
Có lẽ ứng dụng sẽ kết thúc trên một nền tảng khác trong tương lai. Điều đó là có thể. Hay không? Nếu người của bạn phát triển bằng Java, bạn hy vọng có thể chuyển ứng dụng đã hoàn thiện sang môi trường khác mà không cần nỗ lực nhiều. Máy ảo Java có nhiệm vụ xử lý những khác biệt. Tuy nhiên, điều này không phải lúc nào cũng đơn giản.

Cần bao nhiêu công sức để cài đặt phần mềm trong một môi trường cụ thể? Có yêu cầu nghiêm ngặt trong lĩnh vực đó không? Có tiêu chuẩn, quy ước hoặc thỏa thuận nào liên quan đến tính di động của phần mềm phải được tuân thủ không? Phần mềm của bạn có thể thay thế được ở mức độ nào? Giao diện ứng dụng của bạn có thể cần phải đáp ứng các tiêu chuẩn nhất định. Khả năng thích ứng của phần mềm của bạn là gì? Khách hàng của bạn có mong đợi một ứng dụng có thể được tùy chỉnh bằng cách cài đặt các thông số không? Khách hàng của bạn có muốn ứng dụng được sửa đổi bởi các lập trình viên của họ không?

MÔI TRƯỜNG KHÁC, YÊU CẦU KHÁC
Những khách hàng khác nhau có những kỳ vọng khác nhau; các lĩnh vực khác nhau có tiêu chuẩn khác nhau. Vài ví dụ:

– Độ chính xác và ứng xử theo thời gian mang tính quyết định đối với phần mềm tính toán và mô phỏng. Đây cũng là trường hợp của nhiều máy
giờ.

– Trong các ứng dụng nhúng dành cho người tiêu dùng, các khía cạnh như khả năng phục hồi và hiệu quả cũng rất quan trọng bên cạnh khả năng sử dụng. Bởi vì những sản phẩm này thường phải sử dụng sức mạnh tính toán hạn chế và năng lượng hạn chế nên hành vi liên quan đến tài nguyên được sử dụng sẽ nhận được nhiều sự chú ý hơn.

– Các nhà phát triển thiết bị đầu cuối ngân hàng sẽ chú ý nhiều đến các khía cạnh về độ tin cậy và khả năng sử dụng. Luật pháp quốc gia cũng có thể yêu cầu tuân thủ các hướng dẫn, tiêu chuẩn và luật nhất định.

– Độ chính xác có tầm quan trọng lớn đối với các hệ thống quan trọng trong kinh doanh, nhưng tính ổn định và hành vi thời gian cũng vậy. Phần mềm được sử dụng trong trung tâm cuộc gọi phải cho phép người vận hành xử lý càng nhiều cuộc gọi càng tốt. Một lỗi như sai thứ tự tab trong giao diện người dùng có thể gây mất thời gian và tốn kém. Đó là lý do tại sao khả năng sử dụng cũng là một yếu tố quan trọng ở đây.

– Ứng dụng B2B cung cấp một hoặc nhiều giao diện mà các ứng dụng bên ngoài có thể tương tác với ứng dụng B2B. Bởi vì những ứng dụng đó được xây dựng bởi các nhà cung cấp khác nhau nên việc tuân thủ các tiêu chuẩn giao diện, khả năng tương tác và khả năng chống lỗi sẽ đóng một vai trò quan trọng.

Nếu muốn có một khách hàng hài lòng khi kết thúc quá trình phát triển, tốt nhất bạn nên quan tâm đầy đủ đến tất cả các yêu cầu, không chỉ các yêu cầu chức năng mà còn cả các yêu cầu phi chức năng. Cần phải xác định khía cạnh chất lượng nào là quan trọng đối với ứng dụng phần mềm của bạn và yêu cầu của khách hàng nghiêm ngặt đến mức nào. Với thời gian phát triển và ý nghĩa về giá, đừng bỏ qua điều này.

Christiane Vandepitte là một nhà tư vấn độc lập.
Bài viết này phần lớn dựa vào các bài viết xuất hiện trên Agoria Online và trên WTCM
Kỹ thuật.