1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

Redes de Computadoras II
Plan de Implantación Sistemas de Información III
Fundamentos de Diseño de Software INFT.1
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
UNIVERSIDAD TECNOLÓGICA ISRAEL CARRERA DE SISTEMAS INFORMÁTICOS
CONTROL DE CALIDAD.
Arquitectura Orientada a Servicios (SOA)
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Arquitectura de n- capas
Guia Diseño Robert Echeverria
Enrique Masias Mario Panuera Mario Miranda Edward Cornejo
CONCEPTOS Y PRINCIPIOS DE DISEÑO
Aspectos Avanzados de la Tecnología de Objetos
Erique Gaspar, Carlos Alfredo
“Especificación de Requerimientos”
Diseño del Software Diseño de datos Diseño arquitectónico
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Ingeniería de Software Orientado a Objetos
Gestión por procesos.
SENA REGIONAL HUILA CENTRO MULTISECTORIAL DEL NORTE.
DISEÑO DE SOFTWARE 1ª. Parte
Unidad 4 Diseño Arquitectónico Basado en la Funcionalidad
Ciclo de Vida del Software Paradigmas de Desarrollo
REQUERIMIENTOS DE SOFTWARE
Comunicación y Multimedia
SISTEMAS DE INFORMACION GERENCIAL
CONCEPTOS BÁSICOS Diseño de Sistemas.
Modelos de desarrollo de Software
Técnicas de Programación
Análisis y Diseño de Sistemas
Ingeniería del Software
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Diseño del servicio ITIL..
Importancia en la efectividad del:
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Desarrollo de Software Orientado a Objetos (deficiencias)
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
 La arquitectura se desarrolla en iteraciones de la fase de elaboración La arquitectura se desarrolla en iteraciones de la fase de elaboración  Ejemplo.
Alexander Aristizabal Ángelo flores herrera
I.- Introducción a los sistemas de información
Diseño de Sistemas.
Capitulo 1 Roger S. Presman
Ingeniería de Requisitos
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de metodologías ágiles Tatiana Alejandra.
Diseño Orientado al Flujo de Datos
Lista de Riesgos Administración de Proyectos de Desarrollo de Software
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Relación con otras asignaturas del plan de estudio
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Actividades en el Proceso de desarrollo de Software
Estructurar tus ideas para hacerlas realidad
Ciclo de Vida del Software
Mejores Prácticas para el Desarrollo de Software Omar de Jesús Rosales Hernández.
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
SOLUCIONES EMPRESARIALES
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
Software de Comunicaciones
Modelo de procesos de software
Planificación de Sistemas de Información
INDUSTRIAS DEL PETROLEO, PETROQUÍMICAS Y DEL GAS NATURAL ASEGURAMIENTO DE LA PRODUCCIÓN Y ADMINISTRACIÓN DE LA CONFIABILIDAD ISO/CD Date: 2005 –
Integrantes: Mejía Zúñiga Yoselin Taco Apaza Pamela Ychuta Torres John.
Entregables del Proyecto
Flujos de Trabajo Fundamentales Proceso Unificado de Desarrollo de Software.
Profesor: Jesús Chaparro Bachilleres: Perez, emibeliz Prada, Rainer Villahermosa, José Abril 2014.
Transcripción de la presentación:

1 Introducción a la Arquitectura de Sistema Maximiliano Déboli Director De Desarrollo MVP Azure Lagash

2 ¿Qué es la arquitectura de software? Conjunto de decisiones importantes acerca de la organización de un sistema Selección de elementos estructurales y las interfaces que componen al sistema Funcionalidad, facilidad de uso, capacidad, rendimiento, la reutilización, la comprensión, limitaciones económicas y la tecnología, intercambios y estética

3 Fowler El mayor nivel de desglose de un sistema en sus partes. Las decisiones que son difíciles de cambiar. Existen múltiples arquitecturas en un sistema. Que es arquitectónicamente importante que puede cambiar la vida de un sistema. La arquitectura se reduce a cualquier cosa que sea importante.

4 Consideraciones relevantes a la arquitectura Como va a ser desplegada la aplicación en producción. Como los usuarios utilizar la aplicación. Cuales son los atributos de calidad, tales como la seguridad, rendimiento, simultaneidad, etc. Cuales son las tendencias arquitectónicas que pudieran afectarnos.

5 Objetivos de la arquitectura Exponer la estructura del sistema, pero ocultar los detalles de implementación Hacer posibles todos los casos de uso. Trate de abordar las preocupaciones de las diversas partes interesadas Manejar al mismo tiempo los requerimientos funcionales y de calidad

6 Escenarios Atributos de calidad Requerimientos/Restricciones Transversales Mobile Tipos de aplicaciones RIA Rich Client Service Aplicación web N … Client Server Estilos de arquitectura Component-Based Layered Architecture Message Bus MVC Architecture Object Oriented N … Marco de Arquitectura Caching Comunication Concurrency and transactions Configuration Management Coupling and Cohesion Data Access Exception Management Caching Comunication Concurrency and transactions Configuration Management Coupling and Cohesion Data Access Exception Management Layering Logging and instrumentation State Management Structure Validation Workflow Layering Logging and instrumentation State Management Structure Validation Workflow

