Está en la página 1de 7

Ciclos de Vida y Tecnologias de Software

Con la evolucin de la tecnologa y el gran uso que se le da en nuestros das, han surgido cada vez ms necesidades, requerimientos y demandas por parte de la sociedad con la finalidad de hacer ms simple su forma de vida a travs de la tecnologa de software e informacin. Las organizaciones y sus sistemas no escapan a estas demandas de actualizacin por lo que el rea de ingeniera de sistemas y desarrollo de software juegan un papel primordial en la implantacin de nuevos servicios para agilizar procesos empresariales a travs de proyectos, programas y sistemas. Hoy en da el desarrollo de software es una tarea que requiere de especialistas en diferentes reas, pero Por qu no llamar a un solo especialista en el tema? La respuesta es sencilla, a medida que las exigencias van aumentando, tambin lo hace la cantidad de conocimiento que debe tener un especialista, por lo tanto, es ms sencillo y eficiente trabajar en un equipo de desarrollo de software que implique a varios expertos en diferentes etapas del diseo, bajo una organizacin por etapas, seguimiento y evaluacin colectiva, para lograr el objetivo en comn: la implantacin y actualizacin de un software eficiente que cumpla con todas las exigencias y requerimientos de una persona, empresa u organizacin. En nuestra opinin podra verse como un sistema creando un sistema. Teniendo todo esto en cuenta se forman otras interrogantes Cmo organizar al grupo?, Bajo qu parmetros y normas trabajar?, Qu duracin tiene el desarrollo de un sistema o un programa?, Cmo verificar el avance y la confiabilidad del sistema? Todas las respuestas podran ser atribuidas al conjunto de caractersticas que comparten los sistemas en su fase de diseo y creacin, una serie de pasos que guan al equipo de desarrollo en su jornada de trabajo, una gua de existencia para el software: Los modelos de ciclos de vida de software. A mediados de los setenta ya se tenan similitudes suficientes como para tratar de estandarizar el proceso de desarrollo de software, sin embargo, estas estandarizaciones dependern del tipo de software y los requerimientos del cliente como lo son el tiempo, la complejidad del programa, el tamao del sistema, entre otros. Por esto, se crearon varios modelos de ciclos de vida que se adaptaran a las preferencias del equipo de desarrollo en base a lo requerido por el cliente. En qu se basan estos modelos de ciclos de vida? Obviamente los modelos de ciclos de vida de software tienen su base y fundamento en el desarrollo de un sistema en funcin a los requerimientos del cliente, el equipo de desarrollo debe estudiar y conocer las necesidades, opciones y limitaciones que posee la organizacin, por ejemplo, En qu sistema operativo se montar el software?,

Qu acciones necesita que realice el programa?, Cmo interacta el sistema con los usuarios y los clientes?, todo esto con el fin de recolectar la mayor cantidad de datos e informacin posibles para dar comienzo al diseo general y posteriormente el diseo detallado del sistema a implementar, con el fin de observar desde varios puntos de vista la capacidad que va adquiriendo el software en comparacin con la informacin obtenida del cliente. Luego de haber diseado y explotado el diseo del sistema, se transforma el diseo en el cdigo fuente de un ejecutable utilizando el lenguaje de programacin ms que parezca ms conveniente, todo esto tomando en cuenta siempre en las demandas del cliente, se crea un manual de usuario y se realizan las pruebas respectivas del funcionamiento del sistema para luego entregarlo y evaluarlo con la organizacin que lo utilizar, corrigiendo as posibles problemas o discrepancias entre el resultado final y los datos iniciales. Luego slo quedara la actualizacin y monitoreo del funcionamiento del software para posibles mejoras o modificaciones. S, hemos descrito el proceso de desarrollo de software, pero ste proceso puede verse de manera ms simple, ya que el mismo tiene nombre, apellido y extensiones, hemos descrito el modelo de vida en cascada, el cual representa el modelo convencional y ms utilizado por los desarrolladores, as como sus fases: definicin de requisitos, diseo, implementacin, transferencia del producto y evolucin. Se podra decir que ste ciclo de vida es la fuente, la madre de todos los dems, pues hay quienes afirman que los otros modelos son derivados de ste, slo que incluyen una mayor participacin y retroalimentacin con el cliente y otros sectores primordiales para el desarrollo. Pero Por qu tener modelos derivados si ste abarca el proceso de desarrollo completo? Simple, como cada teora, tiene sus pros y sus contras, el modelo de cascada se caracteriza por ser riguroso y el cliente puede tener acceso a l slo al final del desarrollo lo cual dificulta la correccin de algunos problemas, Posible solucin?, nace el modelo incremental, basado en una serie de entregas de prototipos (desechable e incremental), dichos prototipos se entregan al final de cada etapa para una evaluacin, interaccin y crtica continua por parte del cliente por medio de la ejecucin de mdulos individuales del sistema de manera grfica o codificada. El incremental corrige algunos detalles, pero no todos, otra propuesta hecha es el modelo de sntesis automatizada, el cual se basa en una correccin y comparacin de cada etapa con la anterior para mantener el sistema lo ms fiel posible a los requerimientos iniciales Aprobacin total por parte de los ingenieros de software?, no, pues existe el problema de falta de herramientas y problemas de compatibilidad a la hora de utilizar mtodos formales de integracin y programacin de software, adems de la mala fama en el sector industrial. Entonces Qu modelo escoger para una mayor eficiencia en el producto?, aos ms tarde se present un modelo que mejoraba muchas de las caractersticas de

