Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Calidad Del Sof

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

UNIVERSIDAD LAICA ELOY ALFARO DE MANABI

EXTENSIÓN CHONE
CARRERA:
TECNOLOGIA DE LA INFORMACION
MATERIA:
INGIENERIA EN SOFTWARE
ESTUDIANTE:
FIGUEROA HIDALGO ANTHONY JAHIR
MACIAS PARRAGA ANDY STEVEN
ADRIANA JAMILETH CEDEÑO ORTEGA
TEMA:
CONSULTA
DOCENTE:
ING: FABRICIO RIVADENEIRA
SEMESTRE:
QUINTO SEMESTRE
2023-2024
Calidad del Software
Para definir qué es la calidad del software, comencemos definiendo qué es calidad y
esta se define como un conjunto de características subyacentes a un producto o servicio
que cumplen determinados requisitos para satisfacer las necesidades de un cliente. Y
¿qué es un software y cuál es su papel en la sociedad actual?
El software se puede definir como un conjunto de programas intangibles encargados de
recibir órdenes, procesar datos y reflejar resultados, estas son características que hacen
que el software sea muy demandado pues facilita, complementa o automatiza tareas y
procesos que se llevan a cabo en el día a día de los diferentes hogares y organizaciones.

Teniendo claro los dos conceptos anteriores se puede inferir que calidad en el software
está en relación directa con el cumplimiento de los requerimientos formulados por el
usuario, de tal forma que si un programa no cumple con alguno de estos requerimientos,
es un software de baja calidad. Aunque el criterio de cumplimiento de los
requerimientos es un factor importante, no es el único, ya que existen condiciones
implícitas que el software debe cumplir como son eficiencia, seguridad, integridad,
consistencia, entre otras.
Por lo tanto, no podemos afirmar que un software es de alta calidad cuando cumple con
los requerimientos del usuario, si:
– No es eficiente al utilizar los recursos de la máquina (programas muy lentos).
– No es confiable; los resultados que entrega varían, no son siempre iguales al procesar
los mismos datos.
– No es fácil de utilizar.
– No es seguro.
– No es fácil hacerle mantenimiento.
¿Cómo se logra la calidad del software?
Actualmente la responsabilidad de garantizar un software de calidad no es función de
una persona; en esto están comprometidos los ingenieros de análisis y diseño, los
gestores y coordinadores del proyecto, los usuarios, los programadores y todas las
personas involucradas en el desarrollo.
La garantía de calidad en el software no es una certificación impuesta luego de haber
desarrollado un programa. Es un proceso que involucra las siguientes actividades:
1) Aplicación de metodologías de ingeniería de software para conseguir una
especificación y un diseño de alta calidad.
2) Realización de revisiones técnicas formales.
3) Prueba del software.
4) Ajuste a los estándares de la organización.
5) Control de cambios y modificaciones (mantenimiento).
6) Mediciones.
7) Registro e informes

La garantía de calidad en el software comienza realmente con la aplicación de una


