Top Banner
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
41

Modelos de dominio específicos

Jun 13, 2015

Download

Documents

Modelos de Dominio Específico. Sistemas de Procesamiento de Datos. Transacciones. Eventos y Lenguajes. U.T.N. - F.R.T. - Diseño de Sistemas - 3K1 - 2011
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modelos de dominio específicos

Ingeniería en Sistemas de Información

Diseño de Sistemas(3K1)

Page 2: Modelos de dominio específicos

Contenidos de la Unidad 2Diseño Arquitectónico

A. Organización del Sistemaa. Arquitectura centrada en datos b. Arquitectura en capas c. Arquitectura de sistemas distribuidos

c.1. Multiprocesador c.2. Cliente/Servidorc.3. Objetos distribuidosc.4. Peer-to-peerc.5. Orientada a servidos

d. Arquitecturas de Aplicaciones Modelos de dominio específico  

Sommerville. Cap. 11  Sommerville. Cap. 12      Sommerville. Cap. 13

B. Descomposición modular y estilos de control

a. Orientada a Objetosb. Orientada a flujos de funcionesc. Control centralizadod. Control basado en eventos

 

Sommerville. Sección 11.3

Page 3: Modelos de dominio específicos

Modelos de Dominio Específicos

(Ian Sommerville, Cap. XIII)

Se pueden ver las arquitecturas de los sistemas desde varias perspectivas.

Hasta ahora, los análisis de las Arquitecturas de Sistemas estudiadas se han centrado en perspectivas arquitectónicas y cuestiones tales como control, distribución y estructuración del sistema.

Ahora, contemplaremos las arquitecturas desde la perspectiva de una aplicación.

Los sistemas de aplicaciones intentan adecuarse a necesidades organizacionales o de negocio.

Page 4: Modelos de dominio específicos

Todos los negocios tienen mucho en común: necesitan contratar personal, emitir facturas, mantener la contabilidad, etc., sobre todo en negocios del mismo rubro.

Ejemplo: además de las funciones de negocio generales, todas las compañías telefónicas necesitan sistemas para conectar las llamadas, gestionar su red, emitir facturas a los clientes, etc.

Por eso, las aplicaciones de los sistemas que utilizan estos negocios tienen también mucho en común.

Normalmente, los sistemas del mismo tipo tienen arquitecturas similares, y la diferencia entre ellos está en la funcionalidad detallada que proporcionan.

Modelos de Dominio Específicos

Page 5: Modelos de dominio específicos

Presentaremos modelos estructurales genéricos de varios tipos de aplicaciones.

Estudiaremos su organización básica y, donde sea apropiado, descompondremos la arquitectura de alto nivel para mostrar los subsistemas de esas aplicaciones.

El Diseñador puede usar arquitecturas de aplicaciones genéricas de varias formas:

1. Como un punto de partida para el Diseño Arquitectónico. Si no está familiarizado con este tipo de aplicación, puede basar sus diseños iniciales sobre arquitecturas genéricas.

Por supuesto, éstas tendrán que especializarse para sistemas concretos, pero son un buen punto de partida para su diseño.

Modelos de Dominio Específicos

Page 6: Modelos de dominio específicos

2. Como comprobación de un diseño. Si ha desarrollado un diseño arquitectónico de un sistema, puede comprobarlo contrastándolo con la arquitectura genérica, para ver si ha omitido algún componente de diseño importante.3. Para organizar el trabajo del equipo de desarrollo. La arquitectura de la aplicación identifica características estructurales estables de los sistemas y, en muchos casos, se las puede desarrollar en paralelo. Usted puede asignar trabajo a miembros del grupo para implementar diferentes subsistemas dentro de la arquitectura.

Modelos de Dominio Específicos

Page 7: Modelos de dominio específicos

4. Para evaluar componentes a fin de su reutilización. Para ayudar a determinar si un componente que se está construyendo puede o no ser reutilizado; se lo puede comparar con las estructuras genéricas.5. Como un vocabulario para hablar sobre tipos de aplicaciones. Si está tratando una aplicación específica o intentando comparar aplicaciones del mismo tipo, entonces puede usar los conceptos identificados en la arquitectura genérica para hablar de las aplicaciones.

