SlideShare una empresa de Scribd logo
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Arquitectura del Software
Definiciones
Jose Emilio Labra Gayo
Curso 2020/21
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Esquema
Definiciones de arquitectura software
¿Qué es arquitectura del software?
Stakeholders
Atributos de calidad
Restricciones
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
¿Qué es la arquitectura?
Etimológicamente, viene del griego:
Arquitectura = ἀρχιτέκτων
ἀρχι- "jefe"
τέκτων "creador"
Architecture = Proceso y producto de planificar,
diseñar y construir edificios u otras estructuras
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Vitruvius, "De arquitectura"
Escrito entre 30 y 15 antes de Cristo
3 pilares de una buena arquitectura
Utilitas (utilidad):
Ser útil y funcionar bien para las personas que lo van a usar
Firmitas (durabilidad):
Mantenerse de forma robusta y en buena condición
Venustas (elegancia):
Ser agradable a las personas
Lo mismo puede aplicarse a los sistemas de software
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
¿Qué es arquitectura del software? (1)
Arquitectura [ISO/IEC/IEEE 42010:2011, 3.2]
Conceptos fundamentales o propiedades de un Sistema
en su entorno representados por sus elementos,
relaciones y los principios de su diseño y evolución
Descripción de arquitectura
Producto de trabajo explícito que expresa una
arquitectura de un sistema, normalmente a través de
modelos, texto o gráficos
Diseñar una arquitectura (architecting)
Proceso de crear una arquitectura
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
¿Qué es arquitectura del software? (2)
Estructuras fundamentales de un sistema...
...que comprenden:
Elementos de software
Relaciones entre ellos
Propiedades de ambos
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Arquitectura vs diseño
Arquitectura se enfoca en estructura de alto nivel
de un sistema de software
Decisiones de diseño principales del sistema
Si hay que cambiarlas ⇒ Coste elevado
"Toda arquitectura conlleva diseño pero no todo el
diseño es arquitectura" G. Booch
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Arquitectura de edificios vs software
Entornos y contexto más estables
Servicio/producto físico
Límites físicos
Gran tradición e historia
Nos sirve para inspiración
Múltiples cambios en contexto
Servicio/producto virtual
No suele haber límites físicos
Disciplina relativamente nueva
Podemos aprender mucho de otras
Sistemas complejos
Desarrollados por equipos/organizaciones
Utilizados por personas
Ambos emplean estilos, patrones, tácticas, ...
Y están afectados por tendencias
Similaridades
Edificios tradicionales Software
Pero muchas diferencias...
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Otras disciplinas similares
Ingenierías Civil,
Mecánica,
Aeronáutica
...
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Otras arquitecturas
Arquitectura de negocios
Arquitectura empresarial
Arquitectura de sistemas
Arquitectura de la información
Arquitectura de datos
. . .
Cosas comunes a todas: Estructura y visión
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Beneficios arquitectura del software
Proporcionar visión y mapa a seguir por equipo
Liderazgo y coordinación técnica
Responder cuestiones sobre decisiones
significativas, atributos de calidad y otras
preocupaciones
Marco para identificar y mitigar riesgo
Gestión consistente de estándares y código
Fundamentos firmes del producto a desarrollar
Estructura para comunicar la solución a
diferentes niveles de abstracción y audiencias
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Retos arquitectura del software
Arquitectos en la torre de marfil
Falta de comunicación
Centralización de todas las decisiones
Arquitecto = cuello de botella
Tomar demasiadas decisiones
Retrasar ciertas decisiones puede ser mejor que
deshacerlas
Big Design Up-Front
Demasiados diagramas y documentos innecesarios
Retardos debidos al proceso de arquitectura
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Arquitectura de software ágil
Arquitectura que puede reaccionar a cambios en
entorno
Adaptación a cambios continuous
También conocidas como arquitecturas evolutivas
Buena arquitectura permite agilidad
Mejor comprensión de decisiones y soluciones de
compromiso
Anti-patrón común: adopción de técnicas de
desarrollo de software ágil que crean
arquitecturas que no son ágiles
Causado por demasiado enfoque en funcionalidad
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Leyes de la arquitectura del software
1er ley:
Todo en arquitectura del software es una solución de
compromiso
2ª ley:
Porqué es más importante que cómo
Cuestionar todo
Documentar decisiones tomadas
Corolario 1:
Si un arquitecto piensa que no ha encontrado algo que no sea una solución
de compromiso, lo más seguro es que no ha identificado la solución de
compromiso todavía
Corolario 2:
Todas las decisiones significativas tienen desventajas
Fuente: Fundamentals of Software Architecture, M. Richards, N. Ford
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Proceso de diseñar una arquitectura
Dominio del problema Dominio de la solución
Actividad de diseño
Objetivos de
Diseño
Requisitos
Funcionales
Atributos de
Calidad
Restricciones
Preocupaciones
(Concerns)
Entradas
Arquitecto
Diseño de
La arquitectura
(salida)
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Motivaciones proceso de arquitectura
Entradas
Objetivos de diseño
Requisitos funcionales
Atributos de calidad
Restricciones
Preocupaciones
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Objetivos de diseño
Aclarar porqué se diseña un sistema
Ejemplos:
Propuesta pre-venta: diseño rápido de una solución
inicial para obtener una estimación
Sistema a medida con un tiempo y coste establecido
que no puede variar mucho una vez enviado
Incremento Nuevo ó versión de un sistema que está
continuamente evolucionando
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Requisitos funcionales
Funcionalidad que debe soportar los objetivos de negocio
Lista de requisitos como casos de uso o historias de usuario
User stories
Use cases
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Atributos de calidad
Características medibles de interés para usuarios o
desarrolladores
También conocidos como requisitos no-funcionales
Rendimiento, disponibilidad, modificabilidad, testabilidad,…
También conocidos como –idades (-ities en inglés)
Pueden especificarse mediante escenarios
Técnica estímulo-respuesta
“Si ocurre un fallo interno durante la operación normal, el sistema reanuda la
operación en menos de 30 segundos y no se pierden datos”
Priorizados por:
El cliente de acuerdo al éxito del sistema
El arquitecto de acuerdo al riesgo técnico
ISO 25010: lista de algunos requisitos no funcionales
Lista: https://en.wikipedia.org/wiki/List_of_system_quality_attributes
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Atributos de calidad
Los atributos de calidad determinan la mayoría de las
decisiones de diseño en arquitectura
Si la única preocupación fuese la funcionalidad, un
sistema monolíticos sería suficiente
Sin embargo, es habitual ver:
Estructuras redundantes para fiabilidad
Estructuras concurrentes para rendimiento
Capas para modificabilidad
…
Priorizados por:
El cliente de acuerdo al éxito del sistema
El arquitecto de acuerdo al riesgo técnico
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Restricciones
Restricciones del sistema que vienen impuestas
Muy poco software tiene libertad total
Pueden ser técnicas u organizativas
Pueden surgir del cliente o también de la organización
de desarrollo
Limitan las alternativas a considerar para decisiones de
diseño particulares
Ejemplos:
Marcos de aplicaciones (frameworks)
Lenguajes de programación, ...
Normalmente son tus “amigos”
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Preocupaciones
Decisiones de diseño que deben tomarse aunque
no estén enunciadas explícitamente en los
objetivos o requisitos
Ejemplos:
Crear una estructura física o lógica consistente
Validar campos de entrada
Gestión de excepciones y logging
Migración de datos y backup
Organización del código fuente
…
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Creatividad vs método
Creatividad
Divertido
Arriesgado
Puede ofrecer soluciones nuevas
Puede ser innecesario
Método
Eficiente en terrenos familiares
Resultado predecible
No siempre es lo mejor
Técnicas de calidad contrastada
Arquitecto
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Tipos de sistemas
Sistemas greenfield en dominios nuevos
Ejemplo Google, Whatsapp
Dominios innovadores poco conocidos
Sistemas greenfield en dominios maduros
Ejemplo: aplicaciones empresariales
tradicionales, aplicaciones móviles, …
Dominios conocidos, menos innovadores
Dominios brownfield
Cambios a sistemas existentes
Greenfield: no urbanizado
Brownfield: antigua zona industrial
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Arquitecto del software
La disciplina evoluciona
Arquitecto debe conocer:
Avances en técnicas de construcción
Estilos y patrones
Mejor herramienta = experiencia (no silver bullet)
Experiencia propia
Experiencia de la comunidad
Arquitecto
Arquitectura del Software
Escuela
de
Ingeniería
Informática
Universidad
de
Oviedo
Papel del arquitecto de software
Principios
Patrones
Estilos
Anti-patrones
Arquitecto
de Software
Experiencia
de la
comunidad
Stakeholders
Tecnología
Arquitectura
Objectivos
Requisitos
funcionales
Atributos
de calidad
Restricciones
Preocupaciones

