SlideShare una empresa de Scribd logo
1 de 80
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwarepaoaboytes
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareRoger Villegas
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónYaskelly Yedra
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Shelisse De la 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ónYare LoZada
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físicoerrroman
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionAbner Gerardo
 

La actualidad más candente (20)

Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 
Fundamentos de la arquitectura de software
Fundamentos de la arquitectura de softwareFundamentos de la arquitectura de software
Fundamentos de la arquitectura de software
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Ensayo Cliente Servidor
Ensayo Cliente ServidorEnsayo Cliente Servidor
Ensayo Cliente Servidor
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de información
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Estilos arquitectónicos
Estilos arquitectónicosEstilos arquitectónicos
Estilos arquitectónicos
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Rational rose
Rational roseRational rose
Rational rose
 
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
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 

Similar a Principios de diseño de la arquitectura del software

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ónLuis Fernando Aguas Bucheli
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónicoDamián Rotta
 
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 softwareJosé Antonio Sandoval Acosta
 
Diseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezDiseno de software_-_gabriel_gonzalez
Diseno de software_-_gabriel_gonzalezGabrielGonzalez463
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima 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ónicolandeta_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ónicolandeta_p
 
Arquitectura sistema
Arquitectura sistemaArquitectura sistema
Arquitectura sistemaOscar Eduardo
 
Eje Tematico Uno Grupo Uno
Eje Tematico Uno   Grupo UnoEje Tematico Uno   Grupo Uno
Eje Tematico Uno Grupo UnoJohnGaviria1
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 

Similar a 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
 
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
 
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
 
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
 
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
 
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
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Unidad 4. diseno del sistema
Unidad 4. diseno del sistemaUnidad 4. diseno del sistema
Unidad 4. diseno del sistema
 
Diseno de software
Diseno de software Diseno de software
Diseno de software
 

Más 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
 

Último

EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfpatriciavsquezbecerr
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 

Último (20)

Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 

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