metodología formal para enfrentar las etapas de análisis y diseño del sistema a construir.
Posteriormente a la creación de la especificación del sistema o prototipo, se debe
garantizar su calidad.
La actividad que nos permite garantizar la calidad es la revisión técnica formal realizada
por el grupo de control de calidad. Los objetivos de dicha revisión son:
1) Descubrir errores en la función, la lógica o la implementación de cualquier
representación del software.
2) Verificar que el software bajo revisión cumpla los requerimientos.
3) Garantizar que el software ha seguido los lineamientos predefinidos.
4) Conseguir un software que sea desarrollado en forma uniforme.
Conseguir software de calidad es algo muy complejo que implica tanto una alta
calificación de los profesionales encargados del desarrollo como de la existencia de
procesos en la empresa que realiza el software, de una gestión integral de la calidad
desde el inicio del producto hasta el mantenimiento del mismo, siempre teniendo claro
que la calidad del software NO es negociable, porque al final lo que importa es la
satisfacción de los clientes
Qué estándares existen para la calidad del software
Los siguientes son estándares ampliamente reconocidos y utilizados en la industria en
relación a la calidad del software:
1. ISO 9001. Norma para la implementación de un método o Sistema de Gestión
de la Calidad (SGC), supone la acreditación de la capacidad para satisfacer los
requisitos de calidad. Aporta así una serie de requisitos genéricos (no
circunscritos al software) y aplicables a cualquier organización.
2. ISO 10005:2018. Ofrece una guía para gestionar un plan de calidad todo el ciclo
de vida.
3. ISO IEC 25000. Supone una familia de normas también conocida como
SQuaRE (Software product Quality Requirements and Evaluation), define un
marco de referencia para la calidad del producto de software. Evalúa un software
en 8 áreas, incluyendo Adecuación funcional, fiabilidad, usabilidad, eficiencia,
compatibilidad, seguridad, mantenibilidad y portabilidad.
4. ISO 33000 Calidad de los procesos de desarrollo de software. Se enfoca en la
evaluación de la calidad de los procesos de desarrollo de software, y también se
lo conoce como SPICE (Software Process Improvement and Capability
Determination). Así, busca conocer la evolución en el tiempo sobre los procesos
de desarrollo, hacer un seguimiento respecto a la competencia y determinar
posibles estrategias de mejora.
5. CMMI (Capability Maturity Model Integration). Proporciona un marco de
referencia para evaluar y mejorar la madurez de los procesos en el desarrollo de
software. Se centra en áreas como la gestión de proyectos, de la calidad, la
configuración, o riesgos, entre otros.
6. ISO 12207 Modelos de Ciclos de Vida del Software. Proporciona un estándar
para observar los procesos de ciclo de vida del software, desde la idea inicial
hasta la retirada del software.
7. IEEE 730 – 2002 Standard for Software Quality Assurance Plans. Define
qué es el software de alta calidad y propone una elaboración de un Plan de
Aseguramiento de la calidad de software (SQAP).
8. ISO 5055 Software Quality Standards. En este caso, se trata de medir las
debilidades críticas de un software, fijándose en los criterios de seguridad,
confianza, eficiencia de rendimiento y mantenibilidad.

Tipos de pruebas funcionales para mejorar la calidad del software.


Tests unitarios
Esta es una tarea normalmente en exclusiva de los desarrolladores. Pero sin ella los bugs
se propagan como una plaga.
Los tests unitarios son la primera barrera de control contra posibles bugs. Son la base
del test driven development, si se quisiera seguir ese proceso. Agilizan el trabajo al
poder cambiar partes del código y comprobar los fallos rápidamente. Son ejemplos para
los nuevos desarrolladores que se añadan al proyecto.
Algunas ideas contrarias a los tests unitarios, se basan en que un buen diseño, o una
buena planificación, arregla muchos más problemas que los detectados por este tipo de
tests. Aunque el diseño sea fantástico, no puedes asegurar que el código funciona sin
estos tests, y dependerías de otras pruebas a más alto nivel.
Tests de integración
Los tests de integración, son los que verdaderamente comprueban que el sistema está
funcionando. Unen partes del sistema y comprueban que encajan sin problemas. Son la
base del behaviour driven development, junto con los tests funcionales. Los tests
unitarios no tienen en cuenta elementos tan importantes como los accesos, la base de
datos, o peticiones de red. No son suficiente para comprobar que el comportamiento es
correcto.

Gracias a este tipo de tests podemos encontrar bugs directamente en los pull requests,
sin necesidad de pasar regresivos relacionados con esa parte del producto. Hacen que el
sistema sea fiable, pudiendo confiar en las partes protegidas por estos tests, ya que
tendrán el comportamiento deseado al ser llamados por otros componentes.
Adicionalmente, protegen a los grupos de desarrolladores, para que el código de otros
componentes no les sorprenda de formas desagradables.

