You are on page 1of 5

Nuevas Metodologías de Ingeniería de Software

William Hernando Álvarez Villota
Luis Fernando Díaz Muñoz
Juan Sebastián Erazo Chamorro
Robín Adrián Rúales Bastidas
Institución universitaria CESMAG
San Juan de Pasto, Republica de Colombia
juanserazo@hotmail.es
juanserazo@hotmail.es
luisefediazm@gmail.com
williamalvarez0094@gmail.com
rarb54x@gmail.com

I.

INTRODUCCIÓN

El desarrollo del siguiente formato contiene
información sobre las nuevas metodologías de
ingeniería de software, los métodos de desarrollo de
software que han innovado y cambiado la perspectiva
del manejo de la ingeniería de software, de igual
manera también las ventajas y desventajas que pueden
presentar cada uno de los métodos a mencionar.
II.

ABSTRACT

The development of the following format
contains information on new methodologies of
software engineering, methods of software
development have innovated and changed management
perspective of software engineering, likewise also the
advantages and disadvantages that can present each of
the methods mentioned.
III.

¿QUE ES METODOLOGIA EN INGENIERIA
DE SOFTWARE?

Una metodología es un conjunto integrado de
técnicas y métodos que permite abordar de forma
homogénea y abierta cada una de las actividades del
ciclo de vida de un proyecto de desarrollo. Es un
proceso de software detallado y completo.
Una metodología para el desarrollo de software
comprende los procesos a seguir sistemáticamente para
idear, implementar y mantener un producto software
desde que surge la necesidad del producto hasta que
cumplimos el objetivo por el cual fue creado.
La metodología dentro de la ingeniería del
software es un tema que produce cierto tipo de
confusión tanto en estudiantes como en profesionales
involucrados en procesos de desarrollo de software, de

tal manera, que en muchos proyectos la aplicación de
una metodología no se la aprecia de la manera que
debe, tomando este un concepto del cual poco se
conoce.
Entre las metodologías que hay para la ingeniería
de software no hay una que se pueda decir que es
superior a las demás, en cambio todas las metodologías
según la problemática son bienintencionadas, solo que,
por obvias razones las metodologías modernas o
nuevas se ven encaminadas a problemáticas y
necesidades actuales.
Gracias a los avances que hay dentro de la
informática, muchos profesionales de las tecnologías
de la información como algunos de los clientes han
visto la necesidad de usar unos pasos predefinidos para
el desarrollo del software de calidad, es decir seguir un
lineamiento metódico: una metodología. b
Que metodología utilizar dentro de la Ingeniería
de Software
Dentro de la buena utilización de una metodología
dentro de la ingeniería de software, el paso más
importante y el cual decide que rumbo tomara el
desarrollo del software es la elección de cual
metodología hacer uso, hay una serie de metodologías
que se pueden llamar “tradicionales”, las cuales son
propuestas en el periodo de los años 90 del siglo XX,
que tenían como propósito ayudar a los profesionales
indicando pautas para realizar y documentar cada una
de las tareas del desarrollo del software, las cuales
tienen un problema con respecto al contexto
informático, que es tomarlo como la extensión de un
proyecto burocrático tradicional. Así utilizando pasos
que sugieren un desarrollo de la tarea de forma