Modelos de Dominio Específicos

Page 8: Modelos de dominio específicos

Hay muchos tipos de sistemas de aplicaciones que, aparentemente, pueden parecer muy distintos.

Sin embargo, cuando se examina la organización arquitectónica de las aplicaciones, muchas, aparentemente distintas, tienen mucho en común.

Hay cuatro grandes tipos de aplicaciones:1. Aplicaciones de procesamiento de datos. Son aplicaciones

conducidas por los datos. Procesan datos por lotes sin intervenciones explícitas del usuario

durante el procesamiento. Las acciones específicas tomadas por la aplicación dependen de

los datos que se están procesando.

Modelos de Dominio Específicos

Page 9: Modelos de dominio específicos

Los sistemas de procesamiento por lotes se usan en aplicaciones de negocio que realizan operaciones similares sobre grandes cantidades de datos.

Dichas aplicaciones manejan un amplio rango de funciones administrativas: nóminas, facturación, contabilidad y publicidad.

2. Aplicaciones de procesamiento de transacciones. Son aplicaciones centradas en bases de datos, que procesan peticiones del usuario para obtener información y actualizar la información en una base de datos.

Son comunes en los sistemas de negocio interactivos.

Modelos de Dominio Específicos

Page 10: Modelos de dominio específicos

Se organizan para que las acciones del usuario no interfieran entre sí y se mantenga la integridad de la base de datos.

Ejemplos: sistemas bancarios interactivos, sistemas de comercio electrónico, de información y de reservas.

3. Sistemas de procesamiento de eventos. Es una clase muy amplia de aplicaciones, donde las acciones del sistema dependen de la interpretación de eventos en el entorno del sistema.

Modelos de Dominio Específicos

Page 11: Modelos de dominio específicos

Estos eventos podrían ser la entrada de una orden por un usuario del sistema o un cambio en las variables monitoreadas por el sistema.

Muchas aplicaciones basadas en PCs.: juegos, sistemas de edición (procesadores de texto, hojas de cálculo, editores de imágenes y sistemas de presentación) son sistemas de procesamiento de eventos.

4. Sistemas de procesamiento de lenguajes. Son sistemas donde las intenciones del usuario se expresan en un lenguaje formal (Java).

Los sistemas de procesamiento de lenguajes procesan este lenguaje en algún formato interno e interpretan su representación interna.

Modelos de Dominio Específicos

Page 12: Modelos de dominio específicos

Los sistemas de procesamiento de lenguajes más conocidos son los compiladores, que traducen programas de lenguajes de alto nivel a código máquina.

Se han elegido estos tipos de sistemas porque representan la mayoría de sistemas que se usan en la actualidad.

Los sistemas de negocio son generalmente sistemas de procesamiento de transacciones o de datos, y la mayoría del software de PC’s se construye sobre una arquitectura de procesamiento de eventos.

Modelos de Dominio Específicos

Page 13: Modelos de dominio específicos

Los sistemas de tiempo real son también sistemas de procesamiento de eventos.

El desarrollo del software se centra en los sistemas de procesamiento de lenguajes: compiladores.

Los sistemas de procesamiento por lotes y de transacciones se centran en bases de datos.

Por la importancia fundamental de los datos, estos sistemas son comunes para aplicaciones de diferentes tipos que comparten la misma base de datos.

Modelos de Dominio Específicos

Page 14: Modelos de dominio específicos

Las aplicaciones complejas raramente siguen un único modelo arquitectónico.

En su lugar, su arquitectura es la mayoría de las veces un híbrido, con diferentes partes de la aplicación estructuradas de forma diferente.

Por lo tanto, al diseñar estos sistemas, hay que considerar las arquitecturas de subsistemas individuales y también cómo éstas deben integrarse con la arquitectura del sistema en su totalidad.

Modelos de Dominio Específicos

Page 15: Modelos de dominio específicos

Los negocios necesitan relacionarse con sistemas de procesamiento de datos para : pago de salarios, cálculo e impresión de facturas, mantenimiento de cuentas, emisión de pólizas de seguros, etc.

