SlideShare a Scribd company logo
1 of 37
Presentadopor:
JoseLuisIturbide
Especificaciónde
ArquitecturadeSoftware
José Luis Iturbide
joseluis.iturbide@gmail.com
Ingeniero en Computación de la F.I, UNAM
Arquitecto de Software con experiencia en proyectos del
sector Bancario y de Seguros
Objetivo
• Aplicar conceptos de la Arquitectura de
Software en un caso real pero acotado.
• Que el participante tenga una referencia y
pueda mejorar su practica de arquitectura
actual.
• Introducción1
• Conceptos de
Arquitectura de Software
2
• Ejemplo3
• Conclusiones4
Contenido
1. INTRODUCCIÓN
La Practica de Diseño
• Objetivo: ¿Que?
 Crear un árbol navideño
• Análisis, ¿Para que?
– Será parte de una maqueta con motivo navideño
• Requerimientos funcionales
 Funciones, Colores, dimensiones, distribución.
• Requerimientos no funcionales
– Modular, fácil de ampliar, no toxico, durable, lavable
• Restricciones
 Tiempo, recursos (número de piezas), tipo de piezas.
La Practica de Diseño
 Diseño
 Propuesta de solución que dice como cubrirá los requerimientos y se
ajusta a las restricciones dadas.
• ¿Qué tan oportuno debe ser el Documento de Diseño?
A) Tan oportuno como una guía de construcción
B) Como un documento generado después de construir el árbol
Especificación
de Diseño
2. ALGUNOS CONCEPTOS DE
ARQUITECTURA DE
SOFTWARE
Objetivo principal de la arquitectura
• Definir la estructura de componentes, sus
relaciones que garanticen la sana operación del
sistema hoy y a futuro
En consecuencia
• Reducir los riesgos tecnológicos del proyecto.
• Diseñar los componentes de software adecuados
que cubran con los requerimientos no funcionales
Tipos de Arquitectura
Simon Brown
www.codingthearchitecture.com
Enterprise Architecture – Define
la estrategia tecnológica y de
negocio de la organización para
el desarrollo de sus sistemas.
System Architecture – Arquitectura de
software e infraestructura de un sistema de
principio a fin.
Application Architecture – Arquitectura de
software para una aplicación, subsistema o
componente.
Conceptos de Arquitectura de
Software
• Principios
• Requerimientos No Funcionales
• Riesgos
• Restricciones
• Consideraciones
¿Que cuidar?
• Requerimientos No Funcionales:
 Tiempos de respuesta
 Seguridad
 Usabilidad
 Mantenibilidad