como Barry Boehm o Winston W. utilizando un desarrollo preciso como para que todas las personas puedan seguirlas y sea de utilidad como pauta común. etc. reiterada. Indican pautas de comportamiento en los sistemas de programación que por consecuente no tienen nada que ver con el ciclo de vida del software ni la manera en la que debe realizarse cada tarea para un proyecto. "en Cascada". Royce. unas con respecto a otras y con respecto a otros aspectos como el tiempo. Otras. De los 80 también. competitividad y los beneficios que puede tomar el desarrollo del Software. (Proceso Ágil Unificado . satisfacción. que "no pasan de moda". etc. Hay muchas más. Actualmente se prefiere la denominación de PATRONES del ciclo de vida del software. De los años 80. Metodología METRICA.AUP) Programación Orientada A Aspectos (POA) Arquitectura Orientada a Servicios (SOA) . como SSADM o MÉTRICA. Sin Como se puede ver las metodologías se pueden “dividir” en dos tipos las cuales son: metodologías tradicionales y metodologías modernas. y probablemente tienen cierta vigencia dado que se tratan de ideas muy básicas. (Proceso Racional Unificado . Entre las metodologías modernas se pueden destacar: Las metodologías que surgieron y surgen desde los años 90 hasta aquí suelen tener una visión diferente porque son conscientes de que el mundo del software es un campo amplio y que está en constante cambio. "Ciclo de vida incremental". aunque antaño fueron denominados simplemente distintos "Ciclos de vida". Rational Unified Process. Indican ideas estructurales sencillas en el proceso de desarrollo. fueron propuestos en los años 70 y 80 por autores hoy en día clásicos. Todavía aparecen en los libros. pero de la misma forma tiene que ser adaptable para que se pueda aplicar en proyectos diferentes y suficientemente sencilla para que su ejecución no sea muy grave. tienen cierta vigencia. Aún con sus carencias. "con prototipo". y puntos criticables es un avance muy significativo: un lenguaje común para que todos los profesionales del desarrollo de sistemas expresen sus ideas pero el UML no indica a nadie la manera de realizar cada tarea en un proyecto concreto: tan solo es una herramienta para expresar ideas. También de los 80. Dejando a un lado cosas como la calidad. obligando a algunas a ser revisadas y adaptadas pero con una funcionalidad limitada a proyectos que pueden tornarse poco innovadores.burocrática. en especial en lo que concierne a proyectos públicos. promovida por el Ministerio de las Administraciones Públicas del gobierno de España Algunas. pero quizá éstas sean las más populares en el momento. Ingeniería de la información. Entre las metodologías tradicionales podemos encontrar:     Desarrollo de sistemas de Jackson (JSD).  Los términos "Ciclo de vida en espiral". como las dos primeras (Jackson. tienen un interés principalmente histórico. Structured System Analysis and Design Method (SSADM). Ingeniería de la información). pero sea completamente y complejamente provechosa. estando ya obsoletas desde casi todas las perspectivas.RUP) Agile Unified Process. resumiendo en una solo concepto: Metodología ágil. ¿Qué tipo de metodologías hay dentro de la Ingeniería de Software?     ¿Qué cosas no podemos tomar como metodologías de Ingeniería de Software?  La "Programación estructurada" o la "Programación Orientada a Objetos" son paradigmas o modelos de programación. Son esquemas generales de organización en las tareas del ciclo de vida. con ambigüedades. Muy popular en Europa. Gran parte de las metodologías tradicionales ya no funcionan. los requisitos o el riesgo. y no la manera en la que debe realizarse cada tarea del ciclo para un proyecto concreto  El lenguaje UML (Unified Modeling Languaje) es un gran logro de la ingeniería. ya que tiene su origen el Reino Unido.