Como su nombre indica, estos sistemas se centran en datos, y las bases de datos con las que se relacionan son normalmente más grandes que los propios sistemas.

Son sistemas de procesamiento por lotes donde los datos son introducidos y extraídos por lotes, a partir de un fichero o base de datos, en lugar de ser introducidos y extraídos por una terminal de usuario.

Sistemas de procesamiento de datos

Page 16: Modelos de dominio específicos

Estos sistemas seleccionan datos para el registro de entradas y, dependiendo del valor de estos campos, realizan algunas acciones especificadas en el programa.

Pueden volver a escribir el resultado del cálculo en la base de datos y formatear la entrada y la salida calculada para su impresión.

La arquitectura de los sistemas de procesamiento por lotes tiene tres componentes principales:

Sistemas de procesamiento de datos

Page 17: Modelos de dominio específicos

Un modelo de entrada-proceso-saIida de un sistema de procesamiento de datos.

Sistemas de procesamiento de datos

Page 18: Modelos de dominio específicos

Un componente de entrada reúne entradas desde una o más fuentes.

Un componente de procesamiento realiza cálculos utilizando estas entradas; y un componente de salida genera salidas para ser escritas en la base de datos o impresas.

Por ejemplo, un sistema de facturas telefónicas toma los datos registrados de un cliente y las lecturas realizadas del teléfono (entradas) de una central telefónica, calcula los costos para cada cliente (proceso) y entonces imprime facturas (salidas) para cada cliente. Guarda la información en la Base, también.

Sistemas de procesamiento de datos

Page 19: Modelos de dominio específicos

Los componentes de entrada, procesamiento y salida pueden, a su vez, descomponerse en una estructura de entrada-proceso-salida. Por ejemplo:

1. Un componente de entrada puede leer algún dato (entrada) desde un fichero o base de datos, comprobar la validez de los datos y corregir algunos errores (proceso), y a continuación encolar los datos válidos para su procesamiento (salida).

2. Un componente de procesamiento puede tomar una transacción de una cola (entrada), realizar cálculos sobre los datos y crear un nuevo registro de datos, almacenando los resultados en la base (proceso); a continuación, encolar este nuevo registro para su impresión (salida).

Sistemas de procesamiento de datos

Page 20: Modelos de dominio específicos

3. Un componente de salida puede leer registros de una cola (entrada), formatear éstos, de acuerdo con el formato de salida (proceso), y a continuación enviarlos a una impresora o volver a escribir nuevos registros en la base de datos (salida).La naturaleza de los sistemas de procesamiento de datos, en donde los registros o transacciones se procesan en serie sin necesidad de mantener el estado entre las transacciones, implica que estos sistemas sean naturalmente orientados a funciones en vez de orientados a objetos.

Sistemas de procesamiento de datos

Page 21: Modelos de dominio específicos

Las funciones son componentes que no mantienen información del estado interno de una invocación a otra.

Los diagramas de flujo de datos son una buena manera de describir la arquitectura de los sistemas de procesamiento de datos de negocio.

Los diagramas de flujos de datos constituyen una forma de representar sistemas orientados a funciones.

Cada rectángulo con bordes redondeados en el flujo de datos representa una función que implementa algunas transformaciones de datos, y cada flecha representa un elemento de datos procesado por la función.

Los ficheros o almacenes de datos se representan como rectángulos.

Sistemas de procesamiento de datos

Page 22: Modelos de dominio específicos

La ventaja de los diagramas de flujo de datos es que muestran el procesamiento de los datos desde su entrada hasta su salida.

Es decir, se pueden ver todas las funciones que actúan sobre los datos, a medida que se mueven a través de las etapas del sistema.

La estructura fundamental de un flujo de datos consiste en una función de entrada que pasa los datos a una función de procesamiento y a continuación a una función de salida.

Sistemas de procesamiento de datos

Page 23: Modelos de dominio específicos

Se diseñan para procesar peticiones de usuario, a fin de obtener información de una base de datos, o peticiones para actualizar la base de datos.

Técnicamente, una transacción de una base de datos es una secuencia de operaciones tratada como una única unidad (una unidad atómica).

