ARQUITECTURA SOFTWARE (AS)

ARQUITECTURA SOFTWARE (AS) LA DISCIPLINA DE DISEÑO INCLUYE LAS SIGUIENTES TAREAS: 1. Definición de los casos reales de uso. (Concretar los Casos de us...
29 downloads 0 Views 285KB Size
ARQUITECTURA SOFTWARE (AS) LA DISCIPLINA DE DISEÑO INCLUYE LAS SIGUIENTES TAREAS: 1. Definición de los casos reales de uso. (Concretar los Casos de uso. de ser posible, mostrar diseños de ventanas). 2. Definir los reportes, la interfaz del usuario y los storyboards. (Eso hace parte del diseño general de interfaz de usuario). 3. PERFECCIONAR LA ARQUITECTURA DEL SISTEMA. (El tema de esta presentación). 4. Definir los Diagramas de Interacción. (Los de secuencia y los de colaboración, Tema ya visto). 5. Definir los Diagramas de Clases de diseño. (Tema ya visto). 6. Definir el esquema de la base de datos. (Para eso está el curso de Bases de Datos).

Guía 5. Conceptos de Arquitectura y algo más sobre UML

1

ARQUITECTURA NO ES / NO ESTÁ… • Una normativa madura. • Igual en la academia y en la industria. • Diseño de software con UML.

• Naturalmente vinculada con ingeniería & ciclo de vida – Ocurre en algún punto entre la obtención de requerimientos y la especificación de casos de uso, o entre éstos y el diseño.

• Naturalmente vinculada a metodología (RUP). • Naturalmente relacionada con modelado Orientado a Objetos.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

2

ARQUITECTURA ES… • Vista estructural de alto nivel • Define estilo o combinación de estilos para una solución • Se concentra en requerimientos no funcionales – Los requerimientos funcionales se satisfacen mediante modelado y diseño de aplicación • Esencial para éxito o fracaso de un proyecto

Una definición reconocida es la de Clements: La AS es, a grandes rasgos, una vista del sistema que incluye los componentes principales del mismo, la conducta de esos componentes según se la percibe desde el resto del sistema y las formas en que los componentes interactúan y se coordinan para alcanzar la misión del sistema. La vista arquitectónica es una vista abstracta, aportando el más alto nivel de comprensión y la supresión o diferimiento del detalle inherente a la mayor parte de las abstracciones. Guía 5. Conceptos de Arquitectura y algo más sobre UML

3

ARQUITECTURA ES… En una definición semejante, hay que aclararlo, la idea de “componente” no es la de la correspondiente tecnología de desarrollo, sino la de elemento propio de un estilo. Un componente es una cosa, una entidad, a la que los arquitectos prefieren llamar “componente” antes que “objeto”.

La definición “oficial” de AS se ha acordado que sea la que brinda el documento de IEEE Std 1471-2000: La Arquitectura de Software es la organización fundamental de un sistema encarnada en sus componentes, las relaciones entre ellos y el ambiente y los principios que orientan su diseño y evolución. Guía 5. Conceptos de Arquitectura y algo más sobre UML

4

ESTILOS ARQUITECTÓNICOS • Estilos de Flujo de Datos – Tubería y filtros

• Estilos Centrados en Datos – Arquitecturas de Pizarra o Repositorio

• Estilos de Llamada y Retorno – Model-View-Controller (MVC) – Arquitecturas en Capas – Arquitecturas Orientadas a Objetos – Arquitecturas Basadas en Componentes

• Estilos de Código Móvil

– Arquitectura de Máquinas Virtuales

• Estilos heterogéneos

– Sistemas de control de procesos – Arquitecturas Basadas en Atributos

• Estilos Peer-to-Peer

– Arquitecturas Basadas en Eventos – Arquitecturas Orientadas a Servicios (SOA) – Arquitecturas Basadas en Recursos

Guía 5. Conceptos de Arquitectura y algo más sobre UML

5

ESTILOS ARQUITECTÓNICOS Tubos y Filtros. Ejemplos de aplicación: UNIX. Se lo utiliza comúnmente para la programación de shell scripts (Archivos ejecutables). Usos. Se sugiere aplicar este estilo en: • • • • •

Procesamiento de señales Procesamiento de imágenes o sonido Compiladores Procesamiento de cadenas Sistemas con poca o nula interacción con el usuario cuyo flujo de datos se entienda o perciba como continuo (es decir en forma de stream).

Guía 5. Conceptos de Arquitectura y algo más sobre UML

6

ESTILOS ARQUITECTÓNICOS Invocación Implícita. También conocido como: Tool Abstraction Eventos - Publicar y Suscribir Ejemplos de aplicación: • Interfaces gráficas de usuario (GUI) • Entornos integrados de desarrollo (IDE); integración de aplicaciones • Planillas de cálculo • Triggers en bases de datos Usos. Se sugiere aplicar este estilo cuando: • Se quiera mantener desacoplados a los componentes del sistema; en el caso extremo se espera que ningún componente sepa de la existencia de otros componentes. • Los componentes no requieran pasarse grandes cantidades de información entre sí. • No se está seguro que las interfaces de los componentes sean las que actualmente están definidas y se espere se requieran cambios en ellas. • Se quiera mantener muy independientes a los distintos sub-sistemas de un sistema; posiblemente los sub-sistemas implementen otros estilos. Guía 5. Conceptos de Arquitectura y algo más sobre UML

7

ESTILOS ARQUITECTÓNICOS Sistemas Estratificados. También conocido como: Máquinas abstractas jerárquicas. Ejemplos de aplicación: • Máquinas Virtuales (Java Virtual Machine, por ejemplo) • API’s (Application Programming Interface). • Sistemas operativos. • Protocolos de red (por ejemplo el modelo OSI y en particular la forma en que se implementan los protocolos TCP/IP).

Usos. Se sugiere aplicar este estilo cuando: Este estilo arquitectónico es muy útil para estructurar aplicaciones que pueden ser descompuestas en grupos de sub-tareas cada una de las cuales está a un nivel de abstracción particular. Los grupos están ordenados jerárquicamente según su nivel de abstracción.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

8

ESTILOS ARQUITECTÓNICOS Blackboard Systems (BS). También conocidos como “Pizarrón” Este estilo se aplica en aquellos dominios de aplicación inmaduros, en particular BS se utiliza habitualmente para: • • • • •

Reconocimiento de voz. Reconocimiento de imágenes (detección de sospechosos, búsqueda de huellas dactilares, reconocimiento óptico de caracteres, etc.). Vigilancia. Toma de decisiones automáticas o semi-automáticas (otorgamiento de créditos, control vehicular, control de robots, etc.). Detección de anomalías a partir de grandes cantidades de información (intrusos, impurezas, semántica, etc.).

Guía 5. Conceptos de Arquitectura y algo más sobre UML

9

ESTILOS ARQUITECTÓNICOS Blackboard Systems (BS). También conocidos como “Pizarrón” Usos. Se sugiere aplicar este estilo para: Organizar datos y subsistemas especializados que unen su conocimiento para calcular una solución parcial o aproximada de un problema para el cual no se conoce una solución algorítmica. El estilo BS se debe aplicar cada vez que se deba resolver un problema para el cual no se conoce una solución algorítmica (o si se conoce una, es computacionalmente muy costosa) o aquellos problemas para los cuales una solución parcial o aproximada es útil. Un ejemplo típico del primer caso es el “problema del viajero” (recorridos en grafos), en tanto que un ejemplo típico del segundo caso es el reconocimiento de voz o imágenes.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

10

ARQUITECTURA DE 3 CAPAS 1. Presentación: Ventanas, Reportes, etc. 2. Lógica de aplicaciones: tareas y reglas que rigen el proceso. 3. Almacenamiento: Mecanismo de almacenamiento persistente.

La calidad tan especial de la arquitectura de tres capas consiste en aislar la lógica de la aplicación y en convertirla en una capa intermedia bien definida y lógica del software. En la capa de presentación se realiza relativamente poco procesamiento de

la

aplicación;

las ventanas envían a

la

capa intermedia

peticiones de trabajo. Y éste se comunica con la capa de almacenamiento del extremo posterior.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

11

ARQUITECTURA DE 3 CAPAS contrasta

Una de sus desventajas es la

con el diseño de dos capas,

imposibilidad de representar

donde

la lógica en componentes

Esta

arquitectura (por

ejemplo)

de

aislados,

las

reutilizar el software. No es

definiciones de ventana, que

posible distribuir la lógica de

leen y escriben directamente

aplicaciones

en una base de datos; no hay

computadora diferente.

colocamos

la

aplicaciones

dentro

una

capa

lógica de

intermedia

lo

que

impide

en

una

que

separe la lógica.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

12

ARQ. MULTICAPAS OO Incluye la división de las responsabilidades encontramos en la arquitectura clásica de tres capas.

que

Las responsabilidades se asignan a los objetos de software.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

13

ARQ. MULTICAPAS OO 1. Descomposición de la capa de la lógica de aplicaciones. En un diseño orientado a objetos, la capa de la lógica de aplicaciones se divide en otras menos densas. Esta arquitectura, organizada a partir de las clases de software se muestra en la figura 1. La capa de la lógica de aplicaciones está constituida por las siguientes capas: Objetos del dominio: clases que representan los conceptos del dominio; por ejemplo, una venta. Servicios: los objetos servicio de las funciones como la interacción de bases de datos, los reportes, las comunicaciones y la seguridad.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

14

ARQ. MULTICAPAS OO 2. Más allá de las tres capas: arquitectura multicapas. Cuando vemos la arquitectura desde la perspectiva de una descomposición más detallada que se observa en la figura 1, podemos prescindir de la designación “arquitectura de tres capas” y hablar en cambio de arquitectura multicapas; en ellas está implícita la capa intermedia de la lógica de aplicaciones. Es posible agregar más capas y descomponer ulteriormente las ya existentes. Así, la capa Servicios puede dividirse en servicios de alto y bajo nivel (por ejemplo, generación de reportes frente a entrada/salida). 3. Despliegue.

Una arquitectura lógica de tres capas puede desplegarse o implementarse físicamente en varias configuraciones: •Capas de la lógica de presentación y de aplicaciones en la computadora del cliente, en su almacenamiento o en su servidor.

•La presentación en la computadora del cliente, la lógica de aplicaciones en un servidor de la aplicación y el almacenamiento en un servidor de datos independiente. Guía 5. Conceptos de Arquitectura y algo más sobre UML

15

ARQ. MULTICAPAS OO 4. Motivos para utilizar la arquitectura multicapas.

Entre los motivos por los cuales se recurre a la arquitectura multicapas se cuentan los siguientes: • Aislamiento de la lógica de aplicaciones en componentes independientes susceptibles de reutilizarse después en otros sistemas.

• Distribución de las capas en varios nodos físicos de cómputo y en varios procesos. Esto puede mejorar el desempeño, la coordinación y el compartir la información en un sistema cliente-servidor. • Asignación de los diseñadores para que construyan determinadas capas; por ejemplo, un equipo que trabaje exclusivamente en la capa de presentación. Y así se brinda soporte a los conocimientos especializados en las habilidades de desarrollo y también a la capacidad de realizar actividades simultáneas en equipo.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

16

ARQUITECTURA Y UML UML ofrece el mecanismo paquete que permite describir los grupos de elementos o subsistemas. Un paquete es un conjunto de cualquier tipo de elementos de un modelo: clases, casos de uso, diagramas de colaboración, u otros paquetes (los anidados).

Un sistema puede examinarse íntegramente dentro del ámbito de un solo paquete de alto nivel: el paquete Sistema. El paquete define un espacio de un nombre anidado, de modo que los elementos del mismo nombre pueden duplicarse dentro de varios paquetes.

1. Notación de los paquetes de UML. Un paquete se muestra gráficamente como una carpeta con etiquetas. Los paquetes subordinados se incluyen en su interior. El nombre del paquete se encuentra dentro de la etiqueta si el paquete describe sus elementos; en caso contrario estará en el centro de la misma carpeta.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

17

ARQUITECTURA Y UML 2. Diagramas de los paquetes descriptivos de la arquitectura. Los paquetes nos permiten describir la arquitectura de un sistema con la notación UML. En la Figura 3 se incluye una vista alterna de la Figura 1, que representa los agrupamientos lógicos mediante los diagramas de un paquete de UML. A este tipo de diagrama podemos llamarlo diagrama de paquetes de la arquitectura.

Guía 5. Conceptos de Arquitectura y algo más sobre UML

18

ARQUITECTURA Y UML IDENTIFICACIÓN DE LOS PAQUETES. Agrupe los elementos en un paquete aplicando la siguiente directriz: 1. Agrupe los elementos para ofrecer en un paquete un servicio común (o una familia de servicios relacionados), con un nivel relativamente alto de acoplamiento y colaboración. 2. En cierto nivel de abstracción, se verá el paquete como muy cohesivo (tiene responsabilidades estrechamente relacionadas). 3. En cambio, habrá relativamente bajo acoplamiento y colaboración entre los elementos de los paquetes.

ESTRATOS Y PARTICIONES. Podemos caracterizar una arquitectura multicapas como compuesta de estratos (subcapas) y particiones (Figura 5). Los estratos de una arquitectura representan las capas verticales, mientras que las particiones representan la división horizontal de subsistemas relativamente paralelos de un estrato. Por ejemplo, el estrato Servicios puede dividirse en particiones como Seguridad y Reportes. Guía 5. Conceptos de Arquitectura y algo más sobre UML

19

ARQUITECTURA Y UML

-------------- FIN DEL DOCUMENTO Guía 5. Conceptos de Arquitectura y algo más sobre UML

20