Al utilizar un lenguaje como gherkin, para escribir este tipo de pruebas, se consigue
además una documentación extra sobre el funcionamiento del sistema. Pudiendo hallar
rápidamente, qué está cubierto por los tests, y qué no.

Tests funcionales
Son un paso más allá de los tests de integración, y tratan de probar el sistema como lo
haría un usuario. Aquí entra especialmente la automatización de interfaces gráficas. Son
las pruebas funcionales que más mantenimiento necesitan, y las más lentas.
Sin embargo, los beneficios son similares a los anteriores tipos de pruebas. Protegen
contra interfaces fallidas, y quitan trabajo a la hora de hacer pruebas manuales. Son
especialmente útiles al configurarlos y prepararlos, para ser ejecutados en todos los
entornos en los que se distribuye o se ejecuta la aplicación. Por ejemplo, en los
diferentes navegadores soportados, si la interfaz a probar fuera un entorno web.
Sin este tipo de tests estamos condenados a probar manualmente las interfaces,
pudiendo dejarnos en el tintero posibles combinaciones. Suelen ser los mejores para las
pequeñas

¿Qué son los atributos de calidad en la arquitectura de software?

Como lo dijimos anteriormente, los atributos de calidad nos ayudan a garantizar que un
activo digital va a tener un funcionamiento estable, que cumple las especificaciones
técnicas necesarias y que, además, es capaz de satisfacer las necesidades de los
usuarios.

Existen diferentes modelos de calidad que tienen en cuenta diferentes criterios y


parámetros. Continuación hablaremos de los atributos de calidad que se miden en el
modelo ISO/IEC 25010

1. Funcionalidad

Este atributo se ve desde el punto de vista de los usuarios finales. Hace referencia a la
capacidad del software para ofrecer una solución o satisfacer necesidades explícitas e
implícitas de las personas que lo van a utilizar.

Este atributo de calidad tiene tres subdivisiones: functional completeness, functional


correctness y Functional appropriateness.

Estas hacen referencia a la capacidad de software para realizar la totalidad de las tareas
necesarias para que el usuario cumpla su objetivo, ofrecer resultados precisos y el grado
en que se cumplen los objetivos que han sido especificado para satisfacer al usuario.

2. Fiabilidad

Hablamos de software fiable cuando es capaz de seguir realizando sus funciones en


condiciones específicas y durante un tiempo determinado. Este atributo mide
la disponibilidad, la tolerancia a fallos y la capacidad del sistema para recuperar
datos y restablecer su funcionamiento en caso de presentarse un fallo. También tiene
en cuenta su grado de madurez, es decir, su capacidad de operar como se espera que lo
haga durante la operación normal.
3. Eficiencia
Esta característica representa el rendimiento en relación a la cantidad de recursos
utilizados.
Aquí se tienen en cuenta los tiempos de respuesta y procesamiento, las tasas de
rendimiento, etc. También se mide la cantidad de recursos utilizados para que el
software cumpla sus funciones y su capacidad máxima en diferentes
parámetros.
4. Compatibilidad
Es la capacidad de un activo digital para intercambiar información con otros
sistemas o para cumplir sus funciones al tiempo que comparte el mismo entorno
de hardware o software.

Aquí se mide su capacidad de coexistir eficientemente y sin impactos


perjudiciales para otros productos cuando utiliza recursos comunes. También se
tiene en cuenta la interoperabilidad, es decir, la capacidad de utilizar
información que se ha intercambiado con otros sistemas.
5. .Usabilidad

Su nombre lo dice todo: es la capacidad de un activo digital para ser utilizado