Todas las operaciones de una transacción tienen que ser completadas antes de que los cambios en la base de datos sean permanentes.

Así, las fallas de operaciones dentro de la transacción no conducen a inconsistencias en la base de datos.

Sistemas de procesamiento de

transacciones

Page 24: Modelos de dominio específicos

Ejemplo: Extracción de fondos de un Cajero Automático. Esto implica obtener detalles de la cuenta del cliente,

comprobar el saldo, modificar el saldo por la cantidad retirada y enviar comandos al Cajero para proporcionar el dinero en efectivo.

Hasta que todos estos pasos no hayan sido completados, la transacción está incompleta y no se modifica la base de datos de cuentas de clientes.

Una transacción es cualquier secuencia coherente de operaciones que satisface un objetivo.

Sistemas de procesamiento de

transacciones

Page 25: Modelos de dominio específicos

Puede que la transacción del usuario no requiera que la base de datos sea modificada (consultas).

Los sistemas de procesamiento de transacciones son, normalmente, sistemas interactivos en donde los usuarios realizan peticiones de servicios.

Primero un usuario realiza una petición al sistema a través de un componente de procesamiento de E/S.

La petición se procesa por alguna lógica específica de la aplicación.

Sistemas de procesamiento de

transacciones

Page 26: Modelos de dominio específicos

Una transacción se crea y se envía a un gestor de transacciones, el cual normalmente está embebido en el sistema de gestión de base de datos.

Después de que el gestor de transacciones haya asegurado que la transacción se ha realizado correctamente, envía una señal a la aplicación indicando que el procesamiento ha finalizado.

Sistemas de procesamiento de

transacciones

Page 27: Modelos de dominio específicos

La estructura de las aplicaciones de procesamiento de transacciones

Sistemas de procesamiento de

transacciones

Page 28: Modelos de dominio específicos

La estructura entrada-proceso-salida que podemos observar en las aplicaciones de procesamiento de datos también se aplican a muchos sistemas de procesamiento de transacciones.

Algunos de estos sistemas son versiones interactivas de los sistemas de procesamiento por lotes.

Por ejemplo, por un lado los bancos dan entrada fuera de línea a todas las transacciones de clientes, y después ejecutan por la noche estas transacciones en un lote utilizando la base de datos de cuentas.

Sistemas de procesamiento de

transacciones

Page 29: Modelos de dominio específicos

Esta aproximación se ha reemplazado en la mayoría de los casos por sistemas interactivos basados en transacciones que actualizan las cuentas en tiempo real.

Ejemplo: Sistema de Cajeros Automáticos. El sistema está compuesto por dos subsistemas software que

cooperan: el software del Cajero Automático y el software de procesamiento de cuentas en el servidor de la base de datos del banco.

La entrada y salida de los subsistemas se implementa como software en el Cajero, mientras que el subsistema de procesamiento está en el servidor de la base de datos del banco.

Sistemas de procesamiento de

transacciones

Page 30: Modelos de dominio específicos

La Figura siguiente muestra la arquitectura de este sistema.

Se ha añadido algún detalle al diagrama básico de entrada-proceso-salida, para mostrar los componentes implicados en las actividades de entrada, procesamiento y salida.

Sistemas de procesamiento de

transacciones

Page 31: Modelos de dominio específicos

La arquitectura software de un Cajero Automático.

Sistemas de procesamiento de

transacciones

Page 32: Modelos de dominio específicos

Los sistemas de procesamiento de eventos responden a eventos en el entorno del sistema o interfaz del usuario.

La llegada de los eventos es impredecible y el sistema debe ser capaz de tratar estos eventos cuando ocurran.

Todos usamos sistemas basados en eventos en nuestras propias computadoras (procesadores de texto, sistemas de presentaciones y juegos).

Ellos están conducidos por eventos desde la interfaz de usuario.

Sistemas de Procesamiento de

Eventos

Page 33: Modelos de dominio específicos

El sistema detecta e interpreta los eventos. Los eventos de interfaz de usuario representan comandos

implícitos al sistema, que realiza alguna acción como respuesta a ese comando.