los anteriores, su nombre: modelo en espiral. Por qu evaluar y mejorar los modelos en base a crticas peridicas cuando puedes iniciar con situaciones problemticas e ir bajando la intensidad de las mismas?, en ste modelo se nos da la ventaja de cumplir con los requerimientos ms difciles e inesperados para luego ir llegando a las situaciones normales de ejecucin del programa, lo cual corrige desde el inicio la mayora de errores que se encontraban luego de la implementacin del sistema en la organizacin. Luego de analizar algunos de los modelos de ciclo de vida ms utilizados Cul sera el ms indicado?, la respuesta es que no hay respuesta, la eleccin va a depender de los requerimientos y limitaciones del cliente (tiempo, dinero, compatibilidad) y las recomendaciones del equipo de desarrollo en base a estas (lenguaje, ambiente y tecnologa de software), todo esto con el fin de lograr el mejor resultado en la cantidad de tiempo ms ptima, cmoda y eficiente para ambas partes.

Cabe destacar que los modelos de ciclo de vida, el tiempo y la compatibilidad no son los nicos factores que interfieren en el desarrollo de un sistema, otro punto determinante a tomar en cuenta es la utilizacin, costo y eficiencia de la tecnologa de software a utilizar para la adaptacin, diseo y creacin de un programa.

El desarrolo de software o de sistemas informaticos de cualquier tipo, requieren de un conjunto de metodologias y paradigmas que van a ser el factor fundamental del desarrollo del producto final. Nos atrevemos a decir que este ente es el de mayor significancia en este desarrollo, incluso mas que el tipo de software mismo, y el ciclo de vida seleccionado para dicho desarrollo. Los procedimientos relacionados a la parte lgica son los fundamentales, ya que el proceso de programacion lo que da vida al software. Todos estos paradigmas, procedimientos, requerimientos y modelos se conocen como tecnologias de software. Pero por que es importante el constante cambio en el desarrollo de software? Nosotros como ingenieros en sistemas, creadores de productos isomorfos de la realidad, debemos estar a la vanguardia en las nuevas tecnologas y aprender cada una de ellas para que el producto final sea mas provechoso y adems con fines de facilitar el mismo proceso, es necesario ser detallista y saber cual es la tecnologia de software que mas se ajusta a nuestras necesidades. Podemos decir entonces que las tecnologias de software se componen de varios elementos: notaciones, herramientas (hardware y software), mtodos y directrices de aplicacion. Usamos elementos anteriores, herramientas creadas con anterioridad para crear y optimizar sistemas, somos recursivos. Uno de los puntos de partida en las diferentes tecnologas de software es un marco de

razonamiento, una manera de pensar, de crear basandonos en conocimientos matemticos y cientificos. Recordemos que debemos ajustar nuestras necesidades a las capacidades lgicas del hardware y por ende nuestras limitaciones son proporcionales al avance de la misma. Las notaciones, que no son mas que lenguajes que nos permiten ordenar y programar el sistema tienen un punto o un conjunto de normas por las cual debemos regirnos y no escaparnos de esa capacidad. Hacemos sistemas sobre sistemas anteriores. Es por ello entonces que se debe realizar una planificacin de acuerdo a estas limitaciones. El ingeniero en sistemas debe establecer los requerimientos necesarios para el software, debe inferir que tan grande o que tan pequeo va a ser el consumo del sistema y debe pensar si es factible para el cliente un sistema complejo. C.A.R Hoare decia: Existen 2 formas de desarrollar un diseo de software: Una es hacerla tan simple que obviamente no hay deficiencias, y la otra es que sea tan complicada que no existan deficiencias obvias. El primer mtodo es mucho ms dificil. Obviamente debe existir un equilibrio entre la simplicidad y complejidad, tampoco se debe caer en el desarrollo sistemas de a prueba de tontos. Las tecnologias de software deben usarse como un rompecabezas, establecer que es lo mas conveniente y que converge mas rapidamente a la solucion del problema planteado. Mencionabamos anteriormente, que los diferentes lenguajes de programacion son lo que dan vida al software. Estas notaciones han ido evolucionando buscando siempre alejarse del lenguaje mquina y siendo mas til para el programador, hasta convertirse en herramientas, con bibliotecas de interfaces, herramientas con un conjunto de aplicaciones de desarrollo preestablecidas que facilitan y estandarizan el proceso, surgen as Entornos de Desarrollo Integrado (IDE). Cabe destacar que estas notaciones tienen o presentan diferentes caracteristicas en comn como lo son: la abstraccin, generalizacion, potencia expresiva y eficiencia. Ajustando estos conceptos a los ciclos de vida y al desarrollo de sistemas complejos, podemos destacar los ltimos tres. Un equipo de desarrollo que ofrece un producto debe tratar de que el producto final tenga un grado de compatibilidad y de estabilidad con diferentes tipos de requerimientos, pudiese mencionarse sistemas multiplataforma, con el fin de que exista una comodidad y robustez en el sistema. Un lenguaje de programacion adecuado para el desarrollo que garantice la capacidad de trabajar con numerosos programadores, es elemental, la capacidad de dividir el sistema en mdulos, separar la interfaz de los procesos lgicos para dividir asi mismo el trabajo es muy significativo y eficaz. Adems estos lenguajes deben tener potencia expresiva, que no es mas que el conjunto de operaciones, objetos y relaciones que facilitan la programacion en si.