• Redundancia, Profundidad,
Capacidad Volumen
• Concurrencia
• Transaccionalidad
• Capacity Planning
RNF y Caracteristicas operacionales Vs
Redundancia, Profundidad, Capacidad
¿Que contiene una especificación de
Arquitectura?
¿Qué resolver? Sección
¿De que se trata esto? Contextualización
¿Qué se puede ó no usar? Restricciones
¿Como esta estructurado el sistema? Diagramas de Solución
¿Cómo mostrar los detalles una audiencia
especifica?
Vistas /Diagramas por
audiencia
¿Con qué aplicaciones es necesario
interactuar?
Listado de sistemas y
subsistemas
¿Qué se intercambiara y de que forma con
las demás aplicaciones?
Lista de interfaces
¿Qué características no funcionales se
deben cubrir?
Requerimientos No
Funcionales
¿Que contiene una especificación de
Arquitectura?
¿Qué resolver? Contenido
¿Cómo debo nombrar a mis artefactos? Estándares de codificación,
nomenclatura
¿Qué estrategia seguir para detalles
transversales logging, auditoria, seguridad,
errores?
Especificaciones de
implementación
¿Qué módulos tendrá la aplicación? Diagramas de componentes
¿Qué productos , tecnologías, APIs se
usarán?
Matriz de Tecnologías, Tiers &
Layers
Otros
• Diagramas de infraestrucura
• Especificaciones GUI, Look & Feel
• Diseño Lógico y Físico de Base de Datos
• Especificaciones por entorno: DES, QA, PRO
3. EJEMPLO
Descripción del ejemplo
La compañía MiAutoSeguro es una Aseguradora creciente y
desea incrementar la venta de seguros de auto vía online
• Las operaciones que se harán desde la aplicación web serán
la cotización y contratación de seguro.
• Se quiere tener acceso a ella desde computadoras y
dispositivos móviles.
• El sistema sustituirá a otro y se integrara con varios sistemas
existentes
• La tecnología base de desarrollo es java.
¿Por donde iniciar?
Obtención de
Requerimientos
• Observa, pregunta,
entrevista
Analiza
• Contrasta
• Relaciona
Diseña
• Evalúa, valida,
decide,
registra
Habilidades valiosas
• Conocimiento del negocio
• Negociación,
• Comunicación,
• Validación,
• Ejecución
• Autoaprendizaje
Errores comunes
• Pensar primero en implementación
• Suponer, no preguntar.
• No identificar y mitigar riesgos
• Pensar solo en el Happy path
• Minimizar la complejidad.
Refina
• Corrige,
Detalla,
Completa
Diagrama de Contexto
Identificación de Sistemas
ID Sistema Objetos de negocio Mas info…
SisCot Sistema Cotizador Cotización
Cobertura
SisContr Sistema de Contratación Póliza
Portal Portal de la compañia
EGlobal Sistema de Cobro Pago, Tarjetahabiente
AutoSeguroW
eb
Sistema de Venta de
Seguros Online
Prospecto, Cotización,
Perfil, Auto
SMTP Server Subsistema para envío
masivo de correos
Mensaje, Cliente
Subsistemas:
LDAPs, Filesystems, Base de datos, Email servers, Sistema de Generación de
Documentos
Datos físicos:
IPs, puertos, dominio, Hardware, Instancias, tecnologías de integración, Ventanas
de servicio, responsables, entornos previos, convivencia con otras aplicaciones.
Identificación de Interfaces
Origen Destino Interfaz
Logico/Fisico
Parametros Condiciones de
error
Nombre físico
interfaz
AutoSeg
uroWeb
SisCot CotizarSeguro
Auto()
In: Prospecto, Datos
auto, Coberturs
elegidas
Out: Cotizacion[]
Código de retorno
y mensaje en xml
http://..../cotizarS
egAuto
SisCont SMTP Enviar póliza In: Destinatario,
Attachments,
500 Error de
server
Smtp:5020
Queue: cteQ
Otros datos de importancia:
• Tecnología de integración, códigos de error, frecuencia, horario, volumen de
datos, De escritura/Lectura.
• Tipo de comunicación: Online/Batch, Síncrona / Asíncrona,
• Nueva / A Reutilizar / A Modificar
• Restricciones de seguridad
Diagrama de solución
Ejemplo de Restricciones
De desarrollo
• El framework de desarrollo es Spring 3.0.1
• El código se versionará en un entorno dentro de la organización
De seguridad
• Los datos sensibles de clientes no deben registrarse en logs
De políticas internas
• La promoción de la aplicación, cambios por correcciones debe seguir la
secuencia de entornos DES -> QA -> PRO
De entorno
• No hay ambiente de pruebas para el Sistema de Procesamiento de Pago
Ejemplo de Riesgos
Riesgo Probabili
dad
Impacto Mitigación
01 - El entorno de QA no
quede habilitado a tiempo
BAJO MEDIO OP1: Realizar pruebas en entorno DES
con validez de integración
OP2: Incrementar el equipo de Test
02 - IT pide que la lógica
de cotización se
implemente como
servicios pero eso no se
estimo
ALTO MEDIO OP1: Dividir físicamente la capa de
presentación de la de negocio.
OP2: Negociar un cambio de alcance pero
por tiempos el switch se haría hasta una
2ª liberación
03 - No se podrán hacer
pruebas en Sistema
Eglobal (Problema)
ALTO MEDIO OP1. Crear sistema alterno
OP2: Crear objetos Mock
La mitigación de riesgos frecuentemente modifica la
solución, el plan y el alcance de la solución original
Toolkit del arquitecto
Experiencia
Principios de Diseño
• Composición, Inversión de Control, Modularidad, Bajo
acoplamiento, Alta cohesión, Open Closed
Patrones de Diseño y Arquitecturales
• Patrones GOF: Patrones JEE,
Ejemplo: Observer, Fachada
• Patrones de Integración, de Arquitectura
Ejemplo: Layers, Model-View-Controller
• Antipatrones,
Otros:
• Técnicas de descomposición funcional
• Técnicas de estimación de complejidad
• Matrices de Decisión
• Pantillas
Patrón Arquitectural de capas
Composición en lugar
de Herencia
Diagrama de componentes / deployment
Matriz de tecnologías por fila y capa de
AutoSeguroWeb
Tier
Layer
Capa Cliente Capa
Presentación y
Control
Capa de Negocio Capa de Integración
ó acceso a Datos
Sistemas
externos
APIs /
Framewor
ks
•HTML5
•Bootstrap
•Css
•Servlet 3.0
•JSP 2.5
•JSON
•Spring MVC
•WS REST
•Clases de Servicio
(POJOs)
•EHCache
•JPA 2.1 + Hibernate
3
•WS REST
BD: SQL
Sist: WS-REST
APIs
transversa
les
N.A. •Logging (SLF4J)
•Spring 3.0.3
•JEE 6.0
N.A.
Producto Firefox >= 32
Chrome >= 40
IE 10
JBoss 6.0.1 •RDBMS
SQLServer
Sistema
Operativo
Cualquiera Oracle Linux 6.0 •Oracle Linux,
5.0
Hardware PC Intel Server •Intel server
Ejemplo de cambios a mitad del camino
Cambio por mejora de performance
Problema: La consulta de Catálogos desde el front es tardada
¿Qué opciones de mejora se tienen?
Cambio por necesidad de negocio
Cambio: La lógica de Cotización y Contratación se requiere que pueda
ser consumida por otros sistemas sin depender del front actual.
Diagrama de componentes / deployment
Cambio en Diseño original por
necesidad de negocio
Modelo 4 + 1 vista
Buena practica:
• Crear una línea base del código
• Implementar un Caso de Uso representativo
Arquitectura Empresarial
¿Buscas el especificar
Arquitectura de un modo
formal?
• TOGAF es un framework que
ayuda a definir como se
debe desarrollar la
Arquitectura en una
organización
• Tiene plantillas que puedes
usar y adaptar
http://www.togaf.info/togafSlides91/TOGAF-V91-Sample-Catalogs-Matrics-Diagrams-
v3.pdf
Conclusión
• El Arquitecto de Software es responsable de elegir,
justificar y comunicar las tecnologías mas adecuadas
para satisfacer la operación sana del sistema.
• Es necesario tener experiencia y otras habilidades
además de las habilidades técnicas para lograr el
objetivo.
• El documento de especificación debe ser oportuno,
suficiente y claro para poder usarlo como una guía
del desarrollo.
Recursos
Software Architecture for Developers, Simon Brown
http://www.codingthearchitecture.com/
97 Things Every Software Architect Should Know
http://books.google.com.mx/books/about/97_Things_Every_Software_Architect_Shoul.html?id=HDknE
jQJkbUC&redir_esc=y
Software Design Principles and Guidelines
http://ebookily.net/pdf/software-design-principles-and-guidelines-design-principles-3965564.html
Preguntas?
Gracias
@jliturbide
j_iturbide@hotmail.com
JoseLuisIturbide
Siguelaconversaciónycomentaenredessocialesconelhashtag
#SGVirtual

