1 parcial Arquitectura de Software

6
Universidad de Cartagena Programa de Ingeniería de Sistemas Arquitecturas de Software Primer Parcial Moises Correa – Gustavo Rojas – Gabriel Dizzet Enunciado: “El Salto del Caballo” El problema del caballo es un antiguo problema matemático en el que se pide que, teniendo una cuadrícula de n x n casillas y un caballo de ajedrez colocado en una posición cualquiera (x, y ), el caballo pase por todas las casillas y una sola vez. Lo que resulta en n 2 -1 movimientos. En el ajedrez, el caballo es una pieza del juego distinta a las otras piezas en su forma de moverse. Es la única pieza que puede saltar por encima de las demás, describiendo una trayectoria en forma de L. Es decir, se desplaza dos casillas en dirección horizontal o vertical y una en dirección perpendicular a la anterior. El Juego Un recorrido del caballo es una secuencia de saltos, sin repetir casillas, desde una casilla inicial hasta otra final, desde la cual no se puede avanzar, sin pasar por una casilla ya visitada. Llamamos tamaño al número de casillas que visita y longitud al número de saltos que da. El juego ofrece cuatro opciones de dimensión del tablero: 1) 4 x 4, 2) 6 x 6, 3) 9 x 9, 4) 12 x 12. El juego es para dos personas. Empieza un jugador colocando el 1 en una casilla, le sigue el otro colocando un 2 en una nueva casilla que se obtiene desde la 1 por salto del caballo. Así sucesivamente hasta que un jugador no pueda seguir jugando, éste sería el que pierde. Se pide: 1. Establecer la relación existente entre el concepto de ocultación de la información y el concepto de independencia modular (1 pto)

Transcript of 1 parcial Arquitectura de Software

Page 1: 1 parcial Arquitectura de Software

Universidad de CartagenaPrograma de Ingeniería de Sistemas

Arquitecturas de SoftwarePrimer Parcial

Moises Correa – Gustavo Rojas – Gabriel Dizzet

Enunciado: “El Salto del Caballo”

El problema del caballo es un antiguo problema matemático en el que se pide que, teniendo una cuadrícula de n x n casillas y un caballo de ajedrez colocado en una posición cualquiera (x, y ), el caballo pase por todas las casillas y una sola vez. Lo que resulta en n 2-1 movimientos.

En el ajedrez, el caballo es una pieza del juego distinta a las otras piezas en su forma de moverse. Es la única pieza que puede saltar por encima de las demás, describiendo una trayectoria en forma de L. Es decir, se desplaza dos casillas en dirección horizontal o vertical y una en dirección perpendicular a la anterior.

El JuegoUn recorrido del caballo es una secuencia de saltos, sin repetir casillas, desde una casilla inicial hasta otra final, desde la cual no se puede avanzar, sin pasar por una casilla ya visitada. Llamamos tamaño al número de casillas que visita y longitud al número de saltos que da.

El juego ofrece cuatro opciones de dimensión del tablero: 1) 4 x 4, 2) 6 x 6, 3) 9 x 9, 4) 12 x 12.

El juego es para dos personas. Empieza un jugador colocando el 1 en una casilla, le sigue el otro colocando un 2 en una nueva casilla que se obtiene desde la 1 por salto del caballo. Así sucesivamente hasta que un jugador no pueda seguir jugando, éste sería el que pierde.

Se pide:1. Establecer la relación existente entre el concepto de ocultación de la información y el

concepto de independencia modular (1 pto)

La modularidad es producto de la necesidad de descomponer los problemas, esto trae entre tantos beneficios como facilidad de mantenimiento y solución de problemas así como mayor eficiencia en reutilización de código y uso de patrones.

La ocultación de información implica que se puede conseguir una modularidad eficaz en base a la definición de módulos que aunque sean independientes se comuniquen entre ellos, paro el flujo de datos que manejaran será solo la información necesaria para conseguir la función del software.

La independencia del módulo es un producto directo de la modularidad, que se interesa solo en que cada módulo cumpla con su responsabilidad (Cohesión) sin tantas

Page 2: 1 parcial Arquitectura de Software

dependencias de terceros (Acoplamiento), y que además provea sus servicios a otros módulos de una forma sencilla.

2. Explique los siguientes niveles de acoplamiento y clasifíquelos según sean: bajo, moderado o alto. (1 pto)

