Está en la página 1de 13

Las claves de

Mantenimiento de
Software

Nombre: Inguer Escudero


Asignatura: Seguridad y Auditoría Informática
Profesor: Ademar Araya
Índice
Introducción ............................................................................................................. 3
Desarrollo ................................................................................................................ 4
1. Describir las técnicas entendimiento del software: ........................................ 4
a. Tipos de pruebas ....................................................................................... 4
b. Pruebas mientras la aplicación está en producción y no se puede detener4
2. Describir los procedimientos de análisis de impacto: .................................... 5
a. Alcance de la mantención .......................................................................... 5
b. Estimación y métodos de estimación de mantenciones de software ......... 5
c. Análisis de costo beneficio de la mantención a implementar ..................... 9
3. Describir los procedimientos de mantenibilidad (maintainability):.................. 9
a. Características de mantenibilidad .............................................................. 9
b. Mejoramiento de mantenibilidad de sistema ............................................ 10
4. Describir los siguientes procesos: ............................................................... 10
a. Introducción en procesos de mantención ................................................. 10
b. Diferencias y similitudes con el proceso de desarrollo de software ......... 10
5. Defina: ......................................................................................................... 11
a. Outsourcing .............................................................................................. 11
b. Contrato y servicio.................................................................................... 11
c. SLAs......................................................................................................... 11
6. Describa métricas de desarrollo de software ............................................... 11
a. Métricas de mantención de software ........................................................ 11
Conclusión............................................................................................................. 12
Bibliografía ............................................................................................................ 13

2
Introducción

En el siguiente informe se describirán distintos conceptos relevantes para el


conocimiento de cualquier individuo que desee realizar mantenimiento de software.
Se describirán las técnicas de entendimiento de software junto con los tipos de
pruebas y cuales hacer en una mantención sin detener el software.
Se describirá el alcance, estimación y métodos, análisis de costo-beneficio de la
mantención.
Con respecto a los procedimientos de mantenibilidad se verán sus características y
el mejoramiento de la mantención de sistemas.
Como muchos sabrán, la mantención es una de las etapas del ciclo de vida del
software que solo llega a su fin si el producto se descontinua. La importancia de la
mantención pasó de un 25%-30% a un 90% en los últimos años, por lo cual es
primordial conocer estos términos. Para expresar la relevancia de realizar una
buena mantención, se realizará una comparación de diferencias y similitudes de
ésta con el proceso de desarrollo de software y como no puede faltar, se definirán
conceptos de outsourcing, SLA, etc. Para conocer qué se puede hacer cuando la
empresa requiere de apoyo en ciertos aspectos.
Finalizando, se describirán las métricas de desarrollo de software, las cuales aun
se mantienen con la palabra original del idioma inglés. Sus descripciones fueron
traducidas al español por el autor de este informe.

3
Desarrollo
1. Describir las técnicas entendimiento del software:
a. Tipos de pruebas: Se pueden realizar pruebas funcionales para verificar
que cada función de la aplicación de software funcione de acuerdo a lo
especificado en los requisitos. Netamente muestran lo que hace el
sistema.
También como las pruebas funcionales, existen las pruebas que se
ocupan de qué tan bien funciona el sistema, estas se llaman pruebas no
funcionales. Ayudan a estimar la preparación de un sistema de acuerdo
con los diferentes criterios que no están cubiertos por las pruebas
funcionales.
Por otro lado, tenemos las pruebas estructurales, quienes verifican la
implementación del programa o código a través de pruebas de la
estructura del sistema de software o sus componentes.
Finalizando, se pueden realizar pruebas relacionadas con el cambio,
estas garantizan que los errores erradicados previamente se hayan
solucionado y para detectar errores que pueden haber aparecido
accidentalmente en una nueva versión. Tiene dos subtipos de pruebas:
Pruebas de confirmación (Re-pruebas) y Pruebas de regresión.

b. Pruebas mientras la aplicación está en producción y no se puede detener:


Estas se llaman pruebas de rendimiento las cuales sirven para ver las
condiciones del sistema, validar y verificar otros atributos de la calidad de
éste como la escalabilidad, fiabilidad y uso de los recursos.
• Pruebas de carga
• Pruebas de estrés
• Pruebas de estabilidad (soak testing)
• Prerrequisitos para las pruebas de carga

