TALLER ARQUITECTURA DE SOFTEWARE
LINA BUITRAGO
SENA
Contenido
Introducción ........................................................................................................................................ 1
Desarrollo del taller ........................................................................................................................... 2
Conclusión...................................................................................................................................... 6
Introducción
Se desarrollará el Taller de arquitectura de software dando las respuestas a las siguientes
preguntas:
✓ ¿Qué entiende por arquitectura de software?
✓ ¿Cuál es su función?
✓ ¿Cómo se elabora la arquitectura de software?
✓ ¿Cómo lograr una buena arquitectura?
✓ ¿Cuáles son los elementos de diseño de una arquitectura de software?
Desarrollo del taller
¿Qué entiende por arquitectura de software?:
Es la planificación basada en modelos, patrones y abstracciones teóricas, a la hora de realizar
una pieza de software de cierta complejidad y como paso previo a cualquier implementación.
De esta forma se dispone de una guía teórica detallada que nos permite entender cómo van a
encajar cada una de las piezas de nuestro producto o servicio
Así mismo, la arquitectura de software es un patrón a cualquier solución general y reutilizable
para problemas recurrentes en ingeniería del software en un contexto dado, son similares a
los patrones usados en la programación, pero orientados específicamente a la estructura a un
nivel superior y más genérico.
¿Cuál es su función?
La arquitectura nos permite planificar a priori nuestro desarrollo y elegir el mejor conjunto
de herramientas para llevar a cabo nuestros proyectos, es por tanto un paso crítico antes
siquiera de pasar a programar ya que determinará en gran medida el ritmo del desarrollo e
incluso los factores económicos y humanos durante el proceso. Por tanto, a la hora de elegir
un patrón de arquitectura siempre es necesario pensar en una serie de cuestiones que
determinan el uso final que vamos a darle a nuestro software, como lo es: el coste, tiempo de
desarrollo, numero de usuarios, nivel de aislamiento.
¿Cómo se elabora la arquitectura de software?
Para elaborar la arquitectura de software:
1. Comienza comprendiendo los requisitos del sistema.
2. Identifica los componentes clave y sus interaccione
3. Usa patrones de diseño y define interfaces.
4. Mantén una separación clara de las responsabilidades.
5. Utiliza diagramas y documentación para visualizar la arquitectura.
6. Revisa y ajusta la arquitectura según sea necesario.
7. Documenta de manera concisa.
8. Implementa y prueba el sistema según la arquitectura definida
¿Como lograr una buena arquitectura?
Para lograr una buena arquitectura de software, es fundamental considerar los siguientes
aspectos:
1. Requisitos claros:
Comprende y documenta exhaustivamente los requisitos funcionales y no funcionales
del sistema. Esto servirá como base para diseñar la arquitectura.
2. Separación de preocupaciones:
Asegúrate de que cada componente de la arquitectura tenga una responsabilidad clara
y esté bien definida. Evita que los componentes realicen múltiples tareas.
3. Modularidad:
Divide el sistema en módulos o componentes independientes y reutilizables. Esto
facilita el desarrollo, la prueba y el mantenimiento.
4. Escalabilidad:
5. Diseña la arquitectura de manera que pueda crecer y adaptarse a medida que las
necesidades del sistema evolucionen. Esto implica considerar la capacidad de
expansión horizontal o vertical.
6. Flexibilidad:
Haz que la arquitectura sea lo suficientemente flexible como para permitir cambios y
actualizaciones sin un impacto significativo en otros componentes.
7. Coherencia:
Mantén una estructura y un estilo de diseño coherentes en todo el sistema para
facilitar la comprensión y el mantenimiento.
8. Patrones de diseño:
Utiliza patrones de diseño probados para abordar problemas comunes de diseño
de software y mejorar la calidad de la arquitectura.
9. Documentación:
Documenta la arquitectura de manera clara y completa para que los miembros del
equipo y otros interesados puedan comprenderla y colaborar de manera efectiva.
10. Evaluación continua:
Revise y evalúa la arquitectura durante todo el ciclo de desarrollo para identificar y
abordar posibles problemas o desviaciones con respecto a los requisitos.
11. Colaboración:
Fomenta la comunicación y la colaboración entre los miembros del equipo de
desarrollo y los interesados, para garantizar que todos estén alineados en cuanto a la
visión y la implementación de la arquitectura.
¿Cuáles son los elementos de diseño de una arquitectura de software?
Los elementos de diseño clave en una arquitectura de software incluyen:
Componentes:
Los módulos o bloques de construcción individuales que realizan tareas específicas
dentro del sistema.
Interfaces:
Define cómo los componentes se comunican entre sí, especificando los métodos,
protocolos y formatos de datos que utilizan para intercambiar información.
Dependencias:
Las relaciones entre componentes que indican cómo uno depende de otro. Esto puede
incluir dependencias de compilación y tiempo de ejecución
.
Patrones de diseño:
Soluciones probadas y reutilizables para problemas de diseño comunes. Los patrones
de diseño ayudan a estructurar la arquitectura de manera efectiva.
Capas:
La organización de componentes en capas o niveles que representan diferentes
niveles de abstracción o responsabilidad dentro del sistema.
Modelos de datos:
La representación de la estructura de datos utilizada por el sistema y cómo se
almacenan, acceden y manipulan los datos.
Modelos de comportamiento:
Describe cómo los componentes interactúan y responden a eventos y acciones dentro
del sistema.
Seguridad:
Consideraciones de seguridad, como autenticación, autorización, cifrado y gestión de
identidad, que protegen el sistema contra amenazas
Rendimiento:
Diseño de componentes y optimizaciones para garantizar que el sistema cumpla con
los requisitos de rendimiento.
Escalabilidad:
Planificación para el crecimiento futuro del sistema y cómo se pueden agregar
recursos para manejar una mayor carga.
Mantenibilidad:
Estrategias para facilitar las actualizaciones, correcciones de errores y el
mantenimiento continuo del software.
Documentación:
La documentación clara y completa que describe la arquitectura, sus componentes,
interfaces y decisiones de diseño
Conclusión
La arquitectura del software es una fase de planificación crítica a la hora de comenzar
cualquier proyecto para cualquier pieza de software, ya que nos proporciona una hoja de ruta
clara sobre el camino a seguir en el desarrollo, dándonos instrucciones sobre qué
componentes formarán parte de nuestro producto, cómo se distribuirán y cuál será la forma
en la que se comuniquen entre sí.
El diseño de una arquitectura de software es más eficaz cuando existe un plan, la aportación
de las partes interesadas y el enfoque adecuado para esbozar los requisitos del proyecto.