More Related Content

What's hot

MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) Germán Sánchez
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegueElvisAR
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrolloitsarellano
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Metodologias para el desarrollo de los sistemas expertos
Metodologias para el desarrollo de los sistemas expertosMetodologias para el desarrollo de los sistemas expertos
Metodologias para el desarrollo de los sistemas expertosCamilo Huertas
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMiguel Rodríguez
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascadamasilog
 

What's hot (20)

Programacion web
Programacion webProgramacion web
Programacion web
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Diagrama de despliegue
Diagrama de despliegueDiagrama de despliegue
Diagrama de despliegue
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrollo
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Metodologias para el desarrollo de los sistemas expertos
Metodologias para el desarrollo de los sistemas expertosMetodologias para el desarrollo de los sistemas expertos
Metodologias para el desarrollo de los sistemas expertos
 
Metodologias web
Metodologias webMetodologias web
Metodologias web
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Rational rose
Rational roseRational rose
Rational rose
 

Similar to Especificación de Arquitectura de Software

Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.pptCristianFlasher1
 
Ucv sesion 15 diseño optimiz -redes
Ucv sesion 15 diseño optimiz -redesUcv sesion 15 diseño optimiz -redes
Ucv sesion 15 diseño optimiz -redesTaringa!
 
Metodo top-down.pptx
Metodo top-down.pptxMetodo top-down.pptx
Metodo top-down.pptxoera28
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaremat3matik
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryynelly
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16Ramon
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de softwareMarilupe
 
