reingenieria del software
DESCRIPTION
REINGENIERIA DEL SOFTWARE. INSTITUTO TECNOLOGICO DE TUXTEPEC. INGENIERIA EN SISTEMAS COMPUTACIONALES. UNIDAD N° 1 INTRODUCCIÓN A LA REINGENIERIA DEL SOFTWARE. CATEDRÁTICO: L.I. MARIA ELENA AGUILAR ESPEJO TUXTEPEC, OAX. A 24 DE ENERO 2011. REINGENIERIA DEL SOFTWARE. DEFINICIÓN. - PowerPoint PPT PresentationTRANSCRIPT
UNIDAD N° 1
INTRODUCCIÓN A LA REINGENIERIA DEL SOFTWARE
CATEDRÁTICO: L.I. MARIA ELENA AGUILAR ESPEJOTUXTEPEC, OAX. A 24 DE ENERO 2011.
INST
ITUT
O TE
CNOL
OGIC
O DE
TU
XTEP
ECIN
GENI
ERIA
EN
SIST
EMAS
CO
MPU
TACI
ONAL
ES
REINGENIERIA DEL SOFTWARE
UNIDAD N° 1 INTRODUCCIÓN
DEFINICIÓN
SISTEMAS DE INFORMACIÓN HEREDADOS
COSTOS Y BENEFICIOS DE LA REINGENIERIA REIN
GENI
ERIA
DEL
SO
FTW
ARE
DEFINICIÓNCONCEPTO DE REINGENIERÍA DEL
SOFTWARE
La Reingeniería consiste en la automatización del mantenimiento del software.
Es el proceso de examinar sistemas de software existentes y/o modificarlos con ayuda de herramientas de forma automática o semi-automática.
Analiza sistemas existentes para entender su diseño y desarrollar estrategias para extraer y reutilizar componentes. Implica la rehabilitación y modernización de los componentes.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Ventajas de Utilizar Reingeniería:
Proporcionar asistencia automatizada a las tareas de mantenimiento y evolución del software.
Reducir errores y costes.
Mejorar los procesos de conversión y migración.
Extender el ciclo de vida de las aplicaciones.
Facilitar el entendimiento de los programas.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Formas de Reingeniería del Software:
Análisis: Proceso de examinar sistemas existentes para entender mejor el sistema y sus componentes.
Reestructuración: Cambios en la forma del software (ej: código, documentación, datos) pero no su funcionalidad.
Ingeniería Inversa: Analizar el software y reconstruir las relaciones entre sus partes.
Migración: Conversión de software o actualización de tecnología.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
REIN
GENI
ERIA
DEL
SO
FTW
ARE
CRISIS DEL SOFTWARE:
El término Crisis del Software identifica la precaria situación en la que se encuentra el desarrollo de software a comparación de otras disciplinas ante la demanda de nuevos sistemas. Es decir la dificultad en escribir programas libres de defectos, fácilmente comprensibles, y que sean verificables.
Calendarización y Costos Difieren:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
La Productividad del Personal es Baja:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Carece de Calidad: El tener errores provoca en los clientes insatisfacción y falta de confianza.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Falta de Comunicación entre Cliente y Programador:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Falta de Datos Históricos:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Falta de Habilidad y experiencia en la Elaboración de Software:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITOS Y REALIDADES
Mitos de Gestión de Software:
Los gestores están bajo presión de cumplir con los presupuestos
No debe retrasarse el proyecto
Debe mejorar la calidad REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:Tenemos un Libro de Estándares y
Procedimientosel cual Proporciona todo lo que mi
Gente Necesita Saber
REALIDAD:Existe pero . . .
¿Se usa?¿Conocen los trabajadores su existencia?
¿Refleja lo actual en desarrollo de Software? ¿Es completo?
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:Mi gente dispone de las herramientas de
desarrollo de software más avanzadas, después de todo, les compramos las
computadoras mas modernas.
REALIDAD:No solo la PC más grande y mejor te determina
el software a realizar.Son más importantes las herramientas de
Software (CASE) que el hardware en si para calidad y Productividad de Software.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:Si fallamos en la Planificación, podemos añadir
más programadores y adelantar el tiempo perdido (Efecto de Horda Mongoliana).
REALIDAD:El Proceso de Desarrollo no es una actividad
mecánica.Tardará más la gente nueva en comunicarse y
adaptarse al proyectoSe puede añadir gente de manera planificada y
coordinada.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITOS DEL CLIENTE
Un Cliente se crea falsas
expectativas
y finalmente queda insatisfecho
con el que desarrolla el
Software.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:Una declaración general de los objetivos es
suficiente para comenzar a escribir los programas
“Los Detalles más Adelante”.
REALIDAD:Una mala definición al inicio es la principal causa
de trabajar en balde el software.
Es esencial una descripción formal y detallada del ambiente de la información, funciones, comportamiento, rendimiento, interfaces,
ligaduras del diseño y criterios de validación.
Se requiere una comunicación exhaustiva entre cliente y analista.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:Los requisitos del proyecto cambian
continuamente pero los cambios pueden acomodarse fácilmente, ya que el software es
flexible.
REALIDAD:Los Requisitos cambian y el impacto del cambio
varia según el momento del cambio.
Impacto:
1x en Definición
1.5 a 6x en Desarrollo
60 a 100x después de la Entrega
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITOS DE LOS DESARROLLADORES
A principios de la informática, la programación era un Arte, las viejas formas y actitudes
tardan en morir.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:
Una vez que escribimos el programa y hacemos que funcione , nuestro
trabajo ha terminado.
REALIDAD:
El 60 al 80% dedicado a un programa se realiza después de
entregado al cliente.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:
Hasta que no tengo el Programa “Ejecutando”, realmente no tengo forma de comprobar su calidad.
REALIDAD:
Desde el Principio debe aplicarse la REVISIÓN técnica formal, con ella se encuentran los Defectos / Errores .
REIN
GENI
ERIA
DEL
SO
FTW
ARE
MITO:Lo único que se entrega al terminar el proyecto es el Programa Funcionando.
REALIDAD:
El Programa es solo una parte de los elementos del Software.
La Documentación proporciona el fundamento para un Buen Desarrollo.Proporciona Guías para la Tarea del
Mantenimiento.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
SISTEMAS HEREDADOSCONCEPTO:
Un sistema heredado es un sistema antiguo que aún proporciona servicios esenciales de negocio. Los sistemas heredados no son sólo sistemas de software de aplicación. Son sistemas socio-técnicos, por lo que incluyen procesos de negocio, software de aplicación, software de apoyo y sistema hardware.
Muchos sistemas heredados todavía se utilizan porque solucionan bien el problema y reemplazarlos sería demasiado costoso
REIN
GENI
ERIA
DEL
SO
FTW
ARE
POR QUE APLICAR REINGENIERIA DEL SOFTWARE:
Hoy en día el ritmo acelerado de los negocios es tan grande que muchas de las veces se culpa al personal o a la tecnología cuando las cosas no marchan bien; sin embargo quien realmente falla es la forma en qué se trabaja. Las tendencias de las Tres C´s, son las que están provocando estos cambios: Consumidores, competencia y Cambio.
Consumidores: Hoy en día son los consumidores los que mandan pueden pedir al vendedor qué, cuando, como lo quieren, y en algunos casos hasta cuánto están dispuestos a pagar y de qué forma.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Competencia: En el pasado la competencia era simple, en la actualidad, la competencia se da de diversas formas; en el precio, en el producto, en la calidad o el servicio previo, durante y posterior a la venta. Sin olvidar que la tecnología moderna ha introducido nuevas formas de competir y nueva competencia.
Cambio: Las formas de cambiar han cambiado. Sobretodo se tiene que el cambio ahora se ha vuelto más esparcido y persistente; además, el ritmo del cambio se ha acelerado. La globalización, el avance tecnológico y la automatización. Por eso es que la única forma de afrontar este nuevo mundo es conociendo cómo hacer mejor el trabajo actual, lo cual se podrá realizar al analizar dicho trabajo.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
La globalización presenta nuevos retos a la forma de realizar negocios. El comercio y la industria deben cambiar, deben adaptarse y evolucionar hacia la nueva estructura del mercado.
Lo anterior nos lleva a la raíz de la Reingeniería. La Reingeniería significa cambio radical. La tendencia de las organizaciones es evitar el cambio radical, la mejora continua esta mas de acuerdo con la manera como las organizaciones se entienden naturalmente con el cambio.La mejora continua hace hincapié en cambios pequeños, increméntales, pero se debe notar que el objeto es mejorar lo que una organización ya esta haciendo.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
QUE IMPLICA LA REINGENIERIA: Implica volver a crear y configurar de
manera radical él o los sistemas de una a los efectos de lograr incrementos significativos, y en un corto período de tiempo, en materia de rentabilidad, productividad, tiempo de respuesta, y calidad, lo cual implica la obtención de ventajas competitivas.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
EN SOFTWARE QUE IMPLICA LA REINGENIERIA?
La reingeniería del software involucra diferentes actividades como son: análisis de inventarios reestructuración de documentos ingeniería inversa reestructuración de programas y datos ingeniería directa
con la finalidad de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
REIN
GENI
ERIA
DEL
SO
FTW
ARE
PASOS PARA LA REINGENIERIA DEL SOFTWARE
COSTOS Y BENEFICIOS DE LA REINGENIERIA:
DISTRIBUCION DEL COSTE DEL CICLO DE VIDA
REIN
GENI
ERIA
DEL
SO
FTW
ARE
FACTORES DE LA REINGENIERÍA: Inexistencia de métodos, técnicas y
herramientas que puedan proporcionar una solución global al mantenimiento.
La complejidad de los sistemas se incrementa paulatinamente por la realización de continuas modificaciones.
La documentación del sistema es defectuosa o inexistente
Se considera el mantenimiento como una actividad poco creativa, a diferencia del desarrollo.
Las actividades del mantenimiento se suelen realizar bajo presión de tiempo.
Poca participación del usuario durante el desarrollo del sistema.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
ACTUACIONES PARA MANTENER LA OPERATIVIDAD DEL SOFTWARE:
Corrección de defectos en el software
Creación de nuevas funcionalidades en el software por nuevos requisitos de usuario
Mejora de la funcionalidad y del rendimiento RE
INGE
NIER
IA D
EL
SOFT
WAR
E
TIPOS DE MANTENIMIENTO:
Mantenimiento perfectivo: conjunto de actividades para mejorar o añadir nuevas funcionalidades requeridas por el usuario
Mantenimiento adaptativo: es el conjunto de actividades para adaptar el sistema a los cambios (hardware o software) en su entorno tecnológico
Mantenimiento correctivo: es el conjunto de actividades dedicadas a corregir defectos en el hardware o en el software detectados por los usuarios durante la explotación del sistema
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Mantenimiento preventivo: conjunto de actividades para facilitar el mantenimiento futuro del sistema
TIPOS DE MANTENIMIENTO Y COSTES RELATIVOS
REIN
GENI
ERIA
DEL
SO
FTW
ARE
DISTRIBUCION DEL TIEMPO EN TAREAS
DE MANTENIMIENTO
REIN
GENI
ERIA
DEL
SO
FTW
ARE
LA REINGENIERIA DEL SOFTWARE
REIN
GENI
ERIA
DEL
SO
FTW
ARE
LA REINGENIERIA DEL SOFTWARE
REIN
GENI
ERIA
DEL
SO
FTW
ARE
INGENIERIA DIRECTA:Corresponde al desarrollo de software tradicional.
REESTRUCTURACION:Es la transformación de una forma de representación a otra en el mismo nivel de abstracción relativo, mientras se mantenga el comportamiento externo del sistema (funcionalidad y semántica).Es la modificación del software para hacerlo más fácil de entender y cambiar.
INGENIERIA INVERSAEs el proceso de análisis de un sistema para identificar sus componentes e interrelaciones y crear representaciones del sistema en otra forma o a un nivel más alto de abstracción.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
JUSTIFICACIÓN DE LA REINGENIERÍA
REIN
GENI
ERIA
DEL
SO
FTW
ARE
JUSTIFICACIÓN DE LA REINGENIERÍA
REIN
GENI
ERIA
DEL
SO
FTW
ARE
ANÁLISIS DE LA CARTERA DE APLIACIONES
se cotejan la calidad técnica y el valor de negocio de cada aplicación, con el objetivo de construir una lista de aplicaciones, ordenada según sus prioridades en el proceso de reingeniería. La calidad técnica de un producto es una medida relativa, dependiente de cada organización, que se calcula en función de diversas características (complejidad ciclomática o errores/KLDC, por ejemplo).Para cada variable que interviene en la calidad técnica se fijan unos límites inferior y superior (que representan los valores máximos y mínimo de calidad). Para hallar el nivel de calidad de la variable considerada se puede utilizar la siguiente formula:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
FORMULA PARA OBTENER LA CALIDAD TECNICA:
Por ejemplo, si establecemos los valores mínimo y máximo de calidad en 0 y 7 errores por KLDC, y actualmente hay 3, Ci = 0.571.
Asociando un punto de un plano para cada aplicación, e interpretando el valor de negocio y la calidad técnica como coordenadas de estos puntos, se puede representar como en el diagrama de la siguiente figura [Piat 00]:
REIN
GENI
ERIA
DEL
SO
FTW
ARE
VALOR DE NEGOCIO Y LA CALIDAD TÉCNICA
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Las aplicaciones situadas en el cuadrante superior izquierdo tienen alta calidad y bajo valor de negocio, por lo que no requieren reingeniería; las situadas en el cuadrante inferior izquierdo tienen poco valor en ambos parámetros, por lo que pueden ser desarrolladas de nuevo o remplazadas por productos comerciales; las del superior derecho tienen un gran valor de negocio y alta calidad: se les puede aplicar reingeniería, pero sin excesiva prioridad; las del inferior derecho tienen alto valor de negocio y baja calidad técnica, por lo que serán las primeras candidatas a la reingeniería.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
ESTIMACION DE COSTO:Se realiza identificando y ponderando, mediante métricas adecuadas, todos los componentes del software que se van a modificar.
Se deben considerar los costes de cada proyecto de reingeniería: si éstos son superiores a los beneficios, la reingeniería no será una alternativa viable y la aplicación deberá ser desarrollada de nuevo o bien adquirirse en el mercado.
Para estimar los costes de la reingeniería, se tienen ciertas ventajas respecto a la misma estimación en proyectos de ingeniería directa: no se debe calcular factores influyentes como el número de líneas de código, sentencias ejecutables, elementos de datos, accesos a archivos, etc.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Las medidas anteriores se pueden tomar directamente de la aplicación. Se aconseja utilizar como variables para calcular los costes las que se ofrecen a continuación, y que deben ser debidamente ponderadas en función de su influencia en el coste total: Número de líneas de código no
comentadas. Coste de los casos de prueba, que se
calcula multiplicando el coste medio de cada caso de prueba por el número de éstos, que es función de la complejidad ciclomática del problema.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Número de accesos a archivos, bases de datos y campos. En la ponderación de estas entradas/salidas consideramos la complejidad de las estructuras de información y el grado de independencia de la aplicación respecto de los datos.
Número de operaciones que realizan los usuarios de la aplicación, número de ventanas, número de informes, etc., para el caso de las interfaces de usuario.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
ESTIMACIÓN DE COSTO DE UN NUEVO SOFTWARE:
MODELO COCOMO
Para el calculo del costo de desarrollo de un nuevo software será necesario conocer el Esfuerzo, cuya formula general será la siguiente:
Esfuerzo = α * (KLDC)b
En donde.
α y b: Son parámetros de ajuste según el tipo o modelo de desarrollo del proyecto.
KLDC: Es el tamaño en miles de líneas de códigos.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
TIPOS DE DESARROLLO DE SOFTWARE
Orgánico:Desarrollo de un entorno estable, con poca innovación técnica, con pocas presiones de tiempo y tamaño relativamente pequeño; KLDC<50.
Empotrado:Desarrollo de software con requisitos muy restrictivos, con gran volatilidad de requisitos, complejo, en un entorno con gran innovación técnica. KLDC>50
Semilibre:Situaciones entre el modo Orgánico y el Empotrado.
REIN
GENI
ERIA
DEL
SO
FTW
ARE
ECUACIONES DE ESFUERZO SEGÚN EL TIPO DE DESARROLLO DE SOFTWARE
REIN
GENI
ERIA
DEL
SO
FTW
AREModo de Desarrollo Personas – Mes
(Nominal)Tipo de Desarrollo
(Nominal)
Orgánico PM = 3.2 * (KLDC)1.05 TD = 2.5 * (PM)0.38
Semi – Libre PM = 3.0 * (KLDC)1.12 TD = 2.5 * (PM)0.35
Empotrado PM = 2.8 * (KLDC)1.20 TD = 2.5 * (PM)0.32
FACTORES DE COSTOS DEL MODELO COCOMO
REIN
GENI
ERIA
DEL
SO
FTW
ARE
Muy Bajo Bajo Medio Alto Muy Alto ExtraFiabilidad Requerida (Producto) 0.75 0.88 1.00 1.15 1.40 Tamaño de la Base de Datos (Producto) 0.94 1.00 1.08 1.16 Complejidad del Software (Producto) 0.70 0.85 1.00 1.15 1.30 1.65 Restricciones del Tiempo de Ejecución (Hardware) 1.00 1.11 1.30 1.66 Restricciones de Memoria (Hardware) 1.00 1.06 1.21 1.56 Volatilidad del Hardware (Hardware) 0.87 1.00 1.15 1.30 Restricciones de Tiempo de Respuesta (Hardware) 0.87 1.00 1.07 1.15 Calidad de los Análistas (Personal) 1.46 1.19 1.00 0.86 0.71 Experiencia con el Tipo de Aplicación (Personal) 1.29 1.13 1.00 0.91 0.82 Experiencia con el Hardware (Personal) 1.21 1.10 1.00 0.90 Experiencia con el Lenguaje de Prog. (Personal) 1.14 1.07 1.00 0.95 Calidad de los Programadores (Personal) 1.42 1.17 1.00 0.86 0.70 Tecnicas Modernas de Programación (Proyecto) 1.24 1.10 1.00 0.91 0.82 Empleo de Herramientas (Proyecto) 1.24 1.10 1.00 0.91 0.83 Restricciones a la Duración del Proyecto (Proyecto) 1.23 1.08 1.00 1.04 1.10
Factores Valor de los Factores