Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SOFTWARE IDS703
Mayo 2020
ARQUITECTURA DE SOFTWARE
La arquitectura de software es un conjunto de patrones que proporcionan un marco de referencia necesario para guiar la
construcción de un software, permitiendo a los programadores, analistas y todo el conjunto de desarrolladores
del software compartir una misma línea de trabajo y cubrir todos los objetivos y restricciones de la aplicación. Es considerada
el nivel más alto en el diseño de la arquitectura de un sistema puesto que establecen la estructura, funcionamiento e
interacción entre las partes del software.
ARQUITECTURA DE SOFTWARE
Una arquitectura de software se selecciona y diseña con base en objetivos (requisitos) y restricciones. Los objetivos son
aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como el
mantenimiento, la auditoria, flexibilidad e interacción con otros sistemas de información.
Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de
información. Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras
tecnologías no son aptas para determinadas arquitecturas.
ARQUITECTURA DE SOFTWARE
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación,
sus interfaces y la comunicación entre ellos.
Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar
qué computadora o elemento dentro de este diagrama tendrá asignada cada tarea.
ARQUITECTURA DE SOFTWARE
ARQUITECTURA DE SOFTWARE
ARQUITECTURA DE SOFTWARE
ARQUITECTURA DE SOFTWARE
El diseño de un sistema requiere que se piense no solo en aspectos relacionados con el desarrollo simultáneo
por un grupo de individuos, sino también con la satisfacción de requerimientos, la integración y la implantación.
Para ello es necesario considerar tanto el comportamiento del sistema durante su ejecución como el mapeo de
los elementos en tiempo de desarrollo y ejecución hacia elementos físicos. Por lo anterior, el término
“elementos”
puede hacer referencia a:
Al igual que con los módulos, todos estos elementos se relacionan entre sí mediante interfaces u otras
propiedades,
y al hacerlo dan lugar a distintas estructuras. Es por ello que cuando se habla de la arquitectura de un sistema
no debe pensarse en solo una estructura, sino considerarse una combinación de estas, ya sean dinámicas,
lógicas o físicas.
ARQUITECTURA DE SOFTWARE
ARQUITECTURA DE SOFTWARE
Requerimientos de la arquitectura
Esta etapa se enfoca en la captura, documentación y priorización de requerimientos que influyen sobre la
arquitectura
y que, por lo habitual, se conocen en inglés como drivers arquitectónicos. Como se sabe, los atributos
de calidad juegan un rol preponderante respecto de los requerimientos, así que esta etapa hace énfasis en ellos.
Otros requerimientos, como los casos de uso y las restricciones, son también relevantes para la arquitectura. Esos
los veremos mas adelante.
Diseño de la arquitectura
La etapa de diseño es probablemente la más compleja del ciclo de desarrollo de la arquitectura. Durante ella se
definen las estructuras de las que se compone la arquitectura mediante la toma de decisiones de diseño. Esta
creación estructural se hace por lo habitual con base en dos clases de soluciones abstractas probadas, llamadas
patrones de diseño y tácticas.
ARQUITECTURA DE SOFTWARE
Documentación de la arquitectura
Una vez que ha sido creado el diseño de la arquitectura, es necesario darlo a conocer a otros interesados en el
sistema, como desarrolladores, responsables de implantación, líderes de proyecto o el cliente mismo. La
comunicación exitosa depende por lo habitual de que el diseño sea documentado de forma apropiada. A pesar de
que durante el diseño se hace una documentación inicial que puede incluir bocetos de las estructuras, o bien
capturas de las decisiones de diseño, la documentación formal involucra la representación sus estructuras por
medio de vistas.
Una vista representa una estructura y contiene por lo habitual un diagrama, además de información adicional que
apoya en la comprensión de este.
Evaluación de la arquitectura
Dado que la arquitectura de software juega un rol crucial en el desarrollo, a efecto de identificar posibles riesgos o
problemas es conveniente evaluar el diseño una vez que este ha sido documentado. La ventaja de la evaluación
es que representa una actividad que puede realizarse de manera temprana (aun antes de codificar), y que el costo
de corrección de los defectos identificados por medio de ella es mucho menor al costo que tendría enmendarlos
después de que el sistema ha sido construido.
ARQUITECTURA DE SOFTWARE
Implementación de la arquitectura
Una vez establecida la arquitectura, se construye el sistema. Durante esta etapa es importante evitar que ocurran
desviaciones respecto del diseño definido por el arquitecto.
BENEFICIOS DE LA
ARQUITECTURA
BENEFICIOS DE LA ARQUITECTURA