Ingen de software
Ingen de softwareIngen de software
Ingen de softwareerikapoh
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwaresamantha
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software142918
 
Software y Coste
Software y CosteSoftware y Coste
Software y CosteCAMILO
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptrogergrefa1
 
Analisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de SoftwareAnalisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de SoftwareMarvin Romero
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de siaAntonio Atenas
 

Similar to Especificación de Arquitectura de Software (20)

Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 
Espoch
EspochEspoch
Espoch
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
metodologias de desarrollo.ppt
metodologias de desarrollo.pptmetodologias de desarrollo.ppt
metodologias de desarrollo.ppt
 
Ucv sesion 15 diseño optimiz -redes
Ucv sesion 15 diseño optimiz -redesUcv sesion 15 diseño optimiz -redes
Ucv sesion 15 diseño optimiz -redes
 
Metodo top-down.pptx
Metodo top-down.pptxMetodo top-down.pptx
Metodo top-down.pptx
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryyIngeniería%20de%20 software[1], maryy
Ingeniería%20de%20 software[1], maryy
 
Ingeniería de software16
Ingeniería de software16Ingeniería de software16
Ingeniería de software16
 
Ingenier%c3%ada de software
Ingenier%c3%ada de softwareIngenier%c3%ada de software
Ingenier%c3%ada de software
 
Ingen de software
Ingen de softwareIngen de software
Ingen de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Clase 11
Clase 11Clase 11
Clase 11
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Software y Coste
Software y CosteSoftware y Coste
Software y Coste
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
 
Ciclo de Vida y roles
Ciclo de Vida y roles Ciclo de Vida y roles
Ciclo de Vida y roles
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de información
 
Analisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de SoftwareAnalisis de requerimientos, Ingenieria de Software
Analisis de requerimientos, Ingenieria de Software
 
Conceptos generales de sia
Conceptos generales de siaConceptos generales de sia
Conceptos generales de sia
 

More from Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

More from Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Recently uploaded

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Recently uploaded (20)

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 

