Subido por Miguel Andres Henriquez Henriquez

1.1.1 Arquitectura de software (1)

Anuncio
Arquitectura
de software
CODIGO
Nombre del profesor
seccion
[email protected]
2
Arquitectura de
software
Conociendo el modelo arquitectónico
“Antes de comenzar un proyecto de software, asegúrese
de que el software tenga un propósito para el negocio y
que los usuarios perciben valor en él”.
Roger Pressman
3
Experiencia
Experiencia
Nº 1
Nombre
Análisis del modelo
arquitectónico
Competencia asociada
Diseña un modelo arquitectónico para
soportar la solución de acuerdo a su
factibilidad y a los estándares de la industria.
4
El arquitecto de
software
Arquitecto de software
» ¿Que es el software en la actualidad?
Antes de hablar del arquitecto de software, es
preciso recordar que el software un elemento
clave en la evolución de sistemas y productos
basados en computadoras, representando una
de las tecnologías mas relevantes a nivel
mundial, pasado de ser la solución a un
problema especializado a constituirse en una
industria en sí misma.
6
Arquitecto de software
Garlan y Shaw sugieren que la arquitectura es un nivel de diseño que
se centra en aspectos que van más allá de los algoritmos y
estructuras de datos de la computación; el diseño y la
especificación de la estructura general del sistema emergen como
una clase nueva de problema.
Los
aspectos
estructurales
incluyen la estructura global de
control y la organización general;
protocolos de comunicación,
sincronización y acceso de
datos; asignación de funciones
para
diseñar
elementos;
distribución
física,
composición de elementos de
diseño; ajuste y rendimiento; y
selección
entre
otras
alternativas de diseño.
7
Arquitecto de software
Pero la arquitectura es algo más que una estructura por lo que el IEEE Working
Group on Architecture la define como el concepto de más alto nivel de un sistema
en su entorno.
También incluye el "ajuste" con la integridad del sistema, con las restricciones
económicas, con las preocupaciones estéticas y con el estilo. No se limita a un
enfoque interior, si no que tiene en cuenta el sistema en su totalidad dentro del
entorno de usuario y el entorno de desarrollo, un enfoque exterior.
En RUP (proceso de desarrollo de
software de IBM), la arquitectura de un
sistema de software es la organización
o la estructura de los componentes
importantes
del
sistema
que
interactúan mediante interfaces, con
componentes compuestos de interfaces
y componentes cada vez más pequeños.
8
Arquitecto de software
El arquitecto de software tiene la responsabilidad global de dirigir las
principales decisiones técnicas, expresadas como la arquitectura de
software.
Esto incluye la identificación y la documentación de los aspectos
arquitectónicamente significativos del sistema, considerando las "vistas" de
requisitos, diseño, implementación y despliegue del sistema.
Además, es responsable de proporcionar el fundamento de estas
decisiones, equilibrando las preocupaciones de los diferentes interesados,
reduciendo los riesgos técnicos, y garantizando que las decisiones se
comunican, y validan con eficacia, y que se acatan.
9
Funciones Arquitecto de
software
•
Revisa las necesidades del negocio junto con los requerimientos no
funcionales, y los relaciona con la solución que se necesita implementar
para cubrirlas.
•
Se asegura de la calidad de la solución y de su mantenimiento en el tiempo.
•
Toma decisiones de diseño de alto nivel.
•
Dicta estándares técnicos, de codificación, herramientas y plataformas.
10
Funciones Arquitecto de
software
✔
✔
✔
✔
Elaborar la arquitectura y diseño de software a partir de los
requerimientos del usuario: Haciendo uso de patrones de diseño
previamente conocidos, por experiencia personal o manteniéndose
actualizado con las últimas técnicas y patrones.
Crear consenso y entendimiento de la arquitectura: Debe
involucrar a cada miembro del equipo, y lograr acuerdos respecto a la
arquitectura, la cual debe comunicar y vender.
Entender los requerimientos no funcionales: La mayoría de los
requerimientos no funcionales son de naturaleza técnica, y suelen
tener mucha influencia en la arquitectura. El entendimiento adecuado
de estos requerimientos es crucial para desempeñar este rol. No basta
con asumir cuales son esos requerimientos, se necesita indagar sobre
ellos y determinar las necesidades reales.
Definir la Arquitectura: Incluir estructuras, lineamientos, principios y
liderazgo sobre los aspectos técnicos del software. Esta
responsabilidad varía mucho si se está trabajando con un sistema con
arquitectura definida frente a diseñar un nuevo sistema.
11
Funciones Arquitecto de
software
✔
Seleccionar Tecnologías: Puede llegar a ser un reto, considerando
todos los elementos a considerar: costo, licenciamiento, relaciones con
proveedores, estrategia de tecnología, compatibilidad, interoperabilidad,
soporte, instalación, políticas de actualización, ambientes de usuario
final, etc. Seleccionar tecnologías se trata de evaluar los riesgos,
reduciéndolos cuando existe alta complejidad e incertidumbre y
aumentarlos cuando existen beneficios (oportunidades). Todos los
componentes deben ser evaluados, incluyendo los bloques generales,
hasta el detalle de librerías y frameworks. Toda decisión de tecnología
debería ser revisada y aprobada.
✔
Evaluar Arquitecturas: Al diseñar el software, el arquitecto debe
preguntarse si la arquitectura seleccionada podrá satisfacer los
requerimientos funcionales y en especial los no funcionales. Las
arquitecturas también se pueden probar, y si hacemos esto al principio,
podemos evitar el fracaso del proyecto.
12
Descargar