4
2. Describir los procedimientos de análisis de impacto:
a. Alcance de la mantención: Liberación de recursos, ahorro económico.
Equipos en buen estado y en óptimo rendimiento reduce las inversiones
futuras. Conocimiento actualizado con los últimos servicios, avances y
soluciones. Disminución de fallos en los equipos, en el correo corporativo,
malas conexiones a internet, virus o pérdidas de información. Disminuye
posibles riesgos, asegura el buen estado y funcionamiento de los equipos
y evita interrumpir el trabajo de los empleados. Realizar y revisar copias
de seguridad periódicamente evitará problemas en el futuro y la empresa
se mantiene dentro de los avances, cambios y acciones tecnológicas del
sector y la competencia. (unitel, 2008)
b. Estimación y métodos de estimación de mantenciones de software:
1) Un solo punto: En esta técnica se asigna únicamente un solo
estimado a cada actividad, usualmente por una sola persona. Una vez
que se tienen los estimados de cada actividad, se puede calcular la
duración total.
2) Tres puntos: Si tenemos tres estimados podemos asignar a cada
actividad una estimación pesimista, más probable y optimista, luego
podemos determinar el estimado de la actividad por medio de una
formula.
La estimación de tres puntos no es campo exclusivo de la Ingeniería
del software, de hecho, el Project Management Institute (PMI) la
describe en su guía del PMBOK 6 como un método de estimación.
Siguiendo el estándar del PMI, la siguiente formula se usa para estimar
la duración de una actividad:

Duración esperada = (Pesimista + (4 x Más probable) + Optimista) / 6

Desviación estándar de la actividad: (Pesimista – Optimista) / 6

3) Método Wideband Delphi: Se trata de una técnica de estimación de


software en la que interviene un grupo de expertos. A diferencia de
otras técnicas de estimación por juicio de expertos, los integrantes del
grupo no tienen comunicación entre sí mientras están elaborando sus
estimados, y se los entregan únicamente a un coordinador.

5
Imagen elaborada por: (PMO, 2018)
4) Métodos de estimación de software por analogía: La estimación
por analogía tiene como premisa que la organización debe contar con
una base de datos en la cual se registre la información necesaria sobre
las características, duración real y costo real de proyectos previos.
5) Descomposición Top-Down: Aplicando datos que se obtienen de
proyectos previos aplicada a una EDT de alto nivel se puede hacer
estimados para cada elemento de trabajo para determinar un esfuerzo
y costo de forma general.

6
6) Descomposición Bottom-Up: Parecida a la anterior con la diferencia
de que ésta se analizan los proyectos que ya fueron aprobados en el
pasado y que cuentas con presupuesto para todo el análisis que
requiere realizar este tipo de estimación.
Cada tarea de la EDT se estima individualmente, para luego ir
agregando los estimados y tener números de mayor nivel. Al aplicar
esta técnica obtendrás estimados de mayor exactitud que con el
método Top-Down, sin embargo, la inversión de tiempo es mayor.
7) COCOMO II: Siglas de Constructive Cost Model (modelo constructivo
de costos) utiliza tres submodelos: Composición de aplicaciones se
utiliza para analizar el software a desarrollar y modificar, identificando
componentes, subcomponentes, dividiéndolos y clasificándolos.
Diseño inicial (diseño temprano) y Modelos post arquitectura producen
la estimación con las siguientes ecuaciones:
Esfuerzo expresado en personas meses
(E)= a (Kl)^b x m (X)
donde:

a, b: Constantes con valores asignados según el modelo que


se esté utilizando (Diseño inicial o post arquitectura).
Kl: Líneas de código (em miles).
m (X): Multiplicador que depende de 15 atributos.

Tiempo (Calendario) del proyecto (Tdev) = c (E)^d

donde:

c, d: Constantes con valores asignados según el modelo que se esté


utilizando (Diseño inicial o post arquitectura).
E: Esfuerzo requerido (Calculado con la primera ecuación)

Número de personas requeridas en el equipo


(P) = E / Tdev

La variable clave para lograr una estimación acertada en el modelo,