por usuarios con el fin de alcanzar un objetivo determinado. La usabilidad
también se mide en términos de efectividad, eficiencia y satisfacción.
Si los usuarios pueden reconocer que un producto es adecuado para sus
necesidades y si además es fácil operarlo y aprender a hacerlo estamos ante un
producto usable.
En la usabilidad también se mide el grado en que el sistema protege a los
usuarios de cometer errores, la estética de la interfaz y la accesibilidad.
6. Seguridad
Es la capacidad de proteger la información y los datos mientras se permite cierto
grado de acceso para que personas y sistemas puedan utilizar esa información según el
nivel apropiado de autorización. Tiene varios componentes. La confidencialidad, es
decir, que la información solo sea accesible para quienes tengan autorización,
la integralidad, que hace referencia la capacidad de impedir el acceso no autorizado y
la autenticidad, que se mide por el grado en que se puede demostrar la identidad de un
sujeto o recurso que reclama acceso. También se mide la capacidad de rastrear las
acciones de las entidades que interactúan con el activo digital y de “recordar” las
acciones o eventos que se realizan.

7. Mantenibilidad
Un activo digital debe poder modificarse para ser corregido, mejorado o para
adaptarlo a los cambios en el entorno.
En este atributo de calidad se tiene en cuenta la modularidad, es decir, la
capacidad que se tiene de cambiar un componente con el menor impacto posible
para los demás.
También se mide la capacidad del software para construir otros
activos (reusabilidad), la posibilidad de evaluar su impacto y el de cada una de
sus partes (analizabilidad) y la modificabilidad, que se refiere a la posibilidad
de ser modificado sin introducir defectos o desmejorar la calidad.
En este atributo de calidad también entra la testabilidad, que es la capacidad
para establecer criterios de prueba para determinar si está cumpliendo con
determinados criterios.
8. Portabilidad
Por último, tenemos el atributo de calidad que mide la capacidad de un activo
digital para pasar de un entorno operativo o de uso a otro.

Cuando hablamos de portabilidad debemos tener en cuenta la adaptabilidad,


que es la capacidad de encajar de manera efectiva y eficiente para distintos
entornos, la instabilidad (capacidad de instalarse y/o desinstalarse) y
la reemplazabilidad (la posibilidad de ser reemplazado por otro producto)

¿Por qué son relevantes los atributos de calidad de software?


Construir un sistema es una tarea compleja, debido a la cantidad de elementos que
intervienen en su totalidad. Cada atributo repercute en el funcionamiento e impacto del
producto final, de ahí la importancia de organizarlos estratégicamente.
La arquitectura de software se basa en estos principios para medir los sistemas en las
distintas etapas de desarrollo, desde la planeación hasta la evaluación.
En la actualidad las empresas requieren de métricas para analizar la arquitectura de sus
productos en función de los parámetros marcados por la industria a la que pertenecen.
Con esta información las organizaciones pueden detectar las fortalezas y debilidades de
sus productos, encaminadas a la búsqueda de alternativas para el mejoramiento de la
experiencia de los usuarios (UX).
La reducción de riesgos, costos y tiempo son algunos de los beneficios que podrás
conseguir al evaluar los diferentes atributos de calidad de software.
Conclusiones
Los atributos de calidad son una brújula que nos permite orientar procesos de desarrollo
para garantizar su calidad y un impacto positivo en en la vida de los usuarios finales.

En resumen, podríamos decir que cada uno de estos atributos de calidad buscan un
objetivo concreto:
 Fiabilidad: Hacer que el software funcione sin fallos y de manera consistente.
Escalabilidad: Lograr que el software maneje sin fricciones aumentos en la carga
de trabajo o el volumen de datos.
 Mantenibilidad: Conseguir que el software se pueda mantener y actualizar el
software fácilmente.
 Rendimiento: Construir un software que sea veloz y eficiente.
Seguridad: Garantizar que el software es capaz de proteger la integridad de los
datos y evitar accesos no autorizados.
 Usabilidad: Ofrecer una experiencia fácil de utilizar y navegar.
 Portabilidad: Lograr que el software pueda ejecutarse en diferentes plataformas
y sistemas operativos.
 Interoperabilidad: Construir el software de manera que pueda interactuar y
trabajar con otros sistemas y aplicaciones.

También podría gustarte