SlideShare une entreprise Scribd logo
1  sur  46
Arquitectura de Software
Dr. Pedro Mejia Alvarez
Cova Suazo Nancy Noemí 
Pérez Reséndiz Marisol
CINVESTAV – IPN
Sección de Computación
Capítulo 1
Ciclo de la Arquitectura
de Negocios
. La vista arquitectural de un sistema es abstracta,
proporcionando detalles acerca de la
implementación, los algoritmos, la representación
de datos e incluso el comportamiento y la
interacción entre elementos (cajas negras - black
box).
INTRODUCCIÓN
Los requerimientos no determinan del todo la
arquitectura, más bien está es además resultado de
influencias en los ambientes técnicos, sociales y del
negocio.
Llamaremos a este ciclo de influencias, del
ambiente a la arquitectura y de la arquitectura al
ambiente como “El Ciclo de la Arquitectura de
Negocios (Architecture Business Cycle - ABC)”.
Architecture Business Cycle - ABC
¿Cómo surgen las arquitecturas?
Influencias en la Arquitectura
Stakeholders
La composición de la organización.
La formación y la experiencia de los arquitectos.
El ambiente técnico.
INFLUENCIAS EN LAS ARQUITECTURAS
Las arquitecturas afectan a
los factores que las influencian
Ciclo de la Arquitectura de Negocios
La composición de la organización.
Los objetivos de la organización.
Los requerimientos del cliente.
La experiencia de los arquitectos.
Muy pocos sistemas influenciarán o cambiarán la
cultura de la ingeniería de software, el ambiente
técnico en el cual los sistemas operan y aprenden.
Las arquitecturas afectan a
los factores que las influencian
Definir el caso de estudio para el sistema
Entender los requerimientos
Crear o seleccionar la arquitectura
Comunicar la arquitectura
Analizar y evaluar la arquitectura
Implementar el sistema basado en la arquitectura
Asegurar que la implementación sea conforme a la
arquitectura
El Proceso de Software y El
Ciclo de la Arquitectura de Negocios (ABC)
ser producto de un arquitecto o un pequeño grupo de
arquitectos con un líder definido.
estar bien documentada, con al menos una vista dinámica y
una vista estática, utilizando una notación que los
stakeholders puedan entender fácilmente.
ser evaluada y analizada con métricas cuantitativas y
cualitativas.
presentarse como una implementación incremental, para
poder diseñar un esqueleto del sistema, mostrando primero
la mínima funcionalidad y después como puede ir creciendo.
ser diseñada por arquitectos que cuentan con los
requerimientos funcionales y no funcionales del sistema.
¿Qué hace buena a una arquitectura?
Una arquitectura debería ...
La arquitectura debería tener bien definidos los módulos.
Cada módulo debería tener bien definida las interfaces que
encapsula. Estas interfaces permitirán desarrollar de manera
independiente cada módulo.
La arquitectura nunca debe de depender de una versión de un
producto o herramienta comercial.
Los módulos que producen datos deberán estar separados de los
módulos que consumen datos. Esto permitirá que cuando un dato sea
añadido solo tenga que modificarse un módulo.
Cada tarea o proceso deberá ser bien documentado, para que este
pueda ser fácilmente modificado, quizás incluso en tiempo de
ejecución.
La arquitectura deberá caracterizarse como un conjunto de simples
interacciones, esto es para incrementar la confiabilidad, la
manteneabilidad, reducir el tiempo de desarrollo, etc.
Reglas estructurales para
la arquitectura
Capítulo 2
Qué es una Arquitectura
de Software ?
Una Arquitectura de Sofware de un programa o de
un sistema de cómputo es la estructura o
estructuras de un Sistema. Dicha(s) estructura(s)
comprenden:
Elementos de software,
Las propiedades visibles de dichos elementos, y
Las relaciones entre los mismos.
DEFINICIÓN
Una arquitectura de software debe proporcionar
cierta información:
La naturaleza de los elementos.
Si los elementos son procesos, programas, objetos, etc.
Las funciones de los elementos.
El significado de las relaciones entre cada elemento.
El significado de la distribución de los elementos.
Por ejemplo. Elementos localizados en diferentes niveles.
ELEMENTO 1
ELEMENTO 2 ELEMENTO 3 ELEMENTO 4
EJEMPLO. Representación de una Arquitectura de
Software poco informativa.
Arquitectura es un diseño de alto nivel.
Arquitectura es la estructura general del sistema.
Arquitectura es la estructura de componentes,
relaciones, principios y pautas que definen su
diseño y evolución sobre el tiempo.
Arquitectura es componentes y conectores.
OTRAS DEFINICIONES DE LA ARQUITECTURA
DE SOFTWARE
PATRONES DE ARQUITECTURA
Un patrón de arquitectura es una descripción de
elementos y los tipos de relación, junto con un
grupo de restricciones en cómo deben ser usados.
Un ejemplo de este tipo, es la Arquitectura
Cliente-Servidor.
MODELO DE REFERENCIA
Un modelo de referencia es una descomposición de
un problema en un cierto número de partes que
cooperativamente resuelven el mismo.
Ejemplos
Partes de un Compilador.
Partes de un Sistema manejador de Base de
Datos.
ARQUITECTURA DE REFERENCIA
Es un modelo de referencia planeado sobre
elementos de software y el flujo de datos entre
ellos.
Un elemento de software puede implementar
parte de una función o de varias funciones.
Comunicación entre las personas involucradas
La arquitectura representa una abstracción que puede ser
base para el entendimiento, concenso, negociación y
comunicación.
Decisiones tempranas de diseño
Define limitaciones en la Implementación.
Dicta la Estructura Organizacional.
Oculta o muestra los Atributos del Sistema.
Hace más fácil controlar los cambios.
Ayuda en el prototipado evolutivo.
Proporciona Estimaciones de Costos y Calendarización más
exactos.
POR QUÉ ES IMPORTANTE LA ARQUITECTURA
DE SOFTWARE ? (1)
Abstracción transferible de un sistema
La arquitectura constituye un modelo de cómo esta el sistema
estructurado y como sus elementos trabajan en conjunto; por
lo que puede ser aplicada a otros sistemas que exhiban
similares requerimientos y atributos.
POR QUÉ ES IMPORTANTE LA ARQUITECTURA
DE SOFTWARE ? (2)
VISTA. Representación de un conjunto de
elementos y las relaciones entre ellos (escritos y
leídos por clientes, usuarios, etc.).
ESTRUCTURA. Conjunto de elementos que por sí
mismos, existen en software o hardware.
Se dividen en:
Módulos.
Componentes-conectores.
Estructuras de Asignación.
ESTRUCTURAS Y VISTAS
Estructuras
Módulos
Descomposición
Uso
Clases
Capas
Componente-Conector
Cliente-
Servidor
Concurrencia
Proceso Datos
Compartidos
Asignación
Despliegue
ImplementaciónAsignación de
Trabajo
Capítulo 7
Diseño de la
Arquitectura
La Arquitectura en el Ciclo de Vida
Software
Concept
Design of
Architecture and
System Core
Develop a
Version
Ellicit Customer
Feedbak
Incorporate
Customer
Feedback
Deliver the
Version
Preliminary
Requirements
Analysis
Develop Final
Version
Ciclo de Vida de Entregas Evolutivas
DISEÑO DE LA ARQUITECTURA
Attribute-Driven Design (ADD), esta es una
aproximación basada en la recursiva descomposición
de procesos, donde cada estado, tácticas y patrones
arquitecturales son escogidos para satisfacer un
conjunto de escenarios y entonces la funcionalidad
es asignada a módulos. La entrada a este método
son todos los requerimientos funcionales, no
funcionales y las limitaciones del sistema.
CUALIDADES EN LOS ESCENARIOS:
los dispositivos y controles para abrir y cerrar la puerta
los procesadores
si se detecta un obstáculo, en el momento que se este cerrando
la puerta, esta tendrá que detenerse y abrirse nuevamente en
0.1 segundos
la puerta automática podrá ser checada y administrada desde
el sistema de información casero, a través de un protocolo
especifico
Sistema de Puertas Automáticas
para un Garage
Escoger el módulo a descomponer.
Refinar el módulo.
Escoger los Drivers Arquitecturales.
Escoger los Patrones Arquitecturales.
Instanciar los módulos, asignar la funcionalidad a
cada uno y representarlos usando múltiples vistas.
Definir las interfaces de los módulos hijos.
Documentar las interacciones y limitaciones entre
cada módulo.
Verificar y refinar casos de uso y escenarios.
Pasos para realizar el diseño
Escoger los patrones Arquitecturales
User Interface
Non-Performance
Critical Computation
Performance Critical
Computation
Scheduler That
Guarantees Deadlines
Virtual Machine
Patrón Arquitectural que utiliza tácticas en el SAPG
Instanciar los módulos,
asignar la funcionalidad a cada uno y
representarlos usando múltiples vistas.
Primer nivel de descomposición del SAPG
User Interface
Raising/Lowering
Door
Obstacle
Detection
Scheduler That
Guarantees Deadlines
Diagnosis
Sensor/Actuator (Control)
Virtual Machine
Communication
Virtual Machine
VISTA DE MÓDULOS (DESCOMPOSICIÓN).
(VISTA DE COMPONENTE-CONECTOR) CONCURRENCIA.
Dos usuarios haciendo cosas similares al mismo tiempo.
Usuario ejecutando múltiples actividades simultáneamente.
Encender el sistema.
Apagar el sistema.
Sincronización.
(VISTA ESTRUCTURAS DE ASIGNACIÓN) IMPLEMENTACIÓN.
Representación usando múltiples vistas
La estructura arquitectural repercute directamente
en la formación de estos equipos, debido a que se
elegirán dependiendo de la funcionalidad (dominio)
de los módulos, es decir se organizarán tomando
en cuenta a la gente más especializada o con
mayores conocimientos en el área.
FORMAR EQUIPOS DE TRABAJO
Una vez que hemos diseñado la arquitectura del
sistema y hemos formado los grupos de trabajo,
tenemos todo lo necesario para poder hacer una
implementación del sistema, el cual me permitirá
estar interactuando con el cliente e ir realizando
modificaciones sobre el mismo, hasta que se este
en condiciones de entregar un producto final.
Crear un esqueleto del sistema
Caso Práctico
SIMULACIÓN DE VUELOS
La creación y mantenimiento de estos sistemas
presentas grandes retos de desarrollo:
Ejecución en tiempo real
Modificabilidad (realizar cambios en los requerimientos)
Escalabilidad (extender la funcionalidad)
Integrabilidad (comodidad con la cual el desarrollo de
elementos, incluyendo aquellos realizados por terceros, se
pueden realizar sepradamente y finalmente juntarlos para
satisfacer todos los requerimientos)
El patrón creado para dicho sistema es un Modelo
Estructural.
INTRODUCCIÓN
RELACIÓN CON LA ARQUITECTURA DEL NEGOCIO
REQUERIMIENTOS Y CUALIDADES
Se tienen 3 roles:
Tripulación. El propósito es instruir al piloto y tripulación
en cómo operar una nave aérea, ejecutar maniobras y
responder ante ciertas situaciones en la vida real.
Ambiente. Comprende la atmósfera, armas, amenazas,
etc.
Instructor. El instructor es responsable de monitorear el
rendimiento de pilotos, así como de iniciar situaciones de
entrenamiento (previamente contempladas o introducidas por
el instructor). Cuenta conuna consola para monitorear las
actividades, introducir funciones erróneas y controlar el
ambiente.
ESTADOS DE EJECUCIÓN
Un simulador de vuelos tiene diferentes estados.
– Operando (funcionamiento normal)
– Configuración (se realizan cambios a la sesión de
entrenamiento)
– Detener (detiene la simulación)
– Repetición (usado para demostrar a la tripulación que fue lo
que realizó durante la simulación)
PROBLEMAS
1. Los costos para pruebas, cambios y eliminación
de errores exceden los costos de desarrollo.
2. No es clara la planeación entre la estructura de
software y la estructura de los simuladores.
SOLUCIÓN
Modelo de Referencia para el Simulador de Vuelos
Vehículo Aéreo
Ambiente
Estación del
Instructor
Desplegados en cabina
Sist. Visual
Sist. de movimiento
Sist. Auditivo
TRIPULACIÓ
N
Controles de
Cabina
Tratamiento del Tiempo
Existen dos maneras de controlar el tiempo en
un simulador de vuelos.
Control Periódico. Tiene un quantum fijo. Una simulación
será capaz de mantener el tiempo de simulación y el tiempo real
sincronizados tanto como cada proceso pueda avanzar su estado
al siguiente periodo.
Control Basado en Eventos.
Agrega un evento a la cola de eventos.
Mientras haya eventos, elegir el evento que tenga menor
tiempo de simulación, se establece el tiempo del evento
seleccionado y se invoca el proceso para dicho evento.
Patrón de la Arquitectura del Modelo Estructural
Los componentes de dicho modelo al nivel más
general son:
La parte de Ejecución. Maneja la coordinación de la
sincronización entre procesos, la administración de eventos,
integridad y compartimiento de datos.
La parte de Aplicación. Maneja el cálculo de la
simulación del vuelo. Sus funciones son implementadas por los
subsistemas y sus hijos.
Sincronizador del Tiempo
Secuenciador periódico
Manejador de Eventos
Sustituto
Módulos del Modelo de Ejecución
Controlador de Subsistemas
Pasa datos para y desde otras instancias de
controladores de subsistemas y a sus hijos.
Controlador de hijos de los Subsistemas
Pasa datos solamente para y desde sus padres. Pueden
inicializarse con algún valor particular, pueden producir
salidas anormales o reflejar una condición de
malfuncionamiento.
Módulos del Modelo de Aplicación
Descomposición de Grupos y de Sistemas
La descomposición más general del modelo es el grupo, los
grupos se descomponen en sistemas y los sistemas se
descomponen en subsistemas. Estos últimos proveen las
instancias para los controladores de los subsistemas.
Uso de Tablas n-Cuadros. Útiles para capturar la entrada y
salida de un módulo

