Sie sind auf Seite 1von 5

Ingeniera del Software Equipo 6

Desarrollo y Mantenimiento del software


En un ambiente formal de desarrollo de software, la organizacin o equipo de desarrollo tendrn algn mecanismo para documentar y rastrear defectos y deficiencias. El Software tan igual como la mayora de otros productos, es tpicamente lanzado con un conjunto conocido de defectos y deficiencias. El software es lanzado con esos defectos conocidos porque la organizacin de desarrollo en las utilidades y el valor del software en un determinado nivel de calidad compensan el impacto de los defectos y deficiencias conocidas. Las deficiencias conocidas son normalmente documentadas en una carta de consideraciones operacionales o notas de lanzamiento (release notes) es as que los usuarios del software sern capaces de trabajar evitando las deficiencias conocidas y conocern cundo el uso del software sera inadecuado para tareas especficas. Con el lanzamiento del software (software release), otros defectos y deficiencias no documentados sern descubiertas por los usuarios del software. Tan pronto como estos defectos sean reportados a la organizacin de desarrollo, sern ingresados en el sistema de rastreo de defectos. Las personas involucradas en la fase de mantenimiento de software esperan trabajar en estos defectos conocidos, ubicarlos y preparar un nuevo lanzamiento del software, conocido como un lanzamiento de mantenimiento, el cual resolver los temas pendientes. Desarrollar un software significa construirlo simplemente mediante su descripcin. Est es una muy buena razn para considerar la actividad de desarrollo de software como una ingeniera. En un nivel ms general, la relacin existente entre un software y su entorno es clara ya que el software es introducido en el mundo de modo de provocar ciertos efectos en el mismo. Aquellas partes del mundo que afectarn al software y que sern afectadas por l ser el Dominio de Aplicacin. Es all donde los usuarios o clientes observarn si el desarrollo del software ha cumplido su propsito. Una de las mayores deficiencias en la prctica de construccin de software es la poca atencin que se presta a la discusin del problema. En general los desarrolladores se centran en la solucin dejando el problema inexplorado. El problema a resolver debe ser deducido a partir de su solucin. Esta aproximacin orientada a la solucin puede funcionar en campos donde todos los problemas son bien conocidos, clasificados e investigados, donde la innovacin se ve en la deteccin de nuevas soluciones a viejos problemas. Pero el desarrollo de software no es un campo con tales caractersticas. La versatilidad de las computadoras y su rpida evolucin hace que exista un repertorio de problemas en constante cambio y cuya solucin software sea de enorme importancia. Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su empresa y desea que sea solucionado, para esto existe el analista de sistema quien es el encargado de hacerle llegar todos los requerimientos y necesidades que tiene el cliente a los programadores quienes son las personas encargadas de realizar lo que es la codificacin y diseo del sistema para despus probarlo y lo instalan al cliente. Es as como intervienen varias personas ya que una sola persona no podra determinar todo lo necesario lo ms 1 Ingsoft6@gmail.com

Ingeniera del Software Equipo 6


seguro que le haga falta algn requerimiento o alguna parte del nuevo sistema y entre ms estn involucradas mejor para cubrir con todos los requerimientos del sistema. Proceso

El proceso de desarrollo del software se muestra grficamente en la parte de arriba, a continuacin desarrollara una breve explicacin del mismo. El primer paso del proceso es el anlisis, es aqu donde el analista se pone en contacto con la empresa para ver cmo est conformada, a que se dedica, saber todas las actividades que realiza en s, conocer la empresa de manera general para posteriormente ver cules son sus necesidades o requerimientos que la empresa tiene en ese momento para poder realizar un anlisis de la misma. Es importante saber cules son los requerimientos que la empresa tiene por que muchas veces los sistemas se desarrollan pero no pensando en el cliente y es ah donde el sistema no cumple o no satisface las necesidades que existen en la empresa, segn los requerimientos se empieza a realizar el diagrama relacional todo debe de llevar una secuencia lgica de las actividades, todo esto se realiza de manera manual para ver cmo ser su diseo lgico y diseo de pantallas es en este paso donde se plasma todo y queda perfectamente bien definido como va hacer la funcionalidad del sistema. El segundo paso es el de diseo aqu entran todo el diseo del sistema es decir las pantallas, base de datos, todo esto debe de cumplir con ciertos estndares los cuales se toman en cuenta para poder desarrollar el diseo con calidad y as poder ofrecer un diseo amigable en cuestin de colores, tamaos de botones, cajas de texto, etc. El tercer paso es la codificacin es aqu donde se desarrolla todo el cdigo del sistema por parte del programador esto se hace ya dependiendo de cada programador ya que cada programador tiene sus bases o formas para realizarlo pero en si deben todos llegar al mismo objetivo de ofrecerle funcionalidad al sistema siempre y cuando apegando se a las especificaciones del cliente. El cuarto paso son las pruebas, es donde al sistema se pone a prueba como su palabra lo dice para as poder saber cules son los posibles errores que se estn generando del sistema y con ello mejorarlo para eliminar todos los errores que se puedan presentar porque un programa con menor errores mayor calidad puede llegar a tener.

