Está en la página 1de 30

Nombre: Isaac Carbajal Méndez

Universidad San Carlos

Posgrado
6to cuatrimestre 2024
Maestría en Sistemas Computacionales
Tema:
CALIDAD EN EL DESARROLLO DE SOFTWARE.

Profesor: Juan Carlos Flores Paulin


Ing. Robótico Industrial
Mtro. En Ingeniería de Computo
Nombre: Isaac Carbajal Méndez
Matricula: 2008AW0018
Materia: Calidad en el diseño y desarrollo de Software

P á g i n a 1 | 30
Nombre: Isaac Carbajal Méndez

Costos de eficiencia y actividad en la calidad del software


En una versión concisa la calidad en la ingeniería del software es un grupo de características que
representa la efectividad y la eficiencia de un sistema de información. Es importante enfatizar en dos
puntos:
• Un software de calidad debe ser eficaz, es decir, que debe realizar las funciones establecidas, debe
ser amigable. Un usuario debe utilizar el software porque produce resultados confiables, realiza todas
las operaciones que se requieren, ejecuta las operaciones en un tiempo aceptado y es fácilmente usado
por el grupo de usuarios a quien esté dirigido.
• Un software de calidad debe ser eficiente, es decir el costo de su desarrollo tomando todos los
recursos y el costo de su operación debe ser tal que las organizaciones involucradas en su desarrollo y
uso obtengan el máximo beneficio o por lo menos un beneficio aceptable en un período de tiempo
establecido.
Se define la calidad de software como la ausencia de errores de funcionamiento, la adecuación a las
necesidades del usuario, y el alcance de un desempeño apropiado (tiempo, volumen, espacio), además
del cumplimiento de los estándares. Los objetivos que la calidad persigue son: la aceptación (utilización
real por parte del usuario) y la mantenibilidad (posibilidad y facilidad de corrección, ajuste y modificación
durante largo tiempo). Para alcanzar estos objetivos, es necesaria una actitud y compromiso de todo el
personal que se encuentre en el desarrollo del proyecto, y en todas y cada una de las etapas (en general,
planeación, análisis, diseño, programación, pruebas, mantenimiento) correspondientes al ciclo de vida
que se hubiese seleccionado para el proyecto. En forma adicional durante el proceso de aplicación de
las metodologías se requiere tener en cuenta:
❖ Realización de Revisiones Técnicas Formales durante cada etapa.
❖ Realización de pruebas y revisiones por personas “externas” al proyecto.
❖ Elaboración de la adecuada documentación del software, y de los cambios.
❖ Verificación del cumplimiento de los estándares de desarrollo
❖ Medición permanente de la productividad del proceso y de la calidad de los resultados.
❖ Desarrollo y ajustes de modelos estadísticos de calidad y productividad.
❖ Control de la desviación de los promedios de calidad y productividad.
Uno de los elementos que permite dar garantía acerca de la calidad del software es la aplicación de
métricas, estas son medidas estadísticas aplicadas a un software determinado, garantizando calidad así
como lo afirma Pressman: “La garantía de calidad del software, es una “actividad de protección” que se
aplica a lo largo de todo el proceso de ingeniería del software”.
Todos los elementos anteriormente señalados indican herramientas que se deben tener en cuenta al
momento de desarrollar un software, agrupando en una definición estos elementos se afirma que: Un
software debe estar desarrollado “En concordancia con los requisitos funcionales y de rendimiento
explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las

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.

Evolución de la calidad del software


