SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Tema 1
Mantenimiento del Software
El reto del mantenimiento
• Las tareas de mantenimiento comienzan
casi cuando se entrega el software
– En pocos días o semanas después de liberar el
software a los usuarios finales, podemos
tener un listado de errores y/o peticiones de
ajuste (incluso nuevos mejoras)
• Con el tiempo, la organización puede darse
cuenta de que emplea más tiempo y
dinero en ajustar el software existente que
en hacerlo de nuevo
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
¿Por qué ocurre?
Movilidad del personal
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
Tipos de mantenimiento
• Estas definiciones pueden cambiar,
según la fuente
Tipos de mantenimiento
• Mantenimiento correctivo: aquel que corrige los defectos
observados en los equipamientos o instalaciones. Es la
forma más básica de mantenimiento y consiste en
localizar averías o defectos y corregirlos o repararlos.
– Ejemplo: Las actualizaciones que el SO hace para
disminuir las vulnerabilidades
Tipos de mantenimiento
• Mantenimiento adaptativo: modificación del
producto software que se realiza tras su distribución
con el fin de adaptarlo a los cambios
– Ligado a los cambios en el SO, al tipo de arquitectura donde
se ejecuta, o al entorno de desarrollo.
• Cambios de para migrar de un SO a otro
• Cambio en la versión de la máquina virtual de Java
• Cambio en la versión del SO
• Cambio en el entorno de desarrollo de aplicaciones web: versión de
PHP, etc.
• Mantenimiento evolutivo: Actualizaciones de las
aplicaciones con el fin de mejorar la utilidad de las
mismas
Tipos de mantenimiento
• Mantenimiento preventivo: revisión
constante del software con el fin de
detectar posibles problemas que
puedan surgir en el futuro.
Tipos de mantenimiento
• Mantenimiento perfectivo: perfeccionamiento y
mejora de la calidad del software
Actividades de mantenimiento
Reingeniería
• Se produce dos niveles distintos de
abstracción.
– En el nivel de negocios, la reingeniería se
concentra en el proceso de negocios con la
intención de efectuar cambios que mejoren la
competitividad en algún aspecto de los
negocios.
– En el nivel del software, la reingeniería
examina los sistemas y aplicaciones de
información con la intención de
reestructurarlos o reconstruirlos de tal modo
que muestren una mayor calidad.
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
Reingeniería del Software
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
Reingeniería del Software
• Análisis de inventarios: Ordenar las
aplicaciones activas por tamaño, antigüedad,
utilidad, importancia – determinar el criterio –
para elegir aquellas más susceptibles de ser
objeto de procesos de reingeniería.
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
Reingeniería del Software
Reestructuración de documentos: La
documentación pobre es una
característica de muchos sistemas
heredados
• Vivir con lo que tenemos y no generar
más (porque consume tiempo)
• Documentar sólo las aplicaciones objeto
de cambios
• Documentar el sistema por completo
Reingeniería del Software
• Ingeniería inversa. Es un proceso de
recuperación de diseño.
• Reestructuración del código. Analizar
el código existente, se buscan fallos, se
reestructura (e incluso se reescribe en
un lenguaje de programación más
moderno), se revisa, se prueba y se
documenta.
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
Reingeniería del Software
• Reestructuración de los datos
– Comienza como una actividad de ingeniería
inversa
– Se revisa la calidad de las estructuras de
datos existentes
– Los cambios en los datos van a implicar
cambios en el código, casi
irremediablemente
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
Reingeniería del Software
• Ingeniería hacia adelante
– Volver a crear la aplicación existente
• Proceso de construir especificaciones de un
mayor nivel de abstracción partiendo del
código fuente de un sistema software o
cualquier otro producto
• El objetivo de la ingeniería inversa es obtener
información o un diseño a partir de un
producto, con el fin de determinar de qué
está hecho, qué lo hace funcionar y cómo
fue fabricado
• Se aplica en distintos niveles de
abstracción
Ingeniería inversa
• En algunos casos, la primera actividad de
la ingeniería inversa es obtener los
diagramas de clase UML
• Se sigue con la construcción del modelo de
datos
• Hay herramientas que pueden ayudar a
generar de forma automática, los
diagramas y modelos necesarios para
aplicar ingeniería inversa a partir del código
fuente
Ingeniería inversa
Ingeniería inversa
• Modificación el software para hacerlo más fácil
de entender y cambiar o menos susceptible de
incluir errores en cambios posteriores
• Lecagy code (código heredado). Problemas:
– Desarrollado con tecnologías y técnicas anticuadas
– Casi no hay documentación
– Quizá los autores ya no trabajan en la empresa
– El sistema no tiene por qué estar bien diseñado ni
programado, ni haber seguido un proceso de
ingeniería
Reestructuración del código
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
• Get/Set
– Hay un atributo público en una clase
– Solución: hacer el atributo privado y
proporcionar métodos de acceso al mismo
(get/set)
• Renombar métodos:
– double calcRngMaxPer() {.... }
– double calcularRangoMaximoPermitido() {.... }
• Detectar código replicado
Reestructuración del código
- Uso de constantes:
class CalculoSimple {
public static double CalcularCincunferencia (double
diametro)
{ return 3.14 * diametro; }
}
class CalculoSimple {
public final double PI = 3.14;
public static double CalcularCincunferencia (
double diametro)
{ return PI * diametro; }
}
Reestructuración del código
• A veces la reestructuración se debe dar a nivel
de diagrama
Reestructuración del código
Reestructuración del código
Reestructuración del código
Reestructuración del código
• Para arquitecturas cliente/servidor
– La funcionalidad de la aplicación migra a cada
computadora cliente
– Se implementan nuevas interfaces gráficas en
los clientes
– La funcionalidad de la base de datos se pasa
al servidor
– La funcionalidad especializada puede
quedarse en el servidor
– Se establecen nuevos requisitos de seguridad,
comunicación y control entre los sitios clientes
y el servidor
Ingeniería hacia adelante
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
• Para arquitecturas orientadas a objetos
– En algunos casos es mejor dejar las
aplicaciones creadas con métodos
convencionales como están.
– Se usa ingeniería inversa para obtener los
modelos de diseño de datos, de funciones
y comportamientos.
Ingeniería hacia adelante
Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman

Más contenido relacionado

Similar a Mantenimiento del software

T2 infoiii-s
T2 infoiii-sT2 infoiii-s
T2 infoiii-shome
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del softwareAbner Torres
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECmrojas_unitec
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Bruno
 
Insidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareInsidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareUniversidad De Cordoba
 
Reingeniería
Reingeniería Reingeniería
Reingeniería one_ramos
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Vanessa Toral Yépez
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9naviwz
 
Modelo lineal secuencial
Modelo lineal secuencialModelo lineal secuencial
Modelo lineal secuencialjenmer
 
Proyecto Modelo lineal o cascada de un negocio de venta de productos.
Proyecto Modelo lineal o cascada de un negocio de venta de productos.Proyecto Modelo lineal o cascada de un negocio de venta de productos.
Proyecto Modelo lineal o cascada de un negocio de venta de productos.JavierAlexanderLazar1
 

Similar a Mantenimiento del software (20)

Clase 11
Clase 11Clase 11
Clase 11
 
T2 infoiii-s
T2 infoiii-sT2 infoiii-s
T2 infoiii-s
 
T2 infoiii-s
T2 infoiii-sT2 infoiii-s
T2 infoiii-s
 
Modelos del ciclo de vida del software
Modelos del ciclo de vida del softwareModelos del ciclo de vida del software
Modelos del ciclo de vida del software
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
Trabajo espoch
Trabajo espochTrabajo espoch
Trabajo espoch
 
Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017Modelos de Desarrollo de Software - INF162 - 2017
Modelos de Desarrollo de Software - INF162 - 2017
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3
 
Insidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareInsidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De Software
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Reingeniería
Reingeniería Reingeniería
Reingeniería
 
Reingeniería
ReingenieríaReingeniería
Reingeniería
 
Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9Mantenimiento del software unidad # 9
Mantenimiento del software unidad # 9
 
Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9Mantenimiento del software_unidad___9
Mantenimiento del software_unidad___9
 