Contenu connexe

Tendances

DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
La arquitectura de 41 vistas
La arquitectura de 41 vistasLa arquitectura de 41 vistas
La arquitectura de 41 vistaszurda21
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Softwarealfmuny
 
Diseño arquitectonico
Diseño arquitectonicoDiseño arquitectonico
Diseño arquitectonicoWilson Gomez
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Softwarebjjuarez
 
4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologiaslandeta_p
 
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-softwareAndresRealp1
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 
Documento arquitectura de software
Documento arquitectura de softwareDocumento arquitectura de software
Documento arquitectura de softwareAURA SYSTEMS S.A.C
 
Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Juan Franco
 

Tendances (20)

Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Arquitecturas de Software
Arquitecturas de SoftwareArquitecturas de Software
Arquitecturas de Software
 
La arquitectura de 41 vistas
La arquitectura de 41 vistasLa arquitectura de 41 vistas
La arquitectura de 41 vistas
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
Estilos arquitectónicos
Estilos arquitectónicosEstilos arquitectónicos
Estilos arquitectónicos
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Diseño arquitectonico
Diseño arquitectonicoDiseño arquitectonico
Diseño arquitectonico
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Software
 
4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologias
 
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
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Documento arquitectura de software
Documento arquitectura de softwareDocumento arquitectura de software
Documento arquitectura de software
 
Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.Arquitectura de software y Generación de computadores.
Arquitectura de software y Generación de computadores.
 
