Evaluación de las modificaciones de un sistema existente

Documentos relacionados
8. Sistemas de información Heredados y reingeniería de software Son aquellos a los que es necesario aplicarles reingeniería. En el segundo subtema se

Unidad 2 Modelos de proceso de software

Ingeniería de Software: Y eso qué es?

Los modelos de proceso que se discuten en este capítulo son:

Universidad Autónoma del Estado de México. Facultad de Ingeniería. Ingeniería en Computación

PROCESOS PARA LA INGENIERÍA DE SOFTWARE. Facultad de Estadística e Informática

Procesos de Software

ANÁLISIS DE SISTEMAS. Prof. Eliz Mora

Tecnología hardware y software

Programación Orientada a Objetos

Software. Programa Paradigmas de programación Cómo se produce software Modelos de procesos Atributos del buen software

ALLSOFT S.A. de C.V. Monterrey, N.L.

Comparación en Desarrollo de Software de: MoProSoft, PMBook y Libro en Ingles

Tests de examen de CDGSI ACTUALIZADO FEB TEMA 5 DESARROLLO E IMPLANTACIÓN DE SISTEMAS DE INFORMACIÓN

SESIÓN 1 - SISTEMAS DE INFORMACIÓN GERENCIAL - INTRODUCCIÓN

Según estos párrafos, responder en un documento de texto de Google Drive las siguientes preguntas:

INGENIERIA DE SOFTWARE

E77 - Gestión de Recursos de la Información. Tema 1 - Métricas del Proyecto de Software

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Productos de Software

3. Participantes en el diseño y seguimiento curricular del programa. Academia de especialidad de la División de Ingeniería Electrónica del TESE

FACULTAD DE INGENIERÍA

Universidad Autónoma del Estado de México Facultad de Contaduría y Administración Licenciatura en Informática Administrativa

SISTEMAS DE INFORMACIÓN PARA ADMINISTRACIÓN DE OPERACIONES

3.- COMPETENCIAS GENERALES Y ESPECÍFICAS QUE LOS ESTUDIANTES DEBEN ADQUIRIR DURANTE SUS ESTUDIOS Y QUE SON EXIGIBLES PARA OTORGAR EL TÍTULO

El ciclo de vida de un sistema de información

Procesos del software

Implementacion y prueba de unidades. Figura 2.1. El ciclo de vida del software. 1

INGENIERIA DE SOFTWARE ING. FRANCISCO RODRIGUEZ

Capítulo 3. Métricas y la Confiabilidad en la Ingeniería del

PROCESOS PARA LA INGENIERÍA DE SOFTWARE. Facultad de Estadística e Informática

SIMULACIÓN DE UNA CALCULADORA DE MATEMÁTICA

06/10/2009. Qué es el Ciclo de Vida del SW? La norma Modelos de desarrollo

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ ANALISTA DE SISTEMAS. Procesamiento Electrónico de Datos

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software

Interfaz Humano Computadora DRA. LETICIA FLORES PULIDO PRIMAVERA 2012

MODELOS PRESCRIPTIVOS

Tema II Ciclo de Vida del Software

UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA DE SOFTWARE

Fundamentos de Programación. Resolución de Problemas y Diseño de Programas. Fundamentos de Programación. Página 0 de 27

CICLO ESCOLAR ENERO JULIO 2011 (2011-2)

Fuente: Ian Sommerville. Ingeniería del Software, Séptima Edición

El Ciclo de Vida del Software

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN HORAS SEMANA

Modelos de desarrollo de software. septiembre de

Mantenimiento de Software

Desarrollo Orientado a Objetos

Gestión de Recursos para la Información.

Ingeniería de Software

El Proceso de Ingeniería Web. Rogelio Ferreira Escutia

Matriz de Competencias THEME Mecatrónica con Competencias Parciales/ Unidades de Resultados de Aprendizaje

4.1 IMPORTANCIA DE LA COMUNICACIÖN PRESENTACIÓN TECNICA. Nociones de conocimientos e información técnica.