Modelo lineal secuencial
Modelo lineal secuencialModelo lineal secuencial
Modelo lineal secuencial
 
Inf 162
Inf 162Inf 162
Inf 162
 
Proyecto Modelo lineal o cascada de un negocio de venta de productos.
Proyecto Modelo lineal o cascada de un negocio de venta de productos.Proyecto Modelo lineal o cascada de un negocio de venta de productos.
Proyecto Modelo lineal o cascada de un negocio de venta de productos.
 
Jfcastillo
JfcastilloJfcastillo
Jfcastillo
 
Georgy jose sanchez
Georgy jose sanchezGeorgy jose sanchez
Georgy jose sanchez
 
Apuntes
ApuntesApuntes
Apuntes
 

Más de Manuel de la Villa

Presentación TFG Informes de Alta Automáticos
Presentación TFG Informes de Alta AutomáticosPresentación TFG Informes de Alta Automáticos
Presentación TFG Informes de Alta AutomáticosManuel de la Villa
 
Presentación programa Social Media UHU
Presentación programa Social Media UHUPresentación programa Social Media UHU
Presentación programa Social Media UHUManuel de la Villa
 
Marca personal para community managers
Marca personal para community managersMarca personal para community managers
Marca personal para community managersManuel de la Villa
 
Taller Facebook #SMUHU parte 2
Taller Facebook #SMUHU parte 2Taller Facebook #SMUHU parte 2
Taller Facebook #SMUHU parte 2Manuel de la Villa
 
Taller Facebook #SMUHU parte 1
Taller Facebook #SMUHU parte 1Taller Facebook #SMUHU parte 1
Taller Facebook #SMUHU parte 1Manuel de la Villa
 
Taller de Presentaciones efectivas
Taller de Presentaciones efectivasTaller de Presentaciones efectivas
Taller de Presentaciones efectivasManuel de la Villa
 
Presentacion Grado en Ingeniería Informática UHU
Presentacion Grado en Ingeniería Informática UHUPresentacion Grado en Ingeniería Informática UHU
Presentacion Grado en Ingeniería Informática UHUManuel de la Villa
 
Curso personal branding profesores
Curso personal branding profesoresCurso personal branding profesores
Curso personal branding profesoresManuel de la Villa
 
Experiences on integrating explicit knowledge on information access tools in ...
Experiences on integrating explicit knowledge on information access tools in ...Experiences on integrating explicit knowledge on information access tools in ...
Experiences on integrating explicit knowledge on information access tools in ...Manuel de la Villa
 
A Biomedical Information Retrieval System based on Clustering for Mobile Dev...
A Biomedical Information Retrieval System  based on Clustering for Mobile Dev...A Biomedical Information Retrieval System  based on Clustering for Mobile Dev...
A Biomedical Information Retrieval System based on Clustering for Mobile Dev...Manuel de la Villa
 
A critical and comparative study about ISO 9001, CMMI and ISO 15504
A critical and comparative study about  ISO 9001, CMMI and ISO 15504A critical and comparative study about  ISO 9001, CMMI and ISO 15504
A critical and comparative study about ISO 9001, CMMI and ISO 15504Manuel de la Villa
 

Más de Manuel de la Villa (17)

Presentación TFG Informes de Alta Automáticos
Presentación TFG Informes de Alta AutomáticosPresentación TFG Informes de Alta Automáticos
Presentación TFG Informes de Alta Automáticos
 
Presentación programa Social Media UHU
Presentación programa Social Media UHUPresentación programa Social Media UHU
Presentación programa Social Media UHU
 
Marca personal para community managers
Marca personal para community managersMarca personal para community managers
Marca personal para community managers
 
Taller Facebook #SMUHU parte 2
Taller Facebook #SMUHU parte 2Taller Facebook #SMUHU parte 2
Taller Facebook #SMUHU parte 2
 
Taller Facebook #SMUHU parte 1
Taller Facebook #SMUHU parte 1Taller Facebook #SMUHU parte 1
Taller Facebook #SMUHU parte 1
 
