Ayudante: Alejandro Arratia
Correo: [Link]@[Link]
Teléfono: +569 97292637
• Entrega 1: Definición de aplicación y requerimientos.
• Entrega 2: Modelamiento, entradas/salidas.
• Entrega 3: Implementación.
• Presentación
• *Avances con décimas
• Componente: Corresponde a una parte del sistema, la cual ofrece un
servicio definido y es capaz de comunicarse con otros componentes. Se
usa de forma genérica para mencionar programas, módulos, objetos, etc.
• Servicio: Se utiliza igual que componente, cumple una funcionalidad
específica, es independiente y se comunica con otros servicios.
• Interfaz: Corresponde a los puntos de acceso de un componente, en dónde
recibe datos (parámetros) o entrega datos (return). Se definen como IF IN e
IF OUT respectivamente.
• Corresponde a una forma de organizar los • Debe tener capacidad de diseñar sistemas y
componentes para mostrar algo. relacionar distintos componentes.
• Define la estructura de componentes y la • Debe asegurarse del cumplimiento de
forma en que se comunican. restricciones y proporcionar las bases
necesarias para el desarrollo.
• Requerimientos NF, como restricciones
técnicas, de negocio y atributos de calidad. • Ingeniería de Software + Sistemas
Distribuidos = Arquitectura de Software.
• Abstracción del sistema, con diversas vistas
de lógica, procesos y desarrollo.
1. Analizar el contexto: Consiste en requerimientos funcionales
(qué debe hacer el sistema), requerimientos no funcionales
(atributos de calidad), ambiente operacional (hardware y
software), restricciones técnicas, operativas o de negocio.
2. Estructuración: Identificar componentes y sus relaciones. Utiliza
un diagrama de bloques simple que muestra la estructura
indicando el flujo de datos entre los componentes. Muestra
además las interfaces que provee el sistema.
3. Modelo de control: Evaluar el comportamiento que tendrán los
componentes.
4. Descomposición de módulos: Se realiza un diseño detallado del
proyecto.
Eficiencia con la que el sistema Que un sistema sea capaz de
realiza sus tareas. adecuarse
dinámicamente a la carga.
Qué tan fácil es modificar una Facultad del sistema de resistir
pieza o función ataques.
del sistema.
No desarrollo para un solo Capacidad del sistema de auto
entorno, desarrollo para chequearse.
múltiples a la vez.
Diagnóstico y corrección de
incidencias
Que pueda confiar que mi Capacidad de mi sistema de
sistema está operable agregar componentes
externos
99,999%
• Una aplicación que cuenta con sistema de inicio de sesión básico debe
poseer unos conceptos fundamentales los cuáles respetar:
• Un programa, que pueda utilizar el usuario, donde ingrese su nombre
de usuario y contraseña.
• Los datos del usuario se deben enviar a algún otro programa,
perteneciente a la empresa, para validar la información.
• Tras ser validado, el sistema indica si el inicio de sesión fue correcto o
incorrecto.
• Por razones lógicas, no queremos que el usuario tenga acceso al
procedimiento de validación, es por esto que el programa validador debe
ser uno distinto y sólo saberlo la empresa.
• Recordando las arquitecturas que vieron en Ingeniería de Software,
¿Qué arquitectura sería la más adecuada para implementar este sistema
de LogIn?.
La arquitectura más adecuada para implementar este sistema de LogIn
sería una arquitectura de Cliente Servidor.
• Esta arquitectura nos permite que dos programas, mediante un
protocolo de comunicación, se envíen información mutuamente.
• Separación de responsabilidades • Latencia (Performance)
• Seguridad • Infraestructura
• Escalabilidad • MITM
• Centralización • Escalabilidad?
Ahora, supongamos que ocurrió un evento con una carga masiva de
usuarios, como un Black Friday, y los nuevos requerimientos del
Cliente son los siguientes:
• Se debe tener un registro centralizado de los datos.
• Se debe poder escalar los servicios.
• ¿Cómo cambiaríamos la arquitectura para cumplir
estos nuevos requerimientos?
Algunos factores a tener en cuenta al proponer una arquitectura:
• ¿Cuáles son los requisitos del Cliente?
• ¿Existe un sistema previo el cuál poder reutilizar?
• ¿Cuál es el tiempo límite?
• ¿Qué atributos de calidad cumple el sistema, y cómo?
• ¿Cuáles son los costos asociados con el desarrollo, despliegue y
mantenimiento de la arquitectura?
La arquitectura más adecuada para implementar estos requerimientos
sería SOA.
• Esta arquitectura nos permite reutilizar los servicios
ya creados, escalar los servicios y tener un registro
centralizado mediante el bus de comunicación.
• Una arquitectura se debe adaptar al contexto del sistema a
desarrollar.
• No existe una “mejor” arquitectura, sino más bien arquitectura
más apta para el contexto, dadas las ventajas y desventajas de
esta.
• Se debe evitar re inventar la rueda.
• Hay que ajustarse a los requerimientos del Cliente.