Modelado y Diseño de Arquitectura de Software

Documentos relacionados
CAPITULO VI ESTRATEGIAS DE OUTSOURCING

Curso: Arquitectura Empresarial basado en TOGAF

GERENCIA DE INTEGRACIÓN

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Unidad VI: Supervisión y Revisión del proyecto

Calidad Escuela de Ingeniería de Sistemas y Computación Desarrol o de Software II Agosto Diciembre 2007

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

GESTION DE RIESGO Guías y Principios de implementación ISO 31000:2009. César Díaz Guevara, Corporación 3D Calidad

Planificación, Administración n de Bases de Datos. Bases de Datos. Ciclo de Vida de los Sistemas de Información. Crisis del Software.

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

LEY QUE NORMA EL USO, ADQUISICIÓN Y ADECUACIÓN DEL SOFTWARE EN LA ADMINISTRACIÓN PUBLICA

Inter American Accreditation Cooperation. Grupo de prácticas de auditoría de acreditación Directriz sobre:

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

2 EL DOCUMENTO DE ESPECIFICACIONES

Jazmín Hernández Technical Report COMP Abstract

Propuesta de Proyecto de Trabajo de Grado. Tema: Herramienta de Soporte a la Ingeniería de Requerimientos para Aplicaciones Web

Operación 8 Claves para la ISO

Mejorando las competencias arquitectónicas en una empresa Mexicana de desarrollo de Software

Figure 16-1: Phase H: Architecture Change Management

GUÍAS. Módulo de Diseño de software SABER PRO

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

Evaluación del Software

EL PROCESO DE BENCHMARKING

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

ASEGURAMIENTO DE LA CALIDAD EN LABORATORIO

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

Tratamiento del Riesgo

Unidad 9. Implementación. M.C. Martín Olguín

CAPÍTULO 5. CONCLUSIONES. objetivo descrito inicialmente, el que consistió en establecer las bases necesarias para aplicar

CALIDAD TOTAL. Visión estratégica y buena gestión son los ingredientes fundamentales.

ORIENTACIONES PARA EL DISEÑO DE POLÍTICAS DE CAPACITACIÓN Y EVALUACIÓN DEL DESEMPEÑO

PLAN DE MÉTRICAS EN OCHO PASOS

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

GERENCIA DE RECURSOS HUMANOS

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

ESQUEMA PARA EL PROYECTO SOCIO TECNOLÓGICO DEL TRAYECTO IV (GESTIÓN DE PROYECTOS) FASE II.

CONFIGURACIÓN DE LA METODOLOGÍA OPENUP V1.0. Centro Ideoinformática

OBJETIVOS GENERALES DEL AUDITOR INDEPENDIENTE Y CONDUCCIÓN DE UNA AUDITORÍA, DE ACUERDO CON LAS NORMAS INTERNACIONALES DE AUDITORÍA

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Criterios para seleccionar tecnología de Modelos de Toma de Decisiones

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Por qué es importante la planificación?

Capítulo 6: Conclusiones

MARCO TEÓRICO Introducción

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

Asesoría y Desarrollo Individual y de Equipos

Evaluación de la capacidad óptima de medida y alcance de la acreditación de un laboratorio de calibración

4. METODOLOGÍA. 4.1 Materiales Equipo

INDICE En qué se diferencian nuestros programas formativos de otros:... 4

Especificación de Requerimientos Funcionales y No Funcionales. Sistema Reservación Hotelera

CÓDIGO DE BUENAS PRÁCTICAS EN INFORMACIÓN, PARTICIPACIÓN Y TRANSPARENCIA EN LA GOBERNANZA DE INTERNET

Proyecto Tutelkán Tutelkan Reference Process (TRP) Versión 2.0

CAPITULO 2. 2 Manual de Servicio al Cliente 8

Planeación y evaluación: desarrollo de Indicadores

SEMINARIO SOBRE LA CALIDAD DEL SOFTWARE Y LA MEJORA DE PROCESOS

MODELOS DE CALIDAD EN EL DESARROLLO DE SOFTWARE

Política de Gestión Integral de Riesgos Compañía Sud Americana de Vapores S.A.

ISO 17799: La gestión de la seguridad de la información

Estrategias de producto y precio

BASE DE DATOS RELACIONALES

Patrones de software y refactorización de código

Sin cambios significativos.

1. LA EVALUACION DEL DESEMPEÑO LABORAL. 1.2 Objetivos de la evaluación del desempeño laboral.

3.1 Metodología de la investigación

Comentarios al documento Arquitectura para los gobiernos municipales electrónicos

Punto de Vista. Otra mirada hacia los problemas de información financiera

