Sunteți pe pagina 1din 14

INSTITUTO TECNOLOGICO DE ORIZABA INGENIERIA EN SISTEMAS COMPUTACIONALES ARQUITECTURA DE SOFTWARE ANA MARIA CHAVEZ TREJO ACTIVIDAD 1 CASTILLO HERNANDEZ

JESUS ALBERTO
ESTUDIANTE TRABAJO DOCENTE MATERIA CARRERA

ORIZABA, VER.

9 DE FEBRERO DE 2014

ARQUITECTURA DE SOFTWARE

ndice

Pgina

Introduccin Estilo arquitectnico Ejemplo Patrn Arquitectnico Ejemplo Arquitectura de Referencia Ejemplo Arquitectura de Software Ejemplo Conclusiones Personales Referencias

3 4 5 7 7 10 10 11 12 13 14

pg. 2

ARQUITECTURA DE SOFTWARE

Introduccin
El Diseo de la arquitectura del software es el equivalente del plano de una casa. ste Ilustra la distribucin general de las habitaciones, su tamao, forma y relaciones entre ellas, as como las puertas y ventanas que permiten el movimiento entre los cuartos R. S. Pressman

La Arquitectura del software de un programa es la estructura o estructuras del sistema, lo que comprende a los componentes del software, sus propiedades externas visibles y las relaciones entre ellos Bass et al.

pg. 3

ARQUITECTURA DE SOFTWARE

Estilos arquitectnicos
Un estilo arquitectnico define una Familia de sistemas (cierto tipo de sistemas) en trminos de patrones estructurales, de control, de comunicacin, etctera La arquitectura de un sistema de software puede basarse en uno (o en varios) modelos o estilos arquitectnicos bien conocidos Para comprender mejor esto veamos una analoga con la arquitectura de edificios

pg. 4

ARQUITECTURA DE SOFTWARE

Un estilo arquitectonico Describe: Un conjunto de conectores entre componentes (comunicacin, coordinacin, cooperacin, etctera) Restricciones que definen cmo se integran los componentes para formar el sistema Un conjunto de componentes (con sus responsabilidades) Modelos que permiten comprender las propiedades de un sistema general en funcin de las propiedades conocidas de las partes que lo integran Ejemplo: Arquitecturas de llamada y retorno Reflejan la estructura del lenguaje de programacin. Permite al diseador del software construir una estructura de programa relativamente fcil de modificar y ajustar a escala. Se basan en la bien conocida abstraccin de procedimientos/funciones/mtodos.-Utilizados en grandes sistemas de software.Persiguen escalabilidad Y modificabilidad. Sistemas de llamada y retorno /programa principal y subrutinas programa principal y subrutinas Estilo clsico desde los aos 1960 pre OO. Descomposicin jerrquica en subrutinas (componentes) que solucionan una tarea o funcin definida. Los datos son pasados como parmetros y el manejador principal proporciona un ciclo de control sobre las subrutinas.

pg. 5

ARQUITECTURA DE SOFTWARE

Caractersticas: Hilo de control simple soportado por los lenguajes de programacin. Usa una estructura implcita de subsistemas. Razonamiento jerrquico, cambios en una sub rutina implican cambios en las subrutinas que hacen la invocacin. Pretenden incrementar el desempeo distribuyendo el trabajo en mltiples procesadores. Ventajas La descomposicin en mdulos disminuye la complejidad. Desventajas Dependencia y acoplamiento entre mdulos. La reutilizacin y el mantenimiento son difciles

pg. 6

ARQUITECTURA DE SOFTWARE

Patrn Arquitectnico
Los patrones arquitectnicos, o patrones de arquitectura, son patrones de diseo de software que ofrecen soluciones a problemas de arquitectura de software en ingeniera de software. Dan una descripcin de los elementos y el tipo de relacin que tienen junto con un conjunto de restricciones sobre cmo pueden ser usados. Un patrn arquitectnico expresa un esquema de organizacin estructural esencial para un sistema de software, que consta de subsistemas, sus responsabilidades e interrelaciones. En comparacin con los patrones de diseo, los patrones arquitectnicos tienen un nivel de abstraccin mayor. Aunque un patrn arquitectnico comunica una imagen de un sistema, no es una arquitectura como tal. Un patrn arquitectnico es ms un concepto que captura elementos esenciales de una arquitectura de software. Muchas arquitecturas diferentes pueden implementar el mismo patrn y por lo tanto compartir las mismas caractersticas. Adems, los patrones son a menudo definidos como una cosa "estrictamente descrita y comnmente disponible". Por ejemplo, la arquitectura en capas es un estilo de llamamiento-y-regreso, cuando define uno un estilo general para interaccionar. Cuando esto es descrito estrictamente y comnmente disponible, es un patrn. Uno de los aspectos ms importantes de los patrones arquitectnicos es que encarnan diferentes atributos de calidad. Por ejemplo, algunos patrones representan soluciones a problemas de rendimiento y otros pueden ser utilizados con xito en sistemas de alta disponibilidad. A primeros de la fase de diseo, un arquitecto de software escoge qu patrones arquitectnicos mejor ofrecen las calidades deseadas para el sistema. Ejemplo de Patrn arquitectnico

