Anda di halaman 1dari 6

ARQUITECTURA DE DISEÑO DE SOFTWARE

La arquitectura de diseño es un proceso de ingeniería del software, que consiste en originar


una representación técnica del software que se va a desarrollar, nos permite delimitar los
elementos más importantes, así como sus relaciones.

El diseño de arquitectura inicia con el diseño de datos, que son los componentes de datos del
sistema y posteriormente se procede a la bifurcación de una o más representaciones de la
estructura arquitectónica del sistema, que son la representación de la estructura de los
componentes del software, sus propiedades e interacciones.

1. IMPORTANCIA DE LA ARQUITECTURA DE SOFTWARE


La necesidad del manejo de la arquitectura de un sistema de software nace con los sistemas de
mediana o gran envergadura, que se proponen como solución para un problema determinado.
En la medida que los sistemas de software crecen en complejidad, bien sea por número de
requerimientos o por el impacto de los mismos, se hace necesario establecer medios para el
manejo de esta complejidad. En general, la técnica es descomponer el sistema en piezas que
agrupan aspectos específicos del mismo, producto de un proceso de abstracción y que al
organizarse de cierta manera constituyen la base de la solución de un problema en particular.

 Facilitan la comunicación entre todas las partes interesadas en el desarrollo de un


sistema basado en computadora.

 Destaca decisiones tempranas de diseño que tendrán un profundo impacto en todo el


trabajo de ingeniería del software.

 Constituye un modelo relativamente pequeño e intelectualmente comprensible de


cómo está estructurado el sistema y de cómo trabajan juntos sus componentes.

2. TIPOS DE ARQUITECTURA DE DISEÑO


El tipo de la arquitectura con el cual se ha trabajado es el cliente – servidor.

3. Diseño de Arquitectura Cliente-Servidor


La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas
se reparten entre los proveedores de recursos o servicios, llamados servidores, y los
demandantes, llamados clientes.

3.1. Servidor: Son los proveedores de servicios, son los que están atentos a las peticiones
que hace el cliente, las procesan y luego envían las respuestas.
3.1.1. Características:
 Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan
entonces un papel pasivo en la comunicación (dispositivo esclavo).
 Tras la recepción de una solicitud, la procesan y luego envían la respuesta al
cliente.
 Por lo general, aceptan conexiones desde un gran número de clientes (en
ciertos casos el número máximo de peticiones puede estar limitado).
 No es frecuente que interactúen directamente con los usuarios finales.

3.1.2. Funciones:
Las funciones que lleva a cabo el proceso servidor se resumen en los
siguientes puntos:
 Aceptar los requerimientos de bases de datos que hacen los clientes.
 Procesar requerimientos de bases de datos.
 Formatear datos para trasmitirlos a los clientes.
 Procesar la lógica de la aplicación y realizar validaciones a nivel de bases de
datos.

3.2. Cliente: Es cualquier usuario o programa que quiere realizar una operación sobre el
sistema. Para apoyarlo, el sistema debe tener una capa de presentación a través de la
cual el usuario puede enviar las operaciones y obtener un resultado.
3.2.1. Características:

 Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la


comunicación (dispositivo maestro o amo).
 Espera y recibe las respuestas del servidor.
 Por lo general, puede conectarse a varios servidores a la vez.
 Normalmente interactúa directamente con los usuarios finales mediante una
interfaz gráfica de usuario.
 5. Al contratar un servicio de redes, se tiene que tener en la velocidad de
conexión que le otorga al cliente y el tipo de cable que utiliza, por ejemplo:
cable de cobre ronda entre 1 ms y 50 ms.
3.2.2. Funciones:
Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes
puntos:

 Administrar la interfaz de usuario.


 Interactuar con el usuario.
 Procesar la lógica de la aplicación y hacer validaciones locales.
 Generar requerimientos de bases de datos.
 Recibir resultados del servidor.
 Formatear resultados.

3.3. Internet:

4. Funciones de los niveles en la arquitectura cliente - servidor

Nivel Responsabilidad Funciones Herramientas


Aplicativo Interfaz, Presentación, navegación, Herramientas gráficas
del Usuario Incomprensible y manejo y análisis. y lenguaje de
eficiente. programación
Reglas del Política, reglas y Toma de decisiones, Lenguaje de
Negocio heurística. políticas y administración programación
de recursos.
Base de Datos consistentes y Mantenimiento, Base de datos y
Datos seguros actualización, integridad y lenguaje de base de
seguridad. datos

5. Ventajas del esquema Cliente/Servidor

Entre las principales ventajas del esquema Cliente/Servidor están:

• Uno de los aspectos que más ha promovido el uso de sistemas Cliente/Servidor, es la