Personal branding
Personal brandingPersonal branding
Personal branding
 
Taller de Presentaciones efectivas
Taller de Presentaciones efectivasTaller de Presentaciones efectivas
Taller de Presentaciones efectivas
 
Presentacion Grado en Ingeniería Informática UHU
Presentacion Grado en Ingeniería Informática UHUPresentacion Grado en Ingeniería Informática UHU
Presentacion Grado en Ingeniería Informática UHU
 
Curso personal branding profesores
Curso personal branding profesoresCurso personal branding profesores
Curso personal branding profesores
 
Herramientas web 2.0 parte 2
Herramientas web 2.0 parte 2Herramientas web 2.0 parte 2
Herramientas web 2.0 parte 2
 
Herramientas web 2.0 Parte 1
Herramientas web 2.0 Parte 1Herramientas web 2.0 Parte 1
Herramientas web 2.0 Parte 1
 
MVilla IUI 2012 Lisbon
MVilla IUI 2012 LisbonMVilla IUI 2012 Lisbon
MVilla IUI 2012 Lisbon
 
Experiences on integrating explicit knowledge on information access tools in ...
Experiences on integrating explicit knowledge on information access tools in ...Experiences on integrating explicit knowledge on information access tools in ...
Experiences on integrating explicit knowledge on information access tools in ...
 
A Biomedical Information Retrieval System based on Clustering for Mobile Dev...
A Biomedical Information Retrieval System  based on Clustering for Mobile Dev...A Biomedical Information Retrieval System  based on Clustering for Mobile Dev...
A Biomedical Information Retrieval System based on Clustering for Mobile Dev...
 
Deconstructing freebase
Deconstructing freebaseDeconstructing freebase
Deconstructing freebase
 
A critical and comparative study about ISO 9001, CMMI and ISO 15504
A critical and comparative study about  ISO 9001, CMMI and ISO 15504A critical and comparative study about  ISO 9001, CMMI and ISO 15504
A critical and comparative study about ISO 9001, CMMI and ISO 15504
 
Tesina08
Tesina08Tesina08
Tesina08
 

Último

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 

Último (20)

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