Análisis y gestión de riesgo

Sistema de Administración de Farmacias Plan de Proyecto Versión 1.1. Historia de revisiones

de riesgos ambientales

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE

Capítulo 2 Análisis del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

COBIT o COBIT enfatiza el cumplimiento regulatorio, ayuda a las organizaciones a

CAPITULO V PLANIFICACIÓN Y GESTIÓN DEL PROYECTO

ÍNDICE. Introducción. Alcance de esta NIA Fecha de vigencia

Capítulo 1. Introducción

Desarrollo de Líneas de Productos de Software

Introducción. Definición de los presupuestos

Charlas para la Gestión del Mantenimiento Fernando Espinosa Fuentes

Conclusiones. Particionado Consciente de los Datos

capitulo3 MARCO TEÓRICO Para el diseño de la reubicación de los procesos se hará uso de la Planeación

puede aumentar la innovación en la cartera de productos?

Aplicaciones de Ingeniería de Software

Ingeniería de Software Calidad de Procesos y Productos de Software

Elementos requeridos para crearlos (ejemplo: el compilador)

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

Escogiendo un sistema host

Control de prestaciones de un proyecto

CAPÍTULO 4. FORMA DE EVALUACIÓN CMM. 4.1 Evolución de los métodos de valoración del SEI

CAPITULO 2: MARCO TEÓRICO

Programa de Apoyo a la Gestión del Clima y la Convivencia Escolar. Documento para la Asesoría Técnico Pedagógica

La e-capacitación: Estrategia Competitiva

REINGENIERÍA DE LOS PROCESOS DEL NEGOCIO. Conceptos, Principios, Antecedentes... La idea de Smith: la especialización del trabajo.

Sistema de Mensajería Empresarial para generación Masiva de DTE

Transcripción:

Modelado y Diseño de Arquitectura de Software CONCEPTOS DE MODELADO Fernando Barraza A. MS.c. fernando.barraza@gmail.com

2 Desarrollo de sistemas de software Requisitos funcionales del software Si todo lo que importara fuese la funcionalidad, cualquier software monolítico serviría,... pero otras cosas también importan Los atributos de calidad del software y su caracterización son esenciales. Modificabilidad Interoperabilidad Disponibilidad Seguridad Predictabilidad Portabilidad... Manejadores de atributos de calidad Arquitectura del software tiene estas cualidades Software

3 Los requisitos determinan el modelo Variadas formas de requisitos Conocimiento disponible Sistema Cámara Sensores Host Sistema de Visión Controlador Arquitectura Motores Arquitecto

Implicaciones de no seguir un proceso conocido de modelado La arquitectura es una abstracción de un sistema. Los sistema pueden tener y tienen una estructura. Todo sistema tiene una arquitectura. Si no se desarrolla la arquitectura explícitamente, se obtendrá una de todas formas, pero puede no gustarnos lo que obtenemos! Tener una arquitectura no es lo mismo que tener una arquitectura conocida por todos. 4

5 Arquitectura y Funcionalidad La funcionalidad es en gran medida ortogonal a los requisitos de calidad: La funcionalidad es la capacidad del sistema de hacer lo que se pretendía que hiciese; Los sistemas se descomponen en elementos para lograr variados propósitos, más allá de la funcionalidad: Las opciones de arquitectura promueven ciertas cualidades al tiempo que implementan la funcionalidad deseada.

6 Consecuencias de las decisiones de AS sobre las Cualidades La medida en que un sistema alcanza sus requisitos de calidad depende de las decisiones de arquitectura: la arquitectura es crítica para alcanzar los atributos de calidad; las cualidades del producto deben diseñarse como parte de la arquitectura; un cambio en la estructura que mejora una cualidad suele afectar las otras cualidades; la arquitectura sólo puede permitir, no garantizar, que cualquier requisito de calidad se alcance.

7 Desafíos Qué significan con precisión atributos de calidad tales como modificabilidad, seguridad, performance y confiabilidad? Cómo se estructura el sistema de modo que tenga estas cualidades deseadas? Se puede analizar el sistema para determinar si tiene estas cualidades? Cuán temprano puede realizarse este análisis? Cómo se sabe si una arquitectura de software es apropiada para un sistema sin tener que construir el sistema primero?

8 Realidad sobre Arquitectura de Software Los requisitos de atributos de calidad son las principales guías para el diseño de la arquitectura. La medida en que un sistema alcance sus requisitos de atributos de calidad depende de las decisiones de arquitectura. El desarrollo requiere ser guiado por las decisiones de arquitectura.

