1. Ingeniería en Desarrollo de Software
8. Semestre
Asignatura: Pruebas y mantenimiento de sistemas de software
Grupo: (DS-DPSS-1801-B1-001)
Unidad 3. Mantenimiento de sistemas de software
Actividad 2. Procesos de evolución del software
Docente: Ricardo Rodríguez Nieves
Alumno: María Isabel Camacho Mendoza
Matricula: ES1421001011
Fecha: 10/03/2018
2. S (tipo estático): Son aquellos que pueden especificarse de manera formal. De acuerdo con una especificación exacta de lo
que el programa puede hacer.
Ejemplo a este tipo de sistemas es una Calculadora que devuelven resultados en base a fórmulas ya definidas.
P (tipo práctico): Son aquellos sistemas que pese a que pueden especificarse formalmente, su solución no es inmediata, lo
que ocasiona que sea necesario un proceso iterativo para encontrar una solución válida. Se sabe, por tanto, el resultado que
necesita. La característica principal es la estabilidad de sus requisitos o especificaciones.
Ejemplos:
Sistema de control de saldos de tesorería, donde se lleva un control de las cuentas bancarias, en relación a los depósitos
realizados y la emisión de cheques.
Sistema para el control de la nómina de empleados en una dependencia.
E (tipo embebido): Son los que forman parte del mundo que tratan de modelar, dando lugar a una situación en la que el
sistema y su entorno evolucionan de manera conjunta. Son los más comunes actualmente. Un sistema embebido es
computadora que es un componente de un gran sistema que depende de su propio microprocesador. Es embebido al ser
de un dispositivo completo, que frecuentemente incluye otro hardware o partes mecánicas.
Ejemplos:
Sistemas embebidos pueden ser desde dispositivos portátiles como teléfonos, relojes digitales y reproductores mp3.
Control de luces de tráfico
Sistemas que controlan las plantas nucleares.
Categorías de software
3. Etapas de evolución del software
Etapa 1: versión alfa: Es la primera versión del programa, el producto es inestable, en esta etapa se eliminan errores
detectados o la incorporación de requerimientos. La mayoría de las referencias en esta etapa se basan en escenarios o
casos de estudios. El desarrollo inicial genera un banco de conocimiento, como el de dominio de aplicación, requisitos de
los usuarios, reglas de negocio, políticas, soluciones, algoritmos, etc. Una vez que esta versión se ha completado de
manera satisfactoria, el sistema es puesto en marcha, lo que conlleva a la necesidad de la evolución como consecuencia del
uso.
Etapa 2: madurez: Se produce cuando los usuarios solicitan mejoras en los procesos del sistema (cambio de necesidades).
Con el avance de la tecnología, podemos apreciar que el software se enfrenta a cambios de manera vertiginosa en el
entorno, de ahí que la meta de la evolución sea la adaptación de la aplicación. Asimismo, se aprovecha esta etapa para
incorporar requisitos más específicos.
Etapa 3: salida: El software evoluciona de manera continua, muchos se pueden mantener estables incluso he visto a lo largo
de mi experiencia que siguen siendo funcionales, ya que el proceso sigue siendo el mismo. Pero pueden surgir varios
factores que provocan la salida de este como el surgimiento de nuevas plataformas de desarrollo, y la falta de soporte
técnico sobre plataformas obsoletas. Esto provoca que el software en uso se dé de baja. Y los usuarios migren hacia uno
nuevo desarrollo.
Al identificar las fases del sistema de software, se puede determinar la posible salida de un sistema e ir realizando un
nuevo proyecto de desarrollo, considerando procesos que puedan ser reutilizables, tomándolos como base y
proporcionando mejoras a la nueva versión sin perder la ventaja competitiva.
4. La reingeniería es la transformación sistemática de un sistema existente dentro de una nueva forma de realizar mejoramientos de
calidad en una operaciones, capacidad del sistema, funcionabilidad, rendimiento o evolucionabilidad a bajo costo, agendas o riesgos
para el cliente. Instituto de Ingeniería de Software, (2017).
Reingeniería de sistemas
Es un modelo cíclico, lo que
significa que las etapas pueden
realizar nuevamente.
La finalidad de la ingeniería es crear versiones de programas ya existentes mejorando su calidad, ayudando a la evolución y
mantenimiento del software con este proceso.
Habitualmente comprende los siguientes pasos:
• Análisis de Inventarios: Todas las organizaciones de software deberían tener un
inventario de todas sus aplicaciones
• Reestructuración de documentos: Una organización de software debe elegir la forma
más apropiada para actualizar la documentación.
• Ingeniería inversa: Se aplica para obtener un modelo detallado de análisis, ingeniería
de requerimientos, diseño y en algunos casos implementación teniendo una solución,
la cual es una actividad consumidora de tiempo.
• Reestructuración de datos: Comienza con una actividad de ingeniera inversa.
Analizando de manera minuciosa definiendo los modelos de datos necesarios,
identificando los objetivos datos y atributos.
• Ingeniería directa: recupera la información de diseño a partir del software existente,
generalmente el software sometido a reingeniería vuelve a la funcionalidad añadiendo
mejoras.
•
5. Restructuración de
código
Código anterior
Código fuente mejorado
Extraer
abstracciones
Refinar y simplificar
Especificación inicial
Especificación final
interfaz
Procesamiento
Base de datos
ejemplo gráfico de una reingeniería de sistemas
6. Rendimiento: Este tipo de cambios se implementa en el rediseño de procesos demasiado tardados cuando
hay lectura de demasiados registros por ejemplo en los procesos de cálculos nominales si la plantilla de
personal es demasiado extensa, se aplica un rediseño para el proceso sea de manera más eficiente
una disminución de tiempo.
Mejora: En este tipo de cambios se realizan mejoras a la interfaz consiguiendo la mayor satisfacción y mejor
experiencia de uso posible con el mínimo esfuerzo del usuario (diseño de experiencia del usuario)
Computacionales: este tipo de modificación se realiza por un error de truncamiento causado por un
defecto de programación, de tal forma que el programa quiere almacenar más información en el buffer de
que este puede alojar, por ejemplo: cuando en un programa se intenta almacenar un archivo y sobrepasa el
tamaño máximo requerido.
Salida: Este tipo de modificación se presenta cuando los datos esperados no cumplen con lo esperado. Por
ejemplo en uno documento donde se captura el contenido de un documento este es almacenado en
html, sin embargo a la hora de la salida o muestra de la información esta no cumple con todas las
características de manera correcta.
Ejemplo tipos de cambios de software
7. En el transcurso de nuestra vida profesional nos veremos enfrentados en realizar una
reestructuración de software, donde debemos identificar si las estructuras y diseño de la
aplicación están vigentes y pueden ser reutilizables como base de un sistema nuevo, donde
podemos aplicar la reingeniería o cuando la reingeniería resultaría más costosa y complicada
que desarrollar un nuevo sistema.
Para poder determinar una solución debemos de analizar y comprender la problemática de
cada uno de los procesos y del producto final a que se necesite llegar.
Conclusiones
8. Material UnADM. (2018). Unidad 3. Mantenimiento de sistemas de software [PDF en línea]. [Consulta:
febrero 28, 2018].
Roger S. Pressman. ( 2010). INGENIERÍA DEL SOFTWARE. UN ENFOQUE PRÁCTICO. Méxicco:
McGRAW-HILL INTERAMERICANA EDITORES, S.A. DE C.V.
Jummp. (2014). Lehman y Belady. Clasificación de los sistemas. Marzo 10, 2018, de Jummp Sitio web:
https://jummp.wordpress.com/2014/02/06/lehman-y-belady-clasificacion-de-los-sistemas/
Erick. (2010). Ingeneria Del Software. Marzo 3, 2018, de ingsoftwareiblog Sitio web:
http://ingsoftwareiblog.blogspot.mx/
Fuentes de referencia