Mantenimiento del software

  • 2. El reto del mantenimiento • Las tareas de mantenimiento comienzan casi cuando se entrega el software – En pocos días o semanas después de liberar el software a los usuarios finales, podemos tener un listado de errores y/o peticiones de ajuste (incluso nuevos mejoras) • Con el tiempo, la organización puede darse cuenta de que emplea más tiempo y dinero en ajustar el software existente que en hacerlo de nuevo Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 3. ¿Por qué ocurre? Movilidad del personal Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 4. Tipos de mantenimiento • Estas definiciones pueden cambiar, según la fuente
  • 5. Tipos de mantenimiento • Mantenimiento correctivo: aquel que corrige los defectos observados en los equipamientos o instalaciones. Es la forma más básica de mantenimiento y consiste en localizar averías o defectos y corregirlos o repararlos. – Ejemplo: Las actualizaciones que el SO hace para disminuir las vulnerabilidades
  • 6. Tipos de mantenimiento • Mantenimiento adaptativo: modificación del producto software que se realiza tras su distribución con el fin de adaptarlo a los cambios – Ligado a los cambios en el SO, al tipo de arquitectura donde se ejecuta, o al entorno de desarrollo. • Cambios de para migrar de un SO a otro • Cambio en la versión de la máquina virtual de Java • Cambio en la versión del SO • Cambio en el entorno de desarrollo de aplicaciones web: versión de PHP, etc. • Mantenimiento evolutivo: Actualizaciones de las aplicaciones con el fin de mejorar la utilidad de las mismas
  • 7. Tipos de mantenimiento • Mantenimiento preventivo: revisión constante del software con el fin de detectar posibles problemas que puedan surgir en el futuro.
  • 8. Tipos de mantenimiento • Mantenimiento perfectivo: perfeccionamiento y mejora de la calidad del software
  • 10. Reingeniería • Se produce dos niveles distintos de abstracción. – En el nivel de negocios, la reingeniería se concentra en el proceso de negocios con la intención de efectuar cambios que mejoren la competitividad en algún aspecto de los negocios. – En el nivel del software, la reingeniería examina los sistemas y aplicaciones de información con la intención de reestructurarlos o reconstruirlos de tal modo que muestren una mayor calidad. Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 11. Reingeniería del Software Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 12. Reingeniería del Software • Análisis de inventarios: Ordenar las aplicaciones activas por tamaño, antigüedad, utilidad, importancia – determinar el criterio – para elegir aquellas más susceptibles de ser objeto de procesos de reingeniería. Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 13. Reingeniería del Software Reestructuración de documentos: La documentación pobre es una característica de muchos sistemas heredados • Vivir con lo que tenemos y no generar más (porque consume tiempo) • Documentar sólo las aplicaciones objeto de cambios • Documentar el sistema por completo
  • 14. Reingeniería del Software • Ingeniería inversa. Es un proceso de recuperación de diseño. • Reestructuración del código. Analizar el código existente, se buscan fallos, se reestructura (e incluso se reescribe en un lenguaje de programación más moderno), se revisa, se prueba y se documenta. Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 15. Reingeniería del Software • Reestructuración de los datos – Comienza como una actividad de ingeniería inversa – Se revisa la calidad de las estructuras de datos existentes – Los cambios en los datos van a implicar cambios en el código, casi irremediablemente Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 16. Reingeniería del Software • Ingeniería hacia adelante – Volver a crear la aplicación existente
  • 17. • Proceso de construir especificaciones de un mayor nivel de abstracción partiendo del código fuente de un sistema software o cualquier otro producto • El objetivo de la ingeniería inversa es obtener información o un diseño a partir de un producto, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado • Se aplica en distintos niveles de abstracción Ingeniería inversa
  • 18. • En algunos casos, la primera actividad de la ingeniería inversa es obtener los diagramas de clase UML • Se sigue con la construcción del modelo de datos • Hay herramientas que pueden ayudar a generar de forma automática, los diagramas y modelos necesarios para aplicar ingeniería inversa a partir del código fuente Ingeniería inversa
  • 19.
  • 21. • Modificación el software para hacerlo más fácil de entender y cambiar o menos susceptible de incluir errores en cambios posteriores • Lecagy code (código heredado). Problemas: – Desarrollado con tecnologías y técnicas anticuadas – Casi no hay documentación – Quizá los autores ya no trabajan en la empresa – El sistema no tiene por qué estar bien diseñado ni programado, ni haber seguido un proceso de ingeniería Reestructuración del código Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 22. • Get/Set – Hay un atributo público en una clase – Solución: hacer el atributo privado y proporcionar métodos de acceso al mismo (get/set) • Renombar métodos: – double calcRngMaxPer() {.... } – double calcularRangoMaximoPermitido() {.... } • Detectar código replicado Reestructuración del código
  • 23. - Uso de constantes: class CalculoSimple { public static double CalcularCincunferencia (double diametro) { return 3.14 * diametro; } } class CalculoSimple { public final double PI = 3.14; public static double CalcularCincunferencia ( double diametro) { return PI * diametro; } } Reestructuración del código
  • 24. • A veces la reestructuración se debe dar a nivel de diagrama Reestructuración del código
  • 28. • Para arquitecturas cliente/servidor – La funcionalidad de la aplicación migra a cada computadora cliente – Se implementan nuevas interfaces gráficas en los clientes – La funcionalidad de la base de datos se pasa al servidor – La funcionalidad especializada puede quedarse en el servidor – Se establecen nuevos requisitos de seguridad, comunicación y control entre los sitios clientes y el servidor Ingeniería hacia adelante Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman
  • 29. • Para arquitecturas orientadas a objetos – En algunos casos es mejor dejar las aplicaciones creadas con métodos convencionales como están. – Se usa ingeniería inversa para obtener los modelos de diseño de datos, de funciones y comportamientos. Ingeniería hacia adelante Fuente: Ingeniería del Software. Un enfoque Práctico. R.S. Pressman