Você está na página 1de 8

Ingeniera de Software I

Prctica 6 Arquitectura y Diseo


1er Cuatrimestre de 2001 Abre Cierra 14/05/2001 31/05/2001

- 1/8 -

Ingeniera de Software I

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

6. Diseo
6.1 Sistema de Interpretacin de Morlacos
Considerar el siguiente escenario. Una empresa tiene 3 mquinas UNIX equipadas con e-mail, llamado a procedimientos remotos (esto es, llamado a procedimientos desde una mquina a otra) y conectadas en red (lo que permite usar efectivamente el software mencionado). Cuenta, adems, con un sistema de Interpretacin de Morlacos, que es un hardware adicional que se conecta a una de las mquinas y, cuando se introduce en ella un Morlaco, realiza un anlisis del mismo, dejando los resultados en un archivo que se llama result.mor en un directorio particular. Los usuarios estn divididos por mquina: cada usuario tiene una cuenta en una y slo una mquina. Hay algunos usuarios clave que tienen que ser avisados si aparecen Morlacos mutantes. Los usuarios clave cambian con el tiempo. Se desea implementar un sistema de tal manera que, cuando se realice un anlisis con el Interpretador de Morlacos, y el Morlaco introducido resulte ser mutante, se avise automticamente a todos los usuarios clave. Es fundamental que el aviso sea inmediato. Se pide: a) Definir la arquitectura conceptual del sistema. b) Cmo considera el diseo que ha realizado en cuanto a cohesin y acoplamiento? Justifique muy brevemente y explique qu decisiones particulares que ha adoptado han contribuido o perjudicado a estos criterios. Nota: Al no existir una especificacin detallada y no ambigua, pueden realizar suposiciones razonables cada vez que algn aspecto no est definido. Debe indicarse cul es la suposicin que se maneja.

6.2

Sistema Robotizado de Empaquetamiento

Un sistema robotizado de empaquetamiento puede empacar diferentes tipos de piezas definidas a priori. El mismo usa un sub sistema de visin para levantar las piezas desde una cinta transportadora, identificar el tipo de pieza y seleccionar el tipo de empaquetamiento de una lista definida de posibilidades. Posteriormente utilizando su brazo mecnico, lo empaqueta y lo deja en otra cinta transportadora. a) Defina las arquitecturas conceptual para este sistema. Tome las decisiones de diseo y supuestos sobre el enunciado que Ud. crea razonables, documentndolas claramente. b) Cmo considera el diseo que ha realizado en cuanto a cohesin y acoplamiento? Justifique muy brevemente y explique qu decisiones particulares que ha adoptado han contribuido o perjudicado a estos criterios.

- 2/8 -

Ingeniera de Software I

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

6.3

SAP

Se quiere disear un sistema de administracin de problemas (SAP) para el rea de sistemas de una compaa. El sistema va a funcionar en una red de PC. Cuando un usuario identifica un error en una aplicacin, llama al SAP e inicia un reporte de problema (RP). El SAP debe entonces enviar por correo electrnico un aviso a todos los usuarios que figuran en una lista predeterminada. El sistema deber permitir la actualizacin de esa lista. La comunicacin con el correo electrnico es a travs de llamadas a procedimientos exportados por el sistema de correo actual. Ese sistema va a ser reemplazado pronto y se quiere considerar esto en el diseo del SAP. Las personas de la lista, una vez que reciben la notificacin por el correo electrnico, pueden consultar, listar o actualizar el RP. El sistema deber proveer de estadsticas semanales sobre los RP, ordenados por cualquiera de sus atributos. Hay dos tipos de usuario: el usuario final, que slo puede generar nuevos RP y consultar su estado, y los usuarios de la lista, que pueden realizar todas las funciones que se mencionan en el enunciado. No se descarta que en el futuro se incorporen nuevos tipos de usuarios que puedan realizar slo algunas funciones, y esto debe ser tenido en cuenta en el diseo. a) Especifique la arquitectura conceptual de este sistema. b) Mencione un atributo de calidad de su diseo, y dos casos concretos de como lo implementa.

6.4

AI