es la de medición del tamaño del software a desarrollar. Para la
medición del tamaño, COCOMO propone dos enfoques, el conteo de
líneas de código y el conteo de puntos de función.

7
8) Puntos de función IFPUG:

Imagen elaborada por: (PMO, 2018)


9) Punto de función Cosmic: Es un método de análisis de puntos de
función de segunda generación, en el cual se determina el tamaño
funcional del software a partir del número de interacciones entre los
procesos funcionales.
10) Planning Poker: Es una técnica de estimación utilizada en proyectos
ejecutados con metodologías ágiles, como por ejemplo Scrum. Es una
técnica para medir los elementos de pila de producto (Product
Backlog) en un proyecto ágil, que no son más que el trabajo a realizar
para desarrollar el software desglosado en componentes del software,
funcionalidades específicas, en inclusive partes de funcionalidades.
Como se juega al Planning Poker:

1. Todo el equipo ágil participa en la sesión. Cada integrante recibe


un manojo de cartas de Planning Poker.
2. El dueño de producto (Product Owner) presenta el elemento del
Product Backlog que se van a estimar.
3. El equipo de desarrollo discute el elemento a estimar y realiza
preguntas al dueño de producto. Este último responde a las
preguntas.
4. Cada estimador en privado selecciona una carta que representará
su estimado.
5. Se exponen simultáneamente las cartas seleccionadas por cada
estimador.
6. Si todos han seleccionado la misma carta, se habrá logrado el
consenso. El resultado se le asigna como estimación al elemento
de Product Backlog.
7. Si los estimados no fueron los mismos, se realiza una discusión
enfocada en exponer las premisas tomadas en cada estimación o
malos entendidos. Por lo general se comienza por preguntar al
estimador más alto y al más bajo que expliquen y justifiquen sus
estimados.

8
8. Luego de la discusión se regresa al paso 3. El ciclo se repetirá
hasta lograr el consenso.
(PMO, 2018)
c. Análisis de costo beneficio de la mantención a implementar:
El análisis costo-beneficio nos dice que, de las soluciones propuestas cuál
de ellas nos dará el beneficio neto más grande.
Para realizar un buen análisis de costo-beneficio se debe:
1. Examinar las necesidades, considerar las limitaciones y formular
objetivos y metas claras.
2. Establecer el punto de vista desde el cual los costos y beneficios serán
analizados.
3. Reunir datos provenientes de actores importantes con cada una de
sus decisiones.
4. Determinar los costos relacionados con cada factor. Algunos costos
serán exactos, mientras que otros deberán ser estimados.
5. Suma los costos totales para cada decisión propuesta.
6. Determinar los beneficios en dólares para cada decisión.
7. Comparar las cifras de los costos y beneficios totales, relacionándolos
de forma que los beneficios sean el numerador y los costos sean el
denominador, es decir, beneficios- costos.
8. Comparar las relaciones de beneficios a costos para las diferentes
decisiones propuestas. La mejor solución, en términos financieros, es
aquella con la relación más alta de beneficios a costos.
(Solutions, -)
3. Describir los procedimientos de mantenibilidad (maintainability):
a. Características de mantenibilidad: 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 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.

9
• 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.
(ISO25000, 2019)
b. Mejoramiento de mantenibilidad de sistema: La optimización de la
mantenibilidad depende de:
• Equipos
• Modularidad
• Estandarización
• Métodos de ubicación de fallas
• Equipos de prueba
• Accesibilidad
• Disponibilidad de repuestos
• Destreza y calidad de mantenedores
• Herramientas de trabajo
• Equipos de levantamiento y materiales
• Ambiente y espacio de trabajo
• Procedimientos de control de trabajo
(Genesis, 2014)
4. Describir los siguientes procesos:
a. Introducción en procesos de mantención: Según el estándar IEEE 1219,
define que el mantenimiento del software como “la modificación de un
producto software después de haber sido entregado (a los usuarios o
clientes) con el fin de corregir defectos, mejorar el rendimiento y otros
atributos, o adaptarlo a un cambio en el entorno”.
b. Diferencias y similitudes con el proceso de desarrollo de software: La
diferencia más notoria es que la mantención se realiza una vez ya
terminado el proceso de desarrollo de este y posterior a la entrega del
producto software.
En ambos procesos se identifica y clasifica el problema, se requiere un
análisis, un diseño, una implementación, pruebas del sistema, pruebas de
aceptación y finalmente la liberación del producto.
(Osorio, 2015)