Más contenido relacionado

PPTX
SESION 1 - ARQUITECTURA DE SOFTWARE.pptx
PDF
Atributos de Calidad para el Desarrollo de Software
PPTX
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
PDF
07-14-2024_131439916_CISNEROSNAPRAVNIKYANEDUARDO.pdf
PPTX
1_1 Introduccion
PDF
Arquitectura de Software
PPTX
Arquitecturas de software exposicion
PPTX
Arquitectura de Software.pptx
SESION 1 - ARQUITECTURA DE SOFTWARE.pptx
Atributos de Calidad para el Desarrollo de Software
M.G.E-y-R.L.E.A-Diseño-Arquitectonico.pptx
07-14-2024_131439916_CISNEROSNAPRAVNIKYANEDUARDO.pdf
1_1 Introduccion
Arquitectura de Software
Arquitecturas de software exposicion
Arquitectura de Software.pptx

Similar a ES.ASW.Te02_Definiciones.pdf (20)

PPTX
29 sap tecnología arquitectura de software
PPT
Arquitecturas
PPT
Arquitecturas de software
PPTX
La Arquitectura de Software ok.pptx oara presentar
PDF
Arquitectura de software
PDF
Conceptos basicos arquitectura de software
PPTX
Arquitectura de software
PDF
Análisis y diseño de sistemas de información
DOCX
¿Qué es la arquitectura de software?
PPTX
Ingenieria de software - Unidad 3 arquitecturas de software
PPTX
2017.10.16-senati-powerpoint sesion8.pptx
PDF
Conceptosdemodelado.pdf
PPT
Arquitectura de software
PPTX
Arquitectura software.taxonomias.definiciones.001
PPTX
Actividad remedial_Maria_Albarran
PDF
Arquitectura De Software Para Dummies
PDF
4+1(vistas)
PPTX
01 arquitectura de software - definición
PPT
Ingenieria de Software
PDF
Arquitectura
29 sap tecnología arquitectura de software
Arquitecturas
Arquitecturas de software
La Arquitectura de Software ok.pptx oara presentar
Arquitectura de software
Conceptos basicos arquitectura de software
Arquitectura de software
Análisis y diseño de sistemas de información
¿Qué es la arquitectura de software?
Ingenieria de software - Unidad 3 arquitecturas de software
2017.10.16-senati-powerpoint sesion8.pptx
Conceptosdemodelado.pdf
Arquitectura de software
Arquitectura software.taxonomias.definiciones.001
Actividad remedial_Maria_Albarran
Arquitectura De Software Para Dummies
4+1(vistas)
01 arquitectura de software - definición
Ingenieria de Software
Arquitectura

Más de DavidVeraOlivera (12)

PDF
U3_Leguaje PHP-Semana 07.pdf
PPTX
introduccion-seguridad-informc3a1tica.pptx
PDF
ES.ASW.Te11_DistribuidosBigData.pdf
PDF
ARQUITECTURA EN CAPAS.pdf
PDF
ARQUITECTURA CLIENTE SERVIDOR.pdf
PDF
ATRIBUTOS DE CALIDAD ARQUITECTURA DE SOFTWARE.pdf
PDF
CICLO DE DESARROLLO DE ARQUITECTURA DE SOFTWARE.pdf
PDF
ARQUITECTURA DE SOFTWARE.pdf
PDF
sesion01-traspas.pdf
PDF
ARQII_00-Repaso2.pdf
PDF
ARQII_00-Repaso-2012.pdf
PPTX
Software Architecture & Design of Modern Large Scale.pptx
U3_Leguaje PHP-Semana 07.pdf
introduccion-seguridad-informc3a1tica.pptx
ES.ASW.Te11_DistribuidosBigData.pdf
ARQUITECTURA EN CAPAS.pdf
ARQUITECTURA CLIENTE SERVIDOR.pdf
ATRIBUTOS DE CALIDAD ARQUITECTURA DE SOFTWARE.pdf
CICLO DE DESARROLLO DE ARQUITECTURA DE SOFTWARE.pdf
ARQUITECTURA DE SOFTWARE.pdf
sesion01-traspas.pdf
ARQII_00-Repaso2.pdf
ARQII_00-Repaso-2012.pdf
Software Architecture & Design of Modern Large Scale.pptx

Último (10)

PDF
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
PPTX
ANALOGÍA 6.pptx9191911818181119111162363733839292
PPTX
hojas_de_calculo_aplicado para microsoft office
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PPTX
presentación de introducción a las metodologías agiles .pptx
PPTX
Implementación equipo monitor12.08.25.pptx
PPTX
Control de seguridad en los sitios web.pptx
PDF
Presentacion de compiladores e interpretes
PPTX
PROPIEDADES Y METODOS DE PrOO CON PYTHON
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
ANALOGÍA 6.pptx9191911818181119111162363733839292
hojas_de_calculo_aplicado para microsoft office
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
presentación de introducción a las metodologías agiles .pptx
Implementación equipo monitor12.08.25.pptx
Control de seguridad en los sitios web.pptx
Presentacion de compiladores e interpretes
PROPIEDADES Y METODOS DE PrOO CON PYTHON

ES.ASW.Te02_Definiciones.pdf