Modelos arquitectónicos
Modelos arquitectónicosModelos arquitectónicos
Modelos arquitectónicos
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 

En vedette

Los Negocios Exitosos del Futuro - José Revilla
Los Negocios Exitosos del Futuro - José RevillaLos Negocios Exitosos del Futuro - José Revilla
Los Negocios Exitosos del Futuro - José RevillaTic Forum - Movistar
 
¿Cómo arquitectura empresarial?
¿Cómo arquitectura empresarial?¿Cómo arquitectura empresarial?
¿Cómo arquitectura empresarial?Andres Millan
 
Arquitectura empresarial Propilco S.A.
Arquitectura empresarial Propilco S.A.Arquitectura empresarial Propilco S.A.
Arquitectura empresarial Propilco S.A._Lall
 
Arquitectura del sistema
Arquitectura del sistemaArquitectura del sistema
Arquitectura del sistemapierre R.
 
Arquitecturas empresariales version gerencia de información
Arquitecturas empresariales   version gerencia de informaciónArquitecturas empresariales   version gerencia de información
Arquitecturas empresariales version gerencia de informaciónMarta Silvia Tabares
 
Proyecto Final
Proyecto FinalProyecto Final
Proyecto Finalgrupomitk
 
especificaciones de diseño de software para una página de viajes
especificaciones de diseño de software para una página de viajesespecificaciones de diseño de software para una página de viajes
especificaciones de diseño de software para una página de viajesGabriel Gongora
 
Optimizacion jose godoy CI: 20239737
Optimizacion jose godoy   CI: 20239737Optimizacion jose godoy   CI: 20239737
Optimizacion jose godoy CI: 20239737alejandro5309
 
la Informatica en la educacion
la Informatica en la educacionla Informatica en la educacion
la Informatica en la educacionBenjamin Segundo
 
Ecos desde los boxes: inventos varios, triquiñuelas.
Ecos desde los boxes: inventos varios, triquiñuelas.Ecos desde los boxes: inventos varios, triquiñuelas.
Ecos desde los boxes: inventos varios, triquiñuelas.sammas
 
Educación permanente
Educación permanenteEducación permanente
Educación permanenteluisapetzey
 
Tecnología Angela 2014
Tecnología Angela 2014Tecnología Angela 2014
Tecnología Angela 2014Angelittalinda
 
Instrumentos musicales fisica
Instrumentos musicales fisicaInstrumentos musicales fisica
Instrumentos musicales fisicaadoles
 

En vedette (20)

Los Negocios Exitosos del Futuro - José Revilla
Los Negocios Exitosos del Futuro - José RevillaLos Negocios Exitosos del Futuro - José Revilla
Los Negocios Exitosos del Futuro - José Revilla
 
¿Cómo arquitectura empresarial?
¿Cómo arquitectura empresarial?¿Cómo arquitectura empresarial?
¿Cómo arquitectura empresarial?
 
