Taller Arquitectura Diego y Alejandro

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

1Taller libro Ingeniería del Software 7ma Edición Ian Sommerville

Martin Alejandro Lara Méndez


Diego Fernando Vargas

Fundación Escuela Tecnológica del Huila.


Ingeniería de Software.
Arquitectura de Software
2020
1. ¿Existe una arquitectura de aplicación genérica que pueda activar como una plantilla para
el sistema que se está diseñando?
Si, existe una arquitectura para aplicaciones genéricas que se pueden usar identificar a
través de los sistemas de gestión de información.

2. ¿Como se distribuirá el sistema entre varios procesadores?


La distribución se realiza por medio de diferentes computadores como lo señala la
arquitectura. Es una decisión clave que afecta el rendimiento y habilidad del sistema.

3. ¿Qué estilos arquitectónicos son apropiados para el sistema?


Los siguientes estilos son:
 Estilo de repositorio de datos.
 Estilos de servicios y servidores compartidos.
 Estilos por capas.

4. ¿Que será la aproximación fundamental utilizada para estructurar el sistema?


Es la distribución del sistema en subsistemas y se representa con un diagrama de bloques
que presenta un panorama general de la estructura del sistema.

5. ¿Como se descomponen en módulos las unidades?


Para descomponer las unidades del sistema estructural en modelos hay que decidir la
estrategia para descomponer subsistemas en sus componentes o módulos.

6. ¿Qué estrategia se usa para controlar el funcionamiento de las unidades del sistema?
Con el modelo de capas o modelo cliente servidor, ya que en el modelo de control se
controla la ejecución de los subsistemas.

7. ¿Como se evaluará el diseño arquitectónico?


Se tiene que tener en cuenta el grado de satisfacción de sus requerimientos funcionales y
no funcionales después de que ha sido desarrollado.

8. ¿Como debería documentar la arquitectura del software?


Se debe documentar con un modelo estructural estático que muestra los principales
componentes del sistema el modelo de proceso dinámico muestra el proceso de la
estructura del sistema modelo de relaciones un flujo de datos que muestra las relaciones
de subsistemas modelo de distribución muestra como los subsistemas se distribuye por
medio por medio de los computadores.

11.1 Explique por qué puede ser necesario diseñar la arquitectura del sistema antes de redactar
las especificaciones.

RTA: Es importante diseñar la arquitectura de un sistema para el buen desarrollo y


funcionamiento, siendo así de esta manera se pueden redactar las especificaciones del mismo.
11.2 Explique por qué podrían tener lugar conflictos de diseño al diseñar una arquitectura en la
que los requerimientos de disponibilidad y seguridad son los requerimientos no funcionales más
importantes.

RTA: Podría presentar problemas de rendimiento o protección, estos son críticos en algunos
modelos arquitectónicos que lo usan como enfoque o como requerimientos críticos

11.3 Construya una tabla que muestre las ventajas e inconvenientes de los modelos estructurales
analizados en este capítulo.

RTA:

  VENTAJA DESVENTAJA
Eficiente para compartir Todos los subsistemas deben usar
grandes cantidades de el mismo modelo de datos.
datos.
La evolución de datos es difícil y
Los subsistemas no costosa.
necesitan “preocuparse” de
El modelo de repositorio la gestión (backups,
seguridad, …) de los datos. No caben políticas de gestión de
datos específicas.
Existe un modelo de datos
compartido (esquema del Es difícil hacer una distribución
repositorio) eficiente

La distribución de datos Los subsistemas usan diferentes


es real y directa; modelos de datos. Esto puede
hacer ineficiente el intercambio
Se hace uso eficaz de de datos;
sistemas en red. El
hardware para ello puede Gestión redundante en cada
El modelo cliente-servidor
ser barato; servidor;

Es fácil añadir nuevos No existe un registro central de


servidores o actualizar los nombres y servicios. Puede ser
existentes. difícil averiguar qué servidores y
servicios están disponibles
Reutilización de capas; A veces no se logra la contención
del cambio y se requiere una
Facilita la estandarización cascada de cambios en varias
capas;
Dependencias se limitan a
intra-capa Pérdida de eficiencia;

El modelo de capas Contención de cambios a Trabajo innecesario por parte de


una o pocas capas capas más internas o redundante

entre varias capas;


Dificultad de diseñar
correctamente la granularidad de
las capas.

11.4 Sugiera, justificando sus respuestas, un modelo estructural adecuado para los siguientes
sistemas:

• Un sistema de venta automática de billetes usados por los pasajeros en una estación de trenes.

• Un sistema de videoconferencia controlada por computadora que permita que el vídeo, audio y
datos de (a computadora estén disponibles para varios participantes al mismo tiempo.

• Un robot limpiador de suelos que tenga como objetivo limpiar espacios relativamente vacíos
tales como pasillos. El limpiador debe ser capaz de detectar paredes y otros obstáculos.

RTA:

 Cliente-Servidor: En este caso consideramos que este modelo es el más adecuado para un
sistema de red con múltiples procesadores que logra que se haga un procesamiento más
robusto y mayor precisión a la hora de contar los billetes y activar los mismos
 Capas: En este caso lo usamos debido a que permite la reutilización de capas, así como
también permite contención de cambios a una o pocas capas
 Cliente-Servidor: Este modelo es muy eficiente para manejar una gran cantidad de datos,
perfecto para los cálculos de los sensores, y también porque no es necesario enviar datos
a un subsistema

11.5 Diseñe una arquitectura para los sistemas anteriores basada en el modelo que usted ha
elegido. Haga suposiciones razonables sobre los requerimientos del sistema.


11.6 Los sistemas de tiempo real normalmente utilizan modelos de control dirigidos por eventos.
¿En qué circunstancias podría recomendar el uso de un modelo de control de llamada-retorno
para un sistema de tiempo real?
RTA: Se podría recomendable el modelo de llamada-retorno ya que en este modelo se requiere
una petición y se espera una respuesta, lo que hace que tenga una menor complejidad y un
rendimiento mayor.

11.7 Sugiera, justificando su respuesta, un modelo de control adecuado para los siguientes
sistemas:

• Un sistema de procesamiento por lotes que tenga como entrada la información sobre las horas
trabajadas y tarifas de pago e imprima información sobre hojas de salarios y la información
bancaria de la transferencia de éstos.

• Un conjunto de herramientas software que son producidas por diferentes vendedores, pero que
tienen que trabajar conjuntamente.

• Un controlador de televisión que responde a las señales de una unidad de control remoto.

RTA:

 En este caso escojo el modelo de llamada-Retorno ya que otorga un rendimiento óptimo,


además tiene una gran capacidad de escalabilidad modificabilidad
 El modelo dirigido por eventos ya que se necesita independencia de los sistemas, y con el
control por eventos, cada subsistema puede responder al evento que es relevante para
cada uno
 En este caso lo más recomendable es un modelo de llamada-retorno, debido a su
simplicidad y optimización para este tipo de sistemas ya que responde señales de una sola
unidad

11.8 Comente las ventajas e inconvenientes relacionados con la capacidad de distribución del
modelo de flujo de datos y el modelo de objetos. Suponga que se requieren tanto versiones
distribuidas como versiones con una única máquina.

RTA:

  VENTAJA DESVENTAJA
Los objetos están débilmente Para utilizar los servicios,
acoplados, la implementación los objetos deben referenciar de
de los objetos puede
forma explícita el nombre y la
modificarse sin
afectar a otros objetos. Los interfaz de otros objetos.
objetos son a menudo Si se requiere un cambio de
Descomposición orientada representaciones de interfaz para satisfacer los
a objetos entidades del mundo cambios del sistema propuestos,
real por lo que la estructura se debe evaluar el efecto de ese
del sistema es fácilmente cambio sobre todos los usuarios
comprensible
de los objetos cambiados.

1. Permite la reutilización de El principal problema con este estilo es


transformaciones. que tiene que haber un formato
2. Es intuitiva puesto que común para transferir
muchas personas piensan en los datos de forma que puedan ser
su trabajo en términos de reconocidos por todas las
procesamiento transformaciones. Cada
de entradas y salidas. transformación debe estar acorde con
las transformaciones con las que se
Descomposición orientada 3. Generalmente se puede comunica sobre
hacer evolucionar de forma
a flujos de funciones el formato de los datos a procesar o
directa el sistema añadiendo
bien se debe imponer un formato
nuevas
estándar para todos
transformaciones. los datos comunicados. Esto último es
4. Es sencilla de la única aproximación factible cuando
implementar ya sea como las transformaciones
un sistema concurrente o son independientes y reutilizables.
como uno secuencial.

11.9 Se le han proporcionado dos conjuntos de herramientas CASE integradas y se le ha solicitado


que las compare. Explique cómo podría usar un modelo de referencia para herramientas CASE
(Brown et ai, 1992) para hacer esta comparación.

RTA: CASE identifica cinco conjuntos de servicios que un entorno CASE debería proporcionar.
También debería proporcionar facilidades «plug-in» para herramientas CASE individuales que
utilizan estos servicios.

Los cinco niveles de servicio en el modelo de referencia CASE son:

1. Servicios de repositorio de datos. Proporcionan facilidades para el almacenamiento y gestión de


los elementos de datos y sus relaciones.

2. Servicios de integración de datos. Proporcionan facilidades para gestionar grupos o el


establecimiento de relaciones entre ellos. Estos servicios y los servicios de repositorio de datos son
las bases de la integración de datos en el entorno.
3. Servicios de gestión de tareas. Proporcionan facilidades para la definición y establecimiento

de normas de los modelos de proceso. Soportan integración de procesos.

4. Servicios de mensajes. Éstos proporcionan facilidades para comunicaciones herramienta-


herramienta, entorno-herramienta y entorno-entorno. Soportan la integración del control.

5. Servicios de interfaz de usuario. Proporcionan facilidades para el desarrollo de interfaces de


usuario. Soportan la integración de la presentación.

11.10 ¿Debería existir una profesión de «arquitecto software» cuyo cometido fuese trabajar de
forma independiente con un cliente para diseñar una arquitectura de un sistema software? El
sistema entonces debería ser implementado por alguna compañía de software. ¿Cuáles podrían
ser las dificultades del establecimiento de una profesión como ésta?

RTA: El Arquitecto de Software debe ser una persona con amplios conocimientos técnicos, gran
experiencia en programación, liderazgo y que ejerza las siguientes funciones:

 Gestión de los requisitos no funcionales y definición de la Arquitectura de Software


 Selección de la Tecnología
 Mejora continua de la Arquitectura
 Facilitador
 Líder y Formador
 Aseguramiento de la Calidad

Debido a que su perfil incluye tanta experiencia y conocimiento el principal problema será si las
empresas se pueden permitir pagar una persona con tal perfil, únicamente como arquitecto, ya
que lo que realmente quieren es que tener un menor numero de personas y que realicen la mayor
cantidad de aportes y/o tareas a un proyecto

12.1 Explique por qué los sistemas distribuidos son intrínsecamente más escalables que los
sistemas centralizados. ¿Cuáles son los Límites más probables de la escalabilidad del sistema?

RTA: Los sistemas centralizados pueden ejecutarse en distintos lenguajes de programación y


procesadores diferentes, en lo contrario un sistema distribuido, requiere software que pueda
gestionar estas partes distintas, y asegurar que dichas partes se puedan comunicar e intercambiar
datos.

Limites:
* Los sistemas distribuidos permiten compartir recursos, son abiertos, concurrentes, escalables,
tolerantes a defectos y transparentes.

12.2 ¿Cuál es la diferencia fundamental entre una aproximación de cliente rico y una de cliente
ligero para el desarrollo de sistemas cliente-servidor? Explique por qué el uso de Java como
lenguaje de implementación atenúa la diferencia entre estas aproximaciones.

RTA: En el sistema de cliente-servidor siempre va a ser proporcionada por un servidor compartido


mientras que la interfaz de usuario siempre será ejecutada en el cliente mientras que la interfaz de
usuario siempre será ejecutada en el cliente la funcionalidad de la aplicación puede ser
implementando tanto en la computadora como en el servidor, por esta razón es que el lenguaje
java atenúa estas diferencias. Donde el cliente ligero, procesa las aplicaciones y la gestión de los
datos se llevan a cabo en el servidor. El cliente simplemente es responsable de la capa de
presentación del software

Modelo de cliente rico: En este modelo, el servidor solamente es responsable de la gestión de los
datos. El software del cliente implementa la lógica de la aplicación y las interacciones con el
usuario del sistema.
JAVA COMO LENGUAJE
La aparición del código móvil (como los applets de Java y los controles Active X), que pueden
descargarse en un cliente desde un servidor, ha permitido el desarrollo de sistemas cliente-
servidor que son algo intermedio entre los modelos de cliente ligero y rico.

12.3 Su cliente quiere desarrollar un sistema para almacenar información en donde los
distribuidores pueden acceder a la información de las compañías, y pueden evaluar varios
escenarios de inversión usando un sistema de simulación. Cada distribuidor usa esta simulación de
forma diferente, de acuerdo con su experiencia y el tipo de almacenes con los que trabaja. Sugiera
una arquitectura cliente-servidor para este sistema que muestre dónde se localiza la
funcionalidad. Justifique el modelo cliente-servidor que usted ha elegido.

RTA:

12.4 Haciendo referencia al modelo de aplicación mostrado en la Figura 12.4, comente los
problemas que podrían
tener lugar al convertir un sistema heredado de la década de los 80 que utiliza un mainframe para
procesamiento de pólizas de seguros a una arquitectura cliente-servidor.
RTA: De acuerdo a ellos el modelo podría ser un poco inseguro, porque debería elaborarse un
modelo donde tenga un intermediario y que no valla directamente a la base de datos o servidor
para su modificación. Lo cual nos lleva a pensar que en los sistemas heredados de la época de los
80, no es practico separar el procesamiento de la aplicación y la gestión de los datos. Al pasar esto
a una Arquitectura Cliente-Servidor de tres capas, como lo muestra la figura 12.4 es una muy mala
idea, ya que esta arquitectura de tres capas se necesita o se sugiere que tanto como los datos
como la aplicación sean volátiles y además de eso que se necesite integrar datos de múltiples
fuentes. cosas que no cumplen los sistemas heredados

12.5 ¿Cuáles son las facilidades básicas que puede proporcionar un intermediario de peticiones de
objetos?

RTA: Vale recalcar que las facilidades básicas que puede proporcionar un intermediario de
peticiones de objetos son:
Heterogeneidad:

La infraestructura de sistemas de información antiguos que poseen las compañías no son


fácilmente reemplazable, debido al costo de desarrollo y al tiempo de implantación, una de las
mejores alternativas es integrar antiguas tecnologías con nuevas para así obtener un completo
beneficio.

Eficiencia

 La red lleva menos mensajes.


 El servidor realiza más trabajo.
 Se evita la latencia/inestabilidad de la red en los procesos.
 Adaptación al cliente
 El cliente puede extender la funcionalidad del servidor.
 Fácil instalación para el usuario.
 No se requiere instalación de servidor.
 No se acuerdan los procedimientos entre los clientes y los servidores.
 Instalación dinámica de los procedimientos del cliente en el servidor.

Tiempo de desempeño

Además, la ejecución asíncrona permite que los procesos controlen la gestión y terminación de
tarea y que el cliente pueda finalizar o continuar haciendo otras cosas en su sistema, por otro lado,
se reduce el tráfico en la red y la capacidad de cómputo del cliente

12.6 Explique por qué el uso de objetos distribuidos con un intermediario de peticiones de objetos
simplifica la implementación de sistemas cliente-servidor escalables. Ilustre su respuesta con un
ejemplo.

RTA: Como se dice en la respuesta anterior, es una forma adecuada de utilizar el middleware en
un sistema puesto que mejora y facilitar la comunicación.
12.7 ¿Cómo se usa el IOL de CORBA para soportar comunicaciones entre objetos que han sido
implementados en diferentes lenguajes de programación? Explique por qué esta aproximación
puede ocasionar problemas de rendimiento si hay diferencias sustanciales entre los lenguajes
usados para la implementación de los objetos.

RTA: Esta aproximación se puede ocasionar debido a que los objetos pueden ejecutarse sobre
diferentes plataformas y sus nombres no necesitan ser conocidos por el resto de los objetos del
sistema. Por lo tanto, el middleware tiene que realizar mucho trabajo para asegurar la
transparencia en las comunicaciones de los objetos. Se requiere middleware a dos niveles para
soportar la computación de objetos distribuidos:

1. A nivel de comunicación lógica, el middleware proporciona funcionalidades que permiten a los


objetos intercambiar datos y controlar la información sobre diferentes computadoras.

2. A nivel de componentes, el middleware proporciona una base para desarrollar componentes


compatibles. Estándares tales como componentes CORBA, EJB o Active X proporcionan una base
para la implementación de componentes con métodos estándar que pueden requerirse y usarse
por otros componentes.

También podría gustarte