Está en la página 1de 31

CONSTRUCCIÓN DE

SOFTWARE
ING. ROSARIO OSORIO CONTRERAS
rosorio@continental.edu.pe
Propósito

Identificar los principales


aspectos del mantenimiento
de software
Temas

Mantenimiento de software
Gifhub
Caso Practico
Mantenimiento
de software
Mantenimiento de
Software
• Según el estándar IEEE 1219 [IEEE,
1993] define 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 u
otros atributos, o adaptarlo a un
cambio en el entorno”.
Mantenimiento de Software

Múltiples estudios señalan que


el mantenimiento es la parte
más costosa del ciclo de vida
del software. Estadísticamente
está comprobado que el coste
de mantenimiento de un
producto software a lo largo de
toda su vida útil supone mas
del doble que los costes de su
desarrollo
Costes Intangibles de Software
Insatisfacción del cliente cuando no se
puede atender en un tiempo
aceptable una petición de reparación
o modificación que parece razonable.

Los errores ocultos introducidos al


cambiar el software durante el
mantenimiento reducen la calidad
global del producto.
Fuentes del mantenimiento de software

Las principales causas u orígenes de las actividades
 de mantenimiento pertenecen a 3 grupos.
• Eliminación de defectos de software
• Adaptar el software para migrar a nuevas
plataformas, funcionar con hardware y software
• Incluir mejoras en el diseño o implementar
nuevas funcionalidades
Definiciones de mantenimiento de
software
Mantenibilidad

• Capacidad de un producto software de ser modificado. Estas


modificaciones incluyen correcciones, mejoras o adaptaciones a cambios
en el entorno, los requisitos o las especificaciones funcionales

Efecto Dominó

• Un determinado cambio en un producto de software puede generar un


efecto dominó es decir puede repercutir el un cambio adicional a otro
módulo del sistema
Definiciones de mantenimiento de
software
Estabilidad de un diseño de software

• Capacidad de resistencia al efecto dominó que tendrá un sistema


de software derivado de dicho diseño cuando es modificado

Sistema heredado

• Es un método, tecnología, computador o aplicación antigua que


continua en uso porque aún satisface las necesidades de los
usuarios
Tipos de mantenimiento

Adaptativ Preventiv
Correctivo Perfectivo
o o

Cambios de
Fallos, corregir Mejoras de Nuevas
entorno/softwar
defectos rendimiento funcionalidades
e
Mantenimiento
correctivo
• Tiene como objetivo localizar y
eliminar las fallas en el software.
Estos fallos pueden ser:
Procesamiento, rendimiento, 7rog
ramación y/o documentación
(manuales).
Mantenimiento
Adaptativo
• Tiene como objetivo adaptar el
software debido a un cambio de e
ntorno de datos o de procesos
(migración de plataforma).
Mantenimiento
Preventivo
•  Es la modificación del software
para mejorar sus propiedades
(calidad, mantenibilidad) sin
alterar sus funciones principales
Mantenimiento
perfectivo
• Conjunto de actividades para
mejorar y añadir nuevas
funcionalidades al software
requeridas por el usuario
Actividades de mantenimiento

Comprensión del
software y de los
cambios a realizar Realización de
(Comprender) pruebas (Comprobar)

Modificación del
software (Corregir)
Actividades de Mantenimiento
Dificultades del mantenimiento

El proceso de mantenimiento no debe deteriorar la calidad del software. ¿


Cómo debe mantenerse el software para preservar su fiabilidad ?

Los usuarios participan Problemas de gestión.


poco en el desarrollo del Existe una visión de que
Los sistemas que son
software, con el riesgo el trabajo de
mantenidos son cada
de que no satisfaga sus mantenimiento es de
vez más difíciles de
necesidades y una escala inferior al
cambiar.
aumenten los esfuerzos trabajo de desarrollo de
en el mantenimiento. software
Soluciones técnicas al problema del
mantenimiento
Herramienta Método

Formateador Reingeniería

Generador de datos prueba Ingeniería inversa

Depurador interactivo Reestructuración del software

Transformación de programas
Mantenibilidad
También denominada facilidad de mantenimiento del software, se define
como la medida cualitativa de la facilidad de comprender, corregir, adaptar
y/o mejorar el software.

Factores que influyen en la mantenibilidad

• Planificación del mantenimiento


• Documentación disponible de los casos de prueba
• Facilidad de uso del sistema
• Empleo de lenguajes de programación y sistemas operativos estandarizados
Plantillas para la documentación de
cambios de software
GibHub
GitHub
• GitHub es un servicio basado en la
nube que aloja un sistema de
control de versiones (VCS) llamado
Git. Éste permite a los
desarrolladores colaborar y realizar
cambios en proyectos compartidos,
a la vez que mantienen un
seguimiento detallado de su
progreso.
¿Qué es control de versiones?
• Es un sistema que ayuda a rastrear y gestionar los cambios realizados
en un archivo o conjunto de archivos. 
• El control de versiones permite a los desarrolladores trabajar en
proyectos simultáneamente. Les permite hacer tantos cambios como
necesiten sin infringir o retrasar el trabajo de sus colegas.
Términos Utilizados
Repository: Son carpetas de proyecto. Un repositorio contiene todos los
archivos de un proyecto (incluyendo la documentación), y
almacena el histórico de modificaciones de cada archivo.

Commit Es la confirmación de una modificación individual de un


archivo

Push Envia todos los archivos confirmados con commit a un


repositorio en la nube, para que los demás colaboradores
puedan hacer uso del archivo
Términos Utilizados

Pull Trae los cambios del servidor remoto y se combina con la copia
local. Es decir si un archivo se viene trabajando remotamente y
sufrió un cambio esta copia debe de pasar también a tu equipo
local

Issue Son sugerencias de mejora, tareas o cuestiones relacionadas con el


repositorio o el proyecto.

Pull Son cambios propuestos para un repositorio que un usuario ha


enviado, y que pueden ser aceptados o rechazados por los
request colaboradores del repositorio
Términos Utilizados

Branch Es una versión paralela de un repositorio. Está contenido


dentro del repositorio, pero no afecta al branch principal o
master, permitiéndote trabajar libremente sin estropear la
versión “real”

Clone Es la copia de un repositorio que se aloja en tu ordenador, en


lugar de en un servidor en alguna parte, o el acto de realizar
esa copia. En tu clone puedes editar los archivos en tu editor
preferido y utilizar Git para llevar un registro de esas
modificaciones sin necesidad de tener conexión a internet.
Caso Práctico
Reflexionemos
ucontinental.edu.pe

También podría gustarte