SlideShare une entreprise Scribd logo
1  sur  80
Télécharger pour lire hors ligne
Principios de Diseño
de la Arquitectura del Software
IDS5501
V.1.0
@josebovet
2
Clase anterior
Principios Diseño del Software.
• Introducción al diseño de Software.
• Diseño en el contexto de la ingeniería de software.
• El PROCESO,CONCEPTOS, y el MODELO del diseño.
3
Objetivos de las clase
• Introducción a la Arquitectura de Software.
• Géneros Arquitectónicas
• Estilos Arquitectónicos.
• Diseño Arquitectónico.
• Evaluación de los diseños alternativos para la
Arquitectura.
• Mapeo de la arquitectura con el uso del flujo de
datos.
Principios del diseño de Arquitectura
4
Introducción
¿Qué es?
6
¿Qué es?
El diseño arquitectónico representa la estructura de los datos y de los
componentes del programa que se requieren para construir un sistema basado
en computadora.
7
¿Qué es?
“La arquitectura es demasiado importante para dejarla en manos de
una sola persona, no importa cuán brillante sea.”
Scott Ambler
“Cásate con tu arquitectura de prisa, arrepiéntete en tu tiempo libre.”
Barry Boehm.
8
¿Quién lo hace?
9
¿Quién lo hace?
Ingenieros de Software / Especialistas.
El diseñador de una base de datos crea la
arquitectura de los datos para un
sistema.
El “arquitecto del sistema” selecciona un
estilo arquitectónico apropiado a partir
de los requerimientos obtenidos durante
el análisis de los datos.
10
¿Por qué es
importante?
11
¿Por qué es importante?
• Usted intentaría construir su casa sin un
plano, ¿o sí?
• Tampoco comenzaría los planos con el
dibujo de la plomería del lugar.
12
¿Por qué es importante?
13
¿Por qué es importante?
Antes de preocuparse por los detalles,
necesitaría tener el panorama general:
La casa en sí.
Eso es lo que hace el diseño arquitectónico, da
el panorama y asegura que sea el correcto.
¿Cuáles son los pasos?
15
¿Cuáles son los pasos?
1. El diseño de la arquitectura comienza con el diseño de los
datos.
2. Continúa con la obtención las representaciones de la
estructura arquitectónica del sistema.
3. Se analizan alternativas de estilos o patrones
arquitectónicos.
4. Seleccionada la alternativa, se elabora la arquitectura con
el empleo de un método de diseño.
16
¿Cuál es el producto final?
17
¿Cuál es el producto final?
Un modelo de arquitectura que incluye datos
y la estructura del software.
Además, se describen las propiedades y
relaciones(interacciones) que hay entre los
componentes.
18
Ejemplos
Modelo Datos
19
¿Cómo me aseguro de que
lo hice bien?
20
¿Cómo me aseguro de que lo hice bien?
Comprobaciones
• En cada etapa se revisan los productos del trabajo del diseño del
software para que sean claros, correctos, completos y consistentes
con los requerimientos y entre sí.
Arquitectura de Software
”La arquitectura de un sistema es un marco general que describe su forma y estructura: sus
componentes y la manera en la que ajustan entre sí.”Jerrold Grochow
La arquitectura del software de un programa o sistema de
cómputo es la estructura o estructuras del sistema, lo que
comprende a los componentes del software, sus propiedades
externas visibles y las relaciones entre ellos. "
23
Arquitectura de Software.
Permite
1. Analizar la efectividad del diseño para cumplir los
requerimientos establecidos.
2.Considerar alternativas arquitectónicas en una
etapa en la que hacer cambios al diseño todavía es
relativamente fácil.
3.Reducir los riesgos asociados con la construcción
del software.
24
3 Razones de importancia de la Arquitectura
• Las representaciones de la arquitectura del software
permiten la comunicación entre todas las partes interesadas
en el desarrollo de un sistema.
• Resalta las primeras decisiones que tendrán un efecto
profundo en todo el trabajo de ingeniería de software
siguiente.
• “Constituye un modelo relativamente pequeño y asequible
sobre cómo está estructurado el sistema y la forma en la que
sus componentes trabajan juntos”
Descripciones
Arquitectónicas
“...el esfuerzo debe centrarse en representaciones de la arquitectura que guiarán todos los demás
aspectos del diseño”.
26
Definición descripción Arquitectónica
“Un conjunto de productos para documentar
una arquitectura”. IEEE
27
Objetivos
1. Establecer un marco conceptual con un
vocabulario que se use durante el diseño de la
arquitectura del software.
2. Proporcionar lineamientos detallados para
representar una descripción arquitectónica.
3. Estimular las mejores prácticas del diseño
arquitectónico.
28
Descripción Arquitectónica de Java ES
29
Decisiones Arquitectónicas
30
Decisiones Arquitectónicas
• El arquitecto del sistema considera varias alternativas y decide en
última instancia las características arquitectónicas específicas
que satisfagan del mejor modo la preocupación.
• Las decisiones arquitectónicas en sí mismas se consideran una
perspectiva de la arquitectura.
• Las razones de las decisiones dan una visión de un sistema y su
concordancia con las preocupaciones de los participantes.
31
Géneros
Arquitectónicos
“Programar sin una arquitectura en mente es como explorar una caverna
sólo con una linterna: no sabes dónde has estado, a dónde vas ni dónde
estás.” Danny Thorpe
32
Géneros Arquitectónicos
El género Arquitectónico dicta el enfoque
específico para la estructura que deba
construirse.
Especifican una categoría dentro del
dominio general del software, dentro de
cada categoría hay varias subcategorías.
33
Algunos géneros
Arquitectónicos
34
Inteligencia Artificial
Sistemas que simulan o incrementan la cognición
humana, su locomoción u otros procesos orgánicos
35
Comerciales y no lucrativos
Sistemas que son fundamentales para la operación
de una empresa de negocios.
36
Comunicaciones
Sistemas que proveen la infraestructura para transferir y
manejar datos, para conectar usuarios o para presentar
datos en la frontera de una infraestructura.
37
Contenido de Autor
Sistemas que se emplean para crear o manipular artefactos
de texto o multimedios.
38
Dispositivos
Sistemas que interactúan con el mundo físico a fin de
brindar algún servicio puntual a un individuo.
39
Entretenimiento y Deportes
Sistemas que administran eventos públicos o que proveen
una experiencia grupal de entretenimiento.
40
Financieros
Sistemas que proporcionan la infraestructura para transferir
y manejar dinero y otros títulos.
41
Juegos
Sistemas que dan una experiencia de entretenimiento a
individuos o grupos.
42
Gobierno
Sistemas que dan apoyo a la conducción y operaciones de
una institución
43
Sistema Operativo
Sistemas que están inmediatamente instalados en el
hardware para dar servicios de software básico.
Legal
44
Politica Local
Industrial
Médicos
Militares
Científicos
Transporte
45
Cada género representa un desafío único.
Por ejemplo:
Considere la arquitectura del software de un sistema de juego.
“Esta clase de sistemas, en ocasiones llamados aplicaciones
interactivas de inmersión, requieren el cómputo de algoritmos
intensivos, gráficas avanzadas en computadora, fuentes de
datos continuas en multimedios, interactividad en tiempo real a
través de dispositivos de entrada convencionales y no
convencionales, y otras preocupaciones especializadas.”
46
Estilos Arquitectónicos
“En el fondo de la mente de todo artista hay un patrón o tipo de arquitectura. “ G. K. Chesterton
47
Estilos Arquitectónicos
Describen las categorías del sistema que incluye:
1) Un conjunto de componentes (como una base de datos o
módulos de cómputo) que realizan una función requerida por
el sistema.
2) Conectores que permiten la “comunicación, coordinación y
cooperación” entre los componentes.
3) Restricciones que definen cómo se integran los componentes
para formar el sistema.
4) Modelos semánticos que permiten que un diseñador
entienda las propiedades generales del sistema al analizar las
propiedades conocidas de sus partes constituyentes.
48
Estilos Arquitectónicos - Taxonomía
•Arquitecturas centradas en los datos.
•Arquitecturas de flujo de datos
•Arquitecturas de llamar y regresar.
•Arquitecturas orientadas a objetos
•Arquitecturas en capas.
49
Arquitecturas centradas en los datos.
• En el centro de esta arquitectura se halla un almacenamiento de
datos al que acceden con frecuencia otros componentes que
actualizan, agregan, eliminan o modifican los datos de cierto modo
dentro del almacenamiento.
• Promueven la integrabilidad.
50
Arquitecturas de flujo de datos.
• Se aplica cuando datos de entrada van a transformarse en datos
de salida a través de una serie de componentes computacionales o
manipuladores.
• Se basan en un patrón de tubo/filtro que tiene un conjunto de
componentes, llamados filtros, conectados por tubos que
transmiten datos de un componente al siguiente.
51
Arquitecturas de llamar y regresar
• Permite obtener una estructura de programa que es
relativamente fácil de modificar y escalar, contiene subestilos.
• Arquitecturas de programa principal/subprograma: Esta
estructura clásica de programa descompone una función en
una jerarquía de control en la que un programa “principal”
invoca cierto número de componentes de programa que a su
vez invocan a otros.
52
Arquitecturas de llamar y regresar
• Arquitecturas de llamada de procedimiento remoto: Los
componentes de una arquitectura de programa principal/
subprograma están distribuidos a través de computadoras
múltiples en una red.
53
Arquitecturas Orientadas a Objetos
Los componentes de un sistema incluyen datos y las
operaciones que deben aplicarse para manipularlos. La
comunicación y coordinación entre los componentes se
consigue mediante la transmisión de mensajes.
54
Arquitecturas en Capas
• Se define un número de capas diferentes
• En la capa externa: los componentes atienden las operaciones de
la interfaz de usuario.
• En la interna: los componentes realizan la interfaz con el sistema
operativo.
• Las capas intermedias: proveen servicios de utilerías y funciones
de software de aplicación.
55
Patrones Arquitectónicos
“Tal vez está en la planta baja. Déjame subir a revisar.” M. C. Escher
56
Patrones por todos lados.
57
Patrones
“El patrón propone una solución arquitectónica que sirve como base para
el diseño de la arquitectura.”
Los patrones arquitectónicos se abocan a un problema de aplicación
específica dentro de un contexto dado y sujeto a limitaciones y
restricciones.
58
Diseño
Arquitectónico
“Un doctor puede sepultar sus errores, pero un arquitecto
sólo puede aconsejar a su cliente que siembre
enredaderas.” Frank Lloyd Wright
59
Diseño Arquitectónico
En diseño arquitectónico, el software que se va a
desarrollar debe situarse en contexto, es decir, el
diseño debe definir las entidades externas (otros
sistemas, dispositivos, personas, etc.) con las que
interactúa el software y la naturaleza de dicha
interacción.
60
Representación del sistema
en Contexto
El contexto arquitectónico representa la manera en la que el software interactúa con las
entidades externas a sus fronteras.
61
Diagrama Contexto Arquitectónico (DCA)
Permite modelar la manera en la que el software interactúa con
entidades más allá de sus fronteras.
62
Diagrama Contexto Arquitectónico (DCA)
• Sistemas superiores: aquellos que utilizan al sistema objetivo como parte de algún
esquema de procesamiento de alto nivel.
• Sistemas subordinados: los que son usados por el sistema objetivo y proveen datos
o procesamiento que son necesarios para completar las funciones del sistema
objetivo.
• Sistemas entre iguales: son los que interactúan sobre una base de igualdad (por
ejemplo, la información se produce o consume por los iguales y por el sistema
objetivo).
• Actores: entidades (personas, dispositivos, etc.) que interactúan con el sistema
objetivo mediante la producción o consumo de información que es necesaria para el
procesamiento de los requerimientos.
63
Definición de Arquetipos
Los arquetipos son los bloques constructivos de un diseño arquitectónico.
64
Arquetipos
Un arquetipo es una clase o un patrón que representa una
abstracción fundamental de importancia crítica para el diseño de
una arquitectura para el sistema objetivo.
Podemos obtener arquetipos con el estudio de las clases de
análisis definidas como parte del modelo de los requerimientos.
Representan elementos estables de la arquitectura, pero que son
implementadas en muchos modos diferentes con base en el
comportamiento del sistema.
65
DCA Casa Segura
66
Refinamiento de la
arquitectura hacia los
componentes
¿cómo se eligen estos componentes?
67
Refinamiento
“La estructura de un sistema de software provee la ecología en la
que el código nace, crece y muere. Un hábitat bien diseñado
permite la evolución exitosa de todos los componentes
necesarios en un sistema de software.” R. Pattis
68
Refinamiento
El dominio de aplicación es una fuente para la obtención y refinamiento de los
componentes.
Estas clases de análisis representan entidades dentro del dominio de aplicación
(negocio) que deben enfrentarse dentro de la arquitectura del software.
Otra fuente es el dominio de la infraestructura.
La arquitectura debe albergar muchas componentes de la infraestructura que hagan
posible los componentes de la aplicación, pero que no tengan conexión con el
dominio de ésta.
Por ejemplo:
los componentes de administración de memoria, de comunicación, de base de
datos y de administración de tareas con frecuencia están integrados en la
arquitectura del software.
69
Estructura arquitectónica de componentes de alto nivel de CasaSegura
70
Descripción de las
instancias del sistema
71
Instancias del sistema
Para lograr un buen refinamiento y crear instancias, se debe aplicar una
especificación mas detallada a un problema específico, con objeto de
demostrar que tanto ella como sus componentes son apropiados.
72
Método de la negociación
para analizar la
arquitectura
73
Análisis de la arquitectura
•Escenarios de investigación: Se desarrolla un conjunto de
casos de uso para representar al sistema desde el punto de
vista del usuario.
•Obtención de los requerimientos, restricciones, y
descripción del ambiente: Esta información se determina
como parte de la ingeniería de requerimientos y se utiliza
para estar seguros de que se han detectado todas las
preocupaciones de los participantes.
74
Análisis de la arquitectura
• Descripción de los estilos o patrones de arquitectura elegidos para abordar los
escenarios y requerimientos: Debe describirse el estilo arquitectónico con el
empleo de las siguientes perspectivas arquitectónicas:
• Perspectiva modular: para el análisis de las asignaciones de trabajo con
componentes y grado en el que se logra el ocultamiento de información.
• Perspectiva del proceso: para el análisis del desempeño del sistema.
• Perspectiva del flujo de datos: para analizar el grado en el que la arquitectura
satisface los requerimientos funcionales.
75
Análisis de la arquitectura
• Evaluación de los atributos de calidad, considerando cada atributo por
separado: El número de atributos de la calidad elegidos para el análisis es una
función del tiempo disponible para la revisión y el grado en el que los atributos
de calidad son relevantes para el sistema en cuestión. Los atributos de calidad
para evaluar el diseño arquitectónico como
• confiabilidad
• desempeño
• seguridad
• facilidad de mantenimiento
• flexibilidad
• facilidad de hacer pruebas
• portabilidad
• reutilización e interactuación.
76
Análisis de la arquitectura
• Identificación de la sensibilidad de los atributos de calidad de varios atributos
arquitectónicos para un estilo de arquitectura específico: Eso se lleva a cabo
haciendo cambios pequeños en la arquitectura a fin de determinar la
sensibilidad que tiene un atributo de calidad,
por ejemplo, el desempeño ante el cambio:
Atributos que se vean afectados en forma significativa por la variación de la
arquitectura se denominan puntos sensibles.
• Crítica de las arquitecturas candidatas en la descripción de patrones con el uso
del análisis de sensibilidad.
77
Complejidad
Arquitectónica
78
Complejidad Arquitectónica.
Para evaluar la complejidad total de una arquitectura una técnica consiste en
consideran las relaciones de dependencias entre los componentes de la
arquitectura.
Existen tres tipos de dependencias:
Dependencias de compartimiento: Representan las relaciones de dependencia
entre los consumidores que utilizan los mismos recursos o los productores que
producen para los mismos consumidores.
Dependencias de flujo: Representan las relaciones de dependencias entre los
productores y los consumidores de recursos.
Dependencias restrictivas: Representan las restricciones de un relativo flujo de
control entre un cuadro de actividades.
79
Taller
* ¿Por qué es importante la arquitectura?
* ¿Cuales son las diferencias entre la fase del diseño arquitectónico y la
implementación de una arquitectura de software.?
* Con el uso de la arquitectura de una casa o edificio como metáfora, establezca
comparaciones con la arquitectura del software. ¿En qué se parecen las
disciplinas de la arquitectura clásica y la del software? ¿En qué difieren?
* Cuando se “escribe” un programa, ¿se diseña software? ¿En qué difieren el
diseño de software y la codificación?
* Describa que son los componentes dentro de una arquitectura de software.
* Describa con sus propias palabras la arquitectura de software.
* Describa en breves palabras cada uno de los cuatro elementos del modelo del
diseño.
* ¿Por qué cualidades puede ser evaluada una Arquitectura?
* ¿Cuáles son los costos y beneficios de realizar una evaluación arquitectónica?
* Investigue, liste y defina cada una de las Estructuras arquitectónicas
canónicas
80
Próxima clase
Diseño de Interfaces

Contenu connexe

Tendances

Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
Marvin Zumbado
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
Moises Cruz
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
Yare LoZada
 
51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
Miguel Angel Rodriguez
 

Tendances (20)

Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Enfoque estructurado enfoque oo
Enfoque estructurado   enfoque ooEnfoque estructurado   enfoque oo
Enfoque estructurado enfoque oo
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetos
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Arquitectura fisica y logica
Arquitectura fisica y logicaArquitectura fisica y logica
Arquitectura fisica y logica
 
MOD Unidad 1: Fundamentos de modelado
MOD Unidad 1: Fundamentos de modeladoMOD Unidad 1: Fundamentos de modelado
MOD Unidad 1: Fundamentos de modelado
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Requerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicaciónRequerimientos funcionales y no funcionales de la aplicación
Requerimientos funcionales y no funcionales de la aplicación
 
Herramientas case full informacion
Herramientas case full informacionHerramientas case full informacion
Herramientas case full informacion
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Sistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de SistemasSistemas críticos - Ingeniería de Sistemas
Sistemas críticos - Ingeniería de Sistemas
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 

Similaire à Principios de diseño de la arquitectura del software

2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
landeta_p
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
Fatima Cham
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
landeta_p
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
landeta_p
 
Arquitectura sistema
Arquitectura sistemaArquitectura sistema
Arquitectura sistema
Oscar Eduardo
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
Liliana Pacheco
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
Marijoalbarranb
 

