You are on page 1of 8

Ingeniera de Software

Herramientas, alcance, procesos

Septiembre 2010

UACH

FCA

SIP

Introduccin Desde los aos 40's las aplicaciones y usos de las computadoras han crecido de forma constante. Hoy en da el software juega un papel central en casi todos los aspectos de la vida cotidiana: gobierno, finanzas, educacin, transporte, medicina, etc. Es por esto que en la actualidad el desarrollo del software representa un gasto considerable que tienen que realizar los pases que desean continuar en desarrollo. De forma paralela, la complejidad de los sistemas ha crecido de forma dramtica, y anualmente se gastan millones de dlares en cuestiones de desarrollo de software. Pero a pesar de que los sistemas de software nos han permitido ser ms eficientes y productivos existen serios problemas relacionados con su desarrollo. Estos problemas tienen que ver con el tiempo, costo y calidad de los sistemas que se crean. Los productos de software se ubican entre los sistemas ms complejos realizados por el hombre y su naturaleza intangible complica ms el problema. Por lo general, las tcnicas de desarrollo que funcionan de forma individual o para equipos pequeos no funcionan adecuadamente para el desarrollo de sistemas complejos. Adems, si consideramos que la velocidad de cambio tecnolgico es muy elevada, los clientes tienen nuevas expectativas y todo ello en conjunto, limita la habilidad de crear software de calidad en tiempos aceptables. Es muy importante saber, que un programador no es equivalente a un ingeniero de software. Cualquier persona puede sentarse a programar conociendo un lenguaje de programacin, pero esto no garantiza que se pueda crear una solucin compleja a una necesidad en tiempo, costo y calidad. El desarrollar software sin conocer tcnicas de ingeniera representa un enfoque artesanal de desarrollo que hoy en da sigue siendo comn. Es por lo anterior, que la ingeniera de software busca dar solucin a este tipo de problemas utilizando mtodos y herramientas para el desarrollo profesional de software.

Desarrollo La IEEE maneja como concepto de ingeniera de software a la aplicacin de un enfoque sistemtico (ordenado), disciplinado y cuantificable al desarrollo, operacin y mantenimiento de software, esto es, la aplicacin de la ingeniera en el rea del software. La Ingeniera de Software es una disciplina de la Ingeniera que concierne a todos los aspectos de la produccin de software. Los Ingenieros de Software adoptan un enfoque sistemtico para llevar a cabo su trabajo y utilizan las herramientas y tcnicas necesarias para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y recursos tecnolgicos disponibles. El proceso para desarrollo de software sigue, a grandes rasgos, los siguientes pasos: 1. Especificacin: Qu debe hacer el software y cules son sus especificaciones de desarrollo. 2. Desarrollo: Produccin del sistema de software. 3. Validacin: Verificar que el software hace lo que el cliente pide. 4. Evolucin: Cambiar/adaptar el software a las demandas. Este desarrollo se complica regularmente, porque las especificaciones son incompletas o absurdas y no existe una distincin precisa en la especificacin, el diseo y la manufactura, por lo que solo hasta que el sistema se ha producido puede ser probado. Esto nos lleva a que los sistemas no cumplan con las necesidades de los usuarios, generando as prdidas de tiempo en la modificacin del software, por lo que el costo de corregir y mantener es el ms alto asociado con el software. Y para ayudar a disminuir esos costos, las metodologas tradicionales haciendo nfasis en la planeacin, y las metodologas giles haciendo nfasis en la adaptabilidad del proceso, delinean las principales propuestas. De manera paralela, el tema de modelos para el mejoramiento de los procesos de desarrollo ocupa un lugar importante en la bsqueda de la metodologa adecuada para producir software de calidad en cualquier contexto de desarrollo.

Por ejemplo, XP, una de las ms difundidas, es una metodologa de desarrollo de software gil que define pocas reglas y pocas prcticas. XP promueve la adaptabilidad de los procesos de desarrollo basndose en los principios y prcticas que presenta. Quienes trabajan usando XP1 deben seguir procesos disciplinados, pero ms que eso, deben combinar la disciplina con la adaptabilidad necesaria del proceso. Es importante tener en cuenta que el uso de un mtodo gil no es para todos. Sin embargo, una de las principales ventajas de los mtodos giles es su peso inicialmente ligero y por eso las personas que no estn acostumbradas a seguir procesos encuentran estas metodologas bastante agradables. Algunos de los modelos giles son: Crystal Clear, Scrum, UP y MSF. Tanto los modelos giles como los tradicionales atacan el problema de mantener el conocimiento dentro de la organizacin: o o Los grupos formales tienen documentacin. Los grupos giles confan en las personas.

La principal diferencia es acadmica. En la vida real ambos tienen que llegar a un compromiso. Los diagramas, descripciones, explicaciones son de gran ayuda y son necesarios para entender la complejidad del sistema. La metodologa por s sola, sin personas, es solo texto muerto. En el tema de Mejoramiento de Procesos de Software (SPI) se encuentra por ejemplo la propuesta realizada por el Instituto de Ingeniera de Software con su trabajo sobre IDEAL 2 y CMMI3. Sin embargo, al igual que para los procesos de desarrollo, las prcticas requeridas para mejorar un proceso de software dependen altamente del contexto donde se mejoran los procesos. Por ejemplo, no es igual mejorar los procesos al interior de equipos con alta rotacin, y gran nmero de participantes, que mejorarlos en un equipo pequeo y estable. Antes de definir el modelo de ciclo de vida de desarrollo para un proyecto dentro del contexto sealado, hay que entender los fundamentos bsicos, los obstculos y ventajas, antes de seguir un modelo determinado.