Se quiere disear un administrador de impresin (AI) para equipos multi usuario que sea portable a distintos sistemas operativos. Cuando uno de los usuarios de la mquina imprime algo, el administrador de impresin recibe el trabajo y lo ubica en la cola de impresin de la impresora indicada por el usuario. Cuando el trabajo llega al primer lugar en la cola, el AI lo enva directamente al dispositivo de impresin correspondiente. Cuando el dispositivo informa que finaliz la impresin, el AI enva un mensaje al usuario solicitante y contina con el siguiente trabajo. Si el dispositivo de impresin avisa al AI que se produjo un error, el AI enva un mensaje indicativo a todos los usuarios con trabajos en esa cola de impresin. Luego queda en espera de que el dispositivo avise que la impresora est lista nuevamente, y contina la impresin. Los usuarios pueden eliminar sus trabajos en espera. Para simplificar el ejercicio, asuma que la cantidad de impresoras es fija, y es un dato conocido por el AI. Adems, el Sistema Operativo ofrece un servicio para envo de mensajes a los usuarios. a) Especifique un diseo a este sistema. b) Explique brevemente cules son las ventajas de su diseo. En qu criterios se bas? c) En que cambiara su diseo si la cantidad de impresoras no fuera fija.

6.5

Agendas Compartidas

Un sistema grupal de administracin diaria de tiempos debe ser el soporte para el manejo de los horarios de reuniones y citas entre las agendas de un grupo de colegas de trabajo (las agendas son parte del sistema). Cuando una reunin que involucra un nmero de personas debe realizarse, este sistema encuentra un espacio de tiempo libre en comn en cada una de las agendas de los que deben participar y fija la cita en ellas. Si no hay horarios en comn disponibles, el sistema interacta con el usuario para re ordenar su agenda y liberar un horario para esta cita. El sistema debe permitir la administracin de usuarios y grupos de usuarios. a) D un diseo para este sistema. Tome las decisiones de diseo y supuestos sobre el enunciado que Ud. crea razonables, documentndolas claramente. b) Modifique el diseo para que, adems de fijar las citas, toda la interaccin se realice por correo electrnico; en particular, le enve por este medio un aviso de reunin con el horario a cada usuario afectado.

6.6

El sistema KWIC

La siguiente es la descripcin del sistema KWIC, hecha por David Parnas en su artculo "Acerca del Criterio Usado para Descomponer Sistemas en Mdulos".

- 3/8 -

Ingeniera de Software I

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

"El sistema KWIC (Key Word in Context) acepta un conjunto de lneas. Cada lnea es un conjunto de palabras, y cada palabra es un conjunto de caracteres. Cualquier lnea puede ser circularmente corrida moviendo la primer palabra hacia el final repetidamente. El sistema KWIC tiene como output una lista de todos los corrimientos circulares de todas las lneas en orden alfabtico." Lo que necesitamos es disear un sistema que nos permita interactivamente ingresar y borrar lneas, imprimir lneas en orden alfabtico, e imprimir los corrimientos circulares de todas las lneas (por supuesto en orden alfabtico). Este es un ejemplo de una sesin con el sistema que se pretende disear. agregar, borrar, imprimir, corrimientos? a ingrese una lnea: > el rey est cansado agregar, borrar, imprimir, corrimientos? a > ingrese una lnea: se pierde en la distancia agregar, borrar, imprimir, corrimientos? i el rey est cansado se pierde en la distancia agregar, borrar, imprimir, corrimientos? c cansado el rey est distancia se pierde en la el rey est cansado en la distancia se pierde est cansado el rey la distancia se pierde en pierde en la distancia se rey est cansado el se pierde en la distancia agregar, borrar, imprimir, corrimientos? b ingrese la lnea a borrar: > el rey est cansado agregar, borrar, imprimir, corrimientos? i se pierde en la distancia a) Teniendo en cuenta que toda la informacin es ingresada por pantalla, y debe ser guardada en memoria, disee la arquitectura conceptual del sistema. Use tambin el concepto de anticipacin de los cambios. Piense en posibles cambios y trate que estos tengan un mnimo impacto en su diseo. b) Haga una solucin pipe & filter. Haga una solucin con invocacin implcita (eventos). Los usuarios finalmente han decidido hacer los siguientes cambios: 1. El sistema deber almacenar su informacin en disco y no en memoria

- 4/8 -

Ingeniera de Software I

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

