El documento habla sobre el mantenimiento del software. Explica que el mantenimiento comienza casi de inmediato después del lanzamiento del software debido a errores y mejoras solicitadas. Con el tiempo, las organizaciones se dan cuenta que gastan más tiempo y dinero en mantener el software existente que en desarrollar uno nuevo. Luego describe los diferentes tipos de mantenimiento y las actividades involucradas como la reingeniería, la cual incluye análisis de inventarios, reestructuración de documentos e ingeniería inversa y hacia adelante.
El proceso de desarrollo de software “es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo".
La Ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería. Define paradigmas de desarrollo estructurado como base a seguir en un proyecto de Software. Si ninguno de estos paradigmas se adecua al problema por resolver, entonces el desarrollador se verá obligado a combinar los paradigmas o definir uno nuevo.
Dos TFGs que trabajan en la creación de un corpus de hojas de evolución anotadas por polaridad, un clasificador para detectar polaridad de futuras notas y un sistema generador de resúmenes en base a plantillas como 'baseline' para la generación automática de Informes de Alta
El proceso de desarrollo de software “es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo".
La Ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software y el estudio de estos enfoques, es decir, la aplicación de la ingeniería al software. Integra matemáticas, ciencias de la computación y prácticas cuyos orígenes se encuentran en la ingeniería. Define paradigmas de desarrollo estructurado como base a seguir en un proyecto de Software. Si ninguno de estos paradigmas se adecua al problema por resolver, entonces el desarrollador se verá obligado a combinar los paradigmas o definir uno nuevo.
Dos TFGs que trabajan en la creación de un corpus de hojas de evolución anotadas por polaridad, un clasificador para detectar polaridad de futuras notas y un sistema generador de resúmenes en base a plantillas como 'baseline' para la generación automática de Informes de Alta
Presentación usada en taller de "presentaciones efectivas o cómo evitar la muerte por powerpoint", impartido dentro del Plan de Actualización Docente y del Master en Docencia Universitaria de la Universidad de Huelva
Personal Branding para Profesores Universitarios.
Curso impartido dentro del Plan de Actualización Docente y del Master en Docencia Universitaria de la Universidad de Huelva
Documento sobre las diferentes fuentes que han servido para transmitir la cultura griega, y que supone la primera parte del tema 4 de "Descubriendo nuestras raíces clásicas", optativa de bachillerato en la Comunitat Valenciana.
Presentación de la conferencia sobre la basílica de San Pedro en el Vaticano realizada en el Ateneo Cultural y Mercantil de Onda el jueves 2 de mayo de 2024.
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMJuan Martín Martín
Examen de Selectividad de la EvAU de Geografía de junio de 2023 en Castilla La Mancha. UCLM . (Convocatoria ordinaria)
Más información en el Blog de Geografía de Juan Martín Martín
http://blogdegeografiadejuan.blogspot.com/
Este documento presenta un examen de geografía para el Acceso a la universidad (EVAU). Consta de cuatro secciones. La primera sección ofrece tres ejercicios prácticos sobre paisajes, mapas o hábitats. La segunda sección contiene preguntas teóricas sobre unidades de relieve, transporte o demografía. La tercera sección pide definir conceptos geográficos. La cuarta sección implica identificar elementos geográficos en un mapa. El examen evalúa conocimientos fundamentales de geografía.
IMÁGENES SUBLIMINALES EN LAS PUBLICACIONES DE LOS TESTIGOS DE JEHOVÁClaude LaCombe
Recuerdo perfectamente la primera vez que oí hablar de las imágenes subliminales de los Testigos de Jehová. Fue en los primeros años del foro de religión “Yahoo respuestas” (que, por cierto, desapareció definitivamente el 30 de junio de 2021). El tema del debate era el “arte religioso”. Todos compartíamos nuestros puntos de vista sobre cuadros como “La Mona Lisa” o el arte apocalíptico de los adventistas, cuando repentinamente uno de los participantes dijo que en las publicaciones de los Testigos de Jehová se ocultaban imágenes subliminales demoniacas.
Lo que pasó después se halla plasmado en la presente obra.
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
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
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
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
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