9 Influencia de los Interesados Gerente de la compañia Gerente de Producto Usuario final Ingeniero de Soporte Cliente Bajos costos, ocupar personal, aumentar el valor de los activos corporativos Elementos atractivos, terminar rápido, comparable a la competencia Comportamiento, performance, seguridad, confiabilidad, usabilidad Modificabilidad Bajos costos, terminar rápido, sin muchos cambios Arquitecto Cómo puedo hacer para que el sistema tenga todo esto?

10 Interesados Involucrados Los objetivos organizacionales y las propiedades del sistema requeridas por el negocio raramente se comprenden y menos aún se articulan completamente. Los requisitos de calidad del cliente casi nunca se documentan, lo cual resulta en: objetivos que no se alcanzan; conflicto inevitable entre los interesados. Los arquitectos deben identificar e involucrar activamente a los interesados de modo de: comprender las restricciones reales del sistema; administrar las expectativas de los interesados; negociar las prioridades del sistema; tomar decisiones de compromiso.

Desarrollo de Software Tradicional Descripciones operacionales Requisitos funcionales de alto nivel Sistemas legados ocurre un milagro Arquitectura de sistema específico Arquitectura del software Diseño detallado Implementación Los atributos de calidad rara vez se capturan como parte de la especificación de requisitos; generalmente son sólo vagamente comprendidos; frecuentemente pobremente articulados 11

12 Creación de una Arquitectura de Software Existen métodos y guías para la definición de la arquitectura, muchos de los cuales se focalizan en los requisitos funcionales. Es posible crear una arquitectura basada en las necesidades de atributos de calidad.

Esquema de proceso de modelado de AS 13

Etapas del proceso Definir los requerimientos: Involucra crear un modelo desde los requerimientos que guiarán el diseño de la arquitectura basado en los atributos de calidad esperados Diseño de la Arquitectura : Involucra definir la estructura y las responsabilidades de los componentes que comprenderán la Arquitectura de Software Validación: Significa probar la arquitectura, típicamente pasando a través del diseño contra los requerimientos actuales y cualquier posible requerimiento a futuro. 14

Identificar requerimientos 15

Requerimientos no funcionales Describen como el software debe comportarse, es decir como hacer algo, no que debe hacer Están relacionados con los requerimientos funcionales porque describen la forma que se espera se logren dichos requerimientos En algunos casos tienen restricciones de cómo hacerlo Se clasifican de acuerdo al atributo de calidad esperado del sistema 16

Ejemplo de requerimientos de AS 17

Restricciones (constraints) Las restricciones (constraints) imponen condiciones sobre la arquitectura que normalmente no son negociables. Limitan el rango de alternativas de decisión del arquitecto Algunas veces hace la vida más fácil para el arquitecto, en otras lo complica. Se pueden clasificar según su naturaleza: Negocio, Desarrollo, Tiempo, Costo, etc. 18

Ejemplos de restricciones 19

Priorización de requerimientos Alta: La aplicación debe soportar el requerimiento. Estos requerimientos guían el diseño de la arquitectura Media: Requerimientos que necesitan ser soportados en algún momento o etapa del proyecto pero no necesariamente en esta siguiente versión. Baja: Se conoce como parte de la wish-list. Se pueden implementar cuando sea posible hacerlo. 20

Ejercicio sobre análisis de requerimientos de AS 21

Diseño de la Arquitectura de Software Reference 22

1. Escogencia de la Arquitectura de Referencia Discutir los posibles estilos y patrones más apropiados que den el soporte requerido para alcanzar los atributos de calidad deseados ES LA TAREA MÁS CRÍTICA EN TODO EL PROCESO DE AS!! Basarse en Arquitecturas de Referencia reconocidas por tanto por la academia como por la industria Implementaciones conocidas, de amplia difusión y uso Buena documentación Reconocer el tamaño de la aplicación objetivo Aplicaciones pequeñas Pocos patrones requeridos Aplicaciones grandes Mezcla de varios patrones 23

Ejemplo de mapeo de patrones a atributos de calidad Patrón Process Coordinator Elementos esenciales Encapsulación del proceso: El coordinador contiene la lógica requerida para alcanzar el objetivo del proceso de negocio, siendo un solo punto de definición hace más fácil entender y modificar. Bajo acoplamiento: Los componentes de servidores no se conscientes de su rol en el proceso ni su orden de ejecución Comunicación flexible: La comunicación entre el coordinador y los servidores puede ser sincrónica o asincrónica 24

Atributos de calidad para el patrón Coordinador (1) 25

Atributos de calidad para el patrón Coordinador (2) 26

