Arquitectura de software

26,833 views

Published on

Published in: Education

Arquitectura de software

  1. 1. Arquitectura de Software Fundamentos de Ingeniería de Software Por: Liliana Pacheco . Tutor: Danilo Jaramillo
  2. 2. Diseño en el contexto de laingeniería de softwareEl diseño del software siempre debeempezar con en el análisis de losdatos, pues son los fundamentos detodos los demás elementos del diseño.
  3. 3. Lineamientos y atributos de lacalidad del softwareCaracterísticas que funcionan como guíapara un buen diseño: Debe implementar todos los requerimientos contenidos en el modelo de requerimientos. Debe ser una guía legible y comprensible para quienes generan el código y para quienes lo prueban.
  4. 4. Lineamientos de CalidadDebe tener una arquitectura que:• Se haya creado con el empleo de estilos arquitectónicos reconocibles.• Esté compuesta de componentes con buenas características de diseño.• Se implementen en forma evolutivaDebe ser modular: dividido lógicamente en elementos ysubsistemas.Debe contener distintas representaciones de datosarquitectura, interfaces y componentes.Debe llevar componentes que tengan característicasfuncionales independientes.Debe representarse con una notación que comunique coneficacia su significado
  5. 5. Atributos de la Calidad Funcionabilidad Características y Capacidades Usabilidad Factor Humano Confiabilidad Exactitud de los resultados Rendimiento Velocidad Mantenibilidad Capacidad de Ampliación
  6. 6. Conceptos de diseño Abstracción Es uno de los modos fundamentalescon los que los humanos luchamos conla complejidad. Arquitectura Es el producto del trabajo dedesarrollo que tiene la rentabilidad másalta para una inversión en cuanto acalidad, secuencia de actividad y costo.
  7. 7.  Patrones Describe un problema que ocurre unay otra vez en nuestro ambiente, por loque describe el núcleo de la solución deese problema, en forma tal que puedeusarse ésta un millos de veces sinrepetir lo mismo ni una sola vez.División de problemasCualquier problema complejo puedemanejarse con mas facilidad si sesubdivide
  8. 8.  ModularidadEs la manifestación mas común de ladivisión de problemas, cada una de lascuales debe ser tan independientecomo sea posible de la aplicación en síy de las restantes partes. Ocultamiento de la InformaciónEs esconder los detalles de lasestructuras de datos y el procesamientotras una interfaz de modulo.
  9. 9.  RediseñoProceso de cambiar un sistema desoftware en forma tal que no se alterael comportamiento externo del código(diseño), pero si mejora la estructurainterna.
  10. 10. Definición de Arquitectura deSoftwareUna arquitectura software consiste enun conjunto de patrones yabstracciones coherentes queproporcionan el marco de referencianecesario para guiar la construcción delsoftware para un sistema deinformación.
  11. 11. Importancia de la ArquitecturaPermiten la comunicación entre las partes interesadasen el desarrollo de un sistema basado en un sistemade computadora.Resalta las primeras decisiones que tendrán un efectoprofundo en todos los trabajos de IS siguiente.Constituye un modelo relativamente pequeño yasequible por la vía intelectual sobre como estaestructurado el sistema y la forma en que suscomponentes trabajan juntos
  12. 12. Géneros Arquitectónicos Inteligencia artificial  Industrial Comerciales y no  Legal lucrativos  Médicos Comunicaciones  Militares Contenido de autor  Sistemas Operativos Dispositivos  Plataformas Entretenimiento y  Científicos deportes  Herramientas Financieros  Transporte Juegos  Utilidades Gobierno
  13. 13. Estilos arquitectónicosSon una transformación que se imponeal diseño de todo el sistema. El objetivoes establecer una estructura para todoslos componentes del sistema.
  14. 14. Taxonomía de estilos dearquitecturaArquitecturas: ◦ Centradas en los datos ◦ De flujo de datos ◦ De llamar y regresar ◦ En capas
  15. 15. Arquitectura centrada endatos Como parte central en esta arquitectura aparece un almacén de datos es cual es accedido frecuentemente por otros componentes que actualizan añaden y borran dichos componentes. El software cliente accede a un repositorio vacío. Las arquitecturas centradas en datos proporcionan integridad, es decir los componentes existentes pueden cambiar y pueden añadirse nuevos componentes a la arquitectura sin que afecte a otros clientes.
  16. 16. Ejemplo
  17. 17. Arquitectura de flujo de datosSe basa en un patrón tuberías y filtros. Este consta deun conjunto de componentes denominados “filtros”conectados entre si por “tuberías” que transmiten losdatos desde un componente al siguiente.Cada filtro trabaja de manera independiente de loscomponentes que se encuentren situados antes odespués de ellaobtiene como resultado datos de salida en un formatoespecifico
  18. 18. Ejemplo
  19. 19. Arquitectura de llamar y regresarPermite a los diseñadores de softwareconseguir estructuras relativamente fáciles demodificar y escalar.Podemos encontrar diferentes estilos dentro deeste tipo: Programa principal/subprograma Descompone las funciones en una jerarquía de control donde el programa principal invoca a programas subordinados los cual esa su vez invocan a otros. Llamada a procedimiento remoto. Los componentes de la arquitectura sondistribuidos entre diferentes ordenadores de lared.
  20. 20. Ejemplo
  21. 21. Arquitectura Orientada a ObjetosLos componentes del sistema encapsulan datos y operaciones que deben de utilizarse para manipular dichos datos.
  22. 22. Arquitectura en capasSe definen como un conjunto de niveleso capas cada nivel interno que seatraviesa se aproxima mas al nivel delconjunto de instrucciones maquina.Sistemas en capas puros. Cada capasolo puede comunicarse con lasvecinas. Esta solución aunque menoseficiente facilita la portabilidad en losdiseños.
  23. 23. Ejemplo
  24. 24. Diseño arquitectónico Muchas notaciones y lenguajes existen para representar el diseño de artefactos de software. Algunos describen un diseño estructural organizado, otros representan el inicio del software. Estas notaciones son generalmente usadas durante un diseño natural y se pueden usar durante ambos casos. Una representan notaciones que son usadas en el contexto de específicos métodos en las estrategias de diseño y métodos de sub áreas, pero estas categorías son categorizadas en notaciones para describir la estructura estática y la dinámicas vistas.
  25. 25. Representación del sistema en elcontextoEl contexto arquitectónico representa lamanera en la que el software interactúacon las entidades externas a susfronteras. (fig. 9.6)ArquetiposSon bloques constructivos de un diseñoarquitectónico. Sirven de base para laclasificación y establece caridad.
  26. 26. Método de la negociación paraanalizar la arquitectura1. Escenarios de la investigación  caso de uso2. Obtención de los requerimientos y restricciones requerimientos3. Descripción de los estilos o patrones de arquitectura elegidos paraabordar los escenarios y requerimientos. • Perspectiva modular • Perspectiva de proceso • Perspectiva de flujo4. Evaluación de los atributos de calidad por separado.5. Identificación de la sensibilidad de los atributos de calidad de variosatributos arquitectónicos para un estilo de arquitectura especifico.6. Crítica de las arquitecturas candidatas.
  27. 27. Lenguaje de descripciónarquitectónica (LDA) Provee la semántica y sintaxis para describir una arquitectura de software.
  28. 28. Mapeo de la Arquitectura con el uso del flujo dedatos.Mapeo de transformación Paso1: Revisión del modelo del sistema fundamental. Paso2. Revisar y mejorar los diagramas de flujos de datos para el software Paso3. Determinar si el DFD tiene características de flujo de transformación o de transacción. Paso4. Aísle el centro de transformación, especificando las fronteras de entrada y salida del flujo. Paso5. Realizar el rediseño de primer nivel Paso6. Realizar el rediseño de segundo nivel Paso7. Refinar la arquitectura de primera iteración con el empleo de heurísticos de diseño para mejorar la calidad del software.
  29. 29. Bibliografía http://www-oei.eui.upm.es/Asignaturas/BD/BD/docbd/tema/Arquitectura.pdf http://es.scribd.com/doc/11757858/Arquitecturas-Del-Desarrollo-de-Software http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/fuentes_k_jf/capitulo2.p df

×