Rodrigo Aguilera - Tarea 4

Arquitectura de Software Rodrigo Aguilera Modelamiento de Soluciones de Software Instituto IACC 10 de febrero de 2019

Views 100 Downloads 0 File size 301KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Arquitectura de Software Rodrigo Aguilera Modelamiento de Soluciones de Software Instituto IACC 10 de febrero de 2019

Desarrollo INSTRUCCIONES: Realice la siguiente actividad en base a la situación planteada: Su equipo de trabajo está desarrollando un juego que permite al usuario interactuar con personajes que juegan bajo ciertos roles y es por ello que se les ha solicitado incorporar al juego una facilidad para crear nuevos personajes que se añadan a los ya predefinidos. En el juego, todos los personajes serán instancias de un pequeño conjunto de categorías tales como: héroe, villano, príncipe o monstruo. Cada categoría tiene una serie de atributos como nombre, imagen, altura, peso, inteligencia, habilidades, etc., y según sus valores una instancia de la categoría representa a un personaje u otro. Por ejemplo, se puede tener el personaje “príncipe tonto” o “príncipe inteligente”, o un “monstruo bueno” o “monstruo malo”. En definitiva, primeramente deberá identificar los estilos de descomposición modular que existen, con su principal característica, y a partir de ello seleccionar el que aplica para este caso y ejemplificar cómo sería esta descomposición modular. Además, deberá diseñar una solución, en base a los patrones GoF adecuados, que permita al usuario crear nuevos personajes y seleccionar para cada sesión del juego personajes de una colección creada. Para resolver la identificación de los estilos por medio de descomposición modular primero pasaremos a expresar la definición y sus características: 1) Descomposición Modular a) Definición: La descomposición modular se define como a la descomposición de grandes problemas y complejos en aquellos más pequeños haciéndolos sencillos de resolver, de esta forma la tarea se hace más expedita. b) Características Principales: i) Identificar los módulos

ii) Descripción de cada modulo iii) Descripción de las relaciones entre los módulos iv) Independencia funcional v) Acoplamiento vi) Cohesión vii) Comprensibilidad y Adaptabilidad c) Dentro de las estrategias de descomposición modular existen dos de ellas las cuales se menciona a continuación: i) Descomposición orientada a objetos; Esta clase de descomposición nos permite descomponer un sistema de un conjunto de objetos que se encuentran comunicando entre sí. Permite estructurar el sistema a un conjunto de objetos acoplados y con sus interfaces bien definidas. (1) Características: En esta estrategia los componentes son los objetos o también llamadas instancias de tipo de datos, a estos datos se les denomina manager ya que es el responsable de preservar la integridad del recurso y por último los objetos se les permite interactuar por medio de invocaciones hacia sus funciones (2) Ventajas: Pueden ser representados por entidades de la vida real lo cual nos permite tener información más comprensible (3) Desventajas: El utilizar esta descomposición, los objetos deben hacer referencia a un nombre y a sus objetos. (4) Para este caso sería la mejor opción ya que cumple con todos los requisitos para ser implementado, para ejemplificar cómo sería esta descomposición modular se mostrará a continuación.

Personaje

Juego

Nombre Habilidad

Heroe

Villano

Principe

Mounstro

Nombre Habilidad

Nombre Habilidad

Nombre Habilidad

Nombre Habilidad

Heroe Alegre

Heroe Enojado

Villano Traidor

Villano Maldito

Principe Valiente

Principe Torpe

Rick

Micho

Cri

Leo

Sergi

Ralph

Mounstro HD Dante

Distancia

Distancia

Fuerte

Fuerte

Resistente

Resistente

Rapidez

ii) Descomposición orientada a flujos; Esta clase de descomposición nos permite agrupar el sistema por modelos de tipo funcional que acepta datos transformándolos en datos de salida. (1) Características: Dentro de las características de flujo de datos se menciona que no está basado en un contador de programa y su ejecución de instrucciones está determinada por la disponibilidad de los argumentos que se le entrega como entrada de las instrucciones. (2) Ventajas, implementa la idea de ventana en ejecución, el cual permite seguir el orden secuencial de la arquitectura, dentro de su ventana de le permite que las instrucciones sean completadas con los datos según el orden de sus dependencias. (3) Desventajas, es compleja la lógica de mantener un rastro en sus dependencias de los datos de forma dinámica restringiendo en su proceso, a un orden reducido y número de ejecuciones. 2) Para diseñar una solución, en base a patrones GoF, pasaremos a definir el concepto a) Los patrones de diseño permiten entregar soluciones aquellos problemas de tipo iterativo entre los desarrolladores de software y el ambiente de interfaz o sistema, además busca el

lograr la reutilización que en muchas ocasiones logra entregar una respuesta satisfactoria al conflicto. b) GoF si bien es cierto que no utiliza el uso del UML pero si hace uso del OMT (Técnica de modelamiento de objetos) para realizar estructuras de análisis antes de realizar la creación del software reduciendo las partes más complejas del sistema propuesto. c) Los patrones de creación nos permitirán realizar la iniciación y configuración de las clases y objetos mencionados en este diseño, el patrón creacional es el Prototype, se utiliza este patrón ya que nos permite iniciar y generar instancias de una clase para luego clonarlos y crear nuevas instancias. d) El patrón de prototipo se refiere a crear un objeto duplicado mientras se tiene en cuenta el rendimiento. Este tipo de patrón de diseño está bajo un patrón de creación, ya que este patrón proporciona una de las mejores formas de crear un objeto. Este patrón implica la implementación de una interfaz de prototipo que le indica que cree un clon del objeto actual. e) Para implementar el patrón Prototype en el caso planteado se mantendrá un catálogo de instancias que crearan personajes predefinidos y mencionados bajo e siguiente esquema.

Juego

Catalogo de Personajes

Personaje

Agregar()

Clonar()

Heroe

Villano

Principe

Mounstro

Clonar()

Clonar()

Clonar()

Clonar()

Bibliografía Contenido de la semana 4 http://arquitectura-de-software.blogspot.es/1464589428/descomposicion-modular/ http://dis.um.es/~barzana/Informatica/IAGP/IAGP_4.pdf https://www.ecured.cu/Estilos_arquitectónicos