Septiembre 27 a Octubre 01 de 2005 Bogotá, Colombia Fundamentos de Definición de Arquitectura de Software Mauricio Naranjo Chief Architect

Slides:



Advertisements
Presentaciones similares
Fundamentos de Definición de Arquitectura de Software
Advertisements

VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
MODELAMIENTO VISUAL Y UML
ESTRATEGIA GOBIERNO EN LINEA Fundamentos Arquitectura Empresarial
CONCEPTO INGENIERÍA DE SOFTWARE  Analiza, diseña y desarrolla productos de sistemas software, proponiendo la plataforma tecnológica más apropiada. Domina.
Arquitectura de Software. Contenido 1. Introducción 2. Características de la arquitectura 3. Los casos de uso y la arquitectura 4. Descripción de la arquitectura.
RUP Vs. XP Sandra Lorena Anaya. Introducción ● Calidad del SW ● Transparencia y control sobre el proceso ● Producir lo esperado en el tiempo esperado.
Sistemas de Información desarrollados con MÉTRICA © 2008 SADIEL Prohibida su Reproducción Formación vía internet: cómo dejar atrás el pilotaje Octubre.
BASE DE DATOS Reingeniería de Procesos. Modelo de BPR Definición del Negocio Refinamiento e instanciación Evaluación de procesos Especificación y diseño.
DISEÑO ORGANIZACIONAL Lic. Sujey Herrera Ramos. Es un método planificado que permite adaptar la estructura física, humana y de procesos de una organización.
Arquitectura de Referencia SOA. Temario Arquitectura de software, SOA y Web Services Por que SOA? Arquitectura de Referencia SOA Roadmap de implementación.
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
La Ingeniería de Sistemas
Maestría en ingeniería de sistemas y computación.
Metodología de Implementación de Sistemas ERP
Ingeniería de Software: Metodologías
Conferencia # 3 Ingeniería de Software II
Simple Adopción en Uruguay
Ciclo de vida del producto y decisiones de selección del proceso
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
1  Introducción a Rational Unified Process (RUP) Profesor Abraham Oliver Jara Miranda – JornSoft S.A.
Análisis y catalogación de las fuentes que definen las competencias demandadas en el campo de la Interacción Persona-Ordenador Raquel Lacuesta Jesús Gallardo.
SWEBOK.
Presentación de HP Project & Portfolio Management Center
Ingeniería del Software III Gabriel Buades Mayo 1.999
Gestión de Riesgos Corporativos
MODELO CLIENTE -SERVIDOR
Caracterización de los Procesos de Negocio
INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
SISTEMAS DE INFORMACION
Ingeniería de Sistemas Requerimientos
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Rational Unified Process
Tema 3. Lenguaje unificado de modelado UML
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Ingeniería del Software
Proceso Unificado de Desarrollo de Software
Principales desafíos: adaptabilidad y agilidad empresarial
Comprensión y obtención de los requerimientos
Fundamentos de Sistemas de Información
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
Planeamiento: un plan incremental para que la ingeniería web produzca resultados. La ingeniería web es un área que abarca procesos, técnicas y modelos.
METODOLOGIAS AGILES VS TRADICIONALES SCRUM - RUP FABIO ARNOBY BEJARANO Q. UNIREMINGTON BUGA (V) INGENIERIA DE SOFTWARE II SEPTIEMBRE 2018.
Sistema de Información de Recursos Humanos
Planes del Proyecto.
1 Taller de Proyecto Tema 1. Metodología de desarrollo de software Rational Unified Process –RUP [1,2] Prof. Nora La Serna © Prof. Nora La Serna.
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
Nuestros canales de comunicación Gestión de la Calidad del Software Modelos y Estándares de Calidad en el Software.
Metodología de Desarrollo de Sistemas II Ingeniería de Software  DEFINICIÓN La ingeniería del software es el establecimiento y uso de principios de.
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos” Trabajo de título presentado.
PARÁMETROS PARA LA PRESENTACIÓN DE PROYECTOS EN LA ESCUELA DE TECNOLOGIAS E INNOVACION. ING. Hugo de Jesús Peláez Giraldo Líder Escuela de Tecnologías.
Essential Unified Process
IEEE-STD PRÁCTICA RECOMENDADA PARA LA ESPECIFICACIÓN DE REQUERIMIENTOS DE SOFTWARE.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
ASIGNATURA: REINGENIERÍA DEL SOFTWARE CUATRIMESTRE: I DOCENTE: ING. IRENE MARTÍNEZ MEJÍA CORREO: Managua, 26 de Enero 2019
1 SISTEMAS II CICLO DE VIDA. 2 Sistemas II. CICLO DE VIDA DE Los Sistemas de Información “ Es un proceso por el cual los analistas de sistemas, los ingenieros.
INTEGRANTES u Álvarez Palomino David u Salazar Colonia Jesús Felipe u Velásquez Huapaya Ricardo.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Ingeniería de Software: Metodologías
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos” Trabajo de título presentado.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
Plan de Sistemas de Información (PSI). Plan de Sistemas de Información (PSI) Descripción y Objetivos Tiene como objetivo la obtención de un marco de referencia.
PLANIFICACION Diego Hernández.
ICI 502 Procesos de Software
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
Transcripción de la presentación:

Septiembre 27 a Octubre 01 de 2005 Bogotá, Colombia Fundamentos de Definición de Arquitectura de Software Mauricio Naranjo Chief Architect Lucasian Labs Ltda.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Agenda Conferencia + Que es Arquitectura de Software? + Rol y Responsabilidades del Arquitecto + Arquitectura Vs. Diseño + Estrategias de Definición de Arquitectura + Ejemplo de Definición de Arquitecturas + Calidades Sistémicas y Calidad de Servicio + Lecciones Aprendidas en Consultoría

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Arquitectura de Software + Que es una arquitectura? + “No estamos seguros, pero la reconocemos cuando vemos una” + IEEE-1471-FAQ

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de IEEE 1471 El nivel conceptual más alto de un sistema en su ambiente. + Arquitectura es la organización fundamental de un sistema descrita en: – Sus componentes. – Relación entre ellos y con el ambiente. – Principios que guían su diseño y evolución. Arquitectura de Software + Software Architecture in Practice - Kazman “La estructura de estructuras de un sistema, la cual abarca componentes de software, propiedades externas visibles de estos componentes y sus relaciones”.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Discusión + Definir la arquitectura en los proyectos actuales es crítico...

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Dos factores primarios en la ingeniería de software que han incrementado la importancia de la arquitectura: Evolución de Arquitecturas

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Evolución de Arquitecturas + Aplicaciones Monolíticas + Interfaces gráficas de usuario (GUI). + Servicios de presentación, negocios y persistencia en la misma máquina. + No hay concurrencia de usuarios. + Alto acoplamiento entre tiers. Arquitectura Cliente-Servidor + Clientes pesados, no estándar + Conexiones dedicadas a BD + Protocolos pesados + Ejecución remota de SQLs + Alta administración + Bajo rendimiento + Alto tráfico de red + Baja accesibilidad

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Evolución de Arquitecturas + Arquitectura Cliente-Servidor Mejorada + Lógica de negocios en BD + Clientes pesados, no estándar. + Conexiones dedicadas a la BD. + Mejora en rendimiento + Alta administración + Baja escalabilidad + Baja flexibilidad + Baja portabilidad Arquitectura de 3 niveles + Reutilización de lógica de negocio para diferentes clientes o sistemas. + Mejora la escalabilidad. + Mejora la flexibilidad. + Independencia de la base de datos.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Evolución de Arquitecturas + Arquitectura de N-niveles Bajo costo de administración de clientes. + Alta accesibilidad. + Alta flexibilidad. + Alta disponibilidad y tolerancia a fallos. + Alta escalabilidad. + Independencia de DB

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Evolución de Arquitecturas + Visión de Arquitectura Orientada a Servicios (SOA) Cluster de Servidores de Aplicaciones Legadas Servidor de Procesos (BPM) Base de Datos Sistema Batch Portal de Servicios Integrados + Requerimientos Arquitectónicos + Heterogeneidad + Escalabilidad + Disponibilidad + Distribución + Manejabilidad de Procesos + Administración y monitoreo de procesos, servicios e infraestructura

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Que es un Arquitecto de Software? Rational Unified Process Arquitecto es un rol en un proyecto de desarrollo de software el cual es responsable de: – Liderar el proceso de arquitectura. – Producir los artefactos necesarios: Documento de descripción de arquitectura – Modelos y prototipos de arquitectura. SUN SL-425: El arquitecto: – Visualiza el comportamiento del sistema. – Crea los planos del sistema. – Define la forma en la cual los elementos del sistema trabajan en conjunto. – Responsable de integrar los requerimientos no-funcionales (NRFs) en el sistema.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Discusión + Existe alguna diferencia entre arquitectura y diseño de software?

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Arquitectura Vs. Diseño + La arquitectura y el diseño difieren en tres áreas: ArquitecturaDiseño Nivel de Abstracción Alto nivel Bajo nivel. Enfoque específico en detalles Entregables Planear subsistemas, interfaces con sistemas externos, servicios horizontales, frameworks, componentes reutilizables, prototipo arquitectónico Diseño detallado componentes. Especificaciones de codificación Áreas de Enfoque Selección de tecnologías, Requerimientos no funcionales (QoS), Manejo de riesgos Requerimientos funcionales

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Arquitectura Vs. Diseño + La arquitectura envuelve un conjunto de decisiones estratégicas de diseño, lineamientos, reglas y patrones que restringen el diseño y la implementación de un software. Las decisiones de arquitectura causan un alto impacto en los proyectos de IT Arquitectura Diseño Implementación Código

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Discusión + Cuales son los principios fundamentales en los métodos de desarrollo de software modernos?

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Arquitectura y Procesos de Desarrollo Principios Fundamentales de Procesos Modernos + Desarrollo iterativo e incremental. + Conducido por las calidades sistémicas. + Centrado en la arquitectura. + Dirigido por los casos de uso. + Basada en Modelos. + Mejores prácticas de diseño.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Arquitectura y Procesos de Desarrollo + Que es un Proceso de Arquitectura? + Rational Unified Process: + Secuencia de actividades que conllevan a la producción de artefactos arquitectónicos: – Descripción de arquitectura – Prototipo arquitectónico

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Arquitectura y Procesos de Desarrollo Rational Unified Process: En el proceso de definición de arquitectura se producen: + Arquitectura Inicial. + Arquitectura de Referencia. + Documento de Descripción de arquitectura (SAD): – Subsistemas – Componentes – Arquitectura Runtime. + Guías para el proyecto y estándares de Diseño. SunTone AM: Adicionalmente se producen: + Matriz Tecnológica de Layers y Tiers + Template de Arquitectura

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en RUP Fase de Inicio + Con respecto a la arquitectura, en la fase de inicio de los proyectos se establece: – Requerimientos no-funcionales – Lista de riesgos y restricciones – Arquitectura inicial

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en RUP Fase de Elaboración + Con respecto a la arquitectura, en la fase de elaboración se establece: – Arquitectura línea base. + Entregables: – Documento de Definición de Arquitectura. – Prototipo evolutivo de arquitectura. – Guías y Estándares de Diseño.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en RUP + Modelo de Vista Framework para Descripción de Arquitectura, basado en vistas lógicas y físicas UML y una vista funcional de casos de uso. Process ViewDeployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance Scalability Throughput System integrators System topology Delivery, installation communication System engineering Analysts/Designers Structure

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en RUP Definir arquitectura candidata Evaluar Req. No Funcionales (NFR) Refinar y Seleccionar la Arquitectura Prototipar la Arquitectura Valorar Calidades Sistémicas Ajustar Arquitectura

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en SunTone AM + Metodología de desarrollo de software análoga al Unified Process (UP) con un fuerte énfasis en Calidad de Servicio y Patrones de diseño. + El cubo: framework conceptual, el cual provee una vista tridimensional: – Tiers lógicos – Layers tecnológicos – Calidades sistémicas

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en SunTone AM

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en SunTone + Principios Arquitectónicos + La arquitectura es primariamente necesaria para crear un framework para el desarrollo basado en patrones y para la entrega de calidades sistémicas predecibles.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en IFM + Principios Arquitectónicos + El proceso de creación de arquitectura debe ser un proceso de creación de valor. + La arquitectura se descompone en elementos arquitectónicos (AEs). + La arquitectura se crea incrementalmente acorde a un proceso secuencial dirigido por el ROI.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Definición de Arquitectura en IFM MMF A AE 1 AE 3 AE 7 AE 8 MMF B AE 2 MMF C AE 7 AE 8 + Principios Arquitectónicos + La instanciación de los elementos arquitectónicos (AEs) se realiza incrementalmente acorde a la secuencia de MMFs, determinada por el ROI.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + eBank Trusted Hosting + Workshop de Arquitectura y Diseño de Aplicaciones J2EE + Curso WS50I - Lucasian Labs Ltda. + Entidad que presta el hosting de los servicios de banca personal en Internet para un grupo de bancos.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Dado un conjunto de requerimientos primarios

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Identificación de requerimientos funcionales y de calidad de servicio (QoS)

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Identificación de supuestos, riesgos y restricciones

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Identificación de Actores y Casos de Uso primarios

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Arquitectura Lógica. Identificación de tiers lógicos, subsistemas y paquetes

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Diseño de Arquitectura Runtime. Diagrama de Despliegue.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Ejemplo de Definición de Arquitectura + Plataforma Tecnológica. Definición de la matriz tecnológica de layers y tiers

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Discusión + Los requerimientos no funcionales son fuentes comunes de riesgo…

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Calidades Sistémicas + El manejo inadecuado de los requerimientos no funcionales, es una de las fuentes más importante de riesgo en los proyectos: – Reglas de negocio de alta complejidad. – Calidades sistémicas  Seguridad  Rendimiento  Escalabilidad  Disponibilidad  Extensibilidad + La calidad de servicio (QoS = Quality Of Service) es un riesgo primario relacionado con la arquitectura.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Calidades Sistémicas + Definición + Propiedades que establecen la calidad de servicio (QoS) que un sistema expone. + Son globales a toda la arquitectura + Influencian el diseño. + Son no-funcionales pero observables. + Familias de Calidades Sistémicas + Manifiestas + Operacionales + Desarrollo + Evolutivas

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Calidades Sistémicas - Manifiestas + Observables por los usuarios del sistema. + Performance. Tiempo de respuesta desde el punto de vista del usuario. + Reliability. Grado de probabilidad de realizar operaciones correctamente. + Availability. Porcentaje de tiempo que un sistema puede procesar solicitudes.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Calidades Sistémicas - Operacionales + Throughput. Solicitudes atendidas por unidad de tiempo. + Manageability. Cantidad inversa de esfuerzo para realizar labores administrativas. + Serviceability. Esfuerzo para actualizar el sistema para reparar errores. + Security. Prevención de uso indeseado, por abuso o uso inapropiado: – Identidad – Autoridad – Confidencialidad – Auditabilidad – Integridad + Testability. Esfuerzo invertido para detectar y aislar errores. Observables cuando el sistema está operando en producción.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Calidades Sistémicas - Evolutivas + Relacionadas con el comportamiento del sistema cuando sufre algún cambio. + Escalability. La habilidad para soportar la calidad de servicio requerida conforme la carga aumenta. + Flexibility. Esfuerzo ahorrado cuando se hace un cambio de configuración. + Portability. Esfuerzo ahorrado cuando se migra a una infraestructura diferente. + Reusability. Esfuerzo ganado en la utilización de componentes existentes. + Extensibility. Esfuerzo ahorrado para adicionar nuevas funcionalidades. + Mantainability. Esfuerzo ahorrado para revisar y corregir errores.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Lecciones Aprendidas en Consultoría + Defina una persona o un grupo de personas experimentadas, encargadas de definir y validar arquitectura de sus proyectos. + Establezca los requerimientos de calidad de servicio con los expertos del dominio y con los usuarios finales. + Involucre al equipo de trabajo en el proceso de definición de arquitectura. + Documente y comunique la arquitectura y lineamientos de diseño y logre aceptación. No la imponga. + Sea firme con las decisiones, valore impactos e identifique riesgos.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Lecciones Aprendidas en Consultoría + Valore alternativas de arquitectura y diseño tomando en cuenta las calidades sistémicas y relación costo-beneficio. + Instancie los mecanismos arquitectónicos definidos incrementalmente. No los instancie en bloque. + Reutilice frameworks, patrones de diseño y mejores prácticas. Sea racional en el uso de tecnologías. + Tenga siempre presente que requerimientos de seguridad, integración con sistemas externos, canales de comunicaciones con poco ancho de banda, crecimiento del volumen de usuario, expectativas de cambios de requerimientos son fuentes comunes de riesgo.

XXV Salón de Informática “Arquitecturas Empresariales de Software” Septiembre 28-Octubre 01 de Fundamentos de Definición de Arquitectura de Software Mauricio Naranjo Chief Architect Lucasian Labs Ltda.