10
5. Defina:
a. Outsourcing: Es la unión entre las palabras out (fuera) y source (fuente),
esto se puede traducir como subcontratación o externalización. Se refiere
a la situación de una empresa la cual contrata los servicios de un tercero
para desempeñar una o varias tareas específicas por un período de
tiempo determinado. (marketing, 2017)
b. Contrato y servicio: Una vez elegida la empresa que más se adapte a los
requerimientos se construye un documento que contendrá lo acordado
por ambas partes en cuanto a obligaciones, restricciones y otros aspectos
legales respecto al servicio que se está contratando.
c. SLAs: Siglas que significan Acuerdos de niveles de servicios, es un
contrato escrito entre proveedor de servicio y su cliente con el objetivo de
fijar el nivel acordado para la calidad de dicho servicio. Un SLA identifica
y define las necesidades del cliente a la vez que acota sus expectativas
de servicio en relación a la capacidad del proveedor, proporciona un
marco de entendimiento, simplifica asuntos complicados, reduce las
áreas de conflicto y favorece el diálogo ante la disputa. También
constituye un punto de referencia para el mejoramiento continuo, ya que
la medición adecuada de los niveles de servicio es el primer paso para
mejorarlos y de esa forma aumentar los índices de calidad.
(Lectura, 2013)
6. Describa métricas de desarrollo de software
a. Métricas de mantención de software
i. Analyzability: El esfuerzo necesario para diagnosticar las
deficiencias o causas de los fallos, por otro lado, también es la
identificación de las partes que deben ser modificadas.
ii. Changeability: El esfuerzo necesario para eliminar fallas de
modificaciones o para realizar cambios en el ambiente.
iii. Stability: El riesgo de efectos inesperados de una modificación.
iv. Testability: El esfuerzo necesario para validar el software
modificado.
(Natalia Juristo, 2005)

11
Conclusión
Con el desarrollo del informe, se espera haber entregado conocimiento importante
de manera precisa y concreta para realizar una mantención de software.

12
Bibliografía
Genesis. (22 de Abril de 2014). mantenibilidaddiuteblog. Obtenido de
www.mantenibilidadiuteblog.blogspot.com:
http://mantenibilidadiuteblog.blogspot.com
ISO25000. (- de - de 2019). iso25000. Obtenido de www.iso25000.com:
https://iso25000.com/index.php/normas-iso-25000/iso-25010/26-
mantenibilidad
Lectura, S. d. (21 de Mayo de 2013). evaluandosoftware. Obtenido de
www.evaluandosoftware.com: https://www.evaluandosoftware.com/que-es-
un-acuerdo-de-nivel-de-servicios-o-sla/
marketing. (19 de Julio de 2017). tuyu. Obtenido de www.tuyu.es:
https://www.tuyu.es/que-es-outsourcing/amp/
Natalia Juristo, A. M. (17 de Octubre de 2005). Técnicas de Evaluación de Software
Versión 12.0. Obtenido de repositorio.utp.edu.co:
http://repositorio.utp.edu.co/dspace/bitstream/handle/11059/2737/0053L864
e_anexo.pdf;jsessionid=F25588A0055E1E89136A3BD19AA9F827?sequen
ce=2
Osorio, J. (19 de Abril de 2015). prezi. Obtenido de www.prezi.com:
https://prezi.com/ocdoch_y9xiy/unidad-3-el-proceso-de-mantenimiento-de-
software/
PMO. (27 de Agosto de 2018). PMOinformática. Obtenido de
www.pmoinformatica.com:
http://www.pmoinformatica.com/2018/08/tecnicas-estimacion-software.html
Solutions, T. S. (- de - de -). tcass. Obtenido de www.tcass.com:
https://www.tcass.com/pdf/Como_analizar_un_buen_analisis_Costo_Benefi
cio_Riesgo.pdf
unitel. (3 de Julio de 2008). Obtenido de www.unitel-tc.com: https://unitel-
tc.com/razones-de-la-importancia-de-buen-servicio-de-mantenimiento-
informatico/

13

También podría gustarte