Similaire à Principios de diseño de la arquitectura del software (20)

1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
1-Unidad 1: Arquitectura de Diseño-1.1 MVC-Introducción
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Diseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezDiseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalez
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Patrones
PatronesPatrones
Patrones
 
6t
6t6t
6t
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Arquitectura. de Software. en ambientes distribuidos.
Arquitectura. de Software. en ambientes distribuidos.Arquitectura. de Software. en ambientes distribuidos.
Arquitectura. de Software. en ambientes distribuidos.
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
Arquitectura sistema
Arquitectura sistemaArquitectura sistema
Arquitectura sistema
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Eje Tematico Uno Grupo Uno
Eje Tematico Uno   Grupo UnoEje Tematico Uno   Grupo Uno
Eje Tematico Uno Grupo Uno
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 

Plus de Jose Patricio Bovet Derpich (9)

Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Scrum overview
Scrum overview Scrum overview
Scrum overview
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Diseño de la interfaz de usuario
Diseño de la interfaz de usuarioDiseño de la interfaz de usuario
Diseño de la interfaz de usuario
 
POO1501 - Composición java
POO1501 - Composición javaPOO1501 - Composición java
POO1501 - Composición java
 
POO1501 - Composición java
POO1501 - Composición javaPOO1501 - Composición java
POO1501 - Composición java
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
GitHub y el software libre
GitHub y el software libreGitHub y el software libre
GitHub y el software libre
 
Apache Servicemix
Apache ServicemixApache Servicemix
Apache Servicemix
 

Dernier

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Dernier (20)

Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 

Principios de diseño de la arquitectura del software

  • 1. Principios de Diseño de la Arquitectura del Software IDS5501 V.1.0 @josebovet
  • 2. 2 Clase anterior Principios Diseño del Software. • Introducción al diseño de Software. • Diseño en el contexto de la ingeniería de software. • El PROCESO,CONCEPTOS, y el MODELO del diseño.
  • 3. 3 Objetivos de las clase • Introducción a la Arquitectura de Software. • Géneros Arquitectónicas • Estilos Arquitectónicos. • Diseño Arquitectónico. • Evaluación de los diseños alternativos para la Arquitectura. • Mapeo de la arquitectura con el uso del flujo de datos. Principios del diseño de Arquitectura
  • 6. 6 ¿Qué es? El diseño arquitectónico representa la estructura de los datos y de los componentes del programa que se requieren para construir un sistema basado en computadora.
  • 7. 7 ¿Qué es? “La arquitectura es demasiado importante para dejarla en manos de una sola persona, no importa cuán brillante sea.” Scott Ambler “Cásate con tu arquitectura de prisa, arrepiéntete en tu tiempo libre.” Barry Boehm.
  • 9. 9 ¿Quién lo hace? Ingenieros de Software / Especialistas. El diseñador de una base de datos crea la arquitectura de los datos para un sistema. El “arquitecto del sistema” selecciona un estilo arquitectónico apropiado a partir de los requerimientos obtenidos durante el análisis de los datos.
  • 11. 11 ¿Por qué es importante? • Usted intentaría construir su casa sin un plano, ¿o sí? • Tampoco comenzaría los planos con el dibujo de la plomería del lugar.
  • 12. 12 ¿Por qué es importante?
  • 13. 13 ¿Por qué es importante? Antes de preocuparse por los detalles, necesitaría tener el panorama general: La casa en sí. Eso es lo que hace el diseño arquitectónico, da el panorama y asegura que sea el correcto.
  • 15. 15 ¿Cuáles son los pasos? 1. El diseño de la arquitectura comienza con el diseño de los datos. 2. Continúa con la obtención las representaciones de la estructura arquitectónica del sistema. 3. Se analizan alternativas de estilos o patrones arquitectónicos. 4. Seleccionada la alternativa, se elabora la arquitectura con el empleo de un método de diseño.
  • 16. 16 ¿Cuál es el producto final?
  • 17. 17 ¿Cuál es el producto final? Un modelo de arquitectura que incluye datos y la estructura del software. Además, se describen las propiedades y relaciones(interacciones) que hay entre los componentes.
  • 19. 19 ¿Cómo me aseguro de que lo hice bien?
  • 20. 20 ¿Cómo me aseguro de que lo hice bien? Comprobaciones • En cada etapa se revisan los productos del trabajo del diseño del software para que sean claros, correctos, completos y consistentes con los requerimientos y entre sí.
  • 21. Arquitectura de Software ”La arquitectura de un sistema es un marco general que describe su forma y estructura: sus componentes y la manera en la que ajustan entre sí.”Jerrold Grochow
  • 22. La arquitectura del software de un programa o sistema de cómputo es la estructura o estructuras del sistema, lo que comprende a los componentes del software, sus propiedades externas visibles y las relaciones entre ellos. "
  • 23. 23 Arquitectura de Software. Permite 1. Analizar la efectividad del diseño para cumplir los requerimientos establecidos. 2.Considerar alternativas arquitectónicas en una etapa en la que hacer cambios al diseño todavía es relativamente fácil. 3.Reducir los riesgos asociados con la construcción del software.
  • 24. 24 3 Razones de importancia de la Arquitectura • Las representaciones de la arquitectura del software permiten la comunicación entre todas las partes interesadas en el desarrollo de un sistema. • Resalta las primeras decisiones que tendrán un efecto profundo en todo el trabajo de ingeniería de software siguiente. • “Constituye un modelo relativamente pequeño y asequible sobre cómo está estructurado el sistema y la forma en la que sus componentes trabajan juntos”
  • 25. Descripciones Arquitectónicas “...el esfuerzo debe centrarse en representaciones de la arquitectura que guiarán todos los demás aspectos del diseño”.
  • 26. 26 Definición descripción Arquitectónica “Un conjunto de productos para documentar una arquitectura”. IEEE
  • 27. 27 Objetivos 1. Establecer un marco conceptual con un vocabulario que se use durante el diseño de la arquitectura del software. 2. Proporcionar lineamientos detallados para representar una descripción arquitectónica. 3. Estimular las mejores prácticas del diseño arquitectónico.
  • 30. 30 Decisiones Arquitectónicas • El arquitecto del sistema considera varias alternativas y decide en última instancia las características arquitectónicas específicas que satisfagan del mejor modo la preocupación. • Las decisiones arquitectónicas en sí mismas se consideran una perspectiva de la arquitectura. • Las razones de las decisiones dan una visión de un sistema y su concordancia con las preocupaciones de los participantes.
  • 31. 31 Géneros Arquitectónicos “Programar sin una arquitectura en mente es como explorar una caverna sólo con una linterna: no sabes dónde has estado, a dónde vas ni dónde estás.” Danny Thorpe
  • 32. 32 Géneros Arquitectónicos El género Arquitectónico dicta el enfoque específico para la estructura que deba construirse. Especifican una categoría dentro del dominio general del software, dentro de cada categoría hay varias subcategorías.
  • 34. 34 Inteligencia Artificial Sistemas que simulan o incrementan la cognición humana, su locomoción u otros procesos orgánicos
  • 35. 35 Comerciales y no lucrativos Sistemas que son fundamentales para la operación de una empresa de negocios.
  • 36. 36 Comunicaciones Sistemas que proveen la infraestructura para transferir y manejar datos, para conectar usuarios o para presentar datos en la frontera de una infraestructura.
  • 37. 37 Contenido de Autor Sistemas que se emplean para crear o manipular artefactos de texto o multimedios.
  • 38. 38 Dispositivos Sistemas que interactúan con el mundo físico a fin de brindar algún servicio puntual a un individuo.
  • 39. 39 Entretenimiento y Deportes Sistemas que administran eventos públicos o que proveen una experiencia grupal de entretenimiento.
  • 40. 40 Financieros Sistemas que proporcionan la infraestructura para transferir y manejar dinero y otros títulos.
  • 41. 41 Juegos Sistemas que dan una experiencia de entretenimiento a individuos o grupos.
  • 42. 42 Gobierno Sistemas que dan apoyo a la conducción y operaciones de una institución
  • 43. 43 Sistema Operativo Sistemas que están inmediatamente instalados en el hardware para dar servicios de software básico.
  • 45. 45 Cada género representa un desafío único. Por ejemplo: Considere la arquitectura del software de un sistema de juego. “Esta clase de sistemas, en ocasiones llamados aplicaciones interactivas de inmersión, requieren el cómputo de algoritmos intensivos, gráficas avanzadas en computadora, fuentes de datos continuas en multimedios, interactividad en tiempo real a través de dispositivos de entrada convencionales y no convencionales, y otras preocupaciones especializadas.”
  • 46. 46 Estilos Arquitectónicos “En el fondo de la mente de todo artista hay un patrón o tipo de arquitectura. “ G. K. Chesterton
  • 47. 47 Estilos Arquitectónicos Describen las categorías del sistema que incluye: 1) Un conjunto de componentes (como una base de datos o módulos de cómputo) que realizan una función requerida por el sistema. 2) Conectores que permiten la “comunicación, coordinación y cooperación” entre los componentes. 3) Restricciones que definen cómo se integran los componentes para formar el sistema. 4) Modelos semánticos que permiten que un diseñador entienda las propiedades generales del sistema al analizar las propiedades conocidas de sus partes constituyentes.
  • 48. 48 Estilos Arquitectónicos - Taxonomía •Arquitecturas centradas en los datos. •Arquitecturas de flujo de datos •Arquitecturas de llamar y regresar. •Arquitecturas orientadas a objetos •Arquitecturas en capas.
  • 49. 49 Arquitecturas centradas en los datos. • En el centro de esta arquitectura se halla un almacenamiento de datos al que acceden con frecuencia otros componentes que actualizan, agregan, eliminan o modifican los datos de cierto modo dentro del almacenamiento. • Promueven la integrabilidad.
  • 50. 50 Arquitecturas de flujo de datos. • Se aplica cuando datos de entrada van a transformarse en datos de salida a través de una serie de componentes computacionales o manipuladores. • Se basan en un patrón de tubo/filtro que tiene un conjunto de componentes, llamados filtros, conectados por tubos que transmiten datos de un componente al siguiente.
  • 51. 51 Arquitecturas de llamar y regresar • Permite obtener una estructura de programa que es relativamente fácil de modificar y escalar, contiene subestilos. • Arquitecturas de programa principal/subprograma: Esta estructura clásica de programa descompone una función en una jerarquía de control en la que un programa “principal” invoca cierto número de componentes de programa que a su vez invocan a otros.
  • 52. 52 Arquitecturas de llamar y regresar • Arquitecturas de llamada de procedimiento remoto: Los componentes de una arquitectura de programa principal/ subprograma están distribuidos a través de computadoras múltiples en una red.
  • 53. 53 Arquitecturas Orientadas a Objetos Los componentes de un sistema incluyen datos y las operaciones que deben aplicarse para manipularlos. La comunicación y coordinación entre los componentes se consigue mediante la transmisión de mensajes.
  • 54. 54 Arquitecturas en Capas • Se define un número de capas diferentes • En la capa externa: los componentes atienden las operaciones de la interfaz de usuario. • En la interna: los componentes realizan la interfaz con el sistema operativo. • Las capas intermedias: proveen servicios de utilerías y funciones de software de aplicación.
  • 55. 55 Patrones Arquitectónicos “Tal vez está en la planta baja. Déjame subir a revisar.” M. C. Escher
  • 57. 57 Patrones “El patrón propone una solución arquitectónica que sirve como base para el diseño de la arquitectura.” Los patrones arquitectónicos se abocan a un problema de aplicación específica dentro de un contexto dado y sujeto a limitaciones y restricciones.
  • 58. 58 Diseño Arquitectónico “Un doctor puede sepultar sus errores, pero un arquitecto sólo puede aconsejar a su cliente que siembre enredaderas.” Frank Lloyd Wright
  • 59. 59 Diseño Arquitectónico En diseño arquitectónico, el software que se va a desarrollar debe situarse en contexto, es decir, el diseño debe definir las entidades externas (otros sistemas, dispositivos, personas, etc.) con las que interactúa el software y la naturaleza de dicha interacción.
  • 60. 60 Representación del sistema en Contexto El contexto arquitectónico representa la manera en la que el software interactúa con las entidades externas a sus fronteras.
  • 61. 61 Diagrama Contexto Arquitectónico (DCA) Permite modelar la manera en la que el software interactúa con entidades más allá de sus fronteras.
  • 62. 62 Diagrama Contexto Arquitectónico (DCA) • Sistemas superiores: aquellos que utilizan al sistema objetivo como parte de algún esquema de procesamiento de alto nivel. • Sistemas subordinados: los que son usados por el sistema objetivo y proveen datos o procesamiento que son necesarios para completar las funciones del sistema objetivo. • Sistemas entre iguales: son los que interactúan sobre una base de igualdad (por ejemplo, la información se produce o consume por los iguales y por el sistema objetivo). • Actores: entidades (personas, dispositivos, etc.) que interactúan con el sistema objetivo mediante la producción o consumo de información que es necesaria para el procesamiento de los requerimientos.
  • 63. 63 Definición de Arquetipos Los arquetipos son los bloques constructivos de un diseño arquitectónico.
  • 64. 64 Arquetipos Un arquetipo es una clase o un patrón que representa una abstracción fundamental de importancia crítica para el diseño de una arquitectura para el sistema objetivo. Podemos obtener arquetipos con el estudio de las clases de análisis definidas como parte del modelo de los requerimientos. Representan elementos estables de la arquitectura, pero que son implementadas en muchos modos diferentes con base en el comportamiento del sistema.
  • 66. 66 Refinamiento de la arquitectura hacia los componentes ¿cómo se eligen estos componentes?
  • 67. 67 Refinamiento “La estructura de un sistema de software provee la ecología en la que el código nace, crece y muere. Un hábitat bien diseñado permite la evolución exitosa de todos los componentes necesarios en un sistema de software.” R. Pattis
  • 68. 68 Refinamiento El dominio de aplicación es una fuente para la obtención y refinamiento de los componentes. Estas clases de análisis representan entidades dentro del dominio de aplicación (negocio) que deben enfrentarse dentro de la arquitectura del software. Otra fuente es el dominio de la infraestructura. La arquitectura debe albergar muchas componentes de la infraestructura que hagan posible los componentes de la aplicación, pero que no tengan conexión con el dominio de ésta. Por ejemplo: los componentes de administración de memoria, de comunicación, de base de datos y de administración de tareas con frecuencia están integrados en la arquitectura del software.
  • 69. 69 Estructura arquitectónica de componentes de alto nivel de CasaSegura
  • 71. 71 Instancias del sistema Para lograr un buen refinamiento y crear instancias, se debe aplicar una especificación mas detallada a un problema específico, con objeto de demostrar que tanto ella como sus componentes son apropiados.
  • 72. 72 Método de la negociación para analizar la arquitectura
  • 73. 73 Análisis de la arquitectura •Escenarios de investigación: Se desarrolla un conjunto de casos de uso para representar al sistema desde el punto de vista del usuario. •Obtención de los requerimientos, restricciones, y descripción del ambiente: Esta información se determina como parte de la ingeniería de requerimientos y se utiliza para estar seguros de que se han detectado todas las preocupaciones de los participantes.
  • 74. 74 Análisis de la arquitectura • Descripción de los estilos o patrones de arquitectura elegidos para abordar los escenarios y requerimientos: Debe describirse el estilo arquitectónico con el empleo de las siguientes perspectivas arquitectónicas: • Perspectiva modular: para el análisis de las asignaciones de trabajo con componentes y grado en el que se logra el ocultamiento de información. • Perspectiva del proceso: para el análisis del desempeño del sistema. • Perspectiva del flujo de datos: para analizar el grado en el que la arquitectura satisface los requerimientos funcionales.
  • 75. 75 Análisis de la arquitectura • Evaluación de los atributos de calidad, considerando cada atributo por separado: El número de atributos de la calidad elegidos para el análisis es una función del tiempo disponible para la revisión y el grado en el que los atributos de calidad son relevantes para el sistema en cuestión. Los atributos de calidad para evaluar el diseño arquitectónico como • confiabilidad • desempeño • seguridad • facilidad de mantenimiento • flexibilidad • facilidad de hacer pruebas • portabilidad • reutilización e interactuación.
  • 76. 76 Análisis de la arquitectura • Identificación de la sensibilidad de los atributos de calidad de varios atributos arquitectónicos para un estilo de arquitectura específico: Eso se lleva a cabo haciendo cambios pequeños en la arquitectura a fin de determinar la sensibilidad que tiene un atributo de calidad, por ejemplo, el desempeño ante el cambio: Atributos que se vean afectados en forma significativa por la variación de la arquitectura se denominan puntos sensibles. • Crítica de las arquitecturas candidatas en la descripción de patrones con el uso del análisis de sensibilidad.
  • 78. 78 Complejidad Arquitectónica. Para evaluar la complejidad total de una arquitectura una técnica consiste en consideran las relaciones de dependencias entre los componentes de la arquitectura. Existen tres tipos de dependencias: Dependencias de compartimiento: Representan las relaciones de dependencia entre los consumidores que utilizan los mismos recursos o los productores que producen para los mismos consumidores. Dependencias de flujo: Representan las relaciones de dependencias entre los productores y los consumidores de recursos. Dependencias restrictivas: Representan las restricciones de un relativo flujo de control entre un cuadro de actividades.
  • 79. 79 Taller * ¿Por qué es importante la arquitectura? * ¿Cuales son las diferencias entre la fase del diseño arquitectónico y la implementación de una arquitectura de software.? * Con el uso de la arquitectura de una casa o edificio como metáfora, establezca comparaciones con la arquitectura del software. ¿En qué se parecen las disciplinas de la arquitectura clásica y la del software? ¿En qué difieren? * Cuando se “escribe” un programa, ¿se diseña software? ¿En qué difieren el diseño de software y la codificación? * Describa que son los componentes dentro de una arquitectura de software. * Describa con sus propias palabras la arquitectura de software. * Describa en breves palabras cada uno de los cuatro elementos del modelo del diseño. * ¿Por qué cualidades puede ser evaluada una Arquitectura? * ¿Cuáles son los costos y beneficios de realizar una evaluación arquitectónica? * Investigue, liste y defina cada una de las Estructuras arquitectónicas canónicas