COD COMPETENCIAS BÁSICAS DEL TÍTULO Mód Mat

Sistemas heredados (legados)

Implementación de Componentes

Agenda. Problemática. Pregunta generadora. Objetivo general y objetivos específicos. Desarrollo del trabajo de grado. Conclusiones.

CRISIS DEL SOFTWARE. CRISIS: un punto decisivo en el curso de algo, momento, etapa o evento decisivo o crucial

INSTITUTO TECNOLÓGICO

PROCESOS PARA LA INGENIERÍA DE SOFTWARE. Facultad de Estadística e Informática

ESTUDIO DE LA RELACIÓN ENTRE ARQUITECTURA DE SOFTWARE Y USABILIDAD

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

Administración de Recursos Informáticos Unidad II: Unidad de Tecnologías de Información y Comunicaciones La Generación de Proyectos

PROCEDIMIENTO PARA EL DESARROLLO DE SOFTWARE

UNIVERSIDAD AUTONOMA DE QUERETARO Facultad de Informática

6. Aseguramiento de la calidad de acciones formativas: la fase de evaluación

COMPETENCIAS PROFESIONALES

UNIVERSIDAD SALESIANA DE BOLIVIA ESCUDO DE LA UNIVERSIDAD NOMBRE DEL PROYECTO DE SOFTWARE

Interacción Persona - Ordenador

El Ciclo de Vida del Software

Nombre de la materia. Departamento. Academia

FICHA PÚBLICA DEL PROYECTO

Proceso Unificado (Iterativo e incremental)

La ingeniería del software es una disciplina de ingeniería que comprende todos los aspectos de la producción de software.

INTRODUCCION A LA IFORMATICA

DESARROLLO DE SISTEMAS DE INFORMACIÓN GUÍA DE ESTUDIO

Fases para realizar un proyecto con PIC

Sistemas Operativos. Introducción. Tema 6

INDICE Prefacio Capitulo 1: Introducción Parte Primeras: modelos de datos Capitulo 2: Modelos entidad-relación Capitulo 3: El modelo relacional

Unidad V. UML. Tema I. Conceptos Básicos Tema II. Definición de UML. Vocabulario Tema III. Elementos UML Tema IV. Diagramas.

MODELOS COMUNES PARA DESARROLLO DE SOFTWARE MODELO LINEAL SECUENCIAL

Computación 1. Roles en la interconexión

Ejemplo Estimación con el método de Cocomo

OPERACIÓN Y PROGRAMACIÓN DE SISTEMAS DE CONTROL CON CONTROLADORES LÓGICOS PROGRAMABLES (PLC)

Clasificación de las Herramientas CASE

Ingeniería de Software

Desarrollo Rápido de Software. Objetivos

Informática de Gestión. Ingeniería a del Software

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Convivencia Introducción

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 6: INTRODUCIÓN A LA INGENIERÍA DEL SOFTWARE

INGENIERÍA DE SOFTWARE. Sesión 12: Comportamiento del sistema

AUDITORIA DE APLICACIONES GRUPO # 3

Generación de examen para hoja de resultados con scanner óptico. Inicia Vigencia:

DESCRIPCIÓN Y HORARIO DE CURSOS I-2018

E77 - Gestión de Recursos de la Información. Tema 2 - Estimación

Computación I. Unidad III. Sistemas de Información. Ing Angela Galea

CAPÍTULO I - DEFINICIÓN DEL PROBLEMA Y OBJETIVOS

Grado en Ingeniería del Software: competencias a nivel de módulo

Telemáticos. Joaquín Seoane Pascual Departamento de Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid

Transcripción:

Evaluación de las modificaciones de un sistema existente ABRAHAM SÁNCHEZ LÓPEZ GRUPO MOVIS FCC-BUAP

Introducción Un sistema de información es un sistema, automatizado o manual, que engloba a personas, máquinas y/o métodos organizados para recopilar, procesar, transmitir datos que representan información. Un sistema de información engloba la infraestructura, la organización, el personal y todos los componentes necesarios para la recopilación, procesamiento, almacenamiento, transmisión, visualización, diseminación y organización de la información.