2. Los corrimientos que empiecen con las palabras "de", "a", "en", "la", y "el" no debern imprimirse. Esta lista de palabras es fija en principio, pero los usuarios no pueden garantizarnos que nunca vaya a cambiar. 3. El formato de las lneas. El sistema deber leer palabras hasta un carcter especial que indique el fin de una lnea. 4. La decisin acerca del ordenamiento de los corrimientos circulares. Si en su diseo usted ordena la lista de corrimientos circulares en el momento de la impresin, deber ahora guardarlos en forma ordenada. Si haba decidido guardarlos ordenados, deber modificar esto y ordenarlos en el momento de impresin. 5. El sistema deber ser robusto con respecto a errores del usuario. Por ejemplo: si el usuario ingresa una lnea repetida, o intenta borrar una lnea no existente, deber imprimirse un mensaje de error cuyo formato an no ha sido definido. Explique cmo su diseo resuelve esos cambios.

6.7

Un Editor

Un editor es un programa que permite escribir un documento, memorizndolo en modo permanente en un file. Un grupo de estudiantes perezosos realiz un editor rudimentario en Modula 2 que slo permite grabar en file, secuencias de hasta 300 palabras. Para realizar esto, los estudiantes usaron las siguientes libreras primitivas del lenguaje: InOut: Para leer de teclado e imprimir por pantalla, importando WriteString, WriteLn, Read, Write y ReadString. FileSystem: Para manejar files importando File, Response, Lookup, Close, WriteChar.

a) Escribir la arquitectura conceptual del editor rudimentario utilizando. b) Un sub grupo de estudiantes quiso aprobar la materia y decidi agregar las siguientes funcionalidades: 1. Funcin de bsqueda de palabra. Para optimizar el tiempo de respuesta, decidieron volcar todo el documento en memoria utilizando una estructura de datos basada en rboles B-TREE 2. Funcin de reemplazo de todas las apariciones de una palabra dada por otra. 3. Creacin de un file con la secuencia de palabras original ordenada alfabticamente. 4. Diccionario: Chequea si cada palabra del file existe en el diccionario, mostrando por pantalla las incorrectas. Para realizar esto, los estudiantes decidieron tener un file conteniendo la secuencia de palabras del diccionario y cada vez que se ejecute esta funcin volcar el diccionario en un B-TREE 5. Funcin de concatenamiento de un file dado al actual Extender el diseo de a) para cubrir estas funcionalidades. c) Cree que el grado de cohesin y el grado de acoplamiento logrados en 2 son buenos? Justifique. Si la respuesta es s, ejemplifique, basndose en b), cmo ambos grados podran haber sido malos. d) Cmo considera el diseo que ha realizado en cuanto a cohesin y acoplamiento? Justifique muy brevemente y explique qu decisiones particulares que ha adoptado han contribuido o perjudicado a estos criterios.

6.8

La Libreta de Leonardo

En el Tratado de la Pintura de Leonardo Da Vinci, encontramos el siguiente texto bajo el ttulo : Modo de Conservar un Rostro en la Memoria: Para conservar con facilidad en la imaginacin la forma de un rostro es preciso ante todas cosas tener en la memoria multitud de formas de boca, ojos, nariz, barba, garganta, cuello y hombros, tomadas de varias cabezas. La nariz mirada de perfil puede ser de diez maneras diferentes: derecha, curva, cncava, con el caballete en la parte superior o en la inferior, aguilea, roma, redonda o aguda. Mirada de frente se divide en once clases diferentes: igual, gruesa en el medio o sutil, gruesa en la punta y sutil en el principio, delgada en la punta y gruesa en el principio, las ventanas anchas o estrechas, altas o bajas, muy descubiertas o muy cerradas por la punta; y de este - 5/8 -

Ingeniera de Software I

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

modo se hallarn otras varias diferentes en las dems partes, las cuales debe el Pintor copiar del natural, y conservarlas en la mente. Tambin se puede, en caso de tener que hacer un retrato de memoria, llevar consigo una libretilla en donde estn dibujadas todas estas facciones, y despus de haber mirado el rostro que se ha de retratar, se pasa la vista por la libreta para ver que nariz o que boca de las apuntadas se le asemeja; y poniendo una seal, se hace luego el retrato en casa. Realice un modelo de objetos, lo sufientemente detallado, que le permita a Leonardo hacer luego el retrato en casa. Incluya en su modelo: diagramas de objetos, diagramas de clases, diagramas de comportamiento. Agregue todos los diagramas adicionales que considere necesarios.

6.9

El Grangero Boer