Especificación de Arquitectura de Software

  • 2. José Luis Iturbide joseluis.iturbide@gmail.com Ingeniero en Computación de la F.I, UNAM Arquitecto de Software con experiencia en proyectos del sector Bancario y de Seguros
  • 3. Objetivo • Aplicar conceptos de la Arquitectura de Software en un caso real pero acotado. • Que el participante tenga una referencia y pueda mejorar su practica de arquitectura actual.
  • 4. • Introducción1 • Conceptos de Arquitectura de Software 2 • Ejemplo3 • Conclusiones4 Contenido
  • 6. La Practica de Diseño • Objetivo: ¿Que?  Crear un árbol navideño • Análisis, ¿Para que? – Será parte de una maqueta con motivo navideño • Requerimientos funcionales  Funciones, Colores, dimensiones, distribución. • Requerimientos no funcionales – Modular, fácil de ampliar, no toxico, durable, lavable • Restricciones  Tiempo, recursos (número de piezas), tipo de piezas.
  • 7. La Practica de Diseño  Diseño  Propuesta de solución que dice como cubrirá los requerimientos y se ajusta a las restricciones dadas. • ¿Qué tan oportuno debe ser el Documento de Diseño? A) Tan oportuno como una guía de construcción B) Como un documento generado después de construir el árbol Especificación de Diseño
  • 8. 2. ALGUNOS CONCEPTOS DE ARQUITECTURA DE SOFTWARE
  • 9. Objetivo principal de la arquitectura • Definir la estructura de componentes, sus relaciones que garanticen la sana operación del sistema hoy y a futuro En consecuencia • Reducir los riesgos tecnológicos del proyecto. • Diseñar los componentes de software adecuados que cubran con los requerimientos no funcionales
  • 10. Tipos de Arquitectura Simon Brown www.codingthearchitecture.com Enterprise Architecture – Define la estrategia tecnológica y de negocio de la organización para el desarrollo de sus sistemas. System Architecture – Arquitectura de software e infraestructura de un sistema de principio a fin. Application Architecture – Arquitectura de software para una aplicación, subsistema o componente.
  • 11. Conceptos de Arquitectura de Software • Principios • Requerimientos No Funcionales • Riesgos • Restricciones • Consideraciones
  • 12. ¿Que cuidar? • Requerimientos No Funcionales:  Tiempos de respuesta  Seguridad  Usabilidad  Mantenibilidad • Redundancia, Profundidad, Capacidad Volumen • Concurrencia • Transaccionalidad • Capacity Planning
  • 13. RNF y Caracteristicas operacionales Vs Redundancia, Profundidad, Capacidad
  • 14. ¿Que contiene una especificación de Arquitectura? ¿Qué resolver? Sección ¿De que se trata esto? Contextualización ¿Qué se puede ó no usar? Restricciones ¿Como esta estructurado el sistema? Diagramas de Solución ¿Cómo mostrar los detalles una audiencia especifica? Vistas /Diagramas por audiencia ¿Con qué aplicaciones es necesario interactuar? Listado de sistemas y subsistemas ¿Qué se intercambiara y de que forma con las demás aplicaciones? Lista de interfaces ¿Qué características no funcionales se deben cubrir? Requerimientos No Funcionales
  • 15. ¿Que contiene una especificación de Arquitectura? ¿Qué resolver? Contenido ¿Cómo debo nombrar a mis artefactos? Estándares de codificación, nomenclatura ¿Qué estrategia seguir para detalles transversales logging, auditoria, seguridad, errores? Especificaciones de implementación ¿Qué módulos tendrá la aplicación? Diagramas de componentes ¿Qué productos , tecnologías, APIs se usarán? Matriz de Tecnologías, Tiers & Layers Otros • Diagramas de infraestrucura • Especificaciones GUI, Look & Feel • Diseño Lógico y Físico de Base de Datos • Especificaciones por entorno: DES, QA, PRO
  • 17. Descripción del ejemplo La compañía MiAutoSeguro es una Aseguradora creciente y desea incrementar la venta de seguros de auto vía online • Las operaciones que se harán desde la aplicación web serán la cotización y contratación de seguro. • Se quiere tener acceso a ella desde computadoras y dispositivos móviles. • El sistema sustituirá a otro y se integrara con varios sistemas existentes • La tecnología base de desarrollo es java.
  • 18. ¿Por donde iniciar? Obtención de Requerimientos • Observa, pregunta, entrevista Analiza • Contrasta • Relaciona Diseña • Evalúa, valida, decide, registra Habilidades valiosas • Conocimiento del negocio • Negociación, • Comunicación, • Validación, • Ejecución • Autoaprendizaje Errores comunes • Pensar primero en implementación • Suponer, no preguntar. • No identificar y mitigar riesgos • Pensar solo en el Happy path • Minimizar la complejidad. Refina • Corrige, Detalla, Completa
  • 20. Identificación de Sistemas ID Sistema Objetos de negocio Mas info… SisCot Sistema Cotizador Cotización Cobertura SisContr Sistema de Contratación Póliza Portal Portal de la compañia EGlobal Sistema de Cobro Pago, Tarjetahabiente AutoSeguroW eb Sistema de Venta de Seguros Online Prospecto, Cotización, Perfil, Auto SMTP Server Subsistema para envío masivo de correos Mensaje, Cliente Subsistemas: LDAPs, Filesystems, Base de datos, Email servers, Sistema de Generación de Documentos Datos físicos: IPs, puertos, dominio, Hardware, Instancias, tecnologías de integración, Ventanas de servicio, responsables, entornos previos, convivencia con otras aplicaciones.
  • 21. Identificación de Interfaces Origen Destino Interfaz Logico/Fisico Parametros Condiciones de error Nombre físico interfaz AutoSeg uroWeb SisCot CotizarSeguro Auto() In: Prospecto, Datos auto, Coberturs elegidas Out: Cotizacion[] Código de retorno y mensaje en xml http://..../cotizarS egAuto SisCont SMTP Enviar póliza In: Destinatario, Attachments, 500 Error de server Smtp:5020 Queue: cteQ Otros datos de importancia: • Tecnología de integración, códigos de error, frecuencia, horario, volumen de datos, De escritura/Lectura. • Tipo de comunicación: Online/Batch, Síncrona / Asíncrona, • Nueva / A Reutilizar / A Modificar • Restricciones de seguridad
  • 23. Ejemplo de Restricciones De desarrollo • El framework de desarrollo es Spring 3.0.1 • El código se versionará en un entorno dentro de la organización De seguridad • Los datos sensibles de clientes no deben registrarse en logs De políticas internas • La promoción de la aplicación, cambios por correcciones debe seguir la secuencia de entornos DES -> QA -> PRO De entorno • No hay ambiente de pruebas para el Sistema de Procesamiento de Pago
  • 24. Ejemplo de Riesgos Riesgo Probabili dad Impacto Mitigación 01 - El entorno de QA no quede habilitado a tiempo BAJO MEDIO OP1: Realizar pruebas en entorno DES con validez de integración OP2: Incrementar el equipo de Test 02 - IT pide que la lógica de cotización se implemente como servicios pero eso no se estimo ALTO MEDIO OP1: Dividir físicamente la capa de presentación de la de negocio. OP2: Negociar un cambio de alcance pero por tiempos el switch se haría hasta una 2ª liberación 03 - No se podrán hacer pruebas en Sistema Eglobal (Problema) ALTO MEDIO OP1. Crear sistema alterno OP2: Crear objetos Mock La mitigación de riesgos frecuentemente modifica la solución, el plan y el alcance de la solución original
  • 25. Toolkit del arquitecto Experiencia Principios de Diseño • Composición, Inversión de Control, Modularidad, Bajo acoplamiento, Alta cohesión, Open Closed Patrones de Diseño y Arquitecturales • Patrones GOF: Patrones JEE, Ejemplo: Observer, Fachada • Patrones de Integración, de Arquitectura Ejemplo: Layers, Model-View-Controller • Antipatrones, Otros: • Técnicas de descomposición funcional • Técnicas de estimación de complejidad • Matrices de Decisión • Pantillas Patrón Arquitectural de capas Composición en lugar de Herencia
  • 26. Diagrama de componentes / deployment
  • 27. Matriz de tecnologías por fila y capa de AutoSeguroWeb Tier Layer Capa Cliente Capa Presentación y Control Capa de Negocio Capa de Integración ó acceso a Datos Sistemas externos APIs / Framewor ks •HTML5 •Bootstrap •Css •Servlet 3.0 •JSP 2.5 •JSON •Spring MVC •WS REST •Clases de Servicio (POJOs) •EHCache •JPA 2.1 + Hibernate 3 •WS REST BD: SQL Sist: WS-REST APIs transversa les N.A. •Logging (SLF4J) •Spring 3.0.3 •JEE 6.0 N.A. Producto Firefox >= 32 Chrome >= 40 IE 10 JBoss 6.0.1 •RDBMS SQLServer Sistema Operativo Cualquiera Oracle Linux 6.0 •Oracle Linux, 5.0 Hardware PC Intel Server •Intel server
  • 28. Ejemplo de cambios a mitad del camino Cambio por mejora de performance Problema: La consulta de Catálogos desde el front es tardada ¿Qué opciones de mejora se tienen? Cambio por necesidad de negocio Cambio: La lógica de Cotización y Contratación se requiere que pueda ser consumida por otros sistemas sin depender del front actual.
  • 29. Diagrama de componentes / deployment Cambio en Diseño original por necesidad de negocio
  • 30. Modelo 4 + 1 vista Buena practica: • Crear una línea base del código • Implementar un Caso de Uso representativo
  • 31. Arquitectura Empresarial ¿Buscas el especificar Arquitectura de un modo formal? • TOGAF es un framework que ayuda a definir como se debe desarrollar la Arquitectura en una organización • Tiene plantillas que puedes usar y adaptar http://www.togaf.info/togafSlides91/TOGAF-V91-Sample-Catalogs-Matrics-Diagrams- v3.pdf
  • 32. Conclusión • El Arquitecto de Software es responsable de elegir, justificar y comunicar las tecnologías mas adecuadas para satisfacer la operación sana del sistema. • Es necesario tener experiencia y otras habilidades además de las habilidades técnicas para lograr el objetivo. • El documento de especificación debe ser oportuno, suficiente y claro para poder usarlo como una guía del desarrollo.
  • 33. Recursos Software Architecture for Developers, Simon Brown http://www.codingthearchitecture.com/ 97 Things Every Software Architect Should Know http://books.google.com.mx/books/about/97_Things_Every_Software_Architect_Shoul.html?id=HDknE jQJkbUC&redir_esc=y Software Design Principles and Guidelines http://ebookily.net/pdf/software-design-principles-and-guidelines-design-principles-3965564.html