Con el desarrollo de los ordenadores, el software ha progresado de manera simultánea con ellos, lo cual
a lo largo de la historia ha marcado distintas etapas de su evolución, cada una con sus características
particulares.
Primera etapa 1950 – 1960
Durante estos años el software estaba en su fase de conocimiento y arranque. Los programas eran
desarrollados por una sola persona, quien era la encargada de escribir en código todas las instrucciones
que se requerían. Esta labor se caracterizaba por ser compleja, tardada y a consecuencia de esto, la
distribución del software fue muy limitada.
Segunda etapa. 1965 – 1975
En este periodo el software se estaba perfeccionando para ser comercializado. Los cambios más notorios
fueron que, a diferencia de los primeros, estos softwares ya permitían una multi-programación gracias
a sus sistemas multi-usuarios. Sin embargo, su mantenimiento era muy costoso, por lo que no fue una
opción rentable para todos.
Tercera etapa. 1975 – 1985
El continuo desarrollo del software en estos años permitió su adquisición como producto con un
hardware de bajo costo. A estos sistemas distribuidos se les incorporó la combinación de algoritmos que
se conocen como inteligencia artificial y de esta manera se comenzó a expandir hacia redes de área local
y global. Los conceptos de productividad y calidad comenzaban a relacionarse con el uso de este tipo de
tecnología.
Cuarta etapa. 1985 – 2000
El auge del internet incrementó la demanda de un software fácil de usar y fue así como se
perfeccionaron los programas de acuerdo a la actividad específica a ejecutar de forma optimizada. Los

P á g i n a 4 | 30
Nombre: Isaac Carbajal Méndez

sistemas comenzaron a especializarse de acuerdo al entorno donde se requerían y esto generó un


entorno de cliente-servidor.
Quinta etapa. 2000 – Presente
La demanda de un software funcional incrementó año con año, por lo que fue necesario ofrecer
soluciones tecnológicas accesibles y simples con una metodología que pudiera utilizarse en cualquier
ámbito. Fue así como se convirtieron en una alternativa para desarrollar, almacenar y recuperar cálculos
e información relevante.
Proceso de evolución de un software
Actualmente, un software es un producto consolidado que a lo largo de la historia ha pasado por un
proceso evolutivo, lo cual impacta en su ciclo de vida. Es decir, el proceso de desarrollo de
un software debe pasar por cada una de las siguientes fases:
Análisis de los requerimientos
Diseño y estructuración
Programación
Pruebas
Documentación
Mantenimiento
En general, cada uno de los sistemas informáticos se aprueba cuando ha logrado acreditar cada uno de
los filtros anteriores. No obstante, se puede agregar un filtro más que actualmente es uno de los más
valorados en el ámbito de la tecnología: la evolución, mejor conocida como actualización.
Cuando un software se mantiene bajo las mismas características con las que en un inicio fue diseñado,
eventualmente se vuelve obsoleto y su ciclo de aplicación se reduce dando paso a la adquisición de un
producto nuevo. Es por ello, que el software debe priorizar el principio de evolución.
El cambio continuo de un programa se basa en las demandas cambiantes de cada entorno que le otorga
la capacidad de adaptarse y mantenerse vigente. A medida que el software evoluciona, su estructura se
vuelve más compleja y optimizada, pero siempre se mantiene su sencillez de uso.
El proceso de evolución de un programa es un proceso autorregulable que brinda estabilidad
organizacional durante su tiempo de vida. Además, nunca se pierde de vista la funcionalidad y la calidad
de los sistemas, ya que ambos factores ayudan a mantener la satisfacción de los usuarios.

P á g i n a 5 | 30
Nombre: Isaac Carbajal Méndez

Productos y aplicaciones del software


En informática, se entiende por software de aplicación, programas de aplicaciones o en algunos
casos aplicaciones, al conjunto de los programas informáticos generalmente instalados en el sistema por
el usuario, y diseñados para llevar a cabo un objetivo determinado y concreto, de tipo lúdico,
instrumental comunicativo, informativo, etc.

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.

Algunos ejemplos populares de Software de aplicación son:


Google Chrome. Se llama así a este navegador de Internet diseñado y publicado por Google Inc., y
distribuido de manera totalmente gratuita por la red. Revolucionó el ramo al ser uno de
los exploradores más livianos y veloces del momento.
OpenOffice. Un paquete de software de oficina, de distribución libre y gratuita a través de
Internet, para hacer la competencia a versiones pagas populares, como Microsoft
Office. OpenOffice opera con código abierto y posee tanto un procesador de palabras (Writer), una hoja
de cálculo (Calc), un software de presentaciones y diapositivas (Impress), una base de datos (Base) y un
editor de fórmulas matemáticas (Math), como un editor de gráficos y efectos visuales (Draw).
Call Of Duty. Título de una gama de videojuegos bélicos, caracterizados por su narrativa en primera
persona y programados por la empresa Infinity Ward (aunque distribuidos por Activision). Fue uno de
los videojuegos más populares en su rama y a menudo ha sido criticada su carga de violencia y de
contenido político.
Skype. Un software diseñado para establecer comunicaciones telefónicas o videoconferencias
empleando la transmisión de datos de Internet. Permite al usuario establecer su agenda de contactos,
administrar diversas cuentas y emitir y recibir tanto señales de audio como de video en tiempo real.
Actualmente es propiedad de la empresa Microsoft.
MediaMonkey. Se trata de un programa reproductor multimedia: para archivos de audio
y de video, desarrollado por Ventis Media Inc. Permite organizar, etiquetar y reproducir archivos, y
opera en diversos sistemas operativos.
P á g i n a 6 | 30
Nombre: Isaac Carbajal Méndez

Adobe Ilustrator. Diseñado para la edición de gráficos y en representación virtual de un taller


de arte, este programa opera en base a un tablero de dibujo llamado “mesa de trabajo”, en el que se
lleva a cabo la labor de diseño artístico y creativo, ayudado por diversas herramientas digitales. Es
propiedad de Adobe Systems y se encuentra en el paquete Adobe Creative Cloud.
El software de sistema se distingue del software de aplicación en que no le ofrece al usuario la posibilidad
de cumplir sus tareas, sino que se ocupa de mantener funcionando el sistema informático. Dicho de otro
modo, se trata de un sistema operativo: un programa diseñado para hacer funcionar la máquina y
mantenerla encendida y lista, dispuesta para la ejecución de los programas de aplicación.
Este tipo de software suele venir preinstalado en los computadores, si bien puede ser reemplazado por
otros a voluntad del usuario. En ese caso el nuevo software de sistema deberá ser comprado e instalado
como con cualquier software de aplicación.
Algunos ejemplos de este tipo de programas son: Windows, Unix, Linux, iOs, etc.
Se conoce así a los lenguajes de programación, es decir, a los programas que sirven para diseñar otros
programas. Para ello el usuario o programador cuenta con diversas herramientas de asistencia en la
escritura del código de la nueva pieza de software, tales como funciones de prueba o interfaces
amigables.
Todos los programas existentes provienen de un software de programación, y cada software de este tipo
permite “escribir” un lenguaje o protocolo diferente, aunque muchos, claro, son el equivalente a
políglotas.
Algunos ejemplos de este tipo de software son: QBasic, Visual Pro, C++, Java

Genéricos o Hechos a la Medida


Sin lugar a dudas, la actividad empresarial siempre ha sido muy estudiada, pero cuanto más se estudia,
más se aprende de ella. Lo que está claro es que la actividad empresarial tiene una serie de
particularidades. Pero lo que se ha demostrado es que para que la empresa funcione bien y se cometan
los menores errores posibles es importante usar siempre un sistema de trabajo adecuado. Y para
conseguirlo, lo más común suele ser optar por el software empresarial.
A la hora de analizar el software empresarial nos damos cuenta de que existen dos opciones. Se puede
elegir entre el software empresarial genérico y a medida. Cada uno de ellos puede tener sus pros y
contras, por ese motivo cada empresa es necesario elegir la opción adecuada.
¿Cuáles son los principales tipos de software empresarial?
Sin lugar a dudas, actualmente hay dos opciones principales entre las que las empresas pueden optar.
Software empresarial a medida: es un tipo de software que se diseña pensando especialmente para el
cliente. Gracias a esa adaptación el software encaja perfectamente con las necesidades de la empresa.
P á g i n a 7 | 30
Nombre: Isaac Carbajal Méndez

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

se subdivide a su vez en las siguientes subcaracterísticas:


-Modularidad: Capacidad de un sistema o programa de ordenador (compuesto de componentes
discretos) que permite que un cambio en un componente tenga un impacto mínimo en los demás.
-Reusabilidad: Capacidad de un activo que permite que sea utilizado en más de un sistema software o
en la construcción de otros activos.
-Analizabilidad: Facilidad con la que se puede evaluar el impacto de un determinado cambio sobre el
resto del software, diagnosticar las deficiencias o causas de fallos en el software, o identificar las partes
a modificar.
-Capacidad para ser modificado: Capacidad del producto que permite que sea modificado de forma
efectiva y eficiente sin introducir defectos o degradar el desempeño.
-Capacidad para ser probado: Facilidad con la que se pueden establecer criterios de prueba para un
sistema o componente y con la que se pueden llevar a cabo las pruebas para determinar si se cumplen
dichos criterios.
Confiabilidad Capacidad de un sistema o componente para desempeñar las funciones especificadas,
cuando se usa bajo unas condiciones y periodo de tiempo determinados. Esta característica se subdivide
a su vez en las siguientes subcaracterísticas:
Madurez: Capacidad del sistema para satisfacer las necesidades de fiabilidad en condiciones normales.
Disponibilidad: Capacidad del sistema o componente de estar operativo y accesible para su uso cuando
se requiere.
Tolerancia a fallos: Capacidad del sistema o componente para operar según lo previsto en presencia de
fallos hardware o software.
Capacidad de recuperación: Capacidad del producto software para recuperar los datos directamente
afectados y reestablecer el estado deseado del sistema en caso de interrupción o fallo.
Eficaz Esta característica representa el desempeño relativo a la cantidad de recursos utilizados bajo
determinadas condiciones. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:
Comportamiento temporal: Los tiempos de respuesta y procesamiento y los ratios de throughput de un
sistema cuando lleva a cabo sus funciones bajo condiciones determinadas en relación con un banco de
pruebas (benchmark) establecido.
Utilización de recursos: Las cantidades y tipos de recursos utilizados cuando el software lleva a cabo su
función bajo condiciones determinadas.
Capacidad: Grado en que los límites máximos de un parámetro de un producto o sistema software
cumplen con los requisitos.
Uso adecuado: Representa la capacidad del producto software para proporcionar funciones que
satisfacen las necesidades declaradas e implícitas, cuando el producto se usa en las condiciones
especificadas. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

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.

Ciclo de vida del Software


El ciclo de vida del desarrollo de software (SDLC) es el proceso paso a paso de crear un nuevo software.
Los ingenieros y desarrolladores de software utilizan modelos de ciclo de vida para mapear las fases del
desarrollo de software, asegurando que el proceso sea eficiente y rentable. Este blog discutirá cada paso
del SDLC en profundidad y describirá diferentes modelos de uso común.
¿Qué es el Ciclo de Vida del Desarrollo de Software?
El ciclo de vida del desarrollo de software abarca el desarrollo de nuevo software desde la etapa de
planificación inicial hasta la implementación y el mantenimiento a largo plazo. Es una herramienta de
mapeo que ayuda a los desarrolladores de software a medida que crean un nuevo software.
Diferentes metodologías SDLC se adaptarán mejor a diferentes tipos de proyectos. Cada modelo enfatiza
los diferentes beneficios de SDLC.
¿Por qué es importante SDLC?
P á g i n a 19 | 30
Nombre: Isaac Carbajal Méndez

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

Minimiza los riesgos del proyecto


Resultados en un producto de alta calidad debido a la garantía de calidad continua
Económico
Desventajas
Poca flexibilidad
No produce primeros prototipos de software
Muy simplista
Calidad en el Mantenimiento del Software

En la ingeniería de software, el mantenimiento de software es la modificación de un producto de


software después de la entrega, para corregir errores, mejorar el rendimiento u otros atributos. El
mantenimiento de software es una de las actividades más comunes en la ingeniería de software.

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.

Tipos de mantenimiento de software

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.

Mantenimiento de software de una pc

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.

Mantenimiento de software ejemplos

Podemos decir que dentro de la ingeniería de software, el mantenimiento es un conjunto de actividades


a través de las cuales se busca mejorar determinados aspectos relevantes del software y además poder
detectar a tiempo cualquier evidencia de fallo o daño en sus componentes, en un establecimiento
concreto como la seguridad, productividad, funcionalidad, etc…. Existen cuatro tipos de mantenimiento:
correctivo, preventivo, adaptativo y perfecto. A continuación se presentan cinco ejemplos de cada tipo
de mantenimiento de software:

Correctivo

• Corrección de la mala postura al sentarse.


P á g i n a 26 | 30
Nombre: Isaac Carbajal Méndez

• El uso de un corrector cuando se comete un error de ortografía.


• Reanudar alguna actividad desde antes se estaba haciendo mal.
• Repare un objeto como una puerta que no se cierra correctamente.
• Corregir algunos datos como para corregir la cantidad de dinero que se le cobra por error por un
servicio.

Preventivo

• Las vacunas o el antivirus.


• El uso de protecciones al realizar un ejercicio, en particular un ejercicio extremo o peligroso.
• Usar el doble de material o reforzar cualquier parte de un edificio.
• Póngase un suéter antes de salir al frío para evitar un resfriado.
• Trae un paraguas por si llueve.

Adaptable

• Cámbiese de ropa cuando cambie de una región caliente a una fría.


• Cambio de personal cuando es muy viejo o no funciona según las necesidades.
• El uso de alguna herramienta para acelerar un proceso al estar en un entorno que necesita una
producción rápida.
• El cambio de teléfono celular puede considerarse como un cambio en el ambiente de trabajo y
se necesita un teléfono celular más eficiente.
• Cambio de lugar de trabajo por condiciones que puedan afectar mi salud.

Perfecto

• Mejoras constantes o versiones de un sistema operativo.


• Tomar vitaminas para mejorar algún proceso de nuestro cuerpo.
• Añadir más armas o mejoras en algún videojuego, añadiendo nuevas funcionalidades.
• El entrenamiento constante de un atleta para mejorar.
• Realice actividades que mejoren su técnica en algo.

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.

Proceso de mantenimiento de software

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:

• Los procesos primarios de Adquisición y Entrega pueden iniciar la actividad de Implementación


por medio de un acuerdo o contrato.
• El proceso de operación principal puede iniciar el proceso de mantenimiento del software
enviando una solicitud de modificación o un informe de problemas.
• Los procesos de soporte de documentación, gestión de configuración, control de calidad,
verificación, revisión conjunta, auditoría y resolución de problemas se utilizan en el proceso de
mantenimiento del software.
• La gestión, la infraestructura y la formación son procesos que el encargado del mantenimiento
emplea al iniciar un proyecto de mantenimiento.
• El proceso de mejora se centra en mejorar el proceso de mantenimiento para que la adaptación
sea apropiada para eventos no rutinarios como el mantenimiento de emergencia.

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.

• Incluye la modificación del código y la documentación debido a un problema o a la necesidad de


mantenimiento.
• El objetivo del Proceso de Mantenimiento es modificar un producto de software existente
preservando su integridad.
• Deben tenerse en cuenta los requisitos y restricciones implícitos impuestos al promotor original.

Calidad en la verificación y validación del software


La validación y verificación de software son dos procesos críticos en el desarrollo de software que se
utilizan para garantizar la calidad, confiabilidad y funcionalidad de las aplicaciones y sistemas
informáticos. Estos procesos son fundamentales para asegurarse de que el software cumple con los
requisitos y está libre de errores antes de su lanzamiento al mercado o su implementación en entornos
operativos.

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.

La combinación de validación y verificación de software es esencial para garantizar que un producto de


software sea robusto, funcione correctamente y sea seguro antes de su implementación o lanzamiento.
Estos procesos ayudan a reducir los costos y los riesgos asociados con problemas de software en
entornos de producción y a mantener la satisfacción del usuario final.
En SQS hemos colaborado con numerosas empresas líderes en diversos sectores, como por ejemplo la
industria de la salud (farmacia, dispositivos médicos, aplicaciones móviles para la salud….) o el
ferrocarril. Nuestros servicios han contribuido a garantizar la calidad y el éxito de sus productos de
software.
Nos convertimos en tu socio estratégico para la validación y verificación de software, proporcionando
soluciones confiables y efectivas que cumplen con los más altos estándares de calidad y seguridad en la
industria del software.

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

También podría gustarte