7 Tipos de Aplicaciones Aplicaciones para dispositivos móviles Rich Client para aplicaciones que se ejecutarán en una PC cliente. RIA para aplicaciones desplegadas en internet con apoyo de interfaces ricas de usuario y soporte de media Servicios para apoyar comunicaciones entre componentes débilmente acoplados. Aplicaciones web para escenarios completamente conectados

8 Estrategia de despliegue Restricciones de Red y protocolos. En entornos poco flexibles tener en cuenta restricciones. Tener en cuenta atributos de calidad como la seguridad, rendimiento y mantenibilidad. Políticas y procedimientos. Especificar los requisitos y limitaciones en la arquitectura y la infraestructura.

9 Estilos de arquitectura Conjunto de principios. Normas que especifican los tipos de componentes que puede utilizar para montar un sistema. Limitaciones en la forma en que se ensamblan y las hipótesis sobre el significado de cómo ponerlos juntos.

10 Tecnología apropiada Tipo de aplicación que queremos desarrollar. Preferencia ante diferentes opciones. Políticas de la organización. Limitaciones de la infraestructura. Habilidades de los recursos.

11 Atributos de calidad Los atributos de calidad deben estar separados de los requerimientos funcionales. Desde una perspectiva técnica, implementar atributos de calidad, es la diferencia entre un sistema bueno ó malo. Dos tipos de atributos de calidad.  Los que se pueden medir en run-time.  Los que solo se pueden medir inspeccionando.

12 Atributos de calidad Cual es el atributo de calidad clave para nuestro sistema? Identificarlo en la etapa de diseño. ¿Cuáles son los requisitos fundamentales para hacer frente a estos atributos? ¿Son realmente cuantificable? ¿Cuáles son los criterios de aceptación para estos atributos?

13 Funciones transversales Autenticación Autorización Cache Comunicación Manejo de excepciones Instrumentación y logueo

14 Diseñando la Arquitectura Diseño ágil e incremental. ¿Cuáles son las partes fundamentales de la arquitectura que representan el mayor riesgo? ¿Cuáles son las partes de la arquitectura que tienen más probabilidades de cambiar, o cuyo diseño se puede retrasar hasta más tarde con poco impacto? ¿Cuáles son sus supuestos básicos, y cómo va a probarlos?

15 Principios claves de la Arquitectura Diseñar la arquitectura para adaptarse a los cambios. Modelado para el análisis y la reducción de riesgos. Modelos y puntos de vista son una buena herramienta de comunicación y colaboración. Identificar las principales decisiones de ingeniería. Invertir en conseguir estas decisiones clave desde el primer momento para que el diseño es más flexible y adaptable al cambio.

16 Enfoque incremental e iterativo Considere la posibilidad de utilizar un enfoque incremental iterativo y refinado de la arquitectura. No tratar de hacerlo bien y completo de una vez. Iterativamente agregar detalles al diseño a través de múltiples pasos. Probar constantemente el diseño:  ¿Qué necesidades explícitas o implícitas reúne esta arquitectura?  ¿Cuáles son los principales riesgos con este enfoque arquitectónico?  ¿De qué manera esta arquitectura es una mejora con respecto a la línea de base o el último candidato de arquitectura?

17 Arquitecturas de referencia y candidatos La base de la arquitectura describe el sistema actual que es la forma actual de su sistema. Si se trata de uno nuevo, su base inicial es la primera de alto nivel. Tipo de Aplicación. Despliegue de la arquitectura. La arquitectura en si misma Opciones de tecnologías. Atributos de calidad

18 Architectural Spikes Una Spike de arquitectura es una prueba de extremo a extremo de un pequeño segmento de la aplicación. Reducir riesgos y testear diferentes caminos y alternativas. A medida que evoluciona su arquitectura, puede utilizar spikes para explorar diferentes escenarios sin afectar el actual diseño. Un spike de arquitectura se traducirá a un candidato de arquitectura que puede ser cotejado con la línea base.

19 Architectural Spikes ¿Esta arquitectura introduce nuevos riesgos? ¿Esta arquitectura ayuda a mitigar riesgos adicionales ya conocidos? ¿Esta arquitectura posee requisitos adicionales? ¿Esta arquitectura permitirá casos de uso importantes? ¿Esta arquitectura esta enfocada a nuestros atributos de calidad?

20 Casos de uso arquitectonicamente importantes Son importantes para el éxito y la aceptación de la aplicación desplegada. Son suficientes para testear la utilidad de la arquitectura. Después de haber determinado los casos de uso importantes se pueden utilizar para evaluar el éxito o el fracaso de arquitecturas candidatas.

21 Análisis y evaluación de arquitecturas Pruebe su diseño contra casos de uso que son importantes para el éxito de su aplicación, y que hagan uso de una parte importante del diseño. Usar escenarios para analizar su diseño con un enfoque en la calidad atributos.