¿Cuál es la diferencia entre confiabilidad y confiabilidad de un software?

¡Hola!

La fiabilidad significa que el programa no se bloquea.

La confiabilidad significa que el programa siempre da resultados correctos.

Entonces … la gran pregunta es: ¿por qué alguien usaría un programa que no siempre da un resultado correcto? La razón de esto es que hay una diferencia entre un resultado incorrecto e incorrecto. Incorrecto significa que no es correcto, pero no necesariamente incorrecto. Piense, por ejemplo, en un GPS: le brinda una ubicación aproximada, nunca exacta. Sin embargo, su ubicación no es incorrecta, simplemente aproximada, lo que la hace incorrecta 🙂

De hecho, el GPS es un ejemplo perfecto de esto porque le permite ver todas las complejidades:

  • No eres un punto: un ser humano es enorme, simplemente no hay forma de reducirlo a un punto, solo para aproximarse a uno.
  • Las matemáticas involucradas son increíblemente difíciles de calcular: probablemente ya sepa que los números de coma flotante (es decir, decimales) son increíblemente complicados para las computadoras (y para los humanos, pero en menor grado).
  • Incluso los relojes atómicos pierden un segundo de vez en cuando y tienen que ajustarse: créalo o no, el sistema GPS usa relojes atómicos para mantenerse en la posición correcta, esto significa que se ven afectados cuando (no si …) uno de esos está fuera de banda.

Estas son las principales complejidades del sistema GPS, por eso no se puede decir que la ubicación del GPS sea correcta. Pero no está mal, ya que lo identificará en el área correcta del mundo y con la precisión suficiente para permitirle ir a lugares. Nadie cuestiona los resultados del GPS, pero no es confiable though Sin embargo, es confiable.

Al igual que con algunos otros respondedores, nunca he visto “confiabilidad” utilizada como un término para la Calidad de Servicio (QoS). He visto la “corrección” utilizada.

No importa mucho, al menos DENTRO de una empresa. El consejo que aprendí cuando se trata de definir los requisitos de QoS para su sistema es comenzar primero eligiendo y definiendo los términos que tengan sentido para usted y las partes interesadas. Si por alguna razón sus componentes requieren “confiabilidad” además de “confiabilidad”, está bien, siempre que pueda definir requisitos que claramente pertenezcan a uno u otro. También podría tener requisitos de “grokkiness” y “snarkability”, siempre que su empresa comprenda lo que significan y pueda definir requisitos claros para ellos.

Si tuviera que llegar a una distinción entre confiabilidad y confiabilidad, diría que la confiabilidad me parece más un término relacionado con los sistemas, mientras que la confiabilidad es desde la perspectiva del usuario. La confiabilidad puede rastrear el tiempo medio entre fallas en el servidor, mientras que la confiabilidad puede ser algo que le interese al usuario: siempre tener un hilo de trabajo disponible para ese usuario en particular, o siempre ejecutándose en segundo plano listo para responder (¿Alexa?) O algo por el estilo . Dada la naturaleza más “humana” del término confiable, tal vez comenzará a tener más significado en el mundo de la IA. Pero eso es bastante exagerado.

Esos dos términos no tienen definiciones precisas en relación con el software. Aquí está mi interpretación:

  • Todo el software es “confiable” por su naturaleza. “Confiable” significa que puede confiar en que haga algo que se supone que debe hacer.

    Por ejemplo, un perro que está entrenado para traer el periódico de la mañana puede no ser completamente confiable. Si el perro no tiene ganas de recibir el periódico esa mañana, puede o no obtenerlo para usted.

    No creo que ese término sea realmente aplicable al software: el software, por su propia naturaleza, es confiable. Si lo programa para hacer algo, probablemente lo hará de manera confiable … no va a decidir no hacerlo solo porque no tiene ganas de hacerlo ese día en particular.

  • La “confiabilidad” es diferente: la confiabilidad indica qué porcentaje de tiempo el software realiza lo que se supone que debe hacer sin error.

Chuck Cobb
Autor de “La guía del administrador de proyectos para dominar Agile”
Echa un vistazo: Capacitación ágil de gestión de proyectos en línea para gerentes de proyectos

En todos mis más de 20 años como programador profesional, nunca he usado, ni he visto usar, el término “confiable” en lo que se refiere al software.

En general, el software confiable es un software en el que puede confiar para que sea correcto, esté mayormente libre de defectos, no se bloquee y funcione como se espera. Un software confiable hace felices a los usuarios finales.

La confiabilidad equivale a la funcionalidad, es decir, la corrección del algoritmo.

La confiabilidad equivale a trabajar sin fallas, es decir, la implementación del algoritmo.

More Interesting

¿Es el lenguaje Python una buena herramienta para aprender algoritmos, estructuras de datos e ingeniería de software?

¿Cuál es el mejor marco SDLC?

¿Ha fallado Java a la altura de sus esperanzas desde que apareció en escena a principios de los 90?

¿Es culpa del software la responsabilidad de un desarrollador? ¿Por qué?

Ahora está disponible un software gratuito de código abierto similar al componente principal de su software, ¿qué debe hacer?

Quiero disfrutar de ser ingeniero de software, pero no me gusta estar sentado en mi escritorio todo el día. Me gusta levantarme y hablar con la gente. ¿Qué tengo que hacer?

¿Los datos se están volviendo más valiosos que un software?

¿Cuáles son algunos mini proyectos en big data que podría hacer con un equipo de dos o tres personas en un mes o dos? Soy un estudiante de tercer año de ingeniería informática de la India.

Dentro del desarrollo de software, ¿con qué conjunto de tecnologías es más fácil trabajar? ¿Por qué?

¿Cuál es la razón detrás de enseñar dibujo de ingeniería a un estudiante de informática?

¿Qué patrón de diseño (MVC / MVVM) utiliza en el desarrollo de iOS?

¿Cuáles son tus manías de ingeniería de software?

¿Cómo comenzar con la programación independiente? Soy un graduado de secundaria, programador de Android de la India. He publicado un par de geniales aplicaciones de Android en Play Store. ¿Cuánto puedo ganar con esto? Lo que hace un buen profesional independiente

¿Debo trabajar en Tata Consultancy Services o Amdocs?

¿Cuáles son las métricas por las que mide su proceso de desarrollo ágil?