2 Ingsoft6@gmail.com

Ingeniera del Software Equipo 6


El quinto y ltimo paso es la instalacin una vez realizado las pruebas correspondientes al sistema y haberlo corregido totalmente se procede a la instalacin del mismo ya en la empresa para su uso correspondiente, todo con la finalidad de que los procesos se realicen de una manera ms eficiente eliminando costos, tiempo y esfuerzo dentro de la organizacin.

Mantenimiento de software
El mantenimiento de software o manutencin de software es una de las actividades ms comunes en la ingeniera de software, es el proceso de mejora y optimizacin del software despus de su entrega al usuario final (es decir; revisin del programa), as como tambin correccin y prevencin de los defectos. El mantenimiento de software es tambin una de las fases en el ciclo de vida de desarrollo de sistemas (SDLC, sigla en ingls de system development life cycle), que se aplica al desarrollo de software. La fase de mantenimiento es la fase que viene despus del despliegue (implementacin) del software en el campo. La fase de mantenimiento de software involucra cambios al software para corregir defectos encontrados durante su uso o la adicin de nueva funcionalidad mejorando la usabilidad y aplicabilidad del software. El mantenimiento del software involucra varias tcnicas especficas. Una tcnica es el rebanamiento esttico, la cual es usada para identificar todo el cdigo de programa que puede modificar alguna variable. Es generalmente til en la re-fabricacin del cdigo del programa y fue especficamente til en asegurar conformidad para el problema del ao 2000. La fase de mantenimiento de software es una parte explcita del modelo en cascada del proceso de desarrollo de software el cual fue desarrollado durante el movimiento de programacin estructurada en computadores. El otro gran modelo, el Desarrollo en espiral desarrollado durante el movimiento de ingeniera de software orientada a objeto no hace una mencin explcita de la fase de mantenimiento. Sin embargo, esta actividad es notable, considerando el hecho de que dos tercios del coste del tiempo de vida de un sistema de software involucran mantenimiento (Page-Jones pg 31). Tipos de mantenimiento A continuacin se sealan los tipos de mantenimientos existentes, definidos tal y como se especifican para la metodologa de MTRICA:

Perfectivo: son las acciones llevadas a cabo para mejorar la calidad interna de los sistemas en cualquiera de sus aspectos: reestructuracin del cdigo, definicin ms clara del sistema y optimizacin del rendimiento y eficiencia. Evolutivo: son las incorporaciones, modificaciones y eliminaciones necesarias en un producto software para cubrir la expansin o cambio en las necesidades del usuario. Adaptativo: son las modificaciones que afectan a los entornos en los que el sistema opera, por ejemplo, cambios de configuracin del hardware, software de base, gestores de base de datos, comunicaciones, etc. Correctivo: son aquellos cambios precisos para corregir errores del producto software.

3 Ingsoft6@gmail.com

Ingeniera del Software Equipo 6


