reingenieria del software

52
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. INSTITUTO TECNOLOGICO DE TUXTEPEC INGENIERIA EN SISTEMAS COMPUTACIONALES REINGENIERIA DEL SOFTWARE

Upload: miles

Post on 26-Feb-2016

56 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: REINGENIERIA DEL SOFTWARE

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

Page 2: 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

Page 3: REINGENIERIA DEL SOFTWARE

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

Page 4: REINGENIERIA DEL SOFTWARE

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

Page 5: REINGENIERIA DEL SOFTWARE

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

Page 6: REINGENIERIA DEL SOFTWARE

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.

Page 7: REINGENIERIA DEL SOFTWARE

Calendarización y Costos Difieren:

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 8: REINGENIERIA DEL SOFTWARE

La Productividad del Personal es Baja:

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 9: REINGENIERIA DEL SOFTWARE

Carece de Calidad: El tener errores provoca en los clientes insatisfacción y falta de confianza.

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 10: REINGENIERIA DEL SOFTWARE

Falta de Comunicación entre Cliente y Programador:

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 11: REINGENIERIA DEL SOFTWARE

Falta de Datos Históricos:

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 12: REINGENIERIA DEL SOFTWARE

Falta de Habilidad y experiencia en la Elaboración de Software:

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 13: REINGENIERIA DEL SOFTWARE

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

Page 14: REINGENIERIA DEL SOFTWARE

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

Page 15: REINGENIERIA DEL SOFTWARE

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

Page 16: REINGENIERIA DEL SOFTWARE

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

Page 17: REINGENIERIA DEL SOFTWARE

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

Page 18: REINGENIERIA DEL SOFTWARE

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

Page 19: REINGENIERIA DEL SOFTWARE

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

Page 20: REINGENIERIA DEL SOFTWARE

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

Page 21: REINGENIERIA DEL SOFTWARE

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

Page 22: REINGENIERIA DEL SOFTWARE

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

Page 23: REINGENIERIA DEL SOFTWARE

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

Page 24: REINGENIERIA DEL SOFTWARE

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

Page 25: REINGENIERIA DEL SOFTWARE

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

Page 26: REINGENIERIA DEL SOFTWARE

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

Page 27: REINGENIERIA DEL SOFTWARE

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

Page 28: REINGENIERIA DEL SOFTWARE

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

Page 29: REINGENIERIA DEL SOFTWARE

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

Page 30: REINGENIERIA DEL SOFTWARE

REIN

GENI

ERIA

DEL

SO

FTW

ARE

PASOS PARA LA REINGENIERIA DEL SOFTWARE

Page 31: REINGENIERIA DEL SOFTWARE

COSTOS Y BENEFICIOS DE LA REINGENIERIA:

DISTRIBUCION DEL COSTE DEL CICLO DE VIDA

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 32: REINGENIERIA DEL SOFTWARE

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

Page 33: REINGENIERIA DEL SOFTWARE

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

Page 34: REINGENIERIA DEL SOFTWARE

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

Page 35: REINGENIERIA DEL SOFTWARE

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

Page 36: REINGENIERIA DEL SOFTWARE

DISTRIBUCION DEL TIEMPO EN TAREAS

DE MANTENIMIENTO

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 37: REINGENIERIA DEL SOFTWARE

LA REINGENIERIA DEL SOFTWARE

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 38: REINGENIERIA DEL SOFTWARE

LA REINGENIERIA DEL SOFTWARE

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 39: REINGENIERIA DEL SOFTWARE

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

Page 40: REINGENIERIA DEL SOFTWARE

JUSTIFICACIÓN DE LA REINGENIERÍA

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 41: REINGENIERIA DEL SOFTWARE

JUSTIFICACIÓN DE LA REINGENIERÍA

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 42: REINGENIERIA DEL SOFTWARE

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

Page 43: REINGENIERIA DEL SOFTWARE

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

Page 44: REINGENIERIA DEL SOFTWARE

VALOR DE NEGOCIO Y LA CALIDAD TÉCNICA

REIN

GENI

ERIA

DEL

SO

FTW

ARE

Page 45: REINGENIERIA DEL SOFTWARE

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

Page 46: REINGENIERIA DEL SOFTWARE

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

Page 47: REINGENIERIA DEL SOFTWARE

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

Page 48: REINGENIERIA DEL SOFTWARE

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

Page 49: REINGENIERIA DEL SOFTWARE

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

Page 50: REINGENIERIA DEL SOFTWARE

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

Page 51: REINGENIERIA DEL SOFTWARE

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

Page 52: REINGENIERIA DEL SOFTWARE

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