Sei sulla pagina 1di 8

3.

1 Descomposicin Modular

Capacidad de empleo de componentes modulares. Si un mtodo de diseo


permite ensamblar los componentes de diseo (reusables) existentes en un
sistema nuevo, producir una solucin modular que no inventa nada ya inventado.

Es importante destacar que un sistema se puede disear modularmente, incluso


aunque su implementacin deba ser monoltica. Existen situaciones (por
ejemplo, software en tiempo real, software empotrado) en donde no es admisible
que los subprogramas introduzcan sobrecargas de memoria y de velocidad por
mnimos que sean (por ejemplo, subrutinas, procedimientos).

El diseo modular propone dividir el sistema en partes diferenciadas y definir sus


interfaces. sus ventajas: claridad, reduccin de costos y reutilizacin.

Los pasos a seguir son:

1. Identificar los mdulos

2. Describir cada mdulo

3. Describir las relaciones entre mdulos

Una descomposicin modular debe poseer ciertas cualidades mnimas para que
se pueda considerar suficiente validad.

1. Independencia funcional

2. Acoplamiento

3. Cohesin

4. Comprensibilidad

5. Adaptabilidad
3.2 Patrones de diseo

Los patrones de diseo son la base para la bsqueda de soluciones a problemas


comunes en el desarrollo de software y otros mbitos referentes al diseo de
interaccin o interfaces.

Un patrn de diseo resulta ser una solucin a un problema de diseo. Otra es


que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas
de diseo en distintas circunstancias.

Objetivos de los patrones de diseo

Los patrones de diseo pretenden:

Proporcionar catlogos de elementos reusables en el diseo de sistemas


software.

Evitar la reiteracin en la bsqueda de soluciones a problemas ya conocidos y


solucionados anteriormente.

Formalizar un vocabulario comn entre diseadores.

Estandarizar el modo en que se realiza el diseo.

Facilitar el aprendizaje de las nuevas generaciones de diseadores


condensando conocimiento ya existente.

Asimismo, no pretenden:

Imponer ciertas alternativas de diseo frente a otras.

Eliminar la creatividad inherente al proceso de diseo.

No es obligatorio utilizar los patrones, solo es aconsejable en el caso de tener el


mismo problema o similar que soluciona el patrn, siempre teniendo en cuenta
que en un caso particular puede no ser aplicable. "Abusar o forzar el uso de los
patrones puede ser un error".

Categoras de patrones de diseo, segn la escala o nivel de abstraccin:

Patrones de arquitectura: Aquellos que expresan un esquema organizativo


estructural fundamental para sistemas de software.

Patrones de diseo: Aquellos que expresan esquemas para definir


estructuras de diseo (o sus relaciones) con las que construir sistemas de
software.
Dialectos: Patrones de bajo nivel especficos para un lenguaje de
programacin o entorno concreto.

Adems, tambin es importante resear el concepto de "anti-patrn de diseo",


que con forma semejante a la de un patrn, intenta prevenir contra errores
comunes de diseo en el software. La idea de los anti-patrones es dar a conocer
los problemas que acarrean ciertos diseos muy frecuentes, para intentar evitar
que diferentes sistemas acaben una y otra vez en el mismo callejn sin salida por
haber cometido los mismos errores.

Adems de los patrones ya vistos actualmente existen otros patrones como el


siguiente:

Interaccin: Son patrones que nos permiten el diseo de interfaces web.

3.3 Arquitectura de modelo especifico


El reto para el diseo es disear el software y hardware para proporcionar
caractersticas deseables a los sistemas distribuidos y, al mismo tiempo, minimizar
los problemas propios a estos sistemas. Es necesario comprender las ventajas y
desventajas de las diferentes arquitecturas de sistemas distribuidos.

Aqu se tratan dos tipos genricos de arquitecturas de sistemas distribuidos:

Arquitectura cliente-servidor: En este caso el sistema puede ser visto como un


conjunto de servicios que se proporcionan a los clientes que hacen uso de dichos
servicios. Los servidores y los clientes se tratan de forma diferente en estos
sistemas.

Arquitecturas de objetos distribuidos: Para esta arquitectura no hay distincin


entre servidores y clientes, y el sistema puede ser visto como un conjunto de
objetos que interaccionan cuya localizacin es irrelevante. No hay distincin entre
un proveedor de servicios y el usuario de estos servicios.

Ambas arquitecturas se usan ampliamente en la industria, pero la distribucin de


las aplicaciones generalmente tiene lugar dentro de una nica organizacin.

Los componentes en un sistema distribuido pueden implementarse en diferentes


lenguajes de programacin y pueden ejecutarse en tipos de procesadores
completamente diferentes. Los modelos de datos, la representacin de la
informacin y los protocolos de comunicacin pueden ser todos diferentes.

El trmino middleware se usa para hacer referencia a ese software; se ubica en


medio de los diferentes componentes distribuidos del sistema.
Los sistemas distribuidos se desarrollan normalmente utilizando una aproximacin
orientada a objetos. Estos sistemas estn formados por partes independientes
pobremente integradas, cada una de las cuales puede interaccionar directamente
con los usuarios o con otras partes del sistema. Algunas partes del sistema
pueden tener que responder a eventos independientes. Los objetos software
reflejan estas caractersticas; por lo tanto, son abstracciones naturales para los
componentes de sistemas distribuidos.

Existen dos modelos de dominio especfico:

1. Modelos genricos que son abstracciones de varios sistemas reales.


2. Modelos de referencia que son modelos abstractos y describen a una clase
mayor de sistemas.

Modelo genrico: flujo de datos de un compilador


Modelo de referencia: la arquitectura OSI

3.4 Diseo de software de arquitectura multiprocesador


Los sistemas multiprocesador (MP) son un tipo de arquitectura con una
importancia creciente y ampliamente difundido. La mayora de los constructores de
computadores ofrece mquinas en las que estn presentes ms de una CPU,
configuracin que es hoy en da de uso habitual en casi todos los sistemas de
tamao medio y grande, incluso ya en ordenadores personales.

Asimismo, los fabricantes de procesadores incorporan a sus arquitecturas, desde


hace unos aos, los mecanismos necesarios para que stos se puedan emplear
fcilmente, y con un coste reducido.

Esta tendencia se ha visto reforzada en los ltimos aos con la aparicin de los
multicore, es decir, varios ncleos por procesador. En los prximos aos veremos
mquinas con bastantes procesadores, cada uno de ellos con multitud de ncleos.
Por tanto, comprender como funcionan y saber explotar correctamente esta
potencia de cmputo se vuelve algo necesario para cualquier ingeniero
informtico.

Un sistema multiproceso o multitarea es aquel que permite ejecutar varios


procesos de forma concurrente, la razn es porque actualmente la mayora de las
cpus solo pueden ejecutar un proceso cada vez. La nica forma de que se
ejecuten de forma simultanea varios procesos es tener varias cpus ya sea en una
maquina o en varias en un sistema distribuido.
La ventaja de un sistema multiproceso reside en la operacin llamada cambio de
contexto y consiste en quitar a un proceso de la cpu, ejecutar otro proceso y volver
a colocar el primero sin que se entere de nada.
El multiproceso no es difcil de entender: ms procesadores significa ms potencia
computacional.
Un conjunto de tareas puede ser completado ms rpidamente si hay varias
unidades de proceso ejecutndolas en paralelo.

VENTAJAS

Es econmica
Las computadoras paralelas son inherentes escalables permitiendo actualizarlas
para adecuarse a la necesidad

DESVENTAJAS

Puede ser limitante fsica, existen factores que limitan la velocidad mxima de un
procesador independiente del factor econmico
Las barreras fsicas infranqueables tales como la velocidad de la luz, efectos de
tamao, la capacidad.

3.5 Diseado de software de cliente-servidor


La arquitectura cliente-servidor es un modelo de aplicacin distribuida en el que
las tareas se reparten entre los proveedores de recursos o servicios, llamados
servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a
otro programa, el servidor, quien le da respuesta. Esta idea tambin se puede
aplicar a programas que se ejecutan sobre una sola computadora, aunque es ms
ventajosa en un sistema operativo multiusuario distribuido a travs de una red de
computadoras.

En esta arquitectura la capacidad de proceso est repartida entre los clientes y los
servidores, aunque son ms importantes las ventajas de tipo organizativo debidas
a la centralizacin de la gestin de la informacin y la separacin de
responsabilidades, lo que facilita y clarifica el diseo del sistema.

La separacin entre cliente y servidor es una separacin de tipo lgico, donde el


servidor no se ejecuta necesariamente sobre una sola mquina ni es
necesariamente un slo programa.

La arquitectura cliente-servidor sustituye a la arquitectura monoltica en la que no


hay distribucin, tanto a nivel fsico como a nivel lgico.
Esto significa que todas las gestiones que se realizan se concentran en el
servidor, de manera que en l se disponen los requerimientos provenientes de los
clientes que tienen prioridad, los archivos que son de uso pblico y los que son de
uso restringido, los archivos que son de slo lectura y los que, por el contrario,
pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en
caso de que se este utilizando en una red mixta.

Caractersticas

En la arquitectura C/S el remitente de una solicitud es conocido como cliente.


Sus caractersticas son:

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


comunicacin (dispositivo maestro o amo).

Espera y recibe las respuestas del servidor.

Por lo general, puede conectarse a varios servidores a la vez.

Normalmente interacta directamente con los usuarios finales mediante


una interfaz grfica de usuario.

Al contratar un servicio de redes, se debe tener en cuenta la velocidad de


conexin 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.6 Diseo de software de arquitectura


La utilizacin de la arquitectura distribuida basada en una red de ordenadores
personales tiene como objetivo global: obtener prestaciones razonables a un coste
bajo.

VENTAJAS DE LA ARQUITECTURA DISTRIBUIDA

Fue creada a partir de la Arquitectura n-Layer desacoplada, donde intervienen las


capas de presentacin, de negocio, de servicios y datos. Adems de
las tecnologas para su implementacin, Workflows, Servicios Web e Interfaces
Grficas declarativas. En la siguiente grafica se muestran las capas que la
conforman.
Evita la sobrecarga de procesador con clculos sobre los modelos
matemticos y generacin de la escena.

Permite una mayor reutilizacin del cdigo: al ser compartimentos ms o


menos estancos, las mayores variaciones se realizan en interfase de usuario.

El uso de ordenadores personales reduce el coste inicial de implantacin.

Los ordenadores personales son altamente fiables, se reparan fcilmente y se


sustituyen de forma inmediata.

Es software empleado es de gran difusin y se encuentra fcilmente software


desarrollado y personal cualificado.

El uso del mismo tipo de ordenador para tareas distintas permite un coste de
mantenimiento ms reducido.

Inconvenientes de la arquitectura distribuida:

Es ms difcil disear y desarrollar el software para el trabajo en paralelo


que para una aplicacin nica lineal.

Hay adquirir y aprender un software para las comunicaciones entre los


distintos ordenadores.

Los problemas de organizacin del trfico de informacin para garantizar la


consistencia de las comunicaciones es una tarea bien compleja.

Se necesita un hardware de red de suficiente fiabilidad.

La depuracin de los programas en este tipo de arquitectura se dificulta


enormemente. En algunos casos es necesario desarrollar herramientas ad-
hoc para obtener datos que puedan ayudar a la depuracin.
3.7 Diseo de software de arquitectura de tiempo real

Un sistema de tiempo real es un sistema de procesamiento de informacin el cual


tiene que responder a estmulos de entrada generados externamente en un
perodo finito y especfico.
Un sistema en tiempo real es una combinacin de computadoras, dispositivos de
E/S, hardware y software de propsito especfico en donde:

existe una fuerte interaccin con el ambiente.


el ambiente cambia con el tiempo
el sistema debe controlar y/o reaccionar a diferentes aspectos del ambiente.

Como resultado:

Se imponen restricciones de tiempos al software.


El software es naturalmente concurrente.
Se exige una alta confiabilidad.
Una caracterstica distintiva de un sistema en tiempo real es la predecibilidad. La
cual implica que debe ser posible demostrar o comprobar a priori que los
requerimientos de tiempos se cumplen en cualquier circunstancia.

TAREAS

Los Sistemas de Tiempo Real ejecutan actividades o


Tareas

En un intervalo de tiempo predeterminado. Tienen varios tipos de propiedades:


Funcionales: qu hacen.

Temporales: cundo lo hacen. El comportamiento temporal de las tareas se


especifica mediante sus atributos temporales:

Cundo se ejecutan: esquema de activacin.

Qu plazo tienen para ejecutar cada accin

Potrebbero piacerti anche