Cabe sealar que, de estos 4 tipos de mantenimiento, solamente el correctivo y el evolutivo entran en el mbito de MTRICA versin 3, ya que los otros dos requieren actividades y perfiles distintos a los del proceso de desarrollo. Para aplicar la mejora continua a todo lo anterior es necesario aplicar ciertos pruebas las cuales debern de probar cada etapa del desarrollo del software dichas pruebas se deben de realizar de forma paralela y de forma continua probando la unidad del programa, la integracin del diseo fsico, probando el sistema en cuestin al diseo lgico y por ultimo prueba de aceptacin esta se realiza en base a los requerimientos que se obtuvieron anteriormente, este es un proceso de prueba sencilla y muy utilizada. Dentro de la ingeniera del software se proporcionan soluciones tcnicas que permiten abordar el mantenimiento de manera que su impacto en coste dentro del ciclo de vida sea menor. Las soluciones tcnicas pueden ser de tres tipos: Ingeniera inversa: Anlisis de un sistema para identificar sus componentes y las relaciones entre ellos, as como para crear representaciones del sistema en otra forma o en un nivel de abstraccin ms elevado. Reingeniera: Modificacin de un producto software, o de ciertos componentes, usando para el anlisis del sistema existente tcnicas de ingeniera inversa y, para la etapa de reconstruccin, herramientas de ingeniera directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilizacin, comprensin o evolucin. Reestructuracin del software: Cambio de representacin de un producto software, pero dentro del mismo nivel de abstraccin. El objetivos de estas tcnicas es proporcionar mtodos para reconstruir el software, ya sea reprogramndolo, re-documentndolo, redisendolo, o rehaciendo alguna/s caracterstica/s del producto. La diferencia entre las soluciones descritas radica en cul es el origen y cul es el destino de las mismas (producto inicial y/o producto final). Grficamente, estas tres soluciones tcnicas se enmarcan en el ciclo de vida de la siguiente manera:

4 Ingsoft6@gmail.com

Ingeniera del Software Equipo 6


Figura 1. Relaciones entre los trminos asociados con la Reingeniera.

La Ingeniera directa corresponde al desarrollo del software tradicional. La Ingeniera Inversa es el proceso de anlisis de un sistema para identificar sus componentes e interrelaciones y crear representaciones del sistema en otra forma o a un nivel ms alto de abstraccin. La Reingeniera es el examen y la alteracin de un sistema para reconstruirlo de una nueva forma y la subsiguiente implementacin de esta nueva forma. La Reestructuracin es la modificacin del software para hacerlo ms fcil de entender y cambiar. La reingeniera hace referencia a un ciclo, esto es, se aplican tcnicas de ingeniera inversa para conseguir representaciones de mayor abstraccin del producto y sobre ellas se aplican tcnicas de ingeniera directa para redisear o re-implementar el producto. Cualquiera de estas tcnicas se puede aplicar a lo largo de todas las fases del ciclo de vida o bien entre algunas de sus fases. Tambin existen otras tecnologas, como por ejemplo: La re-modularizacin: consiste en cambiar la estructura modular de un sistema de forma que se obtenga una nueva estructura siguiendo los principios del diseo estructurado. Anlisis de la facilidad de mantenimiento: normalmente la mayor parte del mantenimiento se centra relativamente en unos pocos mdulos del sistema. Visualizacin: el proceso ms antiguo para la comprensin del software. Anlisis y mediciones: son importantes tecnologas que estudian ciertas propiedades de los programas. Otros puntos que son importantes considerar son las auditorias y las acciones correctivas representan el motor impulsor de la mejora continua en el sistema de calidad, por lo que es de vital importancia llevar un estricto control en el seguimiento de todos los problemas o no conformidades desde su deteccin hasta la eliminacin definitiva de la causa raz. Para haber desarrollado un plan de prueba primero se debi haber basado en lo que son los requerimientos para posteriormente describir las tcnicas de pruebas a utilizar que se aplicaran en las diferentes etapas del desarrollo del software. Algo muy importante que no se puede dejar pasar es que todas las pruebas se deben de realizar durante la realizacin del software ya que si se llegara esperar al final del desarrollo del sistema esto puede ser muy tardado y costoso devolverse al origen de los posibles errores, mientras todo programa se est probando durante su desarrollo es lo mejor y mas optimo para quien lo esta desarrollando, ya que de esta manera disminuye costos, tiempo y esfuerzo en el desarrollo del software y de esta manera puede brindar un software de calidad al cliente siempre cumpliendo con las necesidades o requerimientos del cliente.

5 Ingsoft6@gmail.com

Das könnte Ihnen auch gefallen