Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software...
Transcript of Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software...
![Page 1: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/1.jpg)
Un Recorrido Panorámico
Msc. Jose Angel Franco NavarroFacultad Ingeniería Informática Cujae
![Page 2: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/2.jpg)
Definir el término Arquitectura de Software
Conozcan rasgos característicos del rol Arquitecto de Software
Conozcan a qué se dedica la disciplina de Arquitectura de software dentro del desarrollo de un sistema software. ¿Qué? ¿Cuando? y ¿Cómo?
Conozcan elementos básicos sobre cómo se documenta según RUP
![Page 3: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/3.jpg)
Code Complete 2nd Edition. Steve MacConnell, 2004
Documenting Software Architectures, Clements, Bachmann, Bass, Garlan, Ivers, LIttle, Nord, Stafford, Addison Wesley 2001
Software Architecture in Practice, Second Edition, Len Bass, Paul Clements, Rick Kazman, Addison Wesley 2003.
![Page 4: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/4.jpg)
![Page 5: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/5.jpg)
Software architecture is "the structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time.”
Garlan and Perry, guest editorial to the IEEE Transactions on Software Engineering, April 1995
![Page 6: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/6.jpg)
Software architecture encompasses the set of significant decisions about the organization of a software system:• selection of the structural elements and their
interfaces by which a system is composed• behavior as specified in collaborations among
those elements• composition of these structural and behavioral
elements into larger subsystemGrady Booch
![Page 7: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/7.jpg)
EstructuraOrganización de las piezas
fundamentalesReglas para la interacción entre las
piezasDecisiones claves
¿Esto cómo se puede tocar?
![Page 8: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/8.jpg)
Los Requisitos definen el problema a resolver
![Page 9: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/9.jpg)
La Arquitectura garantiza que la solución sea la apropiada
![Page 10: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/10.jpg)
Evitar el síndrome de WISCA / WIMP:• Why Isn´t Sam Coding Anything?• Why Isn´t Mary Programming?
No violar el orden debido, ahorra tiempo, esfuerzo y dinero.• Entre 10 y 100 veces menos costo de
reprogramación y corrección de error, al encontrarlo en etapas tempranas (Estudios entre el 1976 - 2004)
![Page 11: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/11.jpg)
![Page 12: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/12.jpg)
Rasgo de un sistema desarrollado con calidad
El mismo tipo de problemas = Mismo tipo de solución, a todo lo ancho del sistema.
![Page 13: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/13.jpg)
Creativo, innovador, solucionador de problemas
Ve primero la imagen completa, capaz de abstraer obviando los detalles.
Buen comunicador, sabe escuchar, sabe expresar ideas con claridad a audiencias diversas, sabe persuadir
Negociador, bueno manejando ambigüedades, estableciendo prioridades, manejando prioridades que entran en conflicto y estableciendo compromisos
![Page 14: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/14.jpg)
Mediador de conflictos
Habilidades en lenguajes para la descripción o documentación técnica
Conocedor en profundidad de la tecnología a emplear
Diseñador con experiencia• Dominio de patrones y principios de diseño
Conocedor de Estilos y Patrones de Arquitectura
Humilde Tiene presente que falta siempre mucho por aprender
![Page 15: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/15.jpg)
![Page 16: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/16.jpg)
Priorizar Casos de Uso para incluir en la arquitectura• Casos de uso esenciales para el negocio• Casos de uso que mitigan riesgos• Casos de uso Tipo
Supervisa Identificación y establecimiento de criterios de medida para propiedades/características globales del sistema (Requisitos no funcionales)
![Page 17: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/17.jpg)
![Page 18: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/18.jpg)
![Page 19: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/19.jpg)
Atributos de Calidad Atributos de Calidad InternaInterna
![Page 20: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/20.jpg)
![Page 21: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/21.jpg)
Definidos sin ambigüedadCon criterios claros de medida para
verificar cumplimiento o no.
“Al decir rápido quiero decir…”“El sistema debe ser fácil de usar…”“El sistema debe ser escalable…”
![Page 22: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/22.jpg)
![Page 23: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/23.jpg)
Conjunto de piezas, que solucionan problemas comunes a varios casos de uso del mismo sistema o varios sistemas.
• Integridad Conceptual
![Page 24: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/24.jpg)
Transacciones• Programáticas o Declarativas• A un solo recurso o Distribuidas• Gestionadas por el servidor de aplicaciones o
por el propio sistema?
Control de Concurrencia• Bloqueo optimista o pesimista• Implementado por la tecnología o por el
programador
Control de eventos del usuario(Presentación)
![Page 25: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/25.jpg)
Registros de Eventos para depuración
Manipulación de Errores
Control de la navegación• Regresos atrás, reenvío de formularios
Seguridad• Autenticación encadenada en múltiples
fuentes• Single Sign On
![Page 26: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/26.jpg)
Seguridad• Autorización en el acceso a recursos• Accesos de solo lectura• Registros de Trazas para auditoría
Acceso a Datos
Internacionalización(Multi-Idioma)
Comunicación con sistemas externos
![Page 27: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/27.jpg)
Problema Común Mecanismo
Cómo se Documentan:• Participantes (Diagramas de clases)• Colaboraciones genéricas(Diagramas de
Interacción)• Quedar claro, cómo se emplea, qué escenarios
de uso tiene, si por herencia o por delegación etc.
![Page 28: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/28.jpg)
Principios de Diseño• Open-Closed Principle• Encapsulate Variability• Single Responsability Principle• Once and only Once Rule• Liskov Substitution Principle• Dependency Inversion• Interface Segregation
![Page 29: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/29.jpg)
Concepto de Vistas (Planos)Vistas propuestas por RUP
• Vista Funcional o de Casos de Uso• Vista lógica• Vista de Despliegue• Vista de Procesos• Vista de Implementación
![Page 30: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/30.jpg)
Vistas (4 + 1)Estilo Arquitectónico y Patrones
• N – capas, Cliente Servidor, Service Oriented etc…Lineamientos
• Diseño, ImplementaciónCatálogo de MecanismosFundamentación de decisiones(Rationale)
• Disyuntiva clave Decisión tomada, Otras opciones valoradas, causas que fundamentaron la selección
![Page 31: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/31.jpg)
¿Está clara la organización global del sistema? ¿Se encuentran bien definidos los principales
componentes o piezas del sistema(Subsistemas, Paquetes), incluyendo sus responsabilidades e interfaces brindadas a otros componentes?
¿Se han descrito y justificado las clases más críticas? ¿Se han descrito los lineamientos para el diseño de
los datos? ¿Se ha especificado la organización prevista de la
base de datos? ¿Se han enumerado las principales reglas o
restricciones de negocio, conjuntamente con su impacto en el sistema?
![Page 32: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/32.jpg)
¿Se ha descrito la estrategia para el diseño y construcción de la interfaz con el usuario?
¿Se ha concebido la interfaz de usuario de forma modular de modo que cambios en esta no afecten al resto del programa?
¿Se ha descrito una estrategia para la manipulación de Entrada/Salida?
¿Se ha descrito y justificado una estrategia para el empleo y consumo de recursos?
¿Se han descrito y justificado los requisitos de seguridad que deberá garantizar la arquitectura?
¿Se han descrito y justificado los requerimientos de escalabilidad? ¿La arquitectura describe cómo se logrará esta?
¿Se han descrito y justificado los requerimientos de interoperabilidad?¿Existe un planteamiento de cómo lograrla?
![Page 33: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/33.jpg)
¿Se ha descrito una estrategia para la internacionalización (multi-idioma)?
¿Se ha provisto una estrategia coherente para la manipulación de errores?
En caso de ser necesario. ¿Se ha definido el enfoque para la tolerancia a fallos?
¿Han quedado demostrado como realizables todos los problemas o temas técnicos de las distintas partes del sistema?
¿Se han incluido y fundamentado las decisiones de Comparar vs Construir?
¿Se ha definido una estrategia para el re-huso? ¿Tiene la arquitectura reconocidos los cambios
más probables y ha considerado formas para acometerlos de ser requerido?
![Page 34: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/34.jpg)
¿Qué es la arquitectura?:• Un subproducto, una parte del sistema software en
cuestión• Formado por un conjunto de decisiones claves acerca
de su estructuración, piezas o componentes que lo conforman conjuntamente con las restricciones para las interacciones entre estos, que se plasman en el Documento de Arquitectura. Más las propias piezas o componentes en sí, que aparte de quedar identificadas en el documento de arquitectura se pueden tocar en el código resultante(Clases, Interfaces, Subsistemas), que son de conjunto los fundamentos o bases sobre las cuales se construye el sistema.
![Page 35: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/35.jpg)
En pocas palabras: Especialista multifacético, que tiene en sus manos el timón del éxito técnico del proyecto• Interacción con múltiples involucrados• Líder, supervisor técnico, punto de
consultas. • Negociador, Persuasivo, buen comunicador• Capaz de abstraer la imagen global y
transmitirla
![Page 36: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/36.jpg)
Recoge múltiples aristas del software en vistas separadas.
Incluyendo fundamentación de decisiones y referencias de solución a problemas típicos (Mecanismos)
![Page 37: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/37.jpg)
![Page 38: Un Recorrido Panorámico - Aldea Fray Pedro de Agreda...Definir el término Arquitectura de Software Conozcan rasgos característicos del rol Arquitecto de Software Conozcan a qué](https://reader035.fdocument.pub/reader035/viewer/2022071213/6034276045e2cd7efa2af653/html5/thumbnails/38.jpg)
Un Recorrido Panorámico
Msc. Jose Angel Franco NavarroFacultad Ingeniería Informática Cujae