Está en la página 1de 8

Arquitectura y patrón de software

JHON ALEJANDRO CUERVO.


20142578062
DAVID GONZALEZ MARTINEZ
20142578118

UNIVERSIDAD FRANCISCO JOSE DE CALDAS


FACULTAD TECNOLÓGICA
SISTEMATIZACIÓN DE DATOS
BOGOTA D.C
Abril 2017
Tabla de contenidos:
1. Definición de la arquitectura de software
2. Características de la arquitectura de software
3. Importancia de la arquitectura de software
4. De qué se ocupa y de que no se ocupa la arquitectura de software
5. Estilos arquitectónicos
6. Ejemplos de arquitectura de software
7. Definición de un patrón de software
8. Característica de un patrón de software
9. Elementos de un patrón de software
10. Tipos de patrones de software
11. Ejemplos de patrones de software
12. Web grafía
1). Definición de la arquitectura de software
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 establece la estructura, el
funcionamiento e interacción entre las partes del software.

2). Características de la arquitectura de software


a) Parte del diseño de software.
b) Nivel del diseño de software donde se definen la estructura y propiedades globales
del sistema.
c) Incluye sus componentes, las propiedades observables de dichos componentes y
las relaciones que se establecen entre ellos.
d) Un aspecto crítico: Una arquitectura errónea puede llevar a problemas incontables.
e) Representación de alto nivel de la estructura del sistema describiendo las partes
que lo integran.
f) Puede incluir los patrones que supervisan la composición de sus componentes y
las restricciones al aplicar los patrones.
g) Trata aspectos del diseño y desarrollo que no pueden tratarse adecuadamente
dentro de los módulos que forman el sistema.

3). Importancia de la arquitectura de software


Es de especial importancia ya que la manera en que se estructura un sistema tiene un
impacto directo sobre la capacidad de este para satisfacer lo que se conoce como los
atributos de calidad del sistema. Ejemplos de atributos de calidad son el desempeño, que
tiene que ver con el tiempo de respuesta del sistema a las peticiones que se le hacen, la
usabilidad, que tiene que ver con qué tan sencillo les resulta a los usuarios realizar
operaciones con el sistema; o bien la modificabilidad, que tiene que ver con qué tan
simple resulta introducir cambios en el sistema. Los atributos de calidad son parte de los
requerimientos (no funcionales) del sistema y son características que deben expresarse
de forma cuantitativa. No tiene sentido, por ejemplo, decir que el sistema debe devolver
una petición “de manera rápida”, o presentar una página “ligera”, ya que no es posible
evaluar objetivamente si el sistema cubre o no esos requerimientos.

La manera en que se estructura un sistema permitirá o impedirá que se satisfagan los


atributos de calidad. Por ejemplo, un sistema estructurado de tal manera que una petición
deba transitar por muchos componentes antes de que se devuelva una respuesta podría
tener un desempeño pobre. Por otro lado, un sistema estructurado de tal manera que los
componentes estén altamente acoplados entre ellos limitará severamente la
modificabilidad. Curiosamente, la estructuración tiene un impacto mucho menor respecto
a los requerimientos funcionales del sistema. Por ejemplo, un sistema difícil de modificar
puede satisfacer plenamente los requerimientos funcionales que se le imponen.
Además de los atributos de calidad, la arquitectura de software juega un papel
fundamental para guiar el desarrollo. Una de las múltiples estructuras que la componen se
enfoca en partir el sistema en componentes que serán desarrollados por individuos o
grupos de individuos. La identificación de esta estructura de asignación de trabajo es
esencial para apoyar las tareas de planeación del proyecto.

Finalmente, los diseños arquitectónicos que se crean en una organización pueden ser
reutilizados para crear sistemas distintos. Esto permite reducir costos y aumentar la
calidad, sobre todo si dichos diseños han resultado previamente en sistemas exitosos.

4). De qué se ocupa y de qué no se ocupa la arquitectura de software


 De qué se ocupa la arquitectura de software
 Diseño preliminar o de alto nivel.
 Organización a alto nivel del sistema, incluyendo aspectos como la
descripción y análisis de propiedades relativas a su estructura y control
global, los protocolos de comunicación y sincronización utilizados, la
distribución física del sistema y sus componentes, etc.
 Otros aspectos relacionados con el desarrollo del sistema y su evolución y
adaptación al cambio; composición, reconfiguración, reutilización,
escalabilidad, mantenibilidad, etc.
 De qué no se ocupa la arquitectura de software
 Diseño detallado.
 Diseño de algoritmos.
 Diseño de estructura de datos.

5). Estilos arquitectónicos


Cada estilo arquitectónico describe una categoría del sistema que contiene: un conjunto
de componentes, que realiza una función requerida por el sistema, un conjunto de
conectores que posibilitan la comunicación, la coordinación y la cooperación entre los
componentes; restricciones que definen como se puede integrar los componentes que
forman el sistema; y modelos semánticos que permiten al diseñador entender las
propiedades globales de un sistema para analizar las propiedades conocidas de sus
partes constituyentes.
 Sirven para sintetizar estructuras de soluciones.
 Pocos estilos abstractos encapsulan una enorme variedad de configuraciones