Arquitectura empresarial Propilco S.A.
Arquitectura empresarial Propilco S.A.Arquitectura empresarial Propilco S.A.
Arquitectura empresarial Propilco S.A.
 
Arquitectura del sistema
Arquitectura del sistemaArquitectura del sistema
Arquitectura del sistema
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Arquitecturas empresariales version gerencia de información
Arquitecturas empresariales   version gerencia de informaciónArquitecturas empresariales   version gerencia de información
Arquitecturas empresariales version gerencia de información
 
Proyecto Final
Proyecto FinalProyecto Final
Proyecto Final
 
Qué es el modelado de negocios
Qué es el modelado de negociosQué es el modelado de negocios
Qué es el modelado de negocios
 
especificaciones de diseño de software para una página de viajes
especificaciones de diseño de software para una página de viajesespecificaciones de diseño de software para una página de viajes
especificaciones de diseño de software para una página de viajes
 
Jesica
JesicaJesica
Jesica
 
Optimizacion jose godoy CI: 20239737
Optimizacion jose godoy   CI: 20239737Optimizacion jose godoy   CI: 20239737
Optimizacion jose godoy CI: 20239737
 
la Informatica en la educacion
la Informatica en la educacionla Informatica en la educacion
la Informatica en la educacion
 
El comercio.
El comercio.El comercio.
El comercio.
 
Ecos desde los boxes: inventos varios, triquiñuelas.
Ecos desde los boxes: inventos varios, triquiñuelas.Ecos desde los boxes: inventos varios, triquiñuelas.
Ecos desde los boxes: inventos varios, triquiñuelas.
 
agencia de viajes
agencia de viajes agencia de viajes
agencia de viajes
 
Educación permanente
Educación permanenteEducación permanente
Educación permanente
 
Tecnologías del siglo 21
Tecnologías del siglo 21Tecnologías del siglo 21
Tecnologías del siglo 21
 
Tecnología Angela 2014
Tecnología Angela 2014Tecnología Angela 2014
Tecnología Angela 2014
 
Instrumentos musicales fisica
Instrumentos musicales fisicaInstrumentos musicales fisica
Instrumentos musicales fisica
 
Jiménez ruiz 15
Jiménez ruiz 15Jiménez ruiz 15
Jiménez ruiz 15
 

Similaire à Arquitecturas

Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docxKeiberOrtiz1
 
Tema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareTema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareMagemylEgaa
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Diseño arquitectonico 1
Diseño arquitectonico 1Diseño arquitectonico 1
Diseño arquitectonico 1Javier Rivera
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareRoque Rueda
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1zurda21
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptRafaelAcedo2
 
Dierencia entre la ingeniería de software y la arquitectura de software
Dierencia entre la ingeniería de software y la arquitectura de softwareDierencia entre la ingeniería de software y la arquitectura de software
Dierencia entre la ingeniería de software y la arquitectura de softwareEnrique Torres Alarcon
 
210452 arquitectura-de-software-adrian-lasso
210452 arquitectura-de-software-adrian-lasso210452 arquitectura-de-software-adrian-lasso
210452 arquitectura-de-software-adrian-lassoEpmaps q
 
Patricio quiros tarea final
Patricio quiros tarea finalPatricio quiros tarea final
Patricio quiros tarea finalLeonel Ibarra
 
Proceso de desarrollo del software
Proceso de desarrollo del softwareProceso de desarrollo del software
Proceso de desarrollo del softwareJosue Meza
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...negroues
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon pooJhon Yuqui
 

Similaire à Arquitecturas (20)

Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docx
 
Tema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareTema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de software
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Diseño arquitectonico 1
Diseño arquitectonico 1Diseño arquitectonico 1
Diseño arquitectonico 1
 
1127082.ppt
1127082.ppt1127082.ppt
1127082.ppt
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Clase7
Clase7Clase7
Clase7
 
Clase7 unidad1
Clase7 unidad1Clase7 unidad1
Clase7 unidad1
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.ppt
 
Presentacion Arquitectura
Presentacion ArquitecturaPresentacion Arquitectura
Presentacion Arquitectura
 
Dierencia entre la ingeniería de software y la arquitectura de software
Dierencia entre la ingeniería de software y la arquitectura de softwareDierencia entre la ingeniería de software y la arquitectura de software
Dierencia entre la ingeniería de software y la arquitectura de software
 
210452 arquitectura-de-software-adrian-lasso
210452 arquitectura-de-software-adrian-lasso210452 arquitectura-de-software-adrian-lasso
210452 arquitectura-de-software-adrian-lasso
 
MVC.ppt
MVC.pptMVC.ppt
MVC.ppt
 
