Presentacion acerca de la evolucion de software, dentro de la etapa de mantenimiento de la ingenieria de software. Se incluyen ejemplos de programas en cada categoría.
Caso de Exito LPL Projects Logistics Spain y Business Central
Procesos de evolución del software
1. Pruebas y Mantenimiento del software
Docente: MC Ricardo Rodríguez Nieves
Grupo: DS-DPSS-1801-B1-001
Uriel Edmundo Plata Hernández
ES1410905340
Actividad 2. Procesos de evolución del software
2. Categorías de software según Lehman y Belady
Programa S: Aquellos programas estáticos que se desarrollan exactamente según las especificaciones, y su evolución
mayormente permanece estática. Ejemplo: El software embebido que se encuentra dentro de la mayoría de los aparatos
electrónicos. Como por ejemplo el software desarrollado para controlar las funciones de cierta maquina investigadora o
recolectora de información para un dispositivo determinado; por ejemplo una estación recolectora de datos meteorológicos.
Programa P. Aquellos que no pueden ser especificados completamente pero implementan ciertos procedimientos que
determinan lo que el programa va a hacer . Ejemplo: Un programa para jugar al ajedrez, no se puede especificar una estrategia
única a seguir para el juego, pero si se puede implementar procedimientos para determinar que movimiento siguiente seria el
mas apto para que la maquina lo ejecutase, basándose en la situación y movimientos actuales del juego.
Programa E: Aquellos que se encuentran ya trabajando en el mundo real y se encuentran en constante cambio. Ejemplo:
Cualquier tipo de aplicación web, por ejemplo una aplicación web para la venta de boletos para eventos, de forma online. O
algún software de tipo ERP o CRM.
Meir Lehman
3. Etapas de evolución del software
Alfa. En esta etapa se encuentran aquellos programas que se acaban de ser desarrollados y
se encuentran en su versión inicial. En esta etapa se encontraron ya algunas faltas,
cambios o mejoras para comenzar a trabajar ya en una segunda versión en el futuro.
Evolución: En esta etapa se encuentran los programas ya en funcionamiento en su entorno
final. Aquí se detectan cambios, adaptaciones o funcionalidades emergentes, debido a que
las necesidades de los usuarios finales han cambiado o evolucionado o el sistema se tiene
que adaptar a los cambios ocurridos en su entorno, como nuevo hardware, legislación, etc.
Salida: Aquí se encuentran todos los programas que ya no son adaptables o ya no hay
soporte técnico para ellos. Por motivos de incompatibilidad de nuevos elementos o costos
de mantenimiento demasiado desproporcional en razón coste-beneficio.
4. Reingeniería de sistemas
Modificación de un producto de software utilizando técnicas de ingeniería inversa, con el fin de desarrollar un producto con mayores
niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.
Ejemplo: Existe una empresa distribuidora que cuando se encontraba en vías de crecimiento adquirió una pequeña aplicación web para
el manejo de la gestión con los clientes, desarrollada esta ultima por un ingeniero contratado para ello. En ese momento la empresa
contaba con menos de 50 empleados. Ahora la empresa cuenta con alrededor de 200 empleados. Al software nunca se le dio
mantenimiento, pues se considero por los directivos un gasto no soportable. Debido al incremento y cambios en el entorno, se necesita
mejorar dicha aplicación web, para agregar funcionalidades, adaptarla al nuevo entorno y mejorar su arquitectura. Motivo por el cual
la distribuidora ha contratado una empresa de desarrollo de software, la cual al no contar con la documentación y conocimiento
completo, deberá aplicar una reingeniería de sistemas para mejorar la app, en una versión completamente mejorada y actualizada.
Con la aplicación de un proceso inverso de ingeniería se han reutilizado y completado los módulos de las funcionalidades para generar
la documentación, arquitectura, pruebas y planes de mantenimiento necesario que sustenten la mejora en calidad, eficiencia,
seguridad y mantenimiento del nuevo software.
5. Tipos de cambio
Mejora de funciones existentes: Un ejemplo de este tipo de cambio seria en los sistemas de e-
commerce, el aceptar nuevas modalidades de pago online. Por ejemplo si una tienda online recibe
pagos a través de tarjetas de crédito, ahora podría recibir también pagos por paypal.
Mejora de interfaz: Un ejemplo practico podría ser el mantenimiento adaptativo de una
aplicación web cuya interfaz esta basada en un diseño particular, para seguir ahora el nuevo
enfoque de diseño de material design.
Tiempo limite excedido: En un programa que tarda demasiado en desplegar los archivos u
resultados solicitados, se podría realizar un mantenimiento perfectivo, para restructurar el
proceso lógico dentro del código y maximizar la velocidad de visualización.
Salida incompleta o perdida: En un programa capaz de generar reportes PDF, se puede dar el caso
la información de salida no fuese extraída de la BD y arrojada en su totalidad en el reporte. Esto
provocaría un reporte generado de forma incompleta. Hay que corregir esto por medio de un
mantenimiento correctivo.
6. Conclusiones
Debido a la enorme numero de necesidades emergente y entorno de constante cambio,
considero que la evolución del software es y será todavía por mucho tiempo uno de los
puntos mas importantes de estudio de la crisis del software, esto ya que se requiere la
investigación y aplicación de nuevas metodologías para atender el mismo, que puedan
promover una adaptación al cambio mas armoniosa y económica. La evolución del
software nos hace darnos cuenta de la enorme importancia que tiene la etapa de
mantenimiento en el ciclo de vida del desarrollo de software. Esto hace preguntarnos
por ejemplo si las Leyes de Lehman pueden en verdad seguir siendo aplicadas al
software que el mundo requiere en este siglo XXI. Hay que considerar que dichas Leyes
vienen de una época donde aun no existía la WWW ni mucho menos la interacción
masiva online que existe hoy dentro de la misma. El software para la web quizás
encontraría ciertas dificultades para aplicar las mismas en sus productos, un problema
que la ingeniería web ha heredado de la ingeniería de software.
7. Bibliografía
“Mantenimiento de software” Pruebas y mantenimiento de software.
Ingeniería en Desarrollo de Software. UnADM, Sitio Oficial. Sin fecha
(Consultado el 1 de marzo de 2018) <<
https://unadmexico.blackboard.com/bbcswebdav/institution/DCEIT/2016_S2
_B1/DS/08/DPSS/U2/Unidad_2_Pruebas_de_sistemas_de_software_.pdf >>
Somerville “Ingeniería de software” Novena Edición. Pearson Educación.
México 2014.