Es por esto que la tendencia actualmente es la programacion orientada a objetos (POO), ya que los lenguajes ubicados en este paradigma son mas eficientes para un equipo de desarrollo numeroso, pensamos que es elemental en el desarrollo el concepto de divide y venecers. Actualmente son indispensables herramientas para el desarrollo. Son herramientas de software para desarrollar sistemas, por lo general son un conjunto de funciones, aplicaciones y bibliotecas que permiten al programador desarrollar sistemas bastante completos. Surge aqu el concepto de integracin; anteriormente cada una de las herramientas de desarrollo estaban separadas (compiladores, depuradores, etc). Los IDE buscan llegar a una integracion conceptual, visual, de datos, control y proceso, para diferentes tecnologas de software. Que ventajas nos proporciona esta integracion? Obviamente una estandarizacion y una adaptacion a diferentes tipos de sistemas y por ende una mayor compatibilidad con los mismos, ya que existen entre ellos elementos comunes ya sea por el uso de herramientas o de paradigmas entre ellos. Adems facilitan el trabajo en la parte grfica, ya que son muchas las bibliotecas que preestablecen una interfaz de usuario que sea comn y cmoda para el mismo. Podemos entonces mencionar dos tecnologas de informacion fundamentales o que mas han repercutido en el desarrollo de sistemas de acuerdo a los ciclos de vida. Tecnologias de desarrollo estructurado y teconologias de desarrollo orientado a objetos. Estos no son mas que paradigmas establecidos a diferentes necesidades que contienen un conjunto de normas y metodologias informticas. En que se asemejan estas tecnologias o paradigmas?. Ambas requieren de una consolidacion de conocimiento previo y de entender conceptos asociados a la lgica informtica, solo discrepan en el como hacer y el enfoque que se le da a la solucion de un problema o situacion. Actualmente La tecnologa de desarrollo orientado objeto es la tendencia Por qu? Por su rapida convergencia y por la capacidad y facilidad que ofrecen tanto a un programador como a un equipo de desarrollo. De hecho actualmente la mayora de las aplicaciones y herramientas de desarrollo van enfocados a este ltimo. La descomposicion lgica por objetos, clases e instancias, es lo que realmente tiende a una solucin eficaz, adems de ajustarse a los ltimos avances y de estar a la vanguardia. Nosotros como ingenieros en sistemas, pensamos que se debera promover esta ltima por los beneficios antes mencionados, adems las limitaciones de la tecnologa estructurada son mayores a los del paradigma orientado a objetos, de hecho si nos enfocamos en el campo tecnolgico en internet, es necesario y fundamental dominar este paradigma que impulsa hacia el futuro las metodologias de desarrollo de software y que por supuesto se ajusta a los ciclos de vidas mas recomendados para dicho proceso de desarrollo y a las nuevas tendencias o metodos de programacion gil. Hemos entonces dado un recorrido por el avance de las tecnologas del software, hemos establecido conceptos fundamentales y hemos opinado acerca

de las actuales tendencias en el desarrollo de software, pero realmente Cual es el punto clave de este proceso?. Como futuro desarrolladores perteneceremos a un equipo de personas que trabajan en conjunto para un fin que es el desarrollo de un producto infrmatico. Esto implica que debemos planificar, organizar y coordinar este proceso, o simplemente contribuir con una planificacion ya establecida por el equipo, entonces, debemos conocer las metodologias que debemos usar a la hora de este desarrollo, en el ncleo, en la fase lgica y ms importante, en el desarrollo mismo y la programacion. Conocer los pro y contra de las diferentes notaciones, directrices, herramientas y requerimientos que debemos manejar nos permitira inferir y a medida del acumulamiento de la experiencia manejar como profesionales del software un proyecto o un sistema a gran escala. Ir a la vanguardia, aprender nuevas tendencias, actualizar herramientas, son labores intrnsecas y elementales en nuestra formacion, que no empieza ni termina en el perodo estudiantil, sino que nos acompaa durante toda nuestra carrera.

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA DE LAS FUERZAS ARMADAS NUCLEO LARA PROCESAMIENTO DE DATOS

CICLOS DE VIDA Y TECNOLOGIAS DE SOFTWARE

PROFESOR: DANIEL CORONEL

ESTUDIANTES: RAFAEL BECERRA ANGEL PRATO PEDRO PLASENCIA MARIALBYS NAVAS 4M1IA