a. Acoplamiento normal (BAJO)Una unidad de software llama a otra de un nivel inferior y tan solo intercambian datos.

b. Acoplamiento de datos (BAJO)Una unidad de software está acoplada a otra por los datos cuando ambas necesitan del mismo conjunto local de datos para funcionar.

c. Acoplamiento por estampado (MEDIO)Los módulos se pasan datos con estructura de registro. No es muy deseable si el módulo receptor sólo requiere parte de los datos que se le pasan.

d. Acoplamiento de control (ALTO)Decimos que un método está acoplado a otro por control cuando de alguna manera un método controla la ejecución del otro. En general, suele ocurrir cuando un método pasa algún parámetro a otro, y en función de él se comporta de una u otra manera.

e. Acoplamiento externo (MEDIO)Las unidades de software están ligadas a componentes externos, como por ejemplo dispositivos de entrada / salida, protocolos de comunicaciones, etc.

f. Acoplamiento común (MEDIO)Dos unidades de software acceden a un mismo recurso común, generalmente memoria compartida, una variable global o un fichero.

g. Acoplamiento de contenido (ALTO)Ocurre cuando una unidad de software necesita acceder a una parte de otra unidad de software.

3. Realice una consulta sobre el “enfoque de refinamiento stepwise”. Aplique este enfoque para desarrollar tres niveles distintos de abstracciones del procedimiento para el problema del salto del caballo (1.5 ptos)

El refinamiento Stepwise es una estrategia de diseño propuesta originalmente por Niklaus Wirth. Un programa se elabora por medio del refinamiento sucesivo de los detalles del procedimiento. Se desarrolla una jerarquía con la descomposición de un enunciado macroscópico de la función (abstracción del procedimiento) en forma escalonada hasta llegar a los comandos del lenguaje de programación.

En realidad, el refinamiento es un proceso de elaboración. Se comienza con un enunciado de la función (o descripción de la información), definida en un nivel de abstracción alto. Es decir, el enunciado describe la función o información de manera conceptual, pero no dice nada sobre los trabajos internos de la función o de la estructura interna de la información. Después se trabaja sobre el enunciado original, dando más y más detalles conforme tiene lugar el refinamiento (elaboración) sucesivo.

Page 3: 1 parcial Arquitectura de Software

La abstracción y el refinamiento son conceptos complementarios. La primera permite especificar internamente el procedimiento y los datos, pero elimina la necesidad de que los “extraños” conozcan los detalles de bajo nivel. El refinamiento ayuda a revelar estos detalles a medida que avanza el diseño. Ambos conceptos permiten crear un modelo completo del diseño conforme éste evoluciona.

NIVEL ALTO DE ABTRACCIÓN Mover caballo en el tablero

NIVEL MEDIO DE ABTRACCIÓN Mover caballo en forma de ele (L) en el tablero Marcar casillas ya visitadas No repetir casillas ya visitadas

NIVEL BAJO DE ABTRACCIÓN Situar el caballo en una posición inicial cualquiera en un tablero de nxn

dimensiones. Mover caballo dos casillas en dirección horizontal o vertical y una en dirección

perpendicular a la anterior. Marcar casillas ya visitadas respectivamente con el número correspondiente a

cada jugador (1 o 2). No repetir casillas ya visitadas y si no puede mover ha perdido el juego.

4. Realice una consulta sobre Modelo de Contexto del Sistema y Modelos de Utilización. Explíquelos. (0.5 pto)

El modelo de contexto y el modelo de utilización del sistema representan dos modelos complementarios entre un sistema y su entorno:

El modelo contexto del sistema es un modelo estático que describe a los otros sistemas su entorno, El contexto del sistema es la parte del entorno del sistema relevante para definir, entender, e interpretar los requerimientos del sistema. se utiliza con frecuencia como fuente de inspiración para el diseño de los objetos software. Muestra (a los modeladores) clases conceptuales significativas en un dominio de problema.

El modelo de utilización del sistema es un modelo dinámico que describe cómo el sistema interactúa con su entorno. Describe la funcionalidad propuesta del nuevo sistema. Representa la interacción entre un usuario (humano o máquina) y el sistema.

Page 4: 1 parcial Arquitectura de Software

5. Realice los Modelos de Contexto del Sistema y Modelos de Utilización para El Juego. (1 pto)

Contexto del Sistema

Page 5: 1 parcial Arquitectura de Software

Modelo de Utilización