Vous êtes sur la page 1sur 25

Arquitectura de Software

Introduccin Arquitecturas de Software

Introduccin
El diseo arquitectnico se interesa por entender cmo debe organizarse un sistema y cmo tiene que disearse la estructura global de ese sistema. El diseo arquitectnico es la primera etapa en el proceso de diseo del software, identifica los principales componentes estructurales en un sistema y la relacin entre ellos.

Introduccin (Cont.)

Modelo abstracto de la arquitectura para un sistema de robot de empaquetado, que indica los componentes que tienen que desarrollarse.

Definicin
La arquitectura de software es vista como la estructura del sistema en funcin de la definicin de los componentes y sus interacciones. Esta estructura se constituye de componentes -mdulos o piezas de cdigo que nacen de la nocin de abstraccin, cumpliendo funciones especficas, e interactuando entre s con un comportamiento definido

Definicin (Cont.)
La arquitectura es una abstraccin del sistema. Los sistema pueden tener y tienen una estructura. Todo sistema tiene una arquitectura. Tener una arquitectura no es lo mismo que tener una arquitectura conocida por todos. Si no se desarrolla la arquitectura explcitamente, se obtendr una de todas formas, pero puede no gustarnos lo que obtenemos.

Definicin (Cont.)
Importancia
La descomposicin arquitectnica es necesaria para estructurar y organizar la especificacin. Por lo tanto, como parte del proceso de ingeniera de requerimientos, se debe proponer una arquitectura de sistema abstracta donde se asocien grupos de funciones de sistemas o caractersticas con componentes o subsistemas a gran escala. Puede usar esta descomposicin para discutir los requerimientos y las caractersticas del sistema.

Definicin (Cont.)
8

Por qu es importante la Arquitectura?


Representa las decisiones de diseo ms tempranas Es el primer artefacto de diseo Esencial para la reutilizacin sistemtica lo ms difcil de cambiar lo ms difcil de tener correcto vehculo de comunicacin entre los interesados se ocupa de performance, modificabilidad, confiabilidad, seguridad transferible, abstraccin reutilizable

Una buena arquitectura sienta las bases para un sistema exitoso Una mala arquitectura generalmente provoca alguna forma de desastre

Los Requisitos Determinan el Diseo

Variadas formas de requisitos

Conocimiento disponible

Sistema

Cmara

Sensores

Host

Sistema de Visin

Controlador

Arquitecto Arquitectura
Motores

Definicin (Cont.)
Las arquitecturas de software se disean en dos niveles de abstraccin:
Arquitectura en pequeo se interesa por la arquitectura de programas individuales. En este nivel, uno se preocupa por la forma en que el programa individual se separa en componentes. Arquitectura en grande se interesa por la arquitectura de sistemas empresariales complejos que incluyen otros sistemas, programas y componentes de programa. Tales sistemas empresariales se distribuyen a travs de diferentes computadoras, que diferentes compaas administran y poseen.

Definicin (Cont.)
La arquitectura de software es importante porque afecta el desempeo y la potencia, as como la capacidad de distribucin y mantenimiento de un sistema (Bosch, 2000). Bass y sus colaboradores (2003) analizan tres ventajas de disear y documentar de manera explcita la arquitectura de software:

Definicin (Cont.)
1. Comunicacin con los participantes. Puede usarse como un enfoque para la discusin. 2. Anlisis del sistema. En una etapa temprana en el desarrollo del sistema, aclarar la arquitectura del sistema requiere cierto anlisis 3. Reutilizacin a gran escala. Un modelo de una arquitectura de sistema es una descripcin corta y manejable de cmo se organiza un sistema y cmo inter operan sus componentes. Por lo general, la arquitectura del sistema es la misma para sistemas con requerimientos similares y, por lo tanto, puede soportar reutilizacin de software a gran escala.

Modelado
Las arquitecturas de sistemas se modelan con frecuencia usando diagramas de bloques simples.
Cada recuadro en el diagrama representa un componente. Los recuadros dentro de recuadros indican que el componente se dividi en subcomponentes. Las flechas significan que los datos y/o seales de control pasan de un componente a otro en la direccin de las flecha

Modelado (Cont.)
Los diagramas de bloque presentan una imagen de alto nivel de la estructura del sistema e incluyen fcilmente a individuos de diferentes disciplinas que intervienen en el proceso de desarrollo del sistema. Los diagramas de bloque son una forma adecuada para describir la arquitectura del sistema durante el proceso de diseo.

Decisiones en el diseo arquitectnico