concretas.
 Definen los patrones posibles de las aplicaciones.
 Permiten evaluar arquitecturas alternativas con ventajas y desventajas conocidas
ante diferentes conjuntos de requerimientos no funcionales.
6). Ejemplos de arquitectura de software
Arquitectura Centrada en Datos: Un almacén de datos se encuentra en el centro de
esta arquitectura, otro componente tiene acceso a él y cuentan con la opción de gestionar
los datos de ese almacén. El software cliente tiene acceso a un almacén central, en
algunos casos este es pasivo, el software cliente accede a los datos independientemente
de cualquier cambio hecho en los datos o las acciones de otro software cliente.
Una variación de este enfoque transforma el depósito en un pizarrón que envía
notificaciones al software cliente cuando cambian datos de interés para el cliente.

Arquitectura de Flujo de Datos: Es una arquitectura de computadores que contrasta


directamente con la tradicional Arquitectura de von Neumann o de estructuras de control.
Arquitectura de Llamada y retorno: Estilo clásico desde los años 1960. Descomposición
jerárquica en subrutinas (componentes) que solucionan una tarea o función definida. Los
datos son pasados como parámetros y el manejador principal proporciona un ciclo de
control sobre las subrutinas. Reflejan la estructura del lenguaje de programación. Permite
al diseñador del software construir una estructura de programa relativamente fácil de
modificar y ajustar a escala. Se basan en la bien conocida abstracción de
procedimientos/funciones/métodos.

Arquitectura Orientada a Objetos: Los componentes de un sistema encapsulan los


datos y las operaciones que se deben realizar para manipular los datos. La comunicación
y la coordinación entre componentes se consiguen a través del paso de mensaje. La
representación de los datos y sus operaciones primitivas asociadas son encapsuladas en
un tipo de dato abstracto u objeto.
Arquitectura Estratificada: Se crean diferentes capas y cada una realiza operaciones
que progresivamente se aproximan más al cuadro de instrucciones de la máquina. En la
capa externa, los componentes sirven a las operaciones de interfaz de usuario. En la capa
interna, los componentes realizan operaciones de interfaz del sistema. Las capas
intermedias proporcionan servicios de utilidad y funciones de software de aplicaciones.

7). Definición de un patrón de software


Un patrón de diseño es una descripción de clases y objetos comunicándose entre sí
adaptada para resolver un problema de diseño general en un contexto particular.

8). Características de un patrón de software


 Soluciona un problema: Buscan solucionar problema concreto y recurrente.
 Es un concepto probado: Son soluciones demostradas, no teorías ni
especulaciones.
 La solución no es obvia: Muchas técnicas de solución de problemas tratan de
hallar soluciones por medio de principios básicos. Los mejores patrones generan
una solución a un problema de forma indirecta.
 Describe participantes y relaciones entre ellos: No solo describen módulos sino
estructuras y mecanismos complejos. Y por supuesto, como se relacionan para
lograr su objetivo.
 Repetición, adaptabilidad y utilidad: Si no se repite, no es un patrón, pero
además de esto debe demostrar su adaptabilidad y utilidad en al menos tres
sistemas existentes. Explicando como el patrón es exitoso; y mostrar la utilidad
detallando porque es beneficioso
9). Elementos de un patrón de software
 Nombre: Describe el problema de diseño
 El problema: Describe cuándo aplicar el patrón.
 La solución: Describe los elementos que componen el diseño, sus relaciones,
responsabilidades y colaboración

10). Tipos de patrones de software


 Patrones de arquitectura: Expresa una organización o esquema estructural
fundamental para sistemas software. Proporciona un conjunto de subsistemas
predefinidos, especifica sus responsabilidades, e incluye una guía para organizar
las relaciones entre ellos.
 Patrones de diseño: Proporciona un esquema para refinar los subsistemas o
componentes de un sistema software, o las relaciones entre ellos. Describe
estructuras repetitivas de comunicar componentes que resuelven un problema de
diseño en un contexto particular.
 Patrones de programación: Describe cómo implementar aspectos de
componentes o de las relaciones entre ellos utilizando las facilidades del lenguaje
de programación dado.
 Patrones de análisis: Describen un conjunto de prácticas que aseguran la
obtención de un buen modelo de un problema y su solución.
 Patrones organizacionales: Describen la estructura y prácticas de las
organizaciones humanas, especialmente en las que producen, usan o administran
software.

11). Ejemplos de patrones de software


 Abstract Factory  Flyweight
 Builder  Proxy
 Prototype  Iterator
 Singleton  Mediator
 Adapter  Memento
 Bridge  Observer
 Composite  State
 Decorator  Strategy
 Facade  Visitor

12). Web Grafía


https://www.ecured.cu/Arquitectura_de_software#Caracter.C3.ADsticas

http://babel.ls.fi.upm.es/~fred/sbc/arquitecturas_sw.pdf

https://sg.com.mx/revista/27/arquitectura-software#.WQPerVU1_IU

https://www.ecured.cu/Estilos_arquitect%C3%B3nicos

https://es.slideshare.net/kaolong/patrones-de-diseo-i

También podría gustarte