Programacin por capas


La programacin por capas es una arquitectura cliente-servidor en el que el objetivo primordial es la separacin de la lgica de negocios de la lgica de diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la capa de presentacin al usuario.

pg. 7

ARQUITECTURA DE SOFTWARE

La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algn cambio, slo se ataca al nivel requerido sin tener que revisar entre cdigo mezclado. Un buen ejemplo de este mtodo de programacin sera el modelo de interconexin de sistemas abiertos. Adems, permite distribuir el trabajo de creacin de una aplicacin por niveles; de este modo, cada grupo de trabajo est totalmente abstrado del resto de niveles, de forma que basta con conocer la API que existe entre niveles. En el diseo de sistemas informticos actual se suelen usar las arquitecturas multinivel o Programacin por capas. En dichas arquitecturas a cada nivel se le confa una misin simple, lo que permite el diseo de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten). El diseo ms utilizado actualmente es el diseo en tres niveles (o en tres capas) Capas y niveles 1. Capa de presentacin: es la que ve el usuario (tambin se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la informacin y captura la informacin del usuario en un mnimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Tambin es conocida como interfaz grfica y debe tener la caracterstica de ser "amigable" (entendible y fcil de usar) para el usuario. Esta capa se comunica nicamente con la capa de negocio. 2. Capa de negocio: es donde residen los programas que se ejecutan, se reciben las peticiones del usuario y se envan las respuestas tras el proceso. Se denomina capa de negocio (e incluso de lgica del negocio) porque es aqu donde se establecen todas las reglas que deben cumplirse. Esta capa se comunica con la capa de presentacin, para recibir las solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos de l. Tambin se consideran aqu los programas de aplicacin. 3. Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos. Est formada por uno o ms gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperacin de informacin desde la capa de negocio. Todas estas capas pueden residir en un nico ordenador, si bien lo ms usual es que haya una multitud de ordenadores en donde reside la capa de presentacin (son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos pueden residir en el mismo ordenador, y si el crecimiento de las necesidades lo aconseja se pueden separar en dos o ms ordenadores. As, si el tamao o complejidad de la base de datos aumenta, se puede separar en varios ordenadores los cuales recibirn las peticiones del ordenador en que resida la capa de negocio.
pg. 8

ARQUITECTURA DE SOFTWARE

Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la separacin, esta capa de negocio podra residir en uno o ms ordenadores que realizaran solicitudes a una nica base de datos. En sistemas muy complejos se llega a tener una serie de ordenadores sobre los cuales corre la capa de negocio, y otra serie de ordenadores sobre los cuales corre la base de datos. En una arquitectura de tres niveles, los trminos "capas" y "niveles" no significan lo mismo ni son similares. El trmino "capa" hace referencia a la forma como una solucin es segmentada desde el punto de vista lgico:

Presentacin. (Conocida como capa Web en aplicaciones Web o como capa de usuario en Aplicaciones Nativas) Lgica de Negocio. (Conocida como capa Aplicativa) Datos. (Conocida como capa de Base de Datos)

En cambio, el trmino "nivel" corresponde a la forma en que las capas lgicas se encuentran distribuidas de forma fsica. Por ejemplo:

Una solucin de tres capas (presentacin, lgica del negocio, datos) que residen en un solo ordenador (Presentacin + lgica + datos). Se dice que la arquitectura de la solucin es de tres capas y un nivel. Una solucin de tres capas (presentacin, lgica del negocio, datos) que residen en dos ordenadores (presentacin + lgica por un lado; lgica + datos por el otro lado). Se dice que la arquitectura de la solucin es de tres capas y dos niveles.

pg. 9

ARQUITECTURA DE SOFTWARE

Arquitectura de Referencia
Una arquitectura de referencia proporciona una plantilla de solucin probada para la arquitectura software de aplicaciones en un dominio particular. Una arquitectura de referencia es el conjunto de las principales decisiones de diseo que son aplicables de manera simultnea a mltiples sistemas relacionados, tpicamente dentro de un mismo dominio de aplicacin, con puntos de variacin explcitamente definidos.

Ejemplo
Arquitectura de Referencia SOA

pg. 10

ARQUITECTURA DE SOFTWARE

Arquitectura de Software
La Arquitectura del Software es el diseo de ms alto nivel de la estructura de un sistema. Una Arquitectura de Software, tambin denominada Arquitectura lgica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco Una arquitectura de software se selecciona y disea con base en objetivos y restricciones. Los objetivos son aquellos prefijados para el sistema de informacin, pero no solamente los de tipo funcional, tambin otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interaccin con otros sistemas de informacin. Las restricciones son aquellas limitaciones derivadas de las tecnologas disponibles para implementar sistemas de informacin. Unas arquitecturas son ms recomendables de implementar con ciertas tecnologas mientras que otras tecnologas no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real. La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computacin, sus interfaces y la comunicacin entre ellos. Toda arquitectura debe ser implementable en una arquitectura fsica, que consiste simplemente en determinar qu computadora tendr asignada cada tarea. La arquitectura de software, tiene que ver con el diseo y la implementacin de estructuras de software de alto nivel. Es el resultado de ensamblar un cierto nmero de elementos arquitectnicos de forma adecuada para satisfacer la mayor funcionalidad y requerimientos de desempeo de un sistema, as como requerimientos no funcionales, como la confiabilidad, escalabilidad, portabilidad, y disponibilidad.

Ejemplo
El Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos y la lgica de negocio de una aplicacin de la interfaz de usuario y el mdulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construccin de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representacin de la informacin, y por otro lado para la interaccin del usuario. Este patrn de diseo se basa en las ideas de reutilizacin de cdigo y la separacin de conceptos, caractersticas que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento

pg. 11

ARQUITECTURA DE SOFTWARE

De manera genrica, los componentes de MVC se podran definir como sigue:

El Modelo: Es la representacin de la informacin con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha informacin, tanto consultas como actualizaciones, implementando tambin los privilegios de acceso que se hayan descrito en las especificaciones de la aplicacin (lgica de negocio). Enva a la 'vista' aquella parte de la informacin que en cada momento se le solicita para que sea mostrada (tpicamente a un usuario). Las peticiones de acceso o manipulacin de informacin llegan al 'modelo' a travs del 'controlador. El Controlador: Responde a eventos (usualmente acciones del usuario) e invoca peticiones al 'modelo' cuando se hace alguna solicitud sobre la informacin (por ejemplo, editar un documento o un registro en una base de datos). Tambin puede enviar comandos a su 'vista' asociada si se solicita un cambio en la forma en que se presenta de 'modelo' (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podra decir que el 'controlador' hace de intermediario entre la 'vista' y el 'modelo. La Vista: Presenta el 'modelo' (informacin y lgica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario) por tanto requiere de dicho 'modelo' la informacin que debe representar como salida

pg. 12

ARQUITECTURA DE SOFTWARE

Conclusiones personales
Podemos concluir que la arquitectura de software es el conjunto de cada uno de los conceptos que tratamos en la investigacin anterior, por ejemplo dentro de una arquitectura encontramos uno o varios estilos arquitectnicos ya bien definidos (un ejemplo de un estilo arquitectnico es el estilo cliente-servidor), tambin una arquitectura cuenta con un patrn arquitectnico el cual consiste en especificar un conjunto de subsistemas con sus responsabilidades y una serie de recomendaciones para organizar los distintos componentes (un ejemplo es el modelo vista controlador). Para terminar una arquitectura de referencia trata sobre una arquitectura ya probada dentro de un dominio especifico.

pg. 13

ARQUITECTURA DE SOFTWARE

Referencias
Anonimo. (26 de noviembre de 2011). Wikipedia. Obtenido de http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas Anonimo. (4 de enero de 2011). Wikipedia. Obtenido de http://es.wikipedia.org/wiki/Arquitectura_de_software Anonimo. (28 de enero de 2014). Wikipedia. Obtenido de http://es.wikipedia.org/wiki/Patrones_de_arquitectura Gutierrez, D. (2 de mayo de 2011). Code Compiling. Obtenido de http://www.codecompiling.net/files/slides/IS_clase_08_estilos_arquitectonicos.pdf Sevilla, U. d. (no de no de 2008). Departamendo de Lenguajes y Sistemas Informaticos. Obtenido de http://www.lsi.us.es/docencia/get.php?id=6496

pg. 14

S-ar putea să vă placă și