Investigación 2
Investigación 2
Investigación 2
Posgrado
6to cuatrimestre 2024
Maestría en Sistemas Computacionales
Tema:
CALIDAD EN EL DESARROLLO DE SOFTWARE.
P á g i n a 1 | 30
Nombre: Isaac Carbajal Méndez
P á g i n a 2 | 30
Nombre: Isaac Carbajal Méndez
características implícitas que se espera de todo software” , si cumple los aspectos señalados se puede
afirmar que se posee un software de calidad. Teniendo en cuenta esto, se puede afirmar:
• Los requisitos del software son la base de las medidas de la calidad.
• Los estándares especificados definen un conjunto de criterios de desarrollo que guían la forma en que
se aplica la ingeniería del software, Si no se distinguen esos criterios no habrá calidad del software.
• Existe un conjunto de requisitos implícitos que a menudo no se mencionan, si no se alcanzan estos
requerimientos podría la calidad quedar en entredicho. Los requisitos son llamados por los usuarios
finales llaman elementos obvios, los cuales el diseñador no debe dejar pasar sin explicación.
Para estar seguros de las anteriores afirmaciones se tienen en cuenta factores que se pueden medir
estos son llamados factores de calidad. Éstos se agrupan en dos bloques así:
• Factores que pueden ser medidos directamente (errores, líneas, tiempo, …)
• Factores que sólo pueden ser medidos indirectamente (facilidad de uso, mantenimiento, …)
Para ilustrar el concepto de calidad de manera más profunda, es necesario considerar algunos aspectos
fundamentales que caracterizan al software de calidad como son: solidez, exactitud, completitud,
mantenibilidad, reutilizabilidad, claridad en la documentación, entre otros que serán descritos a
continuación.
Confiabilidad. Este término es necesario sea separado en varios elementos que permiten darle al
software el matiz de fiable. Sus componente son: Completitud, consistencia y precisión, solidez,
simplicidad, calidad en los procesos de desarrollo y seguridad y Verificabilidad, estas dos últimas que se
determinan con el sistema en uso.
Usabilidad. Si bien es cierto que la confiabilidad es un factor muy importante en la calidad del software
también lo es el hecho de que es necesario considerar otros factores como los que se mencionan en esta
sección puesto que de nada sirve un software que funcione correcta y confiablemente si el usuario
prefiere no utilizarlo. Estos son: exactitud de los procesos, claridad y exactitud de la documentación,
completitud, eficiencia y verificabilidad del software y claridad y amigabilidad de la interfaz.
Mantenibilidad. Este aspecto de calidad involucra los elementos que simplifican la labor de prevención,
corrección o ampliación del código del programa. Retomar un código escrito meses antes es un trabajo
dispendioso y agobiante, en especial cuando las aplicaciones no cuentan con la característica a la cual
aquí se hace referencia. Se pueden considerar como atributos de este aspecto: exactitud y claridad en
la documentación, modularidad (acoplamiento), facilidad de lectura y simplicidad.
Portabilidad. Es la capacidad que posee un sistema de información que le permite funcionar en
diferentes plataformas ya sean hardware o de software.
Otro autor que contribuye con el aspecto de las medidas en el software es McCall, él y sus colegas
proponen tres factores de calidad y sus partes así:
P á g i n a 3 | 30
Nombre: Isaac Carbajal Méndez
Factor 1. Características operativas, relacionadas con las operaciones del producto. Son: corrección,
fiabilidad, eficiencia, integridad y facilidad de uso.
Factor 2. Capacidad de soportar cambios, relacionado con la revisión del producto. Facilidad de
mantenimiento, flexibilidad y facilidad de prueba.
Factor 3. Adaptabilidad, relacionado con la transición del producto. Portabilidad, reusabilidad –
reutilizabilidad e interoperabilidad.
Como se aprecia en la anteriores palabras son muchas las características a tenerse en cuenta al momento
de desarrollar software, estos deben aparecer como políticas o lineamientos en los procesos de
desarrollo al interior de pos proyectos o empresas.
P á g i n a 4 | 30
Nombre: Isaac Carbajal Méndez
P á g i n a 5 | 30
Nombre: Isaac Carbajal Méndez
Dicho de otro modo: todos aquellos programas que no tienen que ver con el funcionamiento
del computador, sino que instalamos en él para darle funciones determinadas como herramienta de
trabajo (hoja de cálculo, procesador de palabras, programas de diseño gráfico, etc.), de ocio
(videojuegos, reproductores de audio o video, etc.) o de información (enciclopedias digitales, navegador
de Internet, etc.), entre otras.
El software de aplicación normalmente es diseñado y comercializado aparte del software de sistema que
viene incorporado de fábrica al computador, y su selección e instalación en el sistema es a total libre
albedrío del usuario. No es, sin embargo, imposible que muchos programas de este tipo vengan
preinstalados –debido a convenios empresariales y promociones específicas- en el disco rígido de un
computador recién comprado.
Actualmente la mejor empresa de software a medida es Develoop.net. Es una empresa que lleva desde
1997 creando software y soluciones informáticas para empresas. Esta opción es perfecta para las
empresas que tienen claro cómo funciona la empresa y quieren que siga funcionando.
Software empresarial genérico: es un tipo de programa que ayuda a cubrir muchas de las necesidades
de las empresas. El problema viene dado en que en muchas ocasiones el programa tiene muchas
funcionalidades y en ocasiones solo se usan el 15% de ellas. Eso significa que buena parte de las
funciones se desaprovechan.
Viendo las dos opciones que tenemos actualmente en el mercado, lo primero que se nos viene a la
cabeza es que la mejor opción es optar por el software a medida. Pero cuando analizamos las dos
opciones nos damos cuenta de que esa opción no siempre es la mejor, sobre todo cuando la empresa es
joven y no cuenta con demasiado capital para invertir. Con esa información podemos concluir que al
principio puede ser mejor una opción genérica y luego cuando la empresa comienza a tener liquidez y
profesionalidad dar el paso a la alternativa a medida.
Comentado esto, pasamos a analizar las diferentes opciones más a fondo
Ventajas del software empresarial genérico
• Uno de los puntos fuertes de este tipo de programa es que se puede implantar de manera
inmediata. Eso significa que la empresa puede comenzar a disfrutar de sus beneficios
rápidamente.
• Es un tipo de programa que es usado por muchas empresas y clientes, lo que significa que
muchos de los errores ya han sido resueltos. Como puedes imaginar, te ayudará a conseguir
evitar problemas.
• Actualmente estos programas suelen venir acompañados con un gran número de herramientas.
Es verdad que muchas no se usan, pero otras sí que pueden ser realmente beneficiosas.
• Como los programas son genéricos, eso significa que actualmente son más baratos. Eso significa
que son muy interesantes para las empresas que están en fase inicial. También son una buena
opción para los que no tienen solvencia económica por diferentes motivos.
Desventajas del software empresarial genérico
• No todo es positivo con este tipo de programas y para demostrarlo vamos a mostrar algunas
desventajas que tienen estos programas.
• Normalmente suelen ser de escritorio, es decir, son para servidores centrales y eso puede que
no encaje bien con las necesidades de muchas empresas.
• Es importante adaptar la forma de trabajar al programa, lo cual puede llegar a provocar
problemas importantes en algunos casos. No todos los trabajadores aprenden a adaptarse con
facilidad.
• A pesar de que tiene muchas funciones, no todas terminan de adaptarse a las necesidades de la
empresa.
P á g i n a 8 | 30
Nombre: Isaac Carbajal Méndez
• El precio es más barato, pero analizando la calidad precio no termina de ser la mejor. Por ese
motivo, las empresas en cuanto tienen la oportunidad se cambian al programa a medida para
conseguir algo adaptado a sus necesidades.
Ventajas del software empresarial a medida
✓ Como nos indican los expertos de Develoop, este tipo de programas cuentan con muchas
ventajas que hay que tener en cuenta a la hora de elegir una opción.
✓ Uno de los principales beneficios de este tipo de programas es que el mismo se diseña
especialmente para la empresa para la cual va dirigido. Para que te hagas a la idea, este tipo de
programa ayuda a ganar eficiencia, lo que supone que la empresa funcionará mucho mejor.
✓ El software cuenta con un sistema que permite evolucionar con la empresa. Gracias a esa
evolución todo se presenta mucho más fácil.
✓ Gracias a que el programa se adapta muy bien a las necesidades de la empresa, podemos
certificar que la calidad precio es la mejor opción en estos momentos. No hay duda de que
invertir en la personalización es la mejor opción.
Sin lugar a dudas, se presenta como un programa que se adapta realmente bien a las empresas y
negocios que tienen experiencia y saben bien qué es lo que necesitan. A excepción de las empresas que
están en fase inicial, este software se presenta como la mejor alternativa.
Desventajas del software empresarial genérico
✓ Para que el programa se pueda adaptar a las necesidades reales de la empresa es importante
contratar los servicios de una empresa profesional como Develoop. Los mismos deben hacer un
análisis y definición del negocio para poder desarrollar el programa adecuado.
✓ Como hemos comentado, la inversión inicial es un poco más elevada. Es normal, es un programa
que se desarrolla a medida. Al necesitar más esfuerzo, es normal que sea más caro que el
genérico. Pero como hemos podido comprobar, la diferencia de precio realmente interesa.
✓ Para que todo funcione correctamente, es necesario migrar los datos de los programas antiguos
al moderno. Puede parecer algo complicado, pero con la ayuda de los expertos será más fácil de
lo que parece.
Clasificación
¿Por dónde podemos empezar a definir qué tipos de software podemos encontrar? En su uso más
extendido, el software comprende todos los programas y aplicaciones necesarias para ejecutar todos los
procesos del sistema informático. Se incluyen, por tanto, aplicaciones de inicio o distintos servicios sin
los que no podrían realizar su labor no solo los ordenadores, sino también consolas, móviles u otro tipo
de plataformas.
Existen diferentes tipos de software, que varían en función de sus especificaciones técnicas y funciones.
Veamos cuales son.
Tipos de software por funcionalidad
P á g i n a 9 | 30
Nombre: Isaac Carbajal Méndez
Los tipos de software que existen se pueden clasificar en tres grandes grupos de acuerdo con las
funciones que habilitan. De esta forma, hablamos de software de aplicación (dentro del cual
encontramos, a su vez, el software de gestión), software de programación y software de sistema.
Software de aplicación
Dentro de este tipo de software podemos encontrar diferentes herramientas que incluyen desde bases
de cálculo, programas de empresa o de diseño. Su ámbito es muy amplio y abarca ofimática y editores
de texto, programas que permiten realizar diversas funciones enfocadas hacía el ámbito recreativo o
laboral. Otro ejemplo de ello lo constituyen programas de negocio específicos a distintos sectores, como
pueden ser los tipos de software para hoteles.
Software de gestión
Los diferentes tipos de software de gestión se incluirían dentro del denominado software de aplicación,
como herramientas que facilitan todos los aspectos relacionados con la gestión integral de la empresa:
desde contabilidad o la facturación a la gestión de la nómina o de los impuestos. Destacamos algunos
ejemplos:
Los programas de gestión contable permiten el seguimiento contable de la propia empresa o para un
cliente de forma ágil y eficiente. Los más avanzados permiten integrar la contabilidad con la fiscalidad y
presentar de forma directa a la adminstración los modelos fiscales.
Además de facturar de forma ágil e intuitiva, el software de facturación contribuye a la gestión global
del negocio. Además de un ahorro de tiempo, evitan errores manuales y permiten automatizar el
proceso de facturación y mejorar la productividad.
El software de gestión de nóminas son soluciones de gestión laboral y RRHH que pueden utilizar desde
Despachos Profesionales a empresas. Entre otras funciones, permiten desde la gestión de nóminas con
procesos masivos, hasta la gestión de los empleados y documentación de RRHH.
El software fiscal, puesto que la normativa laboral y fiscal está en constante actualización, se ha
convertido en uno de los elementos imprescindibles para la correcta presentación de los diferentes
impuestos tanto de personas físicas (IRPF, Patrimonio, Sucesiones) como jurídicas (IVA e IS), de forma
eficiente y segura.
Finalmente, los programas ERP están diseñados para agilizar las tareas y mejorar la productividad global
del negocio. Esto las convierten en un pilar básico, puesto que cuentan con funcionalidades que abarcan
360° en la gestión empresarial: gestión comercial, stocks, nóminas, facturación, contabilidad, etc.
Software de programación
La importancia del software de programación radica en que hace posible el desarrollo de aplicaciones,
por lo que su función es elemental para el desarrollo de la informática y los diferentes
programas. Dentro de esta categoría encontramos como ejemplos los editores de texto o compiladores.
Software de sistema
P á g i n a 10 | 30
Nombre: Isaac Carbajal Méndez
El software de sistema es indispensable para que el hardware funcione de manera idónea. Los
componentes del ordenador ejecutan su labor gracias a esta herramienta: desde los drivers a los
periféricos u otros elementos como teclado o disco duro. A modo de ejemplo, se pueden citar
los sistemas operativos Windows o Mac. Su importancia radica, a su vez, en que establece la conexión
entre usuario y máquina u ordenador, facilitando las tareas vinculadas al mismo.
Software por tipo de licencia
Las licencias de software son un elemento clave, puesto que establecen los términos que permiten el
uso correcto del mismo. Lo habitual es encontrar dos tipos de software por licencia: software libre y
software de propietario.
Mientras que el primero se caracteriza por no disponer de copyright y, por tanto, se puede usar y
distribuir libremente sin implicaciones de pago por uso o derechos legales sobre el mismo, el segundo
queda limitado legalmente tanto en su uso, como en su distribución o copia.
Las cláusulas de uso de software quedan recogidas en el mismo, por lo que previamente a su instalación
o descarga, se deben aceptar las condiciones.
Software por tipo de alojamiento
En el momento de seleccionar qué tipo de software es el más adecuado para nuestra empresa o negocio
podemos también valorar el tipo de tecnología sobre la que pueden apoyarse, como por ejemplo on
premise y en la nube.
El software on premise
Se basa en la instalación y utilización -dentro de la propia empresa- del programa a través de la
correspondiente estructura interna. Ello obliga a la empresa a instalarlo en su servidor y también
a hacerse cargo de los posibles riesgos que ello pueda entrañar (por ejemplo, pérdida de datos
relevantes y/o sensibles). El software on premise ha sido el más utilizado hasta recientemente, y en
muchos casos está dando paso al software basado en el cloud debido a sus ventajas.
El software en la nube
Es aquél que permite trabajar con la información en la nube, es decir, en un repositorio externo a la
empresa al cual se accede de forma remota en cualquier momento y desde cualquier lugar, lo que facilita
el trabajo y mantener la productividad trabajando en tiempo real.
El control y la seguridad de los datos es otro de los aspectos más relevantes cuando se habla del software
en la nube. La certificación de calidad y seguridad, (con las pertinentes copias de seguridad) han
permitido al software en la nube convertirse en uno de los más extendidos en los últimos años.
Características del producto de software y su calidad
*Mantenible Esta característica representa la capacidad del producto software para ser modificado
efectiva y eficientemente, debido a necesidades evolutivas, correctivas o perfectivas. Esta característica
P á g i n a 11 | 30
Nombre: Isaac Carbajal Méndez
P á g i n a 12 | 30
Nombre: Isaac Carbajal Méndez
Completitud funcional: Grado en el cual el conjunto de funcionalidades cubre todas las tareas y los
objetivos del usuario especificados.
Corrección funcional: Capacidad del producto o sistema para proveer resultados correctos con el nivel
de precisión requerido.
Pertinencia funcional: Capacidad del producto software para proporcionar un conjunto apropiado de
funciones para tareas y objetivos de usuario especificados.
Modelos de calidad
Los modelos de calidad de software evalúan el ciclo de vida de los productos informáticos en todas sus
etapas, con base en los estándares estipulados por organizaciones internacionales, como la Organización
Internacional de Normalización (ISO, por sus siglas en inglés).
Gracias a estas normas se asegura que los productos y servicios cumplan con las expectativas de los
clientes; además, se contribuye al desarrollo de prácticas competitivas en la industria de software.
De acuerdo con ISO, existen siete principios medibles de gestión de calidad:
1. Enfoque en el cliente
2. Liderazgo
3. Compromiso con las personas
4. Enfoque basado en procesos
5. Mejora continua
6. Toma de decisiones basada en evidencia
7. Gestión de relaciones.
Cada uno representa un área de oportunidad para el incremento de la calidad de software. Las empresas
son las responsables de alinear estos principios acordes a sus objetivos.
Los modelos de calidad de software le agregan valor a los desarrollos, por lo cual no solo dependen del
resultado final, sino de todos los aspectos involucrados antes, durante y después del proceso.
De ahí que se cataloguen acorde a distintos enfoques: calidad de proceso, calidad de producto y calidad
de uso.
Calidad a nivel de proceso
Esta etapa en un modelo de calidad de software centra la atención desde el momento inicial del ciclo de
vida del sistema —el planteamiento y diseño de la estrategia— definida en respuesta a los
requerimientos del cliente. Cada etapa es evaluada con la finalidad de minimizar riesgos en fases
posteriores y el desarrollo total del producto.
P á g i n a 13 | 30
Nombre: Isaac Carbajal Méndez
Una de las normas más utilizadas para medir la calidad del proceso es el estándar internacional ISO/IEC
15504, que califica la capacidad de madurez de las empresas con base en las prácticas desempeñadas
en cada etapa del proceso. Una base sólida es la proyección del impacto que tendrá un producto
informático.
Calidad a nivel de producto
El Modelo McCall sentó las bases para la creación de los modelos de calidad de software con enfoque
en el producto, gracias a su metodología creada en 1977.
Su evaluación parte de tres perspectivas: la revisión, transición y operación. A su vez, estos factores
consideran once aspectos que determinan la calidad: corrección, fiabilidad, eficiencia, integridad,
usabilidad, mantenimiento, evaluación, flexibilidad, portabilidad, reusabilidad e interoperabilidad.
Con el tiempo, esta metodología fue modificada y mejorada por las organizaciones, con la intención de
satisfacer las necesidades de los usuarios antes y después de poner a su disposición los productos de
software.
3. Calidad de uso
Potenciar la experiencia del usuario (UX) es uno de los desafíos constantes de las empresas, objetivo que
va de la mano con el modelo de calidad en uso de software.
La relación establecida entre el cliente y los productos es medible a partir de un conjunto de atributos,
como: eficacia, productividad, seguridad y satisfacción. Algunas de las preguntas ligadas al cumplimiento
de este propósito son:
¿El producto satisface la necesidad requerida?
¿Los recursos tiempo/dinero se eficientan con su uso?
¿Su uso es seguro para los usuarios?
Las respuestas afirmativas a estos cuestionamientos son un punto de partida para saber si se requiere
la implementación de un modelo de calidad de uso de software.
Métricas y Calidad
Las métricas de calidad del software son criterios y medidas utilizadas para evaluar qué tan bien se
desarrolla una solución de software por un grupo. Son una brújula que te ayuda a entender la eficiencia,
confiabilidad y rendimiento del software, asegurando que cumpla con los estándares y requisitos
establecidos.
Lo más importante de las métricas es que cuantifican aspectos de la calidad del software que muchas
veces pueden parecer difíciles de evaluar por ser hasta cierto punto abstractos.
Diez métricas de calidad del software
P á g i n a 14 | 30
Nombre: Isaac Carbajal Méndez
Rotación Total de Códigos “Es la cantidad de líneas de código agregadas, modificadas o eliminadas de
una base de código durante un período de tiempo”.
Aunque desarrollar y mantener software consiste en cambiar una base de código varias veces, hacerlo
con demasiada frecuencia puede indicar problemas de calidad. Esto se debe a que, como regla general,
cuantos más cambios, mayor será la probabilidad de introducir errores en los productos.
No mide la calidad per se, pero la alta rotación podría correlacionarse con otros problemas de métricas
de calidad.
Los arquitectos y programadores de software estructuran los sistemas modernos en módulos, y cada
módulo depende de otros para funcionar. Pero luego, al codificar, un error en un módulo podría terminar
en la falla de otro módulo.
Además, demasiadas líneas de código nuevas pueden indicar que se encuentra en las primeras etapas
de codificación. Pero también podrían indicar que no estás reutilizando código, lo que afecta el
rendimiento del software. Por ejemplo, no reutilizar el código puede llevar más tiempo a los productos
cargar los recursos que necesitan para funcionar correctamente.
Tasa de Fallas “La tasa de fallas es la frecuencia con la que falla un producto de software”
Y cuando eso sucede, los usuarios finales simplemente no pueden operar el producto en absoluto.
Los fallos son errores inesperados, como un defecto que los testers no detectaron o una sobrecarga
repentina del sistema. Ocurren mientras el software se está ejecutando y finalizan su ejecución
abruptamente. A veces, los datos se pierden en el proceso.
Las empresas de sistemas críticos, como las que desarrollan sistemas de control de tráfico aéreo o
sistemas de bolsa, se centran mucho en esta métrica.
Una tasa de fallos alta es una señal de alerta de errores en el producto (normalmente graves). Y los
problemas de calidad subyacentes pueden variar desde una garantía de calidad insuficiente hasta una
validación deficiente del usuario.
En otras palabras, la tasa de fallas no indica exactamente qué debe hacer para reducir el número. En su
lugar, debe investigar la causa raíz exacta de los bloqueos.
Pero, si se introduce un código que provoca fallas en la producción, eso significa que está pasando por
alto cualquier proceso de control de calidad o prueba unitaria que tenga implementado. Eso es un
problema.
La mayoría de los problemas con el control de calidad se deben las siguientes debilidades:
✓ Lanzamientos apresurados: no hay tiempo suficiente para realizar un control de calidad
adecuado antes de la fase de despliegue.
✓ Recursos limitados: no hay suficientes horas/ojos para realizar un control de calidad adecuado.
P á g i n a 15 | 30
Nombre: Isaac Carbajal Méndez
✓ Proceso de control de calidad inadecuado: avería en el proceso real y aprobación del código por
parte de pruebas.
Si tienes esta última debilidad, deberás profundizar en el flujo de trabajo general de control de calidad.
Puede haber problemas de comunicación o las pautas de control de calidad pueden estar
desactualizadas y no reflejar el estado actual del software.
3. Disponibilidad del Sistema “Evalúa la cantidad de tiempo que un sistema está en funcionamiento.
Compara el tiempo de actividad del sistema con su tiempo de inactividad durante un período de tiempo.
Y considera que un sistema que está disponible es tan rápido como se espera y no falla a menos que
ocurran condiciones imprevistas”
Otra forma de decirlo: la disponibilidad del sistema es la probabilidad de que un producto de software
no deje de estar disponible cuando los usuarios lo necesiten.
Una alta disponibilidad significa más tiempo de actividad que de inactividad, lo que significa que los
usuarios rara vez pierden el acceso al sistema. En ese caso, el producto lanzado no contiene errores o
solo algunos de ellos, lo que requiere pocas correcciones en su código base.
La disponibilidad del sistema es una métrica de calidad esencial para las empresas de desarrollo de
software que crean productos que deben funcionar las 24 horas del día.
4. Densidad de Defectos “Es la cantidad de defectos en un producto de software en comparación con
su tamaño. Esto significa que es un número relativo”
Los defectos son errores encontrados por los evaluadores antes del lanzamiento del producto.
Representan necesidades de usuario insatisfechas. Y si los evaluadores no los detectan a tiempo, los
defectos originan fallas en manos de los usuarios finales.
Esta métrica mide la calidad del código y le brinda información para estimación de los esfuerzos de
corrección del software. Un código de alta calidad requiere pocas correcciones y es más fácil de
mantener, escalar y evolucionar.
5. Tiempo medio de detección (MTTD) “Es el tiempo promedio que le toma a tu equipo detectar errores
en un producto de software”
Un MTTD bajo indica que, normalmente, su equipo encuentra errores rápidamente. Y cuanto más rápido
los encuentren, más rápido corregirán esos errores. Como resultado, el sistema no está inactivo por
mantenimiento durante demasiado tiempo, lo que minimiza el impacto de los defectos o fallas en los
usuarios finales.
6. Tiempo medio entre fallas (MTBF) “Es el tiempo promedio entre dos fallas del sistema. Se trata de
errores que se encuentran tras el lanzamiento del producto y que se deben, por ejemplo, a un defecto
no detectado”
Las fallas pueden ser tan graves como un bloqueo, pero también pueden deberse a que el software no
hace lo que los usuarios finales esperan que haga.
P á g i n a 16 | 30
Nombre: Isaac Carbajal Méndez
Por supuesto, cuanto mayor sea el MTBF, mejor. Significa que el producto es más fiable, lo cual es
esencial en industrias como la sanitaria y la aeronáutica.
Abordar una tasa MTBF problemática puede ser un poco más complejo.
La primera pregunta que debes hacerte es si has visto un aumento (en realidad, una disminución del
tiempo) en el MTBF, debes analizar dos aspectos:
¿Las fallas son causadas por un problema o por múltiples problemas?
Es posible que se haya introducido un único punto de falla en una versión reciente, lo que provocó un
aumento en la frecuencia de fallas y una disminución en el MTBF. O tal vez no se introdujo nada nuevo,
pero un cambio en el comportamiento del usuario expuso un problema anterior que ahora está creando
más casos de falla.
Si se trata de cualquiera de estos dos problemas, es de esperar que sea un escenario contenido que
pueda abordarse mediante un flujo de trabajo normal de prueba y corrección de errores.
Quizás el escenario más siniestro es que tu MTBF esté empeorando porque el equipo de desarrollo está
introduciendo una mayor cantidad de problemas que luego causan una mayor cantidad de fallas.
Esto significa que quizás haya un problema más sistémico que abordar.
¿Por qué el equipo está introduciendo más problemas que antes?
Como te comenté al analizar los problemas con la tasa de fallas, si hay un aumento en la cantidad de
problemas o errores que se introducen en el código en vivo, generalmente se debe a una falla en el flujo
de trabajo del equipo.
En muchos casos, es producto de una mala planificación (historias de usuario sin alcance adecuado, el
trabajo se apresura, el control de calidad sólo tiene 2 horas para realizar la prueba).
Este es el momento de abordar el proceso en sí. Analiza cómo tu equipo está creando estimaciones de
trabajo y qué salvaguardas puede implementar para evitar un alcance excesivo que genere problemas
en cascada con el control de calidad y la calidad del software.
7. Tiempo medio de resolución (MTTR) “Es el tiempo promedio que le toma a tu equipo resolver un
error en un producto de software después de que alguien lo descubre”
Esto se calcula como la cantidad de horas o minutos que transcurren entre que se detecta el problema
y se resuelve. Generalmente, sólo se cuentan los minutos u horas que caen dentro del horario laboral
normal (es decir, no contaría el tiempo transcurrido en las noches o los fines de semana).
Regularmente, un MTTR bajo significa que tu equipo repara los errores rápidamente.
Pero, por supuesto, depende de la gravedad del error y de la experiencia de tus desarrolladores.
P á g i n a 17 | 30
Nombre: Isaac Carbajal Méndez
Los errores menores tienden a tardar mucho menos en resolverse que los críticos. Y los programadores
senior, así como los arquitectos de software, tienden a tardar menos tiempo en resolver un error.
8. Satisfacción del cliente (CSAT) “Es un número que representa la forma en que los clientes
experimentan tu producto de software. Y se llega a ello recopilando y analizando los datos de las
encuestas de satisfacción de tus clientes sobre el funcionamiento del software. No se incluyen datos
sobre la calidad del servicio como por ejemplo el soporte en tu mesa de ayuda”
Por lo general, una pregunta en esas encuestas es sobre la satisfacción general de los clientes con tu
producto. Te recomiendo que den una respuesta en una escala de cinco puntos, desde
“extremadamente satisfecho” hasta “extremadamente insatisfecho”.
Esta métrica de calidad te brindará la percepción de los usuarios sobre la calidad general de tu producto.
Cuanto mayor sea el CSAT, mejor será esa percepción de calidad.
9. Tiempo medio para remediar una vulnerabilidad “Es el tiempo promedio que le toma a tu equipo
reparar las vulnerabilidades de ciberseguridad en tu producto de software”
La causa principal de esas vulnerabilidades suele ser el código de baja calidad. Y un número bajo significa
que los usuarios finales están menos expuestos a posibles violaciones de datos, pérdidas financieras e
interrupciones repentinas del servicio.
De manera similar al MTTR, el tiempo medio para remediar una vulnerabilidad depende de qué tan bien
tu equipo implemente las mejores prácticas de codificación. Pero en este caso, las mejores prácticas que
siempre deben monitorear, incluso después del lanzamiento del producto, son las de ciberseguridad.
10. Cobertura del código “Evalúa la cantidad de código fuente de tu producto para el cual existe una
prueba unitaria”
Se trata de pruebas realizadas por programadores en el entorno de desarrollo que utilizaron para crear
el producto. Y el objetivo es encontrar errores en el código base lo antes posible y evitar fallas del sistema
en el futuro.
Para ello, los programadores deben cubrir cada línea de código con una prueba unitaria. Por ejemplo,
las pruebas unitarias deben cubrir todas las condiciones de los casos de uso del producto.
Y si la cobertura del código de tu producto es alta y todas las pruebas unitarias pasaron, la calidad del
código se considera alta. Eso se traduce en software de alta calidad.
Ingeniería de Software
La ingeniería del software es una disciplina que implica el uso de estructuras, herramientas y técnicas
para construir programas informáticos.
Así mismo, incluye el análisis previo de la situación, la redacción del proyecto, la creación del software y
las pruebas necesarias para garantizar el correcto funcionamiento del software antes de poner el sistema
en funcionamiento.
P á g i n a 18 | 30
Nombre: Isaac Carbajal Méndez
Esta ingeniería aborda todas las fases del ciclo de vida de desarrollo de cualquier tipo de sistema de
información y es aplicable a una amplia gama de ámbitos de la informática y la ciencia de los
ordenadores, como el diseño de compiladores, sistemas operativos y tecnologías de Intranet/Internet:
La empresa, la investigación científica, la medicina, la fabricación, la logística, la banca, el control del
tráfico y la meteorología son sólo algunos de los campos en los que puede trabajar.
La ingeniería de software es un campo de estudio que abarca las estructuras, instrumentos y los
métodos utilizados en el desarrollo de programas informáticos. Por tanto, la ingeniería del software es
una rama de la ingeniería que desarrolla y gestiona sistemas de software utilizando técnicas y
experimentos de la informática, la gestión de proyectos y otras disciplinas.
La ingeniería de sistemas se ocupa de la creación y aplicación de técnicas de información. Abarca un
amplio abanico de ocupaciones, ya que la gestión de la información forma parte actualmente de
cualquier operación humana.
Los objetivos de la ingeniería de software son muy diversos, pero podemos destacar los siguientes más
importantes:
▪ Crear programas informáticos que satisfagan las necesidades de la sociedad y empresas.
▪ Guiar y coordinar el desarrollo de una programación difícil.
▪ Intervenir en el ciclo de vida de un producto.
▪ Estimar los costos y el plazo de ejecución de un proyecto.
▪ Actuar como líder del equipo de desarrollo de software.
▪ Diseño, desarrollo y administración de bases de datos.
▪ Durante la creación de la aplicación, liderar y dirigir a los programadores.
▪ Incluir procesos de calidad en las aplicaciones, como la medición de métricas y medidas y la
evaluación de la calidad del software.
El software suele ser desarrollado por equipos de ingenieros y desarrolladores. Es fundamental que cada
persona que trabaje en el proyecto siga el mismo proceso. Sin esta consistencia, sería casi imposible
desarrollar un software exitoso y entregarlo al cliente a tiempo.
SDLC le da a cada proyecto un framework individualizado para trabajar dentro. Mantiene a todo el
equipo de desarrollo en la misma página para que el proceso permanezca ordenado y eficiente y resulte
en productos de software de alta calidad y bajo costo.
7 fases del Ciclo de Vida del Desarrollo de Software
Hay siete fases del ciclo de vida de desarrollo de software que se siguen en cada uno de los diferentes
modelos. Cada fase cumple una función distinta y juntas proporcionan un framework de programación
integral para el desarrollo de software eficiente.
Hay requisitos previos que deben cumplirse antes de que cada fase pueda comenzar o finalizar. Estos se
conocen como puntos de entrada y puntos de salida. Todos los miembros del equipo deben seguir las
fases de SDLC en orden secuencial para garantizar que el software se complete de manera precisa,
rentable y antes de la fecha límite del cliente.
Planificación y Análisis de Requerimientos
La fase de planificación y análisis de requisitos es el primer paso en el desarrollo de software. Aquí es
cuando los miembros superiores del equipo recopilan información sobre el software que se desarrollará.
Hablan con el cliente para conocer las intenciones del proyecto y luego identificar posibles riesgos,
problemas y oportunidades.
Los miembros del equipo a menudo reciben aportes de múltiples partes interesadas y expertos de la
industria. En esta fase, el equipo determina qué costos y recursos se requerirán para completar el
proyecto.
Definir requisitos
Una vez que se completa el análisis de requisitos, los requisitos del programa de software se
documentan en un documento de especificación de requisitos de software. Deben ser aceptados por las
partes interesadas antes de que el equipo de desarrollo pueda comenzar el proceso de diseño.
Diseño y Prototipado
Durante esta fase, toda la información recopilada en los dos pasos anteriores se reúne cuando el equipo
comienza a diseñar la arquitectura del software. Se pueden presentar múltiples diseños para que el
equipo pueda decidir cuál es el mejor para seguir adelante.
Desarrollo de software
Esta fase es la más larga de todas las fases SDLC. Es donde los desarrolladores comienzan a programar y
dar vida al proyecto. Puedes hacerlo usando una variedad de herramientas como compiladores,
P á g i n a 20 | 30
Nombre: Isaac Carbajal Méndez
intérpretes y depuradores. El lenguaje de programación que utilices dependerá de los requisitos del
software.
Pruebas de software
Una vez que se completa el desarrollo del software, debe probarse para asegurarse de que cumple con
los requisitos que se identificaron en las fases anteriores. Las pruebas generalmente las realizan equipos
de control de calidad y pruebas de software. Comprueban que no haya defectos en el código y que el
software funcione como se espera.
Si se encuentran defectos durante las pruebas, el código se envía de vuelta al equipo de desarrollo para
que lo arreglen. Esta fase continúa hasta que se corrigen todos los errores.
Implementación del software
Durante la fase de implementación, el software se entrega al cliente y se pone en uso.
Operaciones y Mantenimiento
Una vez que se implementa el software, el trabajo no ha terminado. Es probable que surjan problemas
que no se detectaron durante la fase de prueba. Durante la fase de mantenimiento continuo, los
problemas que surgen se solucionan mediante actualizaciones y parches de software. También se
pueden agregar nuevas características a medida que avanza la tecnología.
Modelos del Ciclo de Vida del Desarrollo de Software
Se utilizan diferentes metodologías de desarrollo de software para diferentes tipos de proyectos. Si bien
cada uno sigue los mismos pasos básicos, los pasos se ponen en práctica de manera diferente en
diferentes modelos. Aquí hay un vistazo a siete de los modelos más utilizados, incluidos los beneficios y
desventajas de cada uno.
El modelo Ágil
El modelo ágil se llama acertadamente, ya que funciona muy bien para proyectos que tienen requisitos
cambiantes. Implementa las fases SDLC en una estructura circular que permite flexibilidad.
Beneficios
Flexible para proyectos que experimentan requisitos cambiantes
Uno de los modelos más rápidos para trabajar con productos que tienen plazos rápidos
Recopila comentarios de los clientes durante cada fase
Desventajas
La documentación no se lleva a cabo hasta más adelante en el proceso, lo que dificulta la transferencia
del proyecto a diferentes equipos.
P á g i n a 21 | 30
Nombre: Isaac Carbajal Méndez
Es difícil medir con precisión los recursos que se necesitarán para productos grandes al principio del
proceso
Difícil de utilizar para los programadores menos experimentados
Modelo Espiral
Al igual que el modelo ágil, el modelo en espiral utiliza una estructura circular para moverse por los pasos
del SDLC. Utiliza iteraciones, o repeticiones de procedimientos, y cada iteración aborda los requisitos
específicos del proyecto. Es un modelo basado en el riesgo que funciona bien para proyectos de alto
riesgo con requisitos complejos.
Beneficios
Identifica los riesgos al principio del proceso.
Transparente, que requiere retroalimentación durante cada fase
Debido a que los problemas se descubren en las primeras etapas, las estimaciones de costo y tiempo
para el proyecto son bastante precisas
Desventajas
Muy intensivo en tiempo
Un modelo complejo que requiere que los desarrolladores sean expertos en evaluación de riesgos
Es posible que la espiral continúe indefinidamente, sin llegar a completar el desarrollo del producto final
3. Modelo de cascada
El modelo de cascada es uno de los modelos SDLC más probados. Avanza a través de las fases de forma
lineal, lo que lo hace ideal para proyectos pequeños que tienen requisitos claros e invariables.
Ventajas
Fácil de usar incluso para programadores sin experiencia
Los puntos de entrada y salida de cada fase son fácilmente comprensibles
Esto conduce a un producto final de alta calidad
Desventajas
No proporciona comentarios del cliente a lo largo del proyecto
No funcionará bien para proyectos de alto riesgo o en curso
Las pruebas no comienzan hasta el final del proceso, dejando los problemas desapercibidos hasta el final
Modelo iterativo
P á g i n a 22 | 30
Nombre: Isaac Carbajal Méndez
El modelo iterativo es un modelo cíclico que repite una serie de pasos repetidamente, con cada iteración
acercándose al desarrollo del producto final. Comienza con una versión simple del software y se vuelve
más complejo con cada iteración. Este modelo funciona mejor cuando los requisitos del proyecto se
entienden claramente.
Ventajas
Las fallas de diseño se detectan temprano en el proceso
Muy flexible
Rentable cuando es necesario realizar cambios
Desventajas
Difícil de administrar debido a múltiples iteraciones
No es efectivo para proyectos pequeños.
Requiere miembros del equipo de análisis de riesgos altamente calificados
Modelo DevOps
El modelo DevOps se ha vuelto muy popular en el desarrollo de software. Se centra en la colaboración
entre todos los involucrados en el proceso de desarrollo. Es un proceso flexible diseñado para entornos
de ritmo rápido.
Ventajas
Pruebas automatizadas
Tiempo de respuesta rápido
Resuelve problemas de diseño rápidamente
Desventajas
Todos en la organización deben estar comprometidos con la colaboración
Las herramientas deben estar estandarizadas en todos los equipos
Administrar la implementación de software puede ser un desafío
Modelo en forma de V
Usando el modelo SDLC en forma de V, el diseño y las pruebas del software se completan en conjunto.
Su estructura es similar a la del modelo de cascada, que sigue pasos secuenciales, pero tiene dos brazos:
uno para la fase de diseño y otro para la fase de prueba.
Ventajas
P á g i n a 23 | 30
Nombre: Isaac Carbajal Méndez
El mantenimiento del software es también una de las fases del ciclo de vida del desarrollo del sistema
(SDLC), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que sigue al
despliegue (implementación) del software en el campo.
Una percepción común del mantenimiento es que se trata simplemente de la corrección de defectos.
Sin embargo, un estudio indicó que la mayoría, más del 80%, del esfuerzo de mantenimiento se utiliza
para acciones no correctivas (Pigosky 1997).
El mantenimiento del software y la evolución de los sistemas fue abordado por primera vez por Meir M.
Lehman en 1969. Durante un período de veinte años, su investigación condujo a la formulación de las
leyes de Lehman (Lehman 1997). Las principales conclusiones de su investigación incluyen que el
mantenimiento es realmente un desarrollo evolutivo y que las decisiones de mantenimiento son
ayudadas por la comprensión de lo que sucede con los sistemas (y el software) a lo largo del tiempo.
Lehman demostró que los sistemas siguen evolucionando con el tiempo. A medida que evolucionan, se
vuelven más complejos a menos que se tomen algunas medidas como la refactorización del código para
reducir la complejidad.
Los principales problemas de mantenimiento del software son administrativos y técnicos. Las cuestiones
clave de la gestión son: la alineación con las prioridades del cliente, la dotación de personal, qué
organización se encarga del mantenimiento y la estimación de los costes. Las cuestiones técnicas clave
son: comprensión limitada, análisis de impacto, pruebas, medición de la mantenibilidad.
El mantenimiento de software es una actividad muy amplia que incluye corrección de errores, mejoras
de capacidad, eliminación de funciones obsoletas y optimización. Debido a que el cambio es inevitable,
se deben desarrollar mecanismos de evaluación, control y modificación.
P á g i n a 24 | 30
Nombre: Isaac Carbajal Méndez
Cualquier trabajo realizado para cambiar el software después de que esté en funcionamiento se
considera trabajo de mantenimiento. El propósito es preservar el valor del software a lo largo del tiempo.
El valor puede mejorarse ampliando la base de clientes, cumpliendo requisitos adicionales, siendo más
fácil de usar, más eficiente y empleando más tecnología nueva. El mantenimiento puede cubrir 20 años,
mientras que el desarrollo puede ser entre 1 y 2 años.
Con el paso del tiempo, las aplicaciones informáticas deben someterse a procesos de modificación que
prolongan su vida útil o mejoran sus características. Corrección de bugs, adaptación a nuevos entornos
tecnológicos o incorporación de funcionalidades son algunas de las tareas incluidas en el mantenimiento
del software, actividad que se repite periódicamente desde el momento en que se empieza a utilizar
hasta su abandono definitivo.
A lo largo de su vida útil, la aplicación puede necesitar modificaciones por diferentes razones, que
determinan diferentes tipos de mantenimiento:
• Mantenimiento preventivo: Consiste en la revisión constante del software para detectar posibles
fuentes de problemas que puedan surgir en el futuro.
• Mantenimiento predictivo. Evalúa el flujo de ejecución del programa para predecir con certeza
cuándo ocurrirá la falla, y así determinar cuándo es apropiado hacer los ajustes
correspondientes.
• Mantenimiento correctivo. Corrige los defectos encontrados en el software, y que originan un
comportamiento diferente al deseado. Estas fallas pueden ser de procesamiento, rendimiento
(por ejemplo, uso ineficiente de recursos de hardware), programación (inconsistencias en la
ejecución), seguridad o estabilidad, entre otras.
• Mantenimiento adaptativo. Si es necesario cambiar el entorno en el que se utiliza la aplicación
(que incluye el sistema operativo, la plataforma de hardware o, en el caso de las aplicaciones
web, el navegador), puede ser necesario modificarla para mantener su plena funcionalidad en
estas nuevas condiciones.
• Mantenimiento evolutivo. Es un caso especial donde la adaptación es prácticamente obligatoria,
ya que de lo contrario el programa quedaría obsoleto con el paso del tiempo. Por ejemplo, el
cambio de versión en un navegador (a menudo impuesto sin el consentimiento del usuario) suele
requerir ajustes en los plugins y aplicaciones web.
• Mantenimiento perfecto. Por diferentes razones, el usuario puede solicitar la adición de nuevas
funcionalidades o características no consideradas en el momento de la implementación del
software. Un mantenimiento perfecto adapta la aplicación a este requisito. El mantenimiento
permanente del software puede asegurar su funcionalidad durante muchos años, ahorrando
tiempo y el coste económico de una migración total a una nueva aplicación.
P á g i n a 25 | 30
Nombre: Isaac Carbajal Méndez
Dar mantenimiento a un PC es algo que cualquiera puede hacer con un simple destornillador y un poco
de habilidad (y muchas veces de paciencia), ya que son equipos frágiles y requieren de mucho cuidado
para no estropear algún componente, considero que si tiene lo que se dice, se puede hacer.
En el caso del mantenimiento de software podemos recurrir a una variedad de programas que se
especializan en la tarea de limpieza, desfragmentación y optimización del rendimiento del ordenador a
través de los procesos que se explican a continuación.
El mantenimiento del software nos permite dar una nueva vida a nuestro ordenador, optimizando los
recursos y aprovechándolos al máximo es una de las tareas más importantes, ya que de esta forma
nuestro PC funcionará mucho mejor, más rápido y sin ningún problema. La fase de mantenimiento del
software implica cambios en el software para corregir defectos encontrados durante su uso o la adición
de nuevas funcionalidades que mejoren la usabilidad y aplicabilidad del software.
La fase de mantenimiento del software es una parte explícita del modelo en cascada del proceso de
desarrollo de software que se desarrolló durante el movimiento de programación estructurada del
ordenador. Con el lanzamiento del software, otros defectos y deficiencias no documentadas serán
descubiertos por los usuarios del software. Tan pronto como estos defectos se comunican a la
organización de desarrollo, se introducen en el sistema de seguimiento de defectos. Las personas
involucradas en la fase de mantenimiento del software esperan trabajar en estos defectos conocidos,
localizarlos y preparar una nueva versión del software, conocida como versión de mantenimiento, que
resolverá los problemas pendientes.
Esto se refiere a anticipar posibles problemas que puedan existir en el software en el momento de su
uso o simplemente por la forma en que usamos nuestro sistema operativo y nuestros programas.
Nuestro PC puede comenzar a presentar problemas cuando menos lo esperamos, algunos de los
síntomas y el más común es un sistema operativo lento y también el ciclo de ejecución de algunos
programas.
El mantenimiento preventivo se puede llevar a cabo con programas que pueden optimizar el
funcionamiento del PC, y éstos deben ejecutarse periódicamente cada tres o cuatro meses.
Correctivo
Preventivo
Adaptable
Perfecto
El mantenimiento de software es una actividad muy amplia que incluye corrección de errores, mejoras
de capacidad, eliminación de funciones obsoletas y optimización. Dado que el cambio es inevitable, es
necesario desarrollar mecanismos de evaluación, control y modificación.
Por lo tanto, cualquier trabajo realizado para cambiar el software después de que esté en
funcionamiento se considera trabajo de mantenimiento, cuyo propósito es preservar el valor del
software a lo largo del tiempo, donde el valor puede mejorarse ampliando la base de clientes,
cumpliendo con los requisitos adicionales, siendo cada vez más fácil de usar, más eficiente y utilizando
más tecnologías nuevas.
P á g i n a 27 | 30
Nombre: Isaac Carbajal Méndez
El proceso de mantenimiento contiene actividades y medidas para el encargado del mantenimiento. Este
proceso se activa cuando:
El proceso del ciclo de vida del Mantenimiento de Software comienza con la implementación de este
proceso donde se planifica el mantenimiento y termina con la retirada del producto.
Validación de Software:
La validación de software se enfoca en confirmar que el software cumple con las necesidades y
expectativas del usuario final, es decir, que realiza las funciones para las cuales fue diseñado de manera
precisa y completa. Implica asegurarse de que el software satisface los requerimientos funcionales y no
funcionales especificados durante la fase de planificación y diseño del proyecto.
Las actividades de validación de software incluyen:
• Pruebas Funcionales: Se realizan pruebas exhaustivas para verificar que el software realiza sus funciones
de acuerdo con los requisitos especificados. Esto incluye pruebas de funcionalidad, usabilidad y
rendimiento.
P á g i n a 28 | 30
Nombre: Isaac Carbajal Méndez
• Validación de Requisitos: Se verifica que los requisitos del software sean claros, completos y estén
alineados con las necesidades del usuario.
• Validación de Cumplimiento Normativo: Se asegura de que el software cumpla con los estándares y
regulaciones aplicables a su industria, como normas ISO, HIPAA, PCI DSS, entre otras.
• Validación de Documentación: Se verifica que la documentación del software, como manuales de
usuario y documentación técnica, sea precisa y esté actualizada.
Verificación de Software:
La verificación de software se enfoca en revisar y evaluar el código, la arquitectura y la documentación
del software para identificar errores, inconsistencias o incumplimientos de estándares de programación.
Este proceso se centra en la fase de desarrollo del software y se lleva a cabo antes de la validación.
Las actividades de verificación de software incluyen:
• Revisión de Código: Los desarrolladores y evaluadores revisan el código fuente para asegurarse de que
cumple con las pautas de programación, es legible y sigue las mejores prácticas.
• Pruebas de Unidad: Se realizan pruebas a nivel de módulos individuales o unidades de código para
identificar errores en funciones o componentes específicos.
• Pruebas de Integración: Se evalúa cómo los diferentes módulos o componentes interactúan entre sí
para asegurar una integración adecuada.
• Análisis Estático: Se utiliza software de análisis estático para buscar posibles problemas en el código sin
ejecutar el programa.
• Verificación de Diseño: Se revisa la arquitectura y el diseño del software para asegurarse de que cumple
con los requisitos y está bien estructurado.
P á g i n a 29 | 30
Nombre: Isaac Carbajal Méndez
BLIOGRAFÍA
• https://www.acofi.edu.co/revista/Revista2/2006_II_11/contenido/procesos.htm
• https://es.linkedin.com/pulse/calidad-del-software-un-concepto-en-constante-alfonsina-
morgavi-kygef
• https://visualmexico.com.mx/software-el-sistema-que-te-lleva-un-paso-
adelante/#:~:text=El%20proceso%20de%20evoluci%C3%B3n%20de,la%20satisfacci%C3%B3n%
20de%20los%20usuarios.
• https://concepto.de/software-de-aplicacion/#ixzz8TXLWQdjB
• https://www.huelvainformacion.es/huelva/Software-medida-generico-implementar-
software_0_1755424607.html
• https://www.wolterskluwer.com/es-es/expert-insights/que-tipos-de-software-
hay#:~:text=Los%20tipos%20de%20software%20que,programaci%C3%B3n%20y%20software%
20de%20sistema.
• https://platzi.com/tutoriales/1248-pro-arquitectura/5498-atributos-de-calidad-de-un-
producto-de-software/
• https://www.testingit.com.mx/blog/modelos-calidad-software
• https://blog.innevo.com/metricas-de-calidad-del-software
• https://mexico.unir.net/ingenieria/noticias/ingenieria-de-software-que-es-objetivos/
• https://www.codingdojo.la/2023/06/16/guia-del-ciclo-de-vida-del-desarrollo-de-
software/#:~:text=El%20ciclo%20de%20vida%20del%20desarrollo%20de%20software%20abarc
a%20el,que%20crean%20un%20nuevo%20software.
• https://mantenimiento.win/mantenimiento-de-software/
• https://www.sqs.es/que-son-la-validacion-y-la-verificacion-de-software/
P á g i n a 30 | 30