Patricio quiros tarea final
Patricio quiros tarea finalPatricio quiros tarea final
Patricio quiros tarea final
 
Proceso de desarrollo del software
Proceso de desarrollo del softwareProceso de desarrollo del software
Proceso de desarrollo del software
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon poo
 

Arquitecturas

  • 1. Arquitectura de Software Dr. Pedro Mejia Alvarez Cova Suazo Nancy Noemí  Pérez Reséndiz Marisol CINVESTAV – IPN Sección de Computación
  • 2. Capítulo 1 Ciclo de la Arquitectura de Negocios
  • 3. . La vista arquitectural de un sistema es abstracta, proporcionando detalles acerca de la implementación, los algoritmos, la representación de datos e incluso el comportamiento y la interacción entre elementos (cajas negras - black box). INTRODUCCIÓN
  • 4. Los requerimientos no determinan del todo la arquitectura, más bien está es además resultado de influencias en los ambientes técnicos, sociales y del negocio. Llamaremos a este ciclo de influencias, del ambiente a la arquitectura y de la arquitectura al ambiente como “El Ciclo de la Arquitectura de Negocios (Architecture Business Cycle - ABC)”. Architecture Business Cycle - ABC
  • 5. ¿Cómo surgen las arquitecturas? Influencias en la Arquitectura
  • 7. La composición de la organización. La formación y la experiencia de los arquitectos. El ambiente técnico. INFLUENCIAS EN LAS ARQUITECTURAS
  • 8. Las arquitecturas afectan a los factores que las influencian Ciclo de la Arquitectura de Negocios
  • 9. La composición de la organización. Los objetivos de la organización. Los requerimientos del cliente. La experiencia de los arquitectos. Muy pocos sistemas influenciarán o cambiarán la cultura de la ingeniería de software, el ambiente técnico en el cual los sistemas operan y aprenden. Las arquitecturas afectan a los factores que las influencian
  • 10. Definir el caso de estudio para el sistema Entender los requerimientos Crear o seleccionar la arquitectura Comunicar la arquitectura Analizar y evaluar la arquitectura Implementar el sistema basado en la arquitectura Asegurar que la implementación sea conforme a la arquitectura El Proceso de Software y El Ciclo de la Arquitectura de Negocios (ABC)
  • 11. ser producto de un arquitecto o un pequeño grupo de arquitectos con un líder definido. estar bien documentada, con al menos una vista dinámica y una vista estática, utilizando una notación que los stakeholders puedan entender fácilmente. ser evaluada y analizada con métricas cuantitativas y cualitativas. presentarse como una implementación incremental, para poder diseñar un esqueleto del sistema, mostrando primero la mínima funcionalidad y después como puede ir creciendo. ser diseñada por arquitectos que cuentan con los requerimientos funcionales y no funcionales del sistema. ¿Qué hace buena a una arquitectura? Una arquitectura debería ...
  • 12. La arquitectura debería tener bien definidos los módulos. Cada módulo debería tener bien definida las interfaces que encapsula. Estas interfaces permitirán desarrollar de manera independiente cada módulo. La arquitectura nunca debe de depender de una versión de un producto o herramienta comercial. Los módulos que producen datos deberán estar separados de los módulos que consumen datos. Esto permitirá que cuando un dato sea añadido solo tenga que modificarse un módulo. Cada tarea o proceso deberá ser bien documentado, para que este pueda ser fácilmente modificado, quizás incluso en tiempo de ejecución. La arquitectura deberá caracterizarse como un conjunto de simples interacciones, esto es para incrementar la confiabilidad, la manteneabilidad, reducir el tiempo de desarrollo, etc. Reglas estructurales para la arquitectura
  • 13. Capítulo 2 Qué es una Arquitectura de Software ?
  • 14. Una Arquitectura de Sofware de un programa o de un sistema de cómputo es la estructura o estructuras de un Sistema. Dicha(s) estructura(s) comprenden: Elementos de software, Las propiedades visibles de dichos elementos, y Las relaciones entre los mismos. DEFINICIÓN
  • 15. Una arquitectura de software debe proporcionar cierta información: La naturaleza de los elementos. Si los elementos son procesos, programas, objetos, etc. Las funciones de los elementos. El significado de las relaciones entre cada elemento. El significado de la distribución de los elementos. Por ejemplo. Elementos localizados en diferentes niveles.
  • 16. ELEMENTO 1 ELEMENTO 2 ELEMENTO 3 ELEMENTO 4 EJEMPLO. Representación de una Arquitectura de Software poco informativa.
  • 17. Arquitectura es un diseño de alto nivel. Arquitectura es la estructura general del sistema. Arquitectura es la estructura de componentes, relaciones, principios y pautas que definen su diseño y evolución sobre el tiempo. Arquitectura es componentes y conectores. OTRAS DEFINICIONES DE LA ARQUITECTURA DE SOFTWARE
  • 18. PATRONES DE ARQUITECTURA Un patrón de arquitectura es una descripción de elementos y los tipos de relación, junto con un grupo de restricciones en cómo deben ser usados. Un ejemplo de este tipo, es la Arquitectura Cliente-Servidor.
  • 19. MODELO DE REFERENCIA Un modelo de referencia es una descomposición de un problema en un cierto número de partes que cooperativamente resuelven el mismo. Ejemplos Partes de un Compilador. Partes de un Sistema manejador de Base de Datos.
  • 20. ARQUITECTURA DE REFERENCIA Es un modelo de referencia planeado sobre elementos de software y el flujo de datos entre ellos. Un elemento de software puede implementar parte de una función o de varias funciones.
  • 21. Comunicación entre las personas involucradas La arquitectura representa una abstracción que puede ser base para el entendimiento, concenso, negociación y comunicación. Decisiones tempranas de diseño Define limitaciones en la Implementación. Dicta la Estructura Organizacional. Oculta o muestra los Atributos del Sistema. Hace más fácil controlar los cambios. Ayuda en el prototipado evolutivo. Proporciona Estimaciones de Costos y Calendarización más exactos. POR QUÉ ES IMPORTANTE LA ARQUITECTURA DE SOFTWARE ? (1)
  • 22. Abstracción transferible de un sistema La arquitectura constituye un modelo de cómo esta el sistema estructurado y como sus elementos trabajan en conjunto; por lo que puede ser aplicada a otros sistemas que exhiban similares requerimientos y atributos. POR QUÉ ES IMPORTANTE LA ARQUITECTURA DE SOFTWARE ? (2)
  • 23. VISTA. Representación de un conjunto de elementos y las relaciones entre ellos (escritos y leídos por clientes, usuarios, etc.). ESTRUCTURA. Conjunto de elementos que por sí mismos, existen en software o hardware. Se dividen en: Módulos. Componentes-conectores. Estructuras de Asignación. ESTRUCTURAS Y VISTAS
  • 25. Capítulo 7 Diseño de la Arquitectura
  • 26. La Arquitectura en el Ciclo de Vida Software Concept Design of Architecture and System Core Develop a Version Ellicit Customer Feedbak Incorporate Customer Feedback Deliver the Version Preliminary Requirements Analysis Develop Final Version Ciclo de Vida de Entregas Evolutivas
  • 27. DISEÑO DE LA ARQUITECTURA Attribute-Driven Design (ADD), esta es una aproximación basada en la recursiva descomposición de procesos, donde cada estado, tácticas y patrones arquitecturales son escogidos para satisfacer un conjunto de escenarios y entonces la funcionalidad es asignada a módulos. La entrada a este método son todos los requerimientos funcionales, no funcionales y las limitaciones del sistema.
  • 28. CUALIDADES EN LOS ESCENARIOS: los dispositivos y controles para abrir y cerrar la puerta los procesadores si se detecta un obstáculo, en el momento que se este cerrando la puerta, esta tendrá que detenerse y abrirse nuevamente en 0.1 segundos la puerta automática podrá ser checada y administrada desde el sistema de información casero, a través de un protocolo especifico Sistema de Puertas Automáticas para un Garage
  • 29. Escoger el módulo a descomponer. Refinar el módulo. Escoger los Drivers Arquitecturales. Escoger los Patrones Arquitecturales. Instanciar los módulos, asignar la funcionalidad a cada uno y representarlos usando múltiples vistas. Definir las interfaces de los módulos hijos. Documentar las interacciones y limitaciones entre cada módulo. Verificar y refinar casos de uso y escenarios. Pasos para realizar el diseño
  • 30. Escoger los patrones Arquitecturales User Interface Non-Performance Critical Computation Performance Critical Computation Scheduler That Guarantees Deadlines Virtual Machine Patrón Arquitectural que utiliza tácticas en el SAPG
  • 31. Instanciar los módulos, asignar la funcionalidad a cada uno y representarlos usando múltiples vistas. Primer nivel de descomposición del SAPG User Interface Raising/Lowering Door Obstacle Detection Scheduler That Guarantees Deadlines Diagnosis Sensor/Actuator (Control) Virtual Machine Communication Virtual Machine
  • 32. VISTA DE MÓDULOS (DESCOMPOSICIÓN). (VISTA DE COMPONENTE-CONECTOR) CONCURRENCIA. Dos usuarios haciendo cosas similares al mismo tiempo. Usuario ejecutando múltiples actividades simultáneamente. Encender el sistema. Apagar el sistema. Sincronización. (VISTA ESTRUCTURAS DE ASIGNACIÓN) IMPLEMENTACIÓN. Representación usando múltiples vistas
  • 33. La estructura arquitectural repercute directamente en la formación de estos equipos, debido a que se elegirán dependiendo de la funcionalidad (dominio) de los módulos, es decir se organizarán tomando en cuenta a la gente más especializada o con mayores conocimientos en el área. FORMAR EQUIPOS DE TRABAJO
  • 34. Una vez que hemos diseñado la arquitectura del sistema y hemos formado los grupos de trabajo, tenemos todo lo necesario para poder hacer una implementación del sistema, el cual me permitirá estar interactuando con el cliente e ir realizando modificaciones sobre el mismo, hasta que se este en condiciones de entregar un producto final. Crear un esqueleto del sistema
  • 36. La creación y mantenimiento de estos sistemas presentas grandes retos de desarrollo: Ejecución en tiempo real Modificabilidad (realizar cambios en los requerimientos) Escalabilidad (extender la funcionalidad) Integrabilidad (comodidad con la cual el desarrollo de elementos, incluyendo aquellos realizados por terceros, se pueden realizar sepradamente y finalmente juntarlos para satisfacer todos los requerimientos) El patrón creado para dicho sistema es un Modelo Estructural. INTRODUCCIÓN
  • 37. RELACIÓN CON LA ARQUITECTURA DEL NEGOCIO
  • 38. REQUERIMIENTOS Y CUALIDADES Se tienen 3 roles: Tripulación. El propósito es instruir al piloto y tripulación en cómo operar una nave aérea, ejecutar maniobras y responder ante ciertas situaciones en la vida real. Ambiente. Comprende la atmósfera, armas, amenazas, etc. Instructor. El instructor es responsable de monitorear el rendimiento de pilotos, así como de iniciar situaciones de entrenamiento (previamente contempladas o introducidas por el instructor). Cuenta conuna consola para monitorear las actividades, introducir funciones erróneas y controlar el ambiente.
  • 39. ESTADOS DE EJECUCIÓN Un simulador de vuelos tiene diferentes estados. – Operando (funcionamiento normal) – Configuración (se realizan cambios a la sesión de entrenamiento) – Detener (detiene la simulación) – Repetición (usado para demostrar a la tripulación que fue lo que realizó durante la simulación)
  • 40. PROBLEMAS 1. Los costos para pruebas, cambios y eliminación de errores exceden los costos de desarrollo. 2. No es clara la planeación entre la estructura de software y la estructura de los simuladores.
  • 41. SOLUCIÓN Modelo de Referencia para el Simulador de Vuelos Vehículo Aéreo Ambiente Estación del Instructor Desplegados en cabina Sist. Visual Sist. de movimiento Sist. Auditivo TRIPULACIÓ N Controles de Cabina
  • 42. Tratamiento del Tiempo Existen dos maneras de controlar el tiempo en un simulador de vuelos. Control Periódico. Tiene un quantum fijo. Una simulación será capaz de mantener el tiempo de simulación y el tiempo real sincronizados tanto como cada proceso pueda avanzar su estado al siguiente periodo. Control Basado en Eventos. Agrega un evento a la cola de eventos. Mientras haya eventos, elegir el evento que tenga menor tiempo de simulación, se establece el tiempo del evento seleccionado y se invoca el proceso para dicho evento.
  • 43. Patrón de la Arquitectura del Modelo Estructural Los componentes de dicho modelo al nivel más general son: La parte de Ejecución. Maneja la coordinación de la sincronización entre procesos, la administración de eventos, integridad y compartimiento de datos. La parte de Aplicación. Maneja el cálculo de la simulación del vuelo. Sus funciones son implementadas por los subsistemas y sus hijos.
  • 44. Sincronizador del Tiempo Secuenciador periódico Manejador de Eventos Sustituto Módulos del Modelo de Ejecución
  • 45. Controlador de Subsistemas Pasa datos para y desde otras instancias de controladores de subsistemas y a sus hijos. Controlador de hijos de los Subsistemas Pasa datos solamente para y desde sus padres. Pueden inicializarse con algún valor particular, pueden producir salidas anormales o reflejar una condición de malfuncionamiento. Módulos del Modelo de Aplicación
  • 46. Descomposición de Grupos y de Sistemas La descomposición más general del modelo es el grupo, los grupos se descomponen en sistemas y los sistemas se descomponen en subsistemas. Estos últimos proveen las instancias para los controladores de los subsistemas. Uso de Tablas n-Cuadros. Útiles para capturar la entrada y salida de un módulo