Diagrama de implementacion o de despliegue
Estos mustran todo los elemento de software que intervengan en la solucion, esto es ya modelar
cosas que ya son componentes fisicos. Estos que estoy modelando van a existir. Van a formar
parte de lo fisico.
Aca tiene que estar presentes los drivers requisitos funcionales
En los archivos de codigo es donde se van a modelar que requisitos funcionales, estos se
combierten en componentes.
Que es una realizacion? un componente hace -> realiza
Estamos obligados a identificar todos los elementos de software
Un componente -> archivo que puede ser de codigo, es la personificacion (donde trende las
clases y metodos) de una o mas clases.
Diagrama de clases -> personifica el modelado de los drivers requisitos funcionales
Realizacion
Una clase realiza una interfaz, esto es diagrama de clases
Hay una clase X que depende de la interfaz
Ejemplo:
El cuadrado es el componente
La linea es la realizacion
La esfera es la interfaz
La clase realiza interfaz
Un componente es la personificacion (el codigo de las clases)
Componente que requiere la interfaz
Las interfaces son los drivers RF
La que usaremos en el curso es la iconic form
Un componente pedido que:
Realiza la interfaz AsignacionItem
Realiza la interfaz Seguimiento
Requiere de una interfaz Persona
Requiere una interfaz Factura
Requiere una interfaz ItemPedido
Esto es lo que la arquitectura debe de gritar el negocio y esto es el diagrama de componentes.
La vista es la implementacion de la estructura, las vistas representan una vista parcial de la
arquitectura, muestra partes especificas de esa vista arquitectonica, las vistas son la
implementacion de esa estructura.
En el curso solo nos interesan estas 3 estructuras
Vistas
Patrones
A escala son los mas inferiores.
Un patron de diseño interesa a la clase o clases. Afecta a una o mas clases, no afecta a un
componente completo como tal. Se pueden implementar a nivel de metodos o componentes de
una clase.
Impacta al componente en su comportamiento en su totalidad. No son la arquitectura, habla de
cuestiones tecnicas he implementacion
Un componente es la personificacion de una o mas clases, un componente es un archivo de
codigo que esta implementando a esas clases. El patron de diseño va directo sobre los metodos
de esa clases en cuestion, mientras que el patron arquitectonico nos referimos a todo el
componente.
Comparten esos drivers. El estilo es el que hace posible que las aplicaciones trabajen bien en
base a esos atributos y caracteristacas que son los drivers que nosotros ya identificamos, el
estilo es el que rige.
El estilo es a nivel de diseño
Un microservicio es estilo arquitectonico? es un patron de arquitectonico.
La candidata es cuando partimos de cero. Cuando no hay ningun desarrollo anterior.
Es cuando ya tenemos un modelo.
Repository
Los componentes intereactuan mediante las conexiones de datos, los datos que se hacen
persistencintes y compartidos o distribuidos.
wo
Que pasaria con el negocio si no persisten los datos?
El almacen es el centro de la arquitectura
Este se funda en el almacenamiento de los datos, es el cliente el que va a acceder a ese almacen
de datos, hay dos tipos de estos:
El repositorio pasivo
El repositorio pizarron
Aca no se conoce cual es la solucion.
Arquitectura basa en batos
En capas porque es un sitio web
"Agregar al carrito" arquitectura basa en eventos
Arquitectura en/o por capas
Servicios de utiliria -> frameworks
La capa externa se debe de comunicar con su inmediata anterior, una capa no puede obviar la
que tiene abajo para comunicarse con otra
Una capa de aplicacion puede replicarse
Hace referencia a una estructura de componentes(componentes) y conectores(cumunicacion
entre capas).
Esto es un diagrama de bloques
SOA coexiste con o por capas
Ejemplo de diagrama de bloques
Solucion problema 1:
Flujo de datos
Estilo arquitectonico centrada en como fluyen los datos
Los componentes los llamaremos filtros
Tuberias son las conexiones entre los componentes o entre los filtros
Se centra en la transformacion de los datos
Se puede dar en lotes o de manera secuancial
Adecuada para sistemas con trasnformacion de datos en pasos sucesivos como procemos,
donde los datos de entrada se transforman en datos de salida mediante una seria de
componentes para el calculo o manipulacion
Aca hay unos en flujo secuencial y otros en paralelo
Cuando se conoce la secuencia de la solucion en una serie de pasos seguidos
Flujos secuenciales:
Solucion del ejercicio 1:
Posible solucion:
Flujo contiguo = secuencial
Tambien puede darse flujos secuenciales y paralelos
Aca no deben de haber retornos ni condiciones.
Hay que forzar un comportamiento secuencial
Una arquitectura que va a ser temporar (migracion de un sistema a otro)
Tambien los bloques se pueden clasificar
Esta coexiste en una arquitectura por capas.Se da por bloques (lotes)
Repaso de lo que llevamos visto:
Los de repositorio
Capas y cliente servidor
Los centrados en el flujo de datos
Llamada retorno
Invocacion sincrona entre componentes
Cuando hay una solicitud y tiene que haber una respuesta
Estilo SOA
Comunicacion entre servicios
Siempre se implementa con capas y donde la capa de servicios es la capa de aplicacion
Cada servicio corresponde a un proceso de negocio
Tambien es basada en eventos
Patrones arquitectonicos-> afectan al componente o a un conjunto de estos
Patrones de diseño -> afecta una funcion o metodo
RPD -> vazado en modelo cliente servidor
Una maquina pueda ejecutar codigo o metodos de otra maquina
MVC es un patron arquitectonico
Los RF estan en MODELO
El modelo tiene la logica del negocio (la base de datos)
Patrones arquitectonicos que ayuda a implementar una arquitectura llamara retorno:
rpc
orientada a objetos
modelo vista controlador
que ayudan a implementar una arquitectura llamada-retorno
Basada en eventos
Soa tambien es basada en eventos porque responde a un bus y tiene una intereaccion con
mensajes sincronos o asincronos.
Cuando la parte centrar es capturar la persistencia de los eventos
Evento podria ser un envio de mensajes
Calidad de software
Eficaz -> hace lo que se espera que haga
Los patrocinadores deben de ser los stacke holders de alto nivel
Desde el principio definiendo bien el core y su primera descomposicion
Si se habla de la implementacion -> cliclo de vida del software
Si se habla de la arquitectura -> nuestros pasos
Eficiente -> capaz de lograr lo que se desea con la menor cantidad de recursos(tiempo y dinero)
Escenarios atributos de calidad (EAC)
Aca los drivers son bien precisos, estos se centran en los atributos
Estilo arquitectonico basado en eventos
Ya vimos SOA
Estas pueden tener dificultad al modelarse el diagrama de despliegue
Aca hay drivers de restriccion.
Al lado derecho se pueden observar diagramas de secuencias.
Cuando hay lineas rectas es porque se asume que no asumen tiempo (es inperceptible)
Linea inclinada:Consumen cierta cantidad de tiempo (puede darse o no)
SOA tambien es una arquitectura en eventos pero tambien utiliza una en capas
Calidad de software
Que es calidad?
R/Que se pueda medir que tan bueno es un producto, la calidad conlleva la satisfaccion de
nuestras espectativas.
La calidad es un medio o un fin?
R/ Para mi es un fin, osea quiero que el producto final sea de calidad, tambien es un medio
porque todo el proceso que permitio conseguir ese producto final toda la calidad tuvo que
estar presente.
Porque calidad de software?
R/
El software es un producto o servicio?
R/
Que sistema de calidad conoce?
R/
Como se aplica la calidad de software?
R/
Pasos basicos de calidad
R/
Aca hubo un error en la identificacion del core del negocio y en la la primera descomposicion,
tambien los rf no fueron bien identificados.
Proceso eficaz -> Proceso que al final deberiamos de obtener lo que se espera
Ese software tiene que producir algo esperado por el cliente y nosotros como ingenieros
debemos entenderlo.
Los requisitos no funcionales -> son los que estan relacionados con los temas de calidad.