etc. menos enredado y reducido . intenta separar componentes y aspectos por aparte arrojando como resultando mecanismos que puedan ser utilizados para componer todo un sistema de una manera que sea eficiente y a su vez fácil de entender. algunas metodologías de las que hemos comentado. manejo de errores. estos aspectos existen no solo al principio o al final sino tanto en la etapa de diseño como en la de implementación.. son capaces de manejar uno o varias aspectos pero no pueden manejar aspectos diferentes a los cuales no fueron diseñados. lenguajes los cuales brindan los mecanismos necesarios para poder capturar y junto con ello declarar los elementos que están diseminados por todo el sistema. elementos que se cruzan entre sí como elementos de primera clase. PROGRAMACIÓN ORIENTADA A ASPECTOS La programación orientada a aspectos es una de las nuevas metodologías de programación.embargo. un mismo servicio llamado de manera similar desde diferentes partes dentro del programa) y de tangled (código enmarañado. al igual que uno o varios lenguajes de aspectos para poder especificar los concerns. sincronización.     Los aspectos deben ser identificables Los aspectos deben auto contenerse Los aspectos deben ser accesibles al modificar Los aspectos no deben interferir entre si Algunos LOA son: La programación orientada a aspectos ayuda a resolver problemas de scattered (código disperso. lo contrario pasa con POA puesto que logra dicho objetivo al tratar Ilustración 1 Programación orientada a aspectos [estructura (POA)] Ventajas:  Un código más natural. como RUP o METRICA hacen referencia a UML como herramienta para expresar ideas. IV. donde la fortaleza del segundo se basa en la demostración de cuando hay que modelar conceptos comunes pero falla al modelar dichos conceptos. Para tener más claro el concepto de POA es necesario saber lo que es un aspecto: Se entiende por aspecto a una unidad modular que se disemina por la estructura de varias unidades funcionales. Los aspectos son la unidad básica de la programación orientada a aspectos. todo esto acompañado de un “tejedor” de aspectos para la combinación de los diferentes lenguajes y por último uno o más programas de aspectos que puedan implementarlos. una misma operación tiene que acceder a diferentes servicios además de cumplir con la operación a la que está asignado)      Cool RIDL MALAJ AspectC AspectC++ Una implementación basada en POA consiste principalmente en un lenguaje base para programar la funcionalidad básica. POA es un paradigma de programación la cual intenta permitir una modularización de las aplicaciones y posibilitar una separación de conceptos Se usa poa ya que existen conceptos que no pueden encapsularse dentro de una sola unidad funcional puesto que atraviesan todo el sistema como por ejemplo: manejo de memoria. El soporte necesitado para este tipo se logra mediante una nueva clase de lenguajes llamados LOA (lenguajes orientados a aspectos). La gráfica siguiente demuestra cómo se enmarca en cada uno de los conceptos anteriores POA es la consecución de la POO.

A. Apertura a nuevos mercados. canales y valor de sistemas existentes. pueden combinarse y recombinarse con suma facilidad en aplicaciones complejas que respondan a las necesidades de cada momento en el seno de una organización. proviene de las palabras inglesas Service Oriented Architecture. con la que SOA puede descomponer aplicaciones monolíticas en un conjunto de servicios e implementar esta funcionalidad en forma modular. Los LOA actuales no cuentan con mecanismos suficientes para poder respetar por completo los principios de diseño como por ejemplo el encapsulamiento subyacentes. En lugar de exigir que todos los datos y lógica de negocio residan en un mismo ordenador. MODELOS.O. las cuales se ofrecen como servicios. La forma más habitual de implementarla es mediante Servicios Web. ejemplo: la herencia de un aspecto a otro Posibles choques entre los aspectos. Las aplicaciones compuestas (también llamadas “dinámicas”) son lo que permite a las empresas mejorar y automatizar sus procesos manuales. Posibles choques entre el código funcional y en el código de aspectos Posibles choques entre el código de aspectos y los mecanismos del lenguaje. Capacidad de generar nuevos modelos de negocios. autónomos y para interconectarse adecuadamente. el modelo de servicios facilita el acceso y consumo de los recursos de IT a través de la red. adaptables.      Facilidad para depurar y hacer modificaciones al código Código reusable que se puede acoplarar/desacoplar cuando sea requerido y/o necesario Razonamiento mejor sobre los conceptos Eliminación de la dispersión del código Implementaciones en el código. El resultado final es que las organizaciones que adoptan la orientación a servicios pueden crear y reutilizar servicios y aplicaciones y adaptarlos ante los cambios evolutivos que se producen dentro y fuera de ellas. Alinear objetivos de IT a objetivos de negocio. fáciles de entender. Puesto que los servicios están diseñados para ser independientes. . disponer de una visión consistente de sus clientes y socios comerciales y orquestar sus procesos de negocio para que cumplan con las regulaciones legales y políticas internas. Ayuda a superar los problemas causados por el código mezclado y el código diseminado Desventajas:     V. ARQUITECTURA ORIENTADA A SERVICIOS (SOA) El acrónimo S. limpias. una tecnología basada en estándares e independiente de la plataforma. y con ello adquirir la agilidad necesaria para ganar ventaja competitiva. ejemplo: dos aspectos que separados funcionan muy bien pero al juntarlos arrojan como resultado un comportamiento anormal. establece un marco de diseño para la integración de aplicaciones independientes de manera que desde la red pueda accederse a sus funcionalidades. comprensibles. La estrategia de orientación a servicios permite la creación de servicios y aplicaciones compuestas que pueden existir con independencia de las tecnologías Ventajas       Respuesta rápida a nuevas necesidades de negocio. Capacidad de integrar a clientes y socios. Reducción del costo de desarrollo de IT.

Disponible en: https://emergingtechuva. La Arquitectura Orientada a Servicios (SOA) de Microsoft aplicada al mundo real. Isabel. Disponible en: http://www. CO “la tecla del escape”. VI. la comunicación entre aplicaciones requiere de mucho tiempo y código. Integra sistemas separados de distintas plataformas. Introducción a la programación orientada a aspectos. En la medida en que un servicio de negocio.wordpress.uy/%7Ejosej/docs/Programacion%2 0Orientada%20Aspectos%20%20Jose%20Joskowicz. Eliminar duplicidad de sistemas.     Permite la reutilización de componentes prefabricados de servicio para implementaciones lógicas. Bernardo.soaint.-%20Dise%F1o%20OO/POA. Arquitectura Orientada a Servicios (SOA). Sin estándares. Disponible en: http://lsi.fing. Sin embargo. [2] MARTIN. Con lo cual cada que se requiera efectuar una actualización en dicho servicio (por ejemplo.microsoft. Universidad nacional del sur.com/2013/11/25/a rquitectura-orientada-a-servicios-soa/ [3] SOAINT.angelfire. Disponible en: http://latecladeescape. Contreras.edu. Implica conocer los procesos del negocio. Debido a los beneficios que representa SOA & POA como nuevas metodologías y que van directamente aplicadas en el ámbito empresarial son muchos los países que han comenzado a desarrollar y/o utilizar estas estrategias.pdf [4] Vic.com/soa. una interfaz nueva. RODRIGO. Utilización de las nuevas metodologías en distintos países. vaya siendo incorporado en la definición de los procesos de negocio. extraer las funciones que son comunes a ellos. etc.es/~pdo/MaterialTeoriaAlumnos/Tema% 206. Mejorar la visibilidad de procesos de negocio. Disponible en: www.com/ri2/aspectos/Tesis/tesis. puede ser solventada en virtud a un buen diseño del servicio. Juan Manuel. Programación orientada a aspectos. un cambio en el código. Escuela técnica superior de ingeniería informática. Metodologías de desarrollo del software. José.pdf [2] Nieto Moreno. Desventajas:      SOA depende de la implementación de estándares. [Online]. Disponible en: http://www. SOA no es para: aplicaciones con alto nivel de transferencia de datos. estandarizarlas y formar con ellas capas de servicios que serán requeridas por cualquier proceso de negocio. Fernando. parte de la problemática anterior. Incrementalmente se hace difícil y costoso el ser capaz de cumplir con los protocolos y hablar con un servicio. dicho servicio aumentara su nivel de criticidad.). Automatiza los procesos de negocios. Ezequiel. deberá evaluarse previamente el impacto y tener mucho cuidado con su implementación. Disponible en: http://iie. principalmente los países y empresas orientales que han sido los que en su mayoría le apuestan más al uso de éstas metodologías puesto que ayudan a optimizar varios de sus procesos creando así un entorno más evolutivo de diversos campos en ellas arrojando así como resultado avances importantes en las mismas. aplicaciones que no requieren de implementación del tipo request/response y para aplicaciones que tienen un corto periodo de vida. clasificarlos. SERVICIOS ARQUITECTURA ORIENTADA A (SOA). BIBLIOGRAFÍA [1] Joskowicz. José.ugr. Programación orientada a aspectos.com/servicios/arquitecturaorientada-a-servicios/ .com/h/2015/07/metodologiasde-desarrollo-del-software [1] MICROSOFT.pdf [3] Asteasuain.