existencia de plataformas de hardware cada vez más baratas. Esta constituye a su vez
una de las más palpables ventajas de este esquema, la posibilidad de utilizar máquinas
considerablemente más baratas que las requeridas por una solución centralizada,
basada en sistemas grandes. Además, se pueden utilizar componentes, tanto de
hardware como de software, de varios fabricantes, lo cual contribuye
considerablemente a la reducción de costos y favorece la flexibilidad en la
implantación y actualización de soluciones.
• El esquema Cliente/Servidor facilita la integración entre sistemas diferentes y
comparte información permitiendo, por ejemplo, que las máquinas ya existentes
puedan ser utilizadas, pero utilizando interfaces más amigables al usuario. De esta
manera, podemos integrar PCs con sistemas medianos y grandes, sin necesidad de que
todos tengan que utilizar el mismo sistema operacional.
• Al favorecer el uso de interfaces gráficas interactivas, los sistemas Construidos bajo
este esquema tienen mayor interacción y más intuitiva con el usuario. En el uso de
interfaces gráficas para el usuario, el esquema Cliente/Servidor presenta la ventaja,
con respecto a uno centralizado, de que no es siempre necesario transmitir
información gráfica por la red pues esta puede residir en el cliente, lo cual permite
aprovechar mejor el ancho de banda de la red.
• Una ventaja adicional del uso del esquema Cliente/Servidor es que es más rápido el
mantenimiento y el desarrollo de aplicaciones, pues se pueden emplear las 7
herramientas existentes (por ejemplo los servidores de SQL o las herramientas de más
bajo nivel como los sockets o el RPC ).
• • La estructura inherentemente modular facilita además la integración de nuevas
tecnologías y el crecimiento de la infraestructura computacional, favoreciendo así la
escalabilidad de las soluciones.
• El esquema Cliente/Servidor contribuye, además, a proporcionar, a los diferentes
departamentos de una organización, soluciones locales, pero permitiendo la
integración de la información relevante a nivel global.
6. Desventajas del esquema Cliente/Servidor

Entre las principales desventajas del esquema Cliente/Servidor están:


• El mantenimiento de los sistemas es más difícil pues implica la interacción de
diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo
cual dificulta el diagnóstico de fallas.
• Se cuenta con muy escasas herramientas para la administración y ajuste del
desempeño de los sistemas.
• Es importante que los clientes y los servidores utilicen el mismo mecanismo (por
ejemplo sockets o RPC), lo cual implica que se deben tener mecanismos generales que
existan en diferentes plataformas.
• Además, hay que tener estrategias para el manejo de errores y para mantener la
consistencia de los datos.
• La seguridad de un esquema Cliente/Servidor es otra preocupación importante. Por
ejemplo, se deben hacer verificaciones en el cliente y en el servidor.
• El desempeño es otro de los aspectos que se deben tener en cuenta en el esquema
Cliente/Servidor. Problemas de este estilo pueden presentarse por congestión en la
red, dificultad de tráfico de datos, etc.
7. Patrones de Diseño

Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el
desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.

Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una solución
sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber
comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es
que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en
distintas circunstancias.

Los patrones de diseño pretenden:

 Proporcionar catálogos de elementos reusables en el diseño de sistemas software.


 Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y
solucionados anteriormente.
 Formalizar un vocabulario común entre diseñadores.
 Estandarizar el modo en que se realiza el diseño.
 Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando
conocimiento ya existente.

La arquitectura del proyecto se basa en patrón de diseño MVC (Modelo – Vista – Controlador)

especifica que una aplicación consta de un modelo de datos, de información de presentación y


de información de control. El patrón requiere que cada uno de estos elementos esté separado
en distintos objetos.

Dentro del desarrollo de software existen diferentes niveles de abstracción, cuando


empezamos a escribir código lo hacemos al más bajo nivel o sea al nivel de los requerimientos,
de las descripciones detalladas que nos permiten codificar esa lógica para que después forme
parte de algo mucho más grande.
El modelo (información de datos) contiene únicamente los datos puros de aplicación; no
contiene lógica que describe cómo pueden presentarse los datos a un usuario.

La vista (información de presentación) presenta al usuario los datos del modelo. La vista sabe
cómo acceder a los datos del modelo, pero no sabe el significado de estos datos ni lo que el
usuario puede hacer para manipularlos.

El controlador (información de control) está entre la vista y el modelo. Escucha los sucesos
desencadenados por la vista (u otro origen externo) y ejecuta la reacción apropiada a estos
sucesos. En la mayoría de los casos, la reacción es llamar a un método del modelo. Puesto que
la vista y el modelo están conectados a través de un mecanismo de notificación, el resultado
de esta acción se reflejará automáticamente en la vista.

La siguiente figura muestra como los componentes interactúan


Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el
servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan
sobre una sola computadora es más ventajosa en un sistema operativo multiusuario
distribuido a través de una red de computadoras.

Un sistema cliente/servidor funciona tal como se detalla en el siguiente diagrama: