Está en la página 1de 6

Arquitectura

Una Arquitectura de Software, también denominada


Arquitectura lógica, consiste en un conjunto de patrones
y abstracciones coherentes que proporcionan el marco de
referencia necesario para guiar la construcción del
software para un sistema de información.

Arquitecturas más comunes

Generalmente, no es necesario inventar una nueva


arquitectura de software para cada sistema de información.
Lo habitual es adoptar una arquitectura conocida en función
de sus ventajas e inconvenientes para cada caso en
concreto. La primera en aparecer es:

• Monolítica. Donde el software se estructura en grupos


funcionales muy acoplados.

Ventajas:
Muy eficiente ya que se producen pocos cambios de
contexto.
Inconvenientes:
Difícil de depurar: un error en una función se puede
manifestar en otra distinta.
Difícil de ampliar.
ESTRUCTURA MONOLÍTICA

Es la estructura de los primeros sistemas operativos


constituidos fundamentalmente por un solo programa
compuesto de un conjunto de rutinas entrelazadas de tal
forma que cada una puede llamar a cualquier otra. Las
características fundamentales de este tipo de estructura
son:

MARIA

• Construcción del programa final a base de módulos


compilados separadamente que se unen a través del
ligador.
• Buena definición de parámetros de enlace entre las
distintas rutinas existentes, que puede provocar
mucho acoplamiento.
• Carecen de protecciones y privilegios al entrar a
rutinas que manejan diferentes aspectos de los
recursos de la computadora, como memoria, disco,
etc.

• Generalmente están hechos a medida, por lo que son


eficientes y rápidos en su ejecución y gestión,
pero por lo mismo carecen de flexibilidad para
soportar diferentes ambientes de trabajo o tipos de
aplicaciones.
• No hay distribución, tanto a nivel físico como a
nivel lógico.

• Constituido por un solo programa compuestos de un


conjunto de rutinas entrelazadas de tal forma que
cada una puede llamar a cualquier otra.
• Estructura interna indefinida. Los niveles de
funcionalidad no están bien separados.

Arquitectura Monolítica de Un Piso - (One Tiered


Applications)

Representaciones

TOCAYO
División del Trabajo

Factores Tipo 1 Tipo 2 Tipo 3


Nada Nada Nada
Hardware Cliente
exigente exigente exigente
Interfase Grafica Muy pobre Muy pobre Muy pobre
Uso Red Poco intensa Poco intensa Poco intensa
Hardware Servidor Muy exigente Muy exigente Muy exigente
Escalabilidad
Muy difícil Muy difícil Muy difícil
Servidor
Desarrollo
Muy fácil Muy fácil Muy fácil
Aplicaciones
Distribución Software Muy fácil Muy fácil Muy fácil

Un claro ejemplo de arquitectura monolítica, esta


constituido por los sistemas de tiempo real.

“Un sistema de tiempo real es aquel en el que para que las


operaciones computacionales estén correctas no depende solo
de que la lógica e implementación de los programas
computacionales sea correcto, sino también en el tiempo en
el que dicha operación entregó su resultado. Si las
restricciones de tiempo no son respetadas el sistema se
dice que ha fallado.”

“Por lo tanto, es esencial que las restricciones de tiempo


en los sistemas sean cumplidas. El garantizar el
comportamiento en el tiempo requerido necesita que el
sistema sea predecible. Es también deseable que el sistema
obtenga un alto grado de utilización a la vez que cumple
con los requerimientos de tiempo.”

Los sistemas de tiempo real (STR) son sistemas informáticos


que se encuentran en multitud de aplicaciones, desde la
electrónica de consumo hasta el control de complejos
procesos industriales. Están presentes en prácticamente
todos los aspectos de nuestra sociedad como, teléfonos
móviles, automóviles, control de tráfico, ingenios
espaciales, procesos automáticos de fabricación, producción
de energía, aeronaves, comunicación electrónica (Chat),
etc.
FLACO

Un Buen ejemplo es el de un robot que necesita tomar una


pieza de una banda sinfín. Si el Robot llega tarde, la
pieza ya no estará donde debía recogerla. Por lo tanto el
trabajo se llevó acabo incorrectamente, aunque el robot
haya llegado al lugar adecuado. Si el robot llega antes de
que la pieza llegue, la pieza aun no estará ahí y el robot
puede bloquear su paso.

Algunos lenguajes empleados para el desarrollo de


aplicaciones de tiempo real son:
• ADA
• Modula-2
• Java-RT
• Ocamm.
• C
• C++
• Tornado
• UML-RT
• QNX

Conclusiones de la Arquitectura Monolítica

Todas las decisiones de las clases de decisiones:


conceptual, funcional, diálogo y presentación; son
implementadas dentro de un solo componente

No se recomienda esta arquitectura


porque:

• La complejidad de un solo
componente puede ser mucha, y
hacer que los implementadores
tengan dificultades en el
debugging y mantenimiento de
software.
• Los cambios de una porción de un
componente puedan requerir
cambios en todo el resto del
componente debido a su
naturaleza desestructurada.

• La lógica del software que


implementa las decisiones de
cada clase está a menudo tan
entremezclada que es imposible
extraer ese software para reuso.