Por ejemplo, si usted está utilizando un procesador de texto y pulsa dos veces el ratón sobre una palabra, el evento de doble pulsación significa «selecciona esa palabra».

Los sistemas de tiempo real, que realizan acciones en «tiempo real», como respuesta a estímulos externos, son también sistemas de procesamiento basados en eventos.

Sistemas de Procesamiento de

Eventos

Page 34: Modelos de dominio específicos

Sin embargo, para sistemas de tiempo real, los eventos no son normalmente eventos de interfaz de usuario, sino eventos asociados con servidores o actuadores en el sistema.

Por la necesidad de respuesta en tiempo real a eventos no predecibles, estos sistemas de tiempo real se organizan como un conjunto de procesos cooperativos.

Sistemas de procesamiento de

eventos

Page 35: Modelos de dominio específicos

Describiremos la arquitectura de los sistemas de edición. Los sistemas de edición son programas que se ejecutan

sobre PC’s o estaciones de trabajo y que permiten a los usuarios editar documentos (documentos de texto, diagramas o imágenes).

Muchos procesadores de texto son multieditores e incluyen soporte para editar diferentes tipos de documentos (texto y diagramas)

Una hoja de cálculo sería un sistema de edición donde se editan las celdas de la hoja, que también tiene funcionalidades adicionales para realizar cálculos.

Sistemas de Procesamiento de

Eventos

Page 36: Modelos de dominio específicos

Los sistemas de edición tienen estas características que influyen en su diseño arquitectónico:

1. Son principalmente sistemas para un único usuario. Por lo tanto, no tienen que tratar los problemas de múltiples accesos concurrentes a los datos y tienen una gestión de los datos más sencilla que los sistemas basados en transacciones.

2. Tienen que proporcionar una rápida realimentación de las acciones del usuario tales como «seleccionar» y «borrar». Esto significa que tienen que funcionar con representaciones de los datos que se almacenan en la memoria de la computadora en vez de en el disco.

Sistemas de Procesamiento de

Eventos

Page 37: Modelos de dominio específicos

Debido a que los datos están en la memoria volátil, pueden perderse si hay una falla en el sistema; por lo tanto, los sistemas de edición deben prever la recuperación de errores.

Las sesiones de edición son normalmente más largas que las sesiones que implican peticiones de artículos, o la realización de alguna otra transacción.

Por eso hay un gran riesgo de pérdida si ocurren problemas. Entonces, muchos sistemas de edición incluyen facilidades de

recuperación que automáticamente guardan el trabajo en curso y recuperan el trabajo para el usuario en el caso de que se produzca una falla en el sistema.

Sistemas de procesamiento de

eventos

Page 38: Modelos de dominio específicos

Básicamente, los eventos de la pantalla son procesados e interpretados como comandos.

Esto actualiza una estructura de datos, que se vuelve a visualizar a continuación sobre la pantalla.

Sistemas de Procesamiento de

Eventos

Page 39: Modelos de dominio específicos

Los sistemas de procesamiento de lenguajes aceptan lenguaje natural o artificial como entrada y generan alguna otra representación de ese lenguaje como salida.

En ingeniería del software, los sistemas de procesamiento de lenguajes más usados son los compiladores, que traducen un lenguaje de programación artificial de alto nivel a código máquina.

Hay otros sistemas de procesamiento de lenguaje natural que intentan traducir un lenguaje natural a otro.

En la Figura siguiente se ilustra la arquitectura de un sistema de procesamiento de lenguajes en su nivel más abstracto.

Sistemas de Procesamiento de

Lenguajes

Page 40: Modelos de dominio específicos

Arquitectura abstracta de un sistema de procesamiento de lenguajes:

Sistemas de Procesamiento de

Lenguajes

Page 41: Modelos de dominio específicos

Las instrucciones describen lo que tiene que realizarse y tienen que traducirse por un traductor a algún formato interno.

Las instrucciones se corresponden con las instrucciones máquina para una máquina abstracta.

A continuación, estas instrucciones son interpretadas por otro componente que obtiene las instrucciones para su ejecución y las ejecuta.

La salida del proceso es el resultado de interpretar las instrucciones sobre los datos de entrada.

Sistemas de Procesamiento de

Lenguajes