En El cine segn Hitchcock, Franois Truffaut entrevista a Alfred Hichcock, quien le cuenta cmo se le ocurri una de las escenas de su pelcula El Hombre que Saba Demasiado : A pesar de mi admiracin por John Buchan, hay muchas cosas en la pelcula que no estn en el libro; por ejemplo, la escena de la noche que Robert Donat pasa con el granjero y su mujer me la inspir una historia licenciosa muy antigua. Se trata de un granjero boer del Africa del Sur, terriblemente austero, con una enorme barba negra, que tiene una mujer joven, insatisfecha y sedienta de sexo. El da del aniversario de su marido, ha matado un pollo y ha hecho una tarta con l. Es una noche muy tormentosa y espera que esta tarta sea una buena sorpresa para su marido. En lugar de esto, el marido, le reprocha que haya matado un pollo sin su permiso. Triste noche de aniversario. Alguien llama a la puerta; es un guapo extranjero que se ha extraviado. La granjera le hace sentarse y le ofrece comida. El granjero le impide que coma demasiado y dice: Cuidado, esto debe alimentarnos el resto de la semana. La chica empieza a devorar con los ojos al extranjero y se pregunta: Cmo podra acostarme con l?. El marido quiere acostar al extranjero en la caseta del perro. La mujer se opone y, finalmente, se acuestan los tres en la cama grande. El granjero duerme en medio. La mujer hara cualquier cosa para librarse del marido. En cierto momento oye un ruido, despierta a su marido y le dice: Creo que las gallinas se han escapado. Entonces el marido se levanta, se le oye andar por el patio. La mujer sacude al extranjero y le dice: De prisa, de prisa, ven, ahora es el momento. El extranjero se levanta rpidamente y se acaba la tarta de pollo.

6.9.1 Toma 1
Parta del texto del Granjero Boer, y haga un modelo de objetos pensando la situacin como una escena de una pelcula; donde el granjero Boer, su mujer y el guapo extranjero son personajes. El modelo debe permitir reproducir la escena. Incluya en su modelo: diagrama/s de objetos, diagrama/s de clase, diagrama/s de comportamiento que reproduzcan la escena. Agregue todos los diagramas adicionales que considere necesarios.

6.9.2 Toma 2
Generalice el modelo anterior para crear un software que ayude a un director de cine a simular escenas antes de filmarlas. Este software podra recibir como input la descripcin de la escenografa y el guin de la escena (con los personajes, el texto y las indicaciones escnicas), y permitira correr la escena. Use la escena del Granjero Boer como ejemplo para verificar su modelo. Incluya en su modelo: diagrama/s de objetos del ejemplo del Granjero Boer, diagrama/s de clases, diagrama/s de comportamiento que reproduzcan la escena del Granjero Boer. Agregue todos los diagramas adicionales que considere necesarios.

6.10

Biblioteca

a) Sugiera componentes y clases que podran pertenecer al diseo de un catlogo automatizado de una biblioteca en la que los usuarios pueden consultar para saber qu libros estn disponibles y cules prestados. b) Indique si el diseo resultante tiene buen nivel de acoplamiento y cohesin. Justifique. c) Se quiere agregar la funcionalidad de reserva automtica, indique como modificara el diseo anterior. d) Indique como este cambio afecta a la cohesin y acoplamiento descriptos en el punto b).

- 6/8 -

Ingeniera de Software I

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

6.11

Encuestas

La Facultad de Ciencias Exactas quiere disear un sistema que permita procesar de forma automtica las encuestas de evaluacin de las materias que se dictan. A diferencia de las encuestas actuales, se quiere que el sistema maneje distintos tipos de encuestas, cada una con sus preguntas particulares. Cada pregunta podr tener una cantidad de respuestas posibles, de las cuales el alumno deber seleccionar una. Este sistema deber: 1. guardar toda la informacin de las distintas encuestas que existen y las materias que las usan. 2. emitir estadsticas correspondientes a cada departamento, rea y materia 3. generar automticamente una pagina HTML con los resultados por cada materia 4. guardar informacin sobre los docentes de cada materia 5. imprimir el formulario de las encuestas para entregar a los alumnos donde, por supuesto, figuren los distintos docentes de la materia para que sean evaluados 6. permitir el ingreso del resultado de las encuestas a partir de una carga por pantalla o a travs de un scanner. Haga un diseo de este sistema. Puede hacer las simplificaciones que considere necesarias, documentndolas claramente.

6.12

Poner Nombres

Dados los diagramas adjuntos, complete los nombres de las clases de tal forma que los diagramas representen algn modelo posible. a)

- 7/8 -

Ingeniera de Software I b)

Prctica 6 Arquitecturas y Diseo

1er Cuatrimestre de 2001

c)

d)

- 8/8 -

Você também pode gostar