Articulo de referencia

Brownfield (desarrollo de software)

El desarrollo de Brownfield es un término comúnmente utilizado en la industria de la tecnología de la información para describir espacios problemáticos que requieren el desarrol...

El desarrollo de Brownfield es un término comúnmente utilizado en la industria de la tecnología de la información para describir espacios problemáticos que requieren el desarrollo y despliegue de nuevos sistemas de software en presencia inmediata de aplicaciones/sistemas de software existentes (heredados). El término fue introducido en 2008 por Hopkins y Jenkins. [ 1 ] Esto implica que cualquier nueva arquitectura de software debe tener en cuenta y coexistir con el software en funcionamiento ya instalado .

En la ingeniería civil contemporánea , un terreno industrial abandonado se refiere a una propiedad cuya expansión, remodelación o reutilización puede verse complicada por la presencia o la posible presencia de una sustancia peligrosa, contaminante o agente tóxico.

El desarrollo en entornos ya existentes (Brownfield) aporta una serie de mejoras a las prácticas convencionales de ingeniería de software . Estas prácticas suelen partir de cero, ofreciendo un entorno completamente nuevo ( tabula rasa ) durante las fases de diseño e implementación. Brownfield amplía estas tradiciones al insistir en que el contexto (el entorno local) del sistema que se está creando se tenga en cuenta en cualquier proceso de desarrollo. Esto requiere un conocimiento detallado de los sistemas, servicios y datos en las inmediaciones de la solución en construcción.

Abordar la complejidad ambiental

La reingeniería confiable de los entornos empresariales y de TI existentes para convertirlos en arquitecturas modernas, competitivas e integradas no es tarea fácil. La complejidad de estos entornos se ha ido acumulando casi sin control durante cuarenta años, lo que ha encarecido cada vez más los cambios. Esto se debe a que:

  • La complejidad del entorno a menudo se manifiesta en el código heredado . La escasez de personal cualificado en el ámbito de los sistemas heredados está elevando los costes de mantenimiento e integración.
  • Los entornos complejos existentes deben rediseñarse por fases que tengan sentido operativo para la función empresarial asociada. Estas fases suelen implicar la sustitución total y arriesgada de sistemas, ya que el desconocimiento de la complejidad existente dificulta la comprensión y la implementación de posibles cambios incrementales.
  • Los métodos de desarrollo acelerado han dejado a las empresas con sistemas heredados modernos. Las aplicaciones complejas de Java y .NET presentan muchos de los mismos problemas que las antiguas aplicaciones COBOL .

Como resultado, una proporción cada vez mayor del esfuerzo dedicado al desarrollo de nuevas capacidades empresariales se invierte en comprender e integrarse con el complejo sistema y el entorno empresarial existentes, en lugar de generar valor.

Brownfield toma el enfoque estándar de OMG basado en modelos y patrones y le da un giro radical. En lugar de adoptar el enfoque convencional de comenzar con un modelo conceptual y luego desarrollar modelos específicos de plataforma y generar código, Brownfield comienza recopilando código y otros artefactos existentes y utiliza patrones para abstraer formalmente hacia arriba, hasta la capa de arquitectura y negocio.

Esquema del proceso de desarrollo de terrenos contaminados

Posteriormente, se utilizan técnicas estándar de Greenfield en combinación para definir el objetivo comercial preferido. Esta técnica de "encuentro intermedio" es conocida en otros métodos de desarrollo, pero el uso extensivo de la abstracción formal y de patrones tanto para el descubrimiento como para la generación es novedoso.

La arquitectura conceptual subyacente de todas las herramientas de Brownfield se conoce como VITA. VITA significa Vistas, Inventario, Transformación y Artefactos. En una arquitectura VITA, la definición del problema del espacio objetivo se puede mantener como conjuntos de conocimiento nativos separados (aunque relacionados), conocidos como Vistas. La principal ventaja de una Vista es que puede basarse en prácticamente cualquier herramienta formal. Brownfield no impone una única herramienta o lenguaje a un espacio de problemas; un principio fundamental es que los conjuntos de conocimiento se mantengan en sus formatos y herramientas originales.

Las vistas nativas se agrupan y se vinculan en un único inventario. Este inventario se utiliza, junto con diversas funciones de transformación, para generar los artefactos que requiere la solución.

Actualmente, las vistas se pueden importar desde una amplia variedad de fuentes, incluyendo UML , XML , DDL , hojas de cálculo , etc. La herramienta Analysis and Renovation Catalyst de IBM ha llevado esta capacidad aún más lejos mediante el uso de gramáticas formales y árboles de sintaxis abstracta para permitir que casi cualquier programa se analice y tokenice en una vista para su inclusión en el inventario.

La naturaleza cíclica y rápida del ciclo de descubrimiento, reingeniería, generación y prueba utilizado en este enfoque significa que las soluciones pueden refinarse iterativamente en términos de sus definiciones lógicas y físicas a medida que se conocen más restricciones y se perfecciona la arquitectura de la solución.

El desarrollo iterativo de Brownfield permite el perfeccionamiento gradual de las arquitecturas lógicas y físicas, así como pruebas incrementales para todo el enfoque, lo que se traduce en una aceleración del desarrollo, una mejor calidad de la solución y una eliminación de defectos más económica. Brownfield también puede utilizarse para generar documentación de la solución, garantizando que esté siempre actualizada y sea coherente desde diferentes perspectivas.

The Inventory that is created through Brownfield processed may be highly complex, being an interconnected multi-dimensional semantic network. The level of knowledge in the Inventory can be very fine grained, highly detailed and interrelated. Such things are hard to understand and can provide barriers to communication, however. Brownfield solves this problem by abstracting concepts via an artisan's best guess, using known patterns in its Inventories to extract and infer higher level relationships.

Formal abstractions enable the complexity of the Inventory to be translated into simpler, but inherently accurate, representations for easier consumption by those that need to understand the problem space. These abstracted Inventory models can be used to automatically render multi-layered architecture representations in tools such as Second Life.

Such visualizations enable complex information to be shared and experienced by multiple individuals from around the globe in real time. This enhances both understanding and a sense of a single team.

See also

References

  1. Sommerville, Ian (2012). Software Engineering (PDF). München: EMPT Tech. p. 75. ISBN 978-3-86894-099-2.
  • DeveloperWorks Interviews: Booch, Nackman, and Royce on IBM Rational at five years[link removed]
  • Browninfo Methodology and Software for Development of Interactive Brownfield Databases: T. Vujičić, D. Simonović, A. Đukić, M. Šestić
  • Overview of EPA's Brownfields Program[link removed]