El diseo arquitectnico es un proceso creativo en el cual se disea una organizacin del sistema que cubrir los requerimientos funcionales y no funcionales de ste. Es til pensar en el diseo arquitectnico como un conjunto de decisiones a tomar en vez de una secuencia de actividades.

Decisiones en el diseo arquitectnico (Cont.)


La arquitectura de un sistema de software puede basarse en un patrn o un estilo arquitectnico particular. Un patrn arquitectnico es una descripcin de una organizacin del sistema (Garlan y Shaw, 1993), tal como una organizacin cliente-servidor o una arquitectura por capas. Es necesario elegir la estructura ms adecuada, como cliente-servidor o estructura en capas, que le permita satisfacer los requerimientos del sistema.

Decisiones en el diseo arquitectnico (Cont.)


Estructura en capas

Se utiliza para dividir sistemas de software complicados.

Decisiones en el diseo arquitectnico (Cont.)


1. Capa de Presentacin: Referente a la interaccin entre el usuario y el software. Puede ser tan simple como un men basado en lneas de comando o tan complejo como una aplicacin basada en formas. Su principal responsabilidad es mostrar informacin al usuario, interpretar los comandos de este y realizar algunas validaciones simples de los datos ingresados.

Decisiones en el diseo arquitectnico (Cont.)


2. Capa de Reglas de Negocio (Empresarial): Tambin denominada Lgica de Dominio, esta capa contiene la funcionalidad que implementa la aplicacin. Involucra clculos basados en la informacin dada por el usuario y datos almacenados y validaciones. Controla la ejecucin de la capa de acceso a datos y servicios externos.

Decisiones en el diseo arquitectnico (Cont.)


3. Capa de Datos: Esta capa contiene la lgica de comunicacin con otros sistemas que llevan a cabo tareas por la aplicacin. Estos pueden ser monitores transaccionales, otras aplicaciones, sistemas de mensajeras, etc. Para el caso de aplicaciones empresariales, generalmente esta representado por una base de datos, que es responsable por el almacenamiento persistente de informacin.

Decisiones en el diseo arquitectnico (Cont.)


Cliente-servidor

Patrn arquitectnico para el desarrollo de sistemas distribuidos. Esta arquitectura consiste bsicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta.
Cliente (parte activa) Demanda servicios a los servidores Se asume que cada peticin deber obtener respuesta Diseado para soportar la interaccin con el usuario final. Servidor (parte pasiva) Espera las peticiones de los clientes Procesa esas peticiones y enva una respuesta Diseo orientado a maximizar la eficiencia.

Decisiones en el diseo arquitectnico (Cont.)


Debido a la estrecha relacin entre los requerimientos no funcionales y la arquitectura de software, el estilo y la estructura arquitectnicos particulares que se elijan para un sistema dependern de los requerimientos de sistema no funcionales: 1. Rendimiento: Si el rendimiento es un requerimiento crtico, la arquitectura debe disearse para localizar operaciones crticas dentro de un pequeo nmero de componentes, con todos estos componentes desplegados en la misma computadora en vez de distribuirlos por la red.

Decisiones en el diseo arquitectnico (Cont.)


2. Seguridad: Si la seguridad es un requerimiento crtico, ser necesario usar una estructura en capas para la arquitectura con un alto nivel de validacin de seguridad aplicado a dichas capas. 3. Proteccin: la arquitectura debe disearse de modo que las operaciones relacionadas con la proteccin se ubiquen en algn componente individual o en un pequeo nmero de componentes. Esto reduce los costos y problemas de validacin de la proteccin, y hace posible ofrecer sistemas de proteccin relacionados que, en caso de falla, desactiven con seguridad el sistema.

Decisiones en el diseo arquitectnico (Cont.)


4. Disponibilidad: la arquitectura tiene que disearse para incluir componentes redundantes de manera que sea posible sustituir y actualizar componentes sin detener el sistema. 5. Mantenibilidad: la arquitectura del sistema debe disearse usando componentes autocontenidos de grano fino que puedan cambiarse con facilidad. Los productores de datos tienen que separarse delos consumidores y hay que evitar compartir las estructuras de datos.

Ejercicios
1. Cuando se describe un sistema, explique por qu es posible que deba disear la arquitectura del sistema antes de completar la especificacin de requerimientos. 2. Se le pide preparar y entregar una presentacin a un administrador no tcnico para justificarla contratacin de un arquitecto de sistemas para un nuevo proyecto. Escriba una lista que establezca los puntos clave de su presentacin. Por supuesto, debe explicar qu se entiende por arquitecto de sistemas. Mnimo una cuartilla por cada ejercicio, anexa ambos documentos a tu Portafolio de evidencias.

Vous aimerez peut-être aussi