Powered By Blogger

28 dic 2009

Arquitecturas empresariales de soluciones .NET



Que es una Arquitectura de Software?


La arquitectura es el esqueleto de un sistema, el conjunto de pilares que soportaran la construcción, para eso el arquitecto debe ser multifacético, conocer sobre requerimientos, diseño de sistemas, garantizar que la implementación satisfaga las expectativas y asegurarse globalmente que los usuarios obtengan lo que realmente necesitan, el cual no es necesariamente lo que inicialmente aceptaron y pagaron.

La arquitectura de software tiene precondiciones ( principios de diseño )

El rol de un arquitecto es primeramente responsable por el conocimiento de requerimiento, diseño del sistema, y comunicación del diseño al equipo de desarrollo.

La comunicación esta a menudo basada en bosquejos UML.El arquitecto aplica primero principios generales de ingeniería de software, después principios de diseño orientado a objetos, para romper el sistema dentro de pequeñas piezas en un intento de separar que es arquitectura y que no. Uno de los propósitos del diseño orientado a objetos es hacer tu código fácil de mantener y desarrollar- y también fácil de leer y entender.

El arquitecto conoce el mantenimiento, seguridad y las pruebas necesarias a ser incluidas al sistema desde el comienzo.


PRINCIPIOS



Conocerás la perfección del diseño, no cuando no tengas algo que agregar, sino cuando no tengas nada que quitar.

Antoine de Saint-Exupery


El propósito de la Ingeniería de Software, es controlar la complejidad, no crearla.

Dr Pamela Zave




¿Qué es una arquitectura de Software, en todo caso?


Herman Melville, el autor inolvidable de Moby Dick, alguna vez dijo que los hombres piensan que articulando palabras duras pueden entender cosas duras.

En software, la “dura” palabra Arquitectura fue introducida originalmente en este campo para simplificar la transmisión y la comprensión de una clave y ” dura” guía de consulta.

La guía de consulta era ésta: Más (mucho) cuidado sobre el diseño de sistemas informáticos que comprendías en el pasado; cuidado con esto al punto de dirigir el desarrollo de un sistema informático de forma similar a dirigir el desarrollo de un edificio.

Es una cosa dura de hacer y probablemente más allá de las capacidades de muchos Desarrolladores. Pero daremos un intento. Intentemos aclarar que es una “arquitectura de los software” o, por lo menos, qué pensamos que sea.


Definición de sistema desde un punto de vista estándar


Un sistema informático se entiende universalmente como una colección de componentes compuestos e integrados para lograr un conjunto específico de funciones.
Un sistema vive en un entorno; y este entorno influye al diseño del sistema conduciendo a algunas decisiones de desarrollo y operacionales. Un sistema existe para solucionar un problema y para alcanzar su misión completamente respecto a lo concerniente de los "Stakeholders". Todo lo concerniente de los "Stakeholders" incluyen requisitos funcionales y no funcionales así como aspectos del sistema tales como seguridad, posibilidad de prueba, funcionamiento, confiabilidad, y extensibilidad.

Aunque prevea al sistema como una composición de componentes interconectados, una arquitectura también establece algunos puntos que son duros de modificarse más adelante.
De manera que, la expresión del desarrollo de software en términos de arquitectura concluye en la generacion de algunas decisiones importantes que afectan el ciclo vital del desarrollo y, en última instancia, a la calidad del sistema resultante.

El cuadro 1 ilustra los lazos entre el sistema, la configuración, y los "Stakeholders" según lo identificado por el estándar 1471 de ANSI/IEEE. El contenido del cuadro 1-1 es realmente una adaptación de una de las figuras en el documento.















No hay comentarios:

Publicar un comentario