2. Asignación de componentes Su objetivo es definir los componentes principales que comprenderán el diseño La arquitectura de referencia define los patrones de comunicación en general para los componentes Se busca además: Identificar como los componentes se ajustan a los patrones Identificar las interfaces y los servicios que cada componente soporta para así Validar la asignación de responsabilidades de los componentes Identificar dependencias entre ellos Identificar las partes de la arquitectura candidatas a distribuirse en varios servidores 27

Guías para diseño de componentes Por ser los componentes el más alto nivel de abstracción en el diseño de la AS, existe similitudes en su diseño con las técnicas de diseño orientado a objetos: o Minimizar dependencias entre componentes evitando propagar los cambios entre muchos componentes y por ende sus pruebas. o Diseñar componentes que encapsulen un alta cohesión del conjunto de responsabilidades. La cohesión es una medida de que tan bien las partes de un componente encajan entre si. 28

Guías para diseño de componentes (2) o Aísle las dependencias con tecnologías Middleware y cualquier COTS. Esto facilita los cambios en el diseño de la AS. Por supuesto se incurren en más esfuerzo para construir y algo de penalidad en desempeño. o Utilice la descomposición para estructurar componentes jerárquicamente. El componente más externo define la interfaz pública disponible. Internamente los llamados a esa interfaz son delegados a otros componentes localmente definidos cuyas interfaces no son visibles externamente. 29

Guías para diseño de componentes (3) o Reduzca al mínimo las llamadas entre componentes, ya que pueden resultar costosas si los componentes se distribuyen. Trate de agregar secuencias de llamadas entre componentes en una sola llamada que pueda realizar el procesamiento necesario en una sola solicitud. Esto crea métodos de grano grueso o servicios en las interfaces que hacen más trabajo por cada requerimiento-invocación. 30

Ejercicio de aplicación de técnicas de diseño 31

Validación Durante el proceso de creación de la arquitectura, el objetivo de la fase de validación consiste en aumentar la confianza del equipo de diseño con respecto a que la arquitectura es adecuada para cumplir con los requerimientos del sistema. Aunque se puede estar actuando sobre un sistema existente o nuevo al final el resultado del modelado es un diseño de AS por lo que el proceso de validación puede ser el mismo para ambos casos. Se puede escoger entre dos técnicas: Pruebas manuales o Prototipos.

Técnicas de validación El objetivo de ambas técnicas es el de identificar posibles deficiencias y debilidades en el diseño para que puedan ser mejoradas antes de la implementación. 1. Prueba manual: Involucra la prueba de la AS usando escenarios 2. Prototipo: Involucra la construcción de un prototipo que crea un arquetipo de la aplicación deseada, de esta forma su capacidad para satisfacer las necesidades se pueden evaluar con más detalle a través de prototipos. 33

Prueba manual por escenarios Los escenarios son una técnica desarrollada en el SEI para desentrañar las cuestiones relativas a una arquitectura a través de pruebas y evaluación manual. Los escenarios están relacionados con las preocupaciones arquitectónicas tales como los atributos de calidad, y tienen como objetivo poner de relieve las consecuencias de las decisiones arquitectónicas que se encapsulan en el diseño. Los escenarios pueden ser concebidos para hacer frente a cualquier requisito de calidad de interés en una aplicación dada. 34

El método SEI ATAM Este método describe los escenarios y su generación en gran detalle. Ejemplo: Un escenario de "disponibilidad muestra que los mensajes se pueden perder si un servidor falla antes de que los mensajes han sido entregados. La implicación aquí es que los mensajes no se han persistido en el disco, por razones de desempeño probablemente. La pérdida de los mensajes en algunos contextos de aplicación puede ser aceptable. Si no es así, este escenario pone de relieve un problema, que puede obligar al diseño de la adopción mensajería persistente para evitar la pérdida de mensajes 35

Ejemplo de escenarios ATAM 36

Prototipos de Arquitectura Los prototipos son versiones reducidas o restringidas de la aplicación deseada, creadas específicamente para poner a prueba algunos los aspectos del diseño de alto riesgo o que puedan ser mal entendidos. Los prototipos se utilizan normalmente con dos objetivos: Prueba de concepto: Puede la arquitectura como esta diseñada construirse en una forma que pueda satisfacer los requerimientos? Prueba de tecnología: La tecnología (middleware, aplicaciones integradas, librerías, etc.) seleccionadas para implementar la aplicación se comportan como se espera? 37

Ejercicio de aplicación de técnicas de validación 38

Créditos Software Architecture in Practice, Second Edition. Len Bass, Paul Clements, Rick Kazman Essential Architecture. Ian Gorton. Documenting Software Architectures, Views and Beyond. Second Edition. Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Curso de Arquitectura de Software, Universidad de Chile. Cecilia Bastarrica, Daniel Perovich. 39