Programacin Extrema o eXtreme Programming (XP) es un enfoque de la ingeniera de software formulado por Kent Beck. 2 Impulsora del Desarrollo Econmico de Amrica Latina. 3 Modelo de calidad del software que clasifica las empresas en niveles de madurez.

Esto incluye como primera medida, realizar un estudio de las prcticas que se van a poner en ejecucin dentro de un proyecto. Los modelos hbridos (tradicionales y giles) deben ser estructurados teniendo en cuenta las caractersticas propias del proyecto. UP Proceso Unificado Es un proceso de desarrollo de software configurable que se adapta a travs de los proyectos variados en tamaos y complejidad. Se basa en muchos aos de experiencia en el uso de la tecnologa orientada a objetos en el desarrollo de software de misin crtica en una variedad de industrias por la compaa Rational. El UP gua a los equipos de proyecto en cmo administrar el desarrollo iterativo de un modo controlado mientras se balancean los requerimientos del negocio, el tiempo al mercado y los riesgos del proyecto. El proceso describe los diversos pasos involucrados en la captura de los requerimientos y en el establecimiento de una gua arquitectnica lo ms pronto, para disear y probar el sistema hecho de acuerdo a los requerimientos y a la arquitectura. El proceso describe qu producir, cmo desarrollarlo y tambin provee patrones. El proceso unificado es soportado por herramientas que automatizan entre otras cosas, el modelado visual, la administracin de cambios y las pruebas. MSF - Microsoft Solutions Framework Es una serie de modelos flexibles interrelacionados que guan a una organizacin sobre cmo ensamblar los recursos, el personal y las tcnicas necesaria para asegurar que su infraestructura tecnolgica y sus soluciones cumplan los objetivos de negocio. Mantiene una relacin clara entre los objetivos de negocio y las implementaciones tecnolgicas y proporciona las tcnicas ligadas a la tecnologa. Muestra como estructurar equipos de alto desempeo para crear soluciones ms rpido, mejor y ms baratas. MSF considera que hay cuatro perspectivas de arquitectura que cumplen los requerimientos de una empresa: Arquitectura de negocios, arquitectura de aplicacin, arquitectura de informacin y arquitectura tecnolgica.

Tanto el Proceso Unificado como MSF se enfocan en la arquitectura como el centro del desarrollo para asegurar que el desarrollo basado en componentes sea clave para un alto nivel de reso. XP Extreme Programming Es el ms destacado de los procesos giles de desarrollo de software. Al igual que stos, la programacin extrema se diferencia de las metodologas tradicionales principalmente en que pone ms nfasis en la adaptabilidad que en la previsibilidad. XP se enfoca en la comunicacin con el cliente y el trabajo en equipo. Las cuatro claves de XP son: o o o o Comunicacin Simplicidad Retroalimentacin Coraje

Es utilizado en proyectos con requerimientos cambiantes con equipos de desarrollo pequeos (entre 2 y 12 personas). Se puede considerar la programacin extrema como la adopcin de las mejores metodologas de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinmica durante el ciclo de vida del software.

Conclusiones El software es un motor para el crecimiento econmico de cualquier pas. Como podemos darnos cuenta en nuestra vida cotidiana, la tecnologa se aplica a cada una de nuestras actividades diarias, en nuestros empleos, en el supermercado, en la educacin, etc. Es por esto que el software, como necesidad fundamental del hardware, toma un papel importantsimo dentro de este desarrollo y actividad diaria. Considero que nuestro pas no es la excepcin de esta necesidad de introducir tecnologa de punta e invertir en TI que lo ayuden a salir de su nivel de subdesarrollado a un pas con capacidades econmicas considerables. Actualmente existen empresas nacionales que se dedican al desarrollo de software de alguna u otra forma. Lamentablemente la falta de apoyo por parte de nuestros gobiernos impide que crezcan y se conviertan en empresas reconocidas, como las que actualmente se encuentran en Estados Unidos u otros pases con economas slidas. Pero a pesar de todos los obstculos que se puedan presentar, PROSOFT 4establece claramente la necesidad de contar con personas capacitadas, y no de hacer la contratacin de externos, sino de capacitar a nuestra gente para que por medio de tcnicas y mtodos bien establecidos puedan desarrollar el software con las caractersticas necesarias para hacerlo funcional, en costo y tiempos adecuados. Se podrn combatir los problemas relacionados con el software, en la medida en que se tome con seriedad la produccin del mismo. Por lo que considero que la Ingeniera de ste, como tal, es la creacin de software de calidad que ayude a dar solucin a los problemas que afectan directamente a los seres humanos en su actividad cotidiana. Utilicemos pues las herramientas que se nos dan para desarrollar el software de calidad de la mejor manera, y as contribuir al desarrollo de nuestro pas.

Programa para el Desarrollo de la Industria del Software.

Bibliografa http://www.acis.org.co/index.php?id=551 http://www2.uacj.mx/IIT/CULCYT/agosto-septiembre2004/4ARTIC~1.PDF http://www.mitecnologico.com/Main/ElModeloProcesoUnificado http://www.slideshare.net/fmmeson/metogologias-de-desarrollo-de-software-tradicionales-vs-agiles

You might also like