Diseño de-la-arquitectura-de-software

24
DISEÑO DE LA ARQUITECTURA DE SOFTWARE FRANKLIN ALEXIS LOPEZ BLANCO PYS IV

Transcript of Diseño de-la-arquitectura-de-software

Page 1: Diseño de-la-arquitectura-de-software

DISEÑO DE LA ARQUITECTURA DE SOFTWAREFRANKLIN ALEXIS LOPEZ BLANCOPYS IV

Page 2: Diseño de-la-arquitectura-de-software

¿QUE ES LA ARQUITECTURA DE SOFTWARE? la Arquitectura de Software se refiere a “las estructuras

de un sistema, compuestas de elementos con propiedades visibles de forma externa y las relaciones que existen entre ellos”.

Es un conjunto de patrones que proporcionan un marco de referencia necesario para guiar la construcción de un software, permitiendo a los programadores, analistas y todo el conjunto de desarrolladores del software compartir una misma línea de trabajo y cubrir todos los objetivos y restricciones de la aplicación. Es considerada el nivel más alto en el diseño de la arquitectura de un sistema puesto que establecen la estructura, funcionamiento e interacción entre las partes del software.

Page 3: Diseño de-la-arquitectura-de-software

CARACTERISTICASLa arquitectura de software forma la columna

vertebral para construir un sistema de software, es en gran medida responsable de permitir o no ciertos atributos de calidad del sistema entre los que se destacan la confiabilidad y el rendimiento del software. Además es un modelo abstracto reutilizable que puede transferirse de un sistema a otro y que representa un medio de comunicación y discusión entre participantes del proyecto, permitiendo así la interacción e intercambio entre los desarrolladores con el objetivo final de establecer el intercambio de conocimientos y puntos de vista entre ellos.

Page 4: Diseño de-la-arquitectura-de-software

DISEÑO ARQUITECTONICO El diseño arquitectónico representa la estructura de

los datos y de los componentes del programa que se requieren para construir un sistema basado en computadora. Considera el estilo de arquitectura que adoptará el sistema, la estructura y las propiedades de los componentes que lo constituyen.

Cuando comienza el diseño arquitectónico, el software que se va a desarrollar debe situarse en contexto, es decir, el diseño debe definir las entidades externas (otros sistemas, dispositivos, personas, etc.) con las que interactúa el software y la naturaleza de dicha interacción.

Page 5: Diseño de-la-arquitectura-de-software

DESCRIPCIONES ARQUITECTONICAS

Cada uno de nosotros tiene una imagen mental de lo que significa la palabra arquitectura. Sin embargo, la realidad es que tiene significados diferentes para distintas personas. La conclusión es que los diversos participantes verán una arquitectura desde puntos de vista diferentes. Esto implica que una descripción arquitectónica en realidad es un conjunto de productos del trabajo que reflejan puntos de vista distintos del sistema.Por ejemplo, el arquitecto de un gran edificio de oficinas debe trabajar con distintos participantes.

Page 6: Diseño de-la-arquitectura-de-software

La preocupación principal del propietario de la edificación (un participante) es garantizar el placer estético y que brinde suficiente espacio de oficinas e infraestructura para garantizar su rentabilidad. Por tanto, el arquitecto debe desarrollar una descripción con el empleo de perspectivas del edificio que se apeguen a las preocupaciones del dueño. Los puntos de vista empleados son dibujos del edificio en tres dimensiones (para ilustrar el aspecto estético) y un conjunto de planos en dos dimensiones que expliquen la preocupación por el espacio de oficinas y la infraestructura. Pero también tienen otros participantes como el fabricante del acero que se usara en el edificio y el arquitecto hará un plano especializado en la estructura de acero. Todas estas preocupaciones representan distintos puntos de vista de la arquitectura.La descripción de la arquitectura de un sistema basado en software debe tener características análogas a las mencionadas para el edificio de oficinas.

Page 7: Diseño de-la-arquitectura-de-software

“Los desarrolladores desean lineamientos claros y decisivos sobre la forma de proceder con el diseño. Los consumidores desean la comprensión clara de los cambios ambientales que deben ocurrir y las garantías de que la arquitectura satisfará las necesidades de negocios. Otros arquitectos desean una comprensión clara y notable de los aspectos clave de la arquitectura.”

Cada uno de estos “deseos” se refleja en un punto de vista diferente representado con el uso de una perspectiva distinta.

Page 8: Diseño de-la-arquitectura-de-software

TAXONOMIA DE ESTILOS ARQUITECTONICOS

ARQUITECTURA CENTRADA EN DATOS:

En el centro de esta arquitectura se halla un almacenamiento de datos (como un archivo o base de datos) al que acceden con frecuencia otros componentes que actualizan, agregan, eliminan o modifican los datos de cierto modo dentro del almacenamiento.

Page 9: Diseño de-la-arquitectura-de-software
Page 10: Diseño de-la-arquitectura-de-software

ARQUITECTURA DE FLUJO DE DATOS:

Esta arquitectura se aplica cuando datos de entrada van a transformarse en datos de salida a través de una serie de componentes computacionales o manipuladores. tiene un conjunto de componentes, llamados filtros, conectados por tubos que transmiten datos de un componente al siguiente. se diseña para esperar una entrada de datos de cierta forma y produce datos de salida (al filtro siguiente) en una forma especificada.

Page 11: Diseño de-la-arquitectura-de-software
Page 12: Diseño de-la-arquitectura-de-software

ARQUITECTURAS DE LLAMAR Y REGRESAR:

Contiene varios subestilos:

Arquitectura de programa principal/subprograma:descompone una función en una jerarquía de control en la que un programa “principal” invoca cierto número de componentes de programa que a su vez invocan a otros.

Arquitectura de llamadas de procedimiento remoto:Los componentes están distribuidos a través de computadoras múltiples en una red.

Page 13: Diseño de-la-arquitectura-de-software

Arquitectura de programa principal/subprograma

Page 14: Diseño de-la-arquitectura-de-software

REPRESENTACION DEL SISTEMA EN CONTEXTO

el arquitecto del software usa un diagrama de contexto arquitectónico (DCA) para modelar la manera en la que el software interactúa con entidades más allá de sus fronteras.

Page 15: Diseño de-la-arquitectura-de-software

LOS SISTEMAS QUE INTERACTÚAN CON EL SISTEMA OBJETIVO SON:

Sistemas superiores: aquellos que utilizan al sistema objetivo como parte de algún esquema de procesamiento de alto nivel.

Sistemas subordinados: Proveen datos necesarios para completar el sistema objetivo.

Sistemas entre iguales: Son los que interactúan sobre una base de igualdad.

Actores: entidades (personas, dispositivos, etc.) que interactúan con el sistema objetivo

Page 16: Diseño de-la-arquitectura-de-software

CON UN EJEMPLO:

Page 17: Diseño de-la-arquitectura-de-software

ARQUETIPOS

Un arquetipo es una clase o un patrón que representa una abstracción fundamental de importancia crítica para el diseño de una arquitectura para el sistema objetivo. En general, se requiere de un conjunto relativamente pequeño de arquetipos a fin de diseñar sistemas incluso algo complejos.

Page 18: Diseño de-la-arquitectura-de-software

Arquetipos de casa segura (EJEMPLO)

Page 19: Diseño de-la-arquitectura-de-software

NODO: un nodo podría comprender 1) varios sensores y 2) varios

indicadores de alarma (salida).

DETECTOR: incluye todos los equipos de detección que alimentan con

información al sistema objetivo.

INDICADOR: representa todos los mecanismos (como la sirena de alarma,

luces, campana, etc.)

CONTROLADOR: ilustra el mecanismo que permite armar o desarmar un nodo.

Page 20: Diseño de-la-arquitectura-de-software

Refinamiento de la arquitectura hacia los componentes

el dominio de aplicación (negocio) es una fuente para la obtención y refinamiento de los componentes. Otra fuente es el dominio de la infraestructura. La arquitectura debe albergar muchas componentes de la infraestructura que hagan posible los componentes de la aplicación, pero que no tengan conexión con el dominio de ésta. Por ejemplo, los componentes de administración de memoria, de comunicación, de base de datos y de administración de tareas con frecuencia están integrados en la arquitectura del software.

Page 21: Diseño de-la-arquitectura-de-software

LENGUAJES DE DESCRIPCION ARQUITECTONICA

El lenguaje de descripción arquitectónica (LDA) provee la semántica y sintaxis para describir una arquitectura de software. Se sugiere que un LDA debe brindar al diseñador la capacidad de desintegrar los componentes arquitectónicos, integrar componentes individuales en bloques arquitectónicos más grandes y representar las interfaces (mecanismos de conexión) que hay entre los componentes. Una vez establecidas las técnicas descriptivas basadas en lenguaje para el diseño de la arquitectura, es más probable que, a medida que el diseño evoluciona, se obtengan métodos de evaluación eficaces para las arquitecturas.

Page 22: Diseño de-la-arquitectura-de-software

ARQUITECTURA CON EL USO DE FLUJO DE DATOS

Una técnica de mapeo llamada diseño estructurado se caracteriza con frecuencia como método de diseño orientado al flujo porque provee una transición conveniente de un diagrama de flujo de datos a la arquitectura del software. La transición del flujo de la información (representada con el diagrama de flujo de datos o DFD) a estructura de programa se consigue como parte de un proceso de seis pasos:

1) se establece el tipo de flujo de información, 2) se indican las fronteras del flujo, 3) se mapea el DFD en la estructura del programa, 4) se define la jerarquía del control, 5) se refina la estructura resultante con el empleo de criterios de

medición para el diseño y heurísticos, y 6) se mejora y elabora la descripción arquitectónica

Page 23: Diseño de-la-arquitectura-de-software

FLUJO DE DATOS (EJEMPLO)

Page 24: Diseño de-la-arquitectura-de-software

MUCHAS GRACIAS! :3