Las etapas del proceso de desarrollo Cualquier sistema de información va pasando por una serie de fases a lo largo de su vida. Su ciclo de vida comprende una serie de etapas entre las que se encuentran las siguientes: Planificación Análisis Diseño Implementación Pruebas Instalación o despliegue Uso y mantenimiento Básicamente, resolver un problema requiere: Comprender el problema (análisis) Plantear una posible solución, considerando soluciones alternativas (diseño) Llevar a cabo la solución planteada (implementación) Comprobar que el resultado obtenido es correcto (pruebas)

La comunicación!! 1. Lo que el director desea. 2. Como lo define el director de proyecto. 3. Como se diseña el Sistema. 4. Como lo desarrolla el programador. 5. Como se ha realizado la instalación. 6. Lo que el usuario quería.

Fase de definición y planeación

Fase de desarrollo

Fase de mantenimiento

Paradigmas de la IS Existen varios paradigmas, los más conocidos son: El modelo en cascada Modelos de proceso incrementales El modelo incremental El modelo DRA Modelos de proceso evolutivos Construcción de prototipos El modelo en espiral El modelo de desarrollo concurrente Modelos especializados de proceso Desarrollo basado en componentes El modelos de métodos formales Desarrollo de software orientado a aspectos El proceso unificado

Las viejas aplicaciones, I Mucha gente al ver las grandes y viejas mansiones queda asombrado de su belleza, pero no se preguntan que tan bien se puede vivir en ellas. Las personas que lo hacen dicen que es una pesadilla mantenerlas. Todas ellas fueron construidas con viejas tecnología estándar. Sus paredes externas no tienen aislamiento. El alambrado eléctrico tiene limitaciones y claramente es inadecuada para las necesidades de energía de hoy y su cableado decadente crea un severo peligro eléctrico.

Las viejas aplicaciones, II Los viejos sistemas son muy similares a los grandes y viejos edificios. Ellos tienen los mismos problemas de mantenimiento, un hecho en gran parte irreconocible por parte de la comunidad corporativa. Muchos de esos edificios son demolidos por que no son mantenibles y ya no sirven para las necesidades de sus ocupantes. Las viejas computadoras tal vez se puedan ver solamente en museos. Pero en muchos casos, software escrito para viejos modelos de computadora están ejecutándose hoy en día. Un caso extremo es el de un software escrito para una IBM 1401 Autocoder. Cuando la compañía remplazó la 1401 con una IBM 360/40, compraron un emulador de la 1401 para poder ejecutar el software. Los clientes demandan que las nuevas capacidades sean agregadas al código escrito en sus viejos sistemas. Casi siempre, las empresas encuentran que no pueden modificar su código el programador que lo mantenía murió recientemente o nadie sabe programar en el lenguaje en el que fue escrito. Por lo que la funcionalidad de ese programa quedará así para siempre.

Reingeniería en los sistemas heredados La siguiente lista son las razones por las que es aplicable la reingeniería a los sistemas de información heredados: Frecuentes fallas de producción (fiabilidad cuestionable). Problemas de rendimiento. Tecnología obsoleta. Problemas de integración del sistema. Código de calidad pobre. Dificultad (peligroso) al cambio. Dificultad para probar. Mantenimiento caro. Incremento de problemas del sistema. Estas razones pueden ser solucionadas al aplicar un proceso de mantenimiento de software, pero cuando dicho mantenimiento deja de ser viable, entonces se toma la decisión de aplicar reingeniería.

Qué es un sistema heredado? Los sistemas de información heredados generalmente son la columna vertebral del flujo de información de las empresas y la principal forma de agruparla. Un Sistema de Información Heredado (LIS por sus siglas en ingles Legacy Information System) puede ser definido como cualquier sistema de información que significativamente se resiste a la modificación y evolución. Tales LISs pueden causar serios problemas a la organización: Los LISs casi siempre son ejecutados sobre hardware obsoleto que son lentos y caros de mantener. El mantenimiento del software puede ser caro, porque carecen de la documentación necesaria para el entendimiento de los detalles del sistema y su seguimiento es costoso y consume mucho tiempo. Una falta de interfaces limpias hace que la integración de los LISs con otros sistemas sea difícil. Los LISs son también difíciles mas no imposibles ampliarlos.

Nuevo software Aunque la reingeniería se usa principalmente durante el mantenimiento del software, esta va mas allá de una simple ayuda para el mantenimiento. La reingeniería es el puente desde viejas tecnologías hacía nuevas tecnologías que las organizaciones deben usar en la actualidad para responder al cambio de requerimientos del negocio. Los viejos programas representan la tecnología del ayer. Ahora sabemos que los años tienen cuatro dígitos y no dos, que los datos pueden manejarse mejor en bases de datos y que tenemos nuevos diseños de construcción y lenguajes de programación que permiten diseñar programas notablemente mantenibles. Cuando el costo de mantener viejos edificios es altamente excesivo, se remplazan estos edificios!! Nosotros deberíamos hacer lo mismo con los programas. Los programas no se hacen obsoletos al paso del tiempo ya que fueron escritos para hardware y sistemas operativos que ya no existen, muchos están llenos de características y parches no documentados.

Costos y beneficios de la reingeniería Antes de reconstruir un sistema en uso, es altamente recomendable analizar las diversas alternativas disponibles: Dejar el producto como está. Adquirir uno en el mercado que realice la misma función. Reconstruirlo. Evidentemente, elegiremos la opción que mejor relación costo/beneficio nos ofrezca. Para calcular los costos de un proyecto de reingeniería, Harry Sneed propone un modelo basado en cuatro etapas: Justificación del proyecto de reingeniería. Análisis de la cartera de aplicaciones. Estimación de costos. Análisis de costos / beneficios.

Justificación del proyecto de reingeniería Para justificar un proyecto de reingeniería se requiere de un análisis del software existente, de los procesos de mantenimiento actuales y del valor de negocio que tienen las aplicaciones; todo esto con el objeto de hacer una evaluación en posibles aumentos de valores sobre estos tres factores. La mayoría de las organizaciones sólo toman en consideración los procesos de reingeniería cuando el costo de un nuevo desarrollo es demasiado alto. En cualquier caso, y aunque a primera vista parezca la única o la mejor alternativa, es necesario confirmar la necesidad de reconstruir el sistema.

Evaluar costos del proyecto, I Existen cuatro operaciones que nos pueden dar una idea de los costos del proyecto y del valor del software actual dentro del negocio: 1. Introducción de un sistema de evaluación de los costos del mantenimiento. Es recomendable que esta tarea la lleve a cabo la organización anticipándose con suficiente tiempo al momento en que se perciba la necesidad de aplicar reingeniería. 2. Análisis de la calidad del software actual, para lo cual pueden utilizarse auditores de código automáticos que proporcionan datos del tamaño, complejidad y métricas de calidad del código fuente. Estos valores son incorporados a una base de datos que es utilizada por otra herramienta para realizar comparaciones y obtener resultados.

Evaluar costos del proyecto, II 3. Análisis de los costos de mantenimiento: Se proponen tres métricas para medir los procesos de mantenimiento: Dominio del impacto o proporción de instrucciones y elementos de datos afectados por una tarea de mantenimiento con respecto al total de instrucciones y elementos de datos del sistema. Esfuerzo empleado, que es el número de horas dedicadas a tareas de mantenimiento, con lo que se puede obtener una media del número de horas por tarea de mantenimiento. Tasa de errores de segundo nivel, que es el número de errores causados por acciones de mantenimiento. Si se observa que estas tres medidas se incrementan, es muy probable que los costos de mantenimiento se incrementen con el tiempo. 4. Evaluación del valor de negocio del sistema actual, que es realizado por la dirección de la organización.