UN SISTEMA PARA EL REUSO DE COMPONENTES EN VIDEOJUEGOS DE ACCION BI-DIMENSIONALES

Tamaño: px
Comenzar la demostración a partir de la página:

Download "UN SISTEMA PARA EL REUSO DE COMPONENTES EN VIDEOJUEGOS DE ACCION BI-DIMENSIONALES"

Transcripción

1 PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA UN SISTEMA PARA EL REUSO DE COMPONENTES EN VIDEOJUEGOS DE ACCION BI-DIMENSIONALES RAUL ANDRES SANTELICES AHUES Tesis para optar al grado de Magister en Ciencias de la Ingeniería Profesor Supervisor: MIGUEL NUSSBAUM V. Santiago de Chile, 2000

2 PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE ESCUELA DE INGENIERIA Departamento de Ciencia de la Computación UN SISTEMA PARA EL REUSO DE COMPONENTES EN VIDEOJUEGOS DE ACCION BI-DIMENSIONALES RAUL ANDRES SANTELICES AHUES Tesis presentada a la Comisión integrada por los profesores: MIGUEL NUSSBAUM V. RICARDO BAEZA Y. YADRAN ETEROVIC S. LIOUBOV DOMBROVSKAIA JUAN DIXON R. Para completar las exigencias del grado de Magister en Ciencias de la Ingeniería Santiago de Chile, 2000

3 A mis Padres, hermana, profesores y amigos, que me apoyaron mucho. A la memoria de Pablo Baltera Z. ii

4 AGRADECIMIENTOS Quisiera agradecer en primer término a mi profesor guía Miguel Nussbaum por todo el apoyo en favor de mi ingreso y permanencia en el programa de Magíster, y en particular durante el desarrollo de mi trabajo de Tesis. También agradezco a los profesores Álvaro Campos, Yadrán Eterovic, Fernando Gallardo y Jaime Navón que de una u otra forma apoyaron mi postulación a este programa y colaboraron en el tema de mi Tesis. También dirijo mis agradecimientos a todos quienes han participado junto conmigo en el proyecto Sugoi, por conformar el ambiente donde surgió este trabajo y por alentarme en su desarrollo: Ingo Claro, Carlo Fabricatore, Patricia Flores, Valeska Grau, Cristián Huidobro, Juan Pablo Lastra, Ximena López, Rodrigo Marchant, Amparo Minaya, Carlos Morales, Cristian Rodríguez, Patricio Rodríguez, Cristina Sánchez, Yulan Sun, Valeria Valdivia, Jaime Vásquez, Luis Vidal, Jorge Villalón, Cristóbal Villaseca y José Pablo Zagal. Finalmente, entrego mi reconocimiento a todos aquellos que sin llegar a ser mencionados aquí han hecho patente su apoyo en favor de este trabajo. iii

5 INDICE GENERAL Pág. DEDICATORIA... ii AGRADECIMIENTOS... iii INDICE DE TABLAS... viii INDICE DE FIGURAS... ix RESUMEN... xv ABSTRACT... xvi I. INTRODUCCION Los videojuegos en la industria del software Una taxonomía de videojuegos El problema del desarrollo de videojuegos Objetivos planteados...6 II. MARCO CONCEPTUAL El proceso de software Modelos de proceso El prototipo Automatización de procesos El proceso de videojuego El reuso de componentes Definición de reuso La evolución del reuso El manejo del reuso Orientación a objetos y reuso Reuso mediante frameworks Definición de framework Clasificaciones de frameworks... 20

6 2.4.3 Desarrollo de frameworks Desarrollo en base a frameworks El rol de los lenguajes script III. EL DOMINIO DE VIDEOJUEGOS Introducción Metodología utilizada Elección de un dominio El género de acción Visión bi-dimensional Los requisitos del dominio Introducción Funciones generales de videojuego Mundo virtual Funciones de protagonista El paradigma de desarrollo Análisis del dominio El proceso de jugar una sesión Modelo conceptual IV. DISEÑO Y USO DEL FRAMEWORK Introducción Diseño del framework Creación de una sesión de juego Inicio de un juego Creación de una etapa Creación de actores Creación de comportamientos Comienzo de una etapa Eventos en fábricas de actores Operaciones comunes a todo actor Operaciones de actores dinámicos Operaciones de un actor principal Operaciones de un actor principal de plataformas... 91

7 4.2.12Operaciones de comportamientos Operaciones de una etapa Operaciones de una sesión de juego Destrucción de objetos V. EJEMPLO DE USO: HERMES, EL MENSAJERO DEL OLIMPO Descripción del videojuego Diseño de los elementos de juego Etapa representativa El fondo Los actores simples La gárgola voladora Cerbero, el perro de dos cabezas Dionisio, el dios del vino Otros antagonistas Actores no antagónicos Hermes Validación del diseño Implementación Descripción del ambiente Resultados Consideraciones VI. ANALISIS DE RESULTADOS Y DISCUSION Objetivos Estructuras de costos proyectadas Conclusiones Trabajo futuro BIBLIOGRAFIA A N E X O S Anexo A : The Unified Modelling Language (UML) A.1 Descripción

8 A.2 Casos de uso A.3 Estructuras estáticas A.4 Interacciones A.5 Notación algorítmica Anexo B : Listados de Pseudo-Codigo Para El Juego Hermes B.1 Introducción B.2 Asociación de dibujo de fondo a especificación de etapa B.3 Especificación de actores simples iniciales B.4 Especificación de gárgola voladora y su fábrica B.5 Lógica OO específica para Cerbero B.6 Datos y lógica específica para Dionisio B.7 Especificación de fábrica de llamas de fuego B.8 Datos y lógica específica para Hermes

9 INDICE DE TABLAS Pág. Tabla 3.1: Requisitos de interfaz e historia del juego Tabla 3.2: Requisitos de la simulación del mundo virtual Tabla 3.3: Requisitos de interfaz e historia del juego Tabla 3.4: Requisitos de un protagonista de plataformas Tabla 3.5: Casos de uso Play and Win Game y Play and Lose Game Tabla 5.1: Validación de subconjunto fundamental de requisitos del dominio viii

10 INDICE DE FIGURAS Pág. Figura 2.1: Formas de reuso conceptualizadas Figura 3.1: Diagrama de casos de uso de un videojuego del dominio Figura 3.2: Diagrama de paquetes del dominio de videojuegos Figura 3.3: Diagrama conceptual de una sesión de juego Figura 3.4: Relaciones de StageSpec con elementos del paquete Actors Figura 3.5: Diagrama conceptual de estructuras fundamentales Figura 3.6: Diagrama conceptual de actores y fábricas de actores Figura 3.7: Diagrama conceptual de los comportamientos Figura 4.1: Diagrama de interacción GameSession create Figura 4.2: Modelo de grafo dirigido Figura 4.3: Diagrama de interacción GameSession Run Figura 4.4: Creación de una etapa Figura 4.5: Creación de un actor simple Figura 4.6: Creación de un actor dinámico Figura 4.7: Operación DynActor setbehavior Figura 4.8: Creación de un actor principal Figura 4.9: Creación de un actor principal de plataformas Figura 4.10: Creación de una fábrica de actores ix

11 Figura 4.11: Creación de un comportamiento base Figura 4.12: Creación de un comportamiento de pasos fijos Figura 4.13: Creación de un comportamiento de pasos fijos con dirección Figura 4.14: Creación de un comportamiento de ruta Figura 4.15: Operación Stage play Figura 4.16: Operación ActorFactory checkevents Figura 4.17: Operación ActorFactory destroyed Figura 4.18: Operación ActorFactory eaten Figura 4.19: Actualización de un actor dinámico Figura 4.20: Operación DynActor handleblocking Figura 4.21: Operación DynActor handlehits Figura 4.22: Manejo del evento EV_Damage por DynActor Figura 4.23: Manejo del evento EV_Die por DynActor Figura 4.24: Manejo del evento EV_EndBehavior por DynActor Figura 4.25: Manejo del evento EV_DAHit por DynActor Figura 4.26: Manejo del evento EV_Has Damaged por DynActor Figura 4.27: Manejo del evento EV_TryShot por DynActor Figura 4.28: Actualización de un actor principal Figura 4.29: Operación MainActor setstate Figura 4.30: Operación MainActor handleblocking x

12 Figura 4.31: Operación MainActor handlehits Figura 4.32: Esqueleto de la operación MainActor onevent Figura 4.33: Manejo de EV_EndBehavior por MainActor Figura 4.34: Manejo de EV_Damage por MainActor Figura 4.35: Manejo de EV_Die por MainActor Figura 4.36: Manejo de EV_Face y EV_Move por MainActor Figura 4.37: Manejo de EV_TryShot por MainActor Figura 4.38: Operación PlatformMainActor setstate Figura 4.39: Operación PlatformMainActor onevent Figura 4.40: Operación PlatformMainActor upblocking Figura 4.41: Operación PlatformMainActor hangingscalers Figura 4.42: Operación PlatformMainActor handlescaleblocking Figura 4.43: Operación PlatformMainActor onevent Figura 4.44: Operación Behavior onevent Figura 4.45: Operación FixedBehavior updateda Figura 4.46: Operación FixedBehavior onevent Figura 4.47: Operación FixedBehavior reset Figura 4.48: Operación FacingBehavior updateda Figura 4.49: Operación FacingBehavior onevent Figura 4.50: Operación RouteBehavior updateda xi

13 Figura 4.51: Operación RouteBehavior startcheckpoint Figura 4.52: Operación RouteBehavior onevent Figura 4.53: Operación RouteBehavior reset Figura 4.54: Operación Stage centerinma Figura 4.55: Operación Stage movetovalidarea Figura 4.56: Operación Stage settime para un DynActor Figura 4.57: Operación Stage settime para ActorFactory Figura 4.58: Operación Stage getactcollisions Figura 4.59: Operación Stage followma Figura 4.60: Operación Actor eat Figura 5.1: Fondo del escenario de juego Figura 5.2: Estructura estática del escenario de juego Figura 5.3: Cuadros de aparición de la gárgola voladora Figura 5.4: Ruta de la gárgola voladora Figura 5.5: Cuadros principales de la gárgola voladora Figura 5.6: Ruta de Cerbero Figura 5.7: Cuadros de Cerbero corriendo Figura 5.8: Cuadro de Cerbero descansando Figura 5.9: Cuadros principales de Dionisio Figura 5.10: Posición de Dionisio en el escenario xii

14 Figura 5.11: Cuadro de Dionisio lanzando un barril Figura 5.12: Cuadros del barril lanzado por Dionisio Figura 5.13: Ruta de barril lanzado por la derecha Figura 5.14: Ruta de barril lanzado por la izquierda Figura 5.15: Cuadros de las llamas de fuego Figura 5.16: Cuadro de la bala de lava Figura 5.17: Rutas de las balas de lava Figura 5.18: Rutas de las plataformas móviles Figura 5.19: Cuadro de la plataforma móvil Figura 5.20: Cuadros de la catapulta Figura 5.21: Cuadro de Hermes quieto Figura 5.22: Cuadros de muerte de Hermes Figura 5.23: Cuadro de Hermes disparando Figura 5.24: Cuadros de Hermes aburrido Figura 5.25: Cuadros de Hermes caminando Figura 5.26: Cuadros de Hermes agachándose Figura 5.27: Cuadros de Hermes saltando Figura 5.28: Cuadros de Hermes escalando Figura 5.29: Cuadros de las boleadoras Figura 6.1 Estructuras de costos de videojuegos sin y con uso de frameworks xiii

15 Figura A.1: Representación de un actor Figura A.2: Caso de uso simple Figura A.3: Caso de uso con puntos de extensión Figura A.4: Asociación de actores con casos de uso Figura A.5: Generalización de casos de uso Figura A.6: Extensión de casos de uso Figura A.7: Forma general de una clase Figura A.8: Clase perteneciente a un paquete externo Figura A.9: Clase plantilla o template Figura A.10: Ejemplo de asociación entre clases Figura A.11: Ejemplo de navegabilidad en una asociación Figura A.12: Relación de generalización entre clases Figura A.13: Generalizaciones compartidas Figura A.14: Ejemplo de restricción Figura A.15: Ejemplos de objetos Figura A.16: Colección de objetos Figura A.17: Esquema de secuencia de mensajes Figura A.18: Ejemplo de pseudo-código en diagrama de colaboración xiv

16 RESUMEN La industria del software busca disminuir drásticamente los tiempos de entrega y los costos de desarrollo de sus productos, al mismo tiempo que mejorar la calidad de éstos. El reuso es considerado como el único medio realista planteado hasta el momento para alcanzar estos objetivos. En particular este problema afecta el desarrollo de videojuegos para máquinas portátiles de bajo costo, con aplicación en proyectos educacionales masivos. La amplia variedad de videojuegos requerida para estos fines impone la necesidad de encontrar un medio de prototipeo y producción rápido, eficiente y masivo. Hasta el momento la mayoría de las soluciones propuestas para la industria del videojuego consisten en engines (bibliotecas de código dedicadas) que implementan funciones vitales del software a construir, pero no garantizan una estructura evolutiva y orientada al reuso de las componentes mismas del software, es decir, la lógica de la aplicación. Por ello, el presente trabajo plantea la introducción del concepto de framework en este ámbito. Un framework, en su definición más completa para nuestros propósitos, se puede considerar como un medio de desarrollo de alto nivel que establece una arquitectura de trabajo validada para el género de productos del cual es específico, permitiendo rápidamente integrar y extender componentes ya existentes para producir el software requerido. El paradigma adecuado para estos fines, y el más valorado hoy en día, es la Orientación a Objetos (OO). De este modo, se presenta el diseño OO de un framework para el desarrollo de estos videojuegos, cuyos componentes se obtienen a partir de la experiencia del autor en este campo y de estudios que prescriben la estructura del diseño conceptual de un videojuego de acción exitoso, todo lo cual proporciona los requisitos y patrones de diseño para su concepción. Luego se procede a validar el diseño en base a una implementación de las componentes del framework, describiendo las pruebas que demuestran la capacidad de éste de cumplir con las características enunciadas. Finalmente, se discuten las consecuencias de este trabajo y sus proyecciones futuras. xv

17 ABSTRACT The software industry seeks to drastically diminish the delivery times and the development costs its products, at the same time that to improve the quality of these. Reuse is considered the only realistic medium until the moment to reach these objectives. In particular, this problem affects the development of videogames for handheld machines of low cost, with application in massive educational projects. The extense variety of required videogames for this finality imposes the need to find means for quick, efficient and massive prototyping and production. Until now, most of the proposed solutions for the videogame industry consist of engines (dedicated code libraries) that implement vital functions of the software to build, but they don t guarantee an evolutive and reuse-oriented structure for all the components of the software itself, that is to say, the logic of the application. Because of it, the present job presents the introduction of the concept of framework in this environment. A framework, in its more complete definition for our purpose, can be considered as a high level development environment that establishes a working architecture, validated for the kind of products to which it is specific, allowing to quickly integrate and extend already existing components to produce the required software. The adequate paradigm for these finality, and the most valued one nowadays, is the Object Oriented one (OO). In this way, the OO design of a framework for the development of these videogames is presented, whose components are obtained from the author s experience in this field and from studies that prescribe the structure of the conceptual design of a successful action videogame, all which provides the requirements and design patterns for their conception. Then we proceed to validate the design based on an implementation of the framework components, describing the tests that show the capacity of these of complying with the enunciated requirements. Finally, the consequences of this job are discussed along with its future projections. xvi

18 1 I. INTRODUCCION 1.1 Los videojuegos en la industria del software En los últimos años la industria del software ha pasado a ocupar un primer plano de importancia a nivel mundial. El mundo vive una era de grandes transformaciones hacia la automatización y el acceso a la información, donde el software juega un papel clave en estos procesos. Sin embargo, la industria del software reconoce que se encuentra en una constante crisis o aflicción crónica [Pres93] por su incapacidad de estimar correctamente plazos y costos, lo que deriva en una gran cantidad de proyectos que abortan. Aunque su productividad ha aumentado en los últimos 30 años, esto no alcanza para cubrir las demandas que enfrenta actualmente [Boeh87, Cox90, Pres93]. El sector de los videojuegos destaca como aquel de mayor crecimiento en la industria de la entretención en América [Rina98]. Al igual que el software en general, este sector se enfrenta a costos de producción elevados y demandas más exigentes por parte de los jugadores. La dudosa calidad de muchos diseños frecuentemente es detectada tarde o nunca, por falta de pruebas adecuadas de concepto. Implementaciones llenas de falencias y errores son otra fórmula de fracaso. La presión generada por la fuerte competencia lleva muchas veces a lanzar un videojuego antes de tiempo, sin contar con las pruebas suficientes, como es el conocido caso de El Rey León. Tan solo alrededor de un 4% de los títulos logra cubrir sus costos y generar ganancias [Arms97]. Un grupo no despreciable de videojuegos comerciales masivos funcionan en plataformas portátiles de bajo costo. Videojuegos para máquinas como Gameboy comparten los primeros lugares de ventas con productos para Playstation y Nintendo 64. Jugar no es sólo una actividad lúdica, sino que también puede ser aprovechada para fines didácticos. Los videojuegos con usos educativos muestran mejores resultados cuando las tareas de aprendizaje son parte integral de la dinámica del juego [Malo87], marcando la diferencia de criterio entre un videojuego educativo real y un producto común de edutainment (término utilizado para educación y entretención). El menor costo de las plataformas portátiles reducidas es además un

19 2 incentivo para el desarrollo de videojuegos educacionales masivos en países en vías de desarrollo [Sugo97]. La efectividad de estos productos está dada por la capacidad de mantener el interés del jugador en el transcurso del aprendizaje de los contenidos requeridos, lo que deriva en la necesidad de proporcionar una gran variedad de situaciones nuevas o videojuegos distintos para abarcar un espectro mínimo de conocimientos. 1.2 Una taxonomía de videojuegos De acuerdo a diversas publicaciones de la industria del videojuego [GaDo99, Gaja93], y especialmente la clasificación de Fabricatore [Fabr99], es posible distinguir, de acuerdo a su estilo de interacción con el jugador, los siguientes géneros de videojuego: Acción: también llamado género arcade, se caracteriza por un desarrollo de juego fuertemente dinámico, donde la rapidez de las decisiones del jugador es la clave para lograr los objetivos del juego. La cantidad de información que el jugador posee para conseguir sus metas es simple y limitada, y la continua acción perturba al jugador en todo momento, impidiendo el razonamiento más profundo. De este modo el juego se concentra básicamente en enfrentar al jugador con obstáculos y antagonistas. En este género se encuentran los shooters (acción basada en disparo y evasión), juegos de plataformas (estilo Mario Bros.) y algunos juegos de deportes, entre otros. Aventura: al igual que los juegos de acción, los de aventuras se desarrollan en universos interactivos con desarrollo en tiempo real, pero abarcan un mayor espectro de interacciones de juego, las cuales presentan exigencias menores en habilidades psico-motoras pero mayores en capacidades deductivas o decisionales. Estas decisiones tienen una incidencia mayor en el transcurso de la historia del juego, y para ello los jugadores disponen de un conjunto más complejo de información. Dentro de esta categoría se encuentran los juegos de rol, que permiten desarrollar habilidades como atributos a lo largo del juego, y las historias interactivas (o simplemente interactivos).

20 3 Estrategia: este género es definido por un desarrollo basado en resolución de problemas y planificación, con énfasis en el manejo de recursos y de riesgo. Una estrategia es un plan de acción elaborado en base a la información disponible, en función de conseguir un determinado objetivo [Fabr99]. La estrategia consiste en decidir qué acciones o políticas tomar, en contraste con lo que es considerado táctica que determina el cómo se ejecutan las tareas asignadas. No obstante, muchos videojuegos de estrategia proporcionan la posibilidad de intervenir en las tácticas. De cualquier modo, estos juegos se pueden basar en un sistema de tiempo real o por turnos. Representativos de este género son los juegos de combate y determinados juegos de deportes, entre otros. Simulación: tal como lo indica su nombre, el desarrollo del juego se centra en la simulación de sistemas y maquinarias realistas o ficticias, operados por el jugador y eventualmente por otras entidades. El rol del jugador consiste en comprender los controles disponibles y entender el comportamiento de los elementos simulados, y al mismo tiempo utilizarlos en escenarios de acción directa. En este género destacan principalmemente simuladores de vuelo y de naves espaciales, simuladores de sistemas complejos como ciudades e imperios, y deportes motorizados, entre otros. Puzzles y tableros: representan una expansión de los clásicos juegos de tablero, cartas e ingenio en general. Su principal diferencia con los demás géneros es el hecho de que no se basan en la interacción relevante a un mundo virtual habitado por entidades, y toda la oposición que el jugador encuentra está contenida en los problemas mismos que debe resolver [Fabr99]. Por otra parte los videojuegos se caracterizan por los diversos modos de visualizar el escenario actual de acontecimientos. La interfaz gráfica se compone de una o más vistas pricipales, acompañadas por otras secciones de información de estado del juego y del jugador. Los principales tipos de vista son los siguientes: Bi-dimensional (2D): es utilizada aún hoy en día ya sea por contener menores exigencias en recursos de sistema, menor costo de programación y construcción de escenarios, simplificación del espacio de movimientos y de cantidad de información en beneficio de la jugabilidad, o incluso como licencia aceptable en

21 4 favor de la inclusión de una mayor cantidad objetos animados e inteligentes y efectos especiales. Isométrica: si bien su propósito es representar escenarios en tres dimensiones, sus características propias permiten un costo de despliegue visual y modelación menor a una vista 3D tradicional en perspectiva, dado que la proyección de un objeto en pantalla es invariable al movimiento de la cámara de la vista, mientras que esta última no puede rotar. Eventualmente, esta técnica es mezclada con modelación real en 3D de algunos elementos. Perspectiva (3D): consistente en la proyección focalizada de un escenario en tres dimensiones sobre el plano de la pantalla. Destaca por la gran cantidad de recursos asignados al despliegue gráfico y las optimizaciones espaciales requeridas para obtener un rendimiento en cuadros por segundo competitivo, incluyendo los costos de modelación real 3D de los componentes del mundo virtual. 1.3 El problema del desarrollo de videojuegos En muchos casos la efectividad de un diseño debe ser medida lo antes posible, de modo de introducir los cambios adecuados en el producto o desecharlo en etapas preliminares del proceso de desarrollo. La solución clásica utilizada es la construcción de prototipos. De aquí surge el problema de lograr producirlos rápidamente, y encontrar para ello las herramientas adecuadas. En otros casos se plantea la necesidad de producir juegos rápidamente, al menor costo de desarrollo y mejor calidad, que son variables que marcan la diferencia entre el éxito y el fracaso. Para todos estos casos, la eficiencia de producción es necesaria. El reuso de componentes es factor clave para lograr estos objetivos [Mili95]. La aplicación de sistemas de reuso se ve dificultada a causa de la infancia en que se encuentra el desarrollo de software como disciplina científica [Mili95] [Dijk89] y de ingeniería [Mili95] [Shaw90], la falta de entrenamiento de los desarrolladores en procesos de desarrollo de software [Wood87] en comparación con su experiencia en programación de lenguajes específicos [Mili95], y la falta de

22 5 herramientas y metodologías para soportar el reuso y desarrollo de software en general [Fisc87]. Particular atención se da a los problemas de administración del desarrollo enfocado en reuso [Spar96, Grum88]. Pese a las dificultades existentes, la industria del software converge hacia una solución que consiste en crear sistemas de reuso basados en frameworks (conjunto base de clases o componentes) que proveen mayor capacidad de reuso que los tradicionales sistemas de bibliotecas de código [Spar96]. Los logros conseguidos hasta el momento por la industria del videojuego en términos de reuso y eficiencia se pueden clasificar en: Software Development Kits (SDKs): interfaces de programación (API s) específicas para una plataforma, proveen distintos servicios del sistema, como es DirectX para Windows [DirX99]. Pueden incluir ambientes de edición, compilación y debugging. Engines: bibliotecas especializadas dedicadas a la construcción de videojuegos. Existe una gran cantidad de ellas para computadores personales, desde un nivel profesional como Unreal [Unre98], hasta un nivel aficionado como Allegro [Alle99], mientras que para proyectos educacionales en plataformas portátiles y económicas se cuenta Sugoi Engine [Sugo97]. Muchos de ellos vienen acompañados por herramientas gráficas de apoyo a la construcción de escenarios y actores [Woed98]. En general, estos engines se construyen sobre APIs ya existentes como las mencionadas en el punto anterior. Lenguajes especializados como QuakeC [QuaC96] y UnrealScript [UnSc99] (este último basado en OO y concepto de estados), los cuales facilitan la creación de la lógica e inteligencia artificial del juego en base a componentes o engines existentes, permitiendo al diseñador acercarse a los procesos de implementación. Estos lenguajes trabajan sobre un framework relativamente básico de componentes especializadas en juegos del tipo 3D-Shooter, para computadores personales. También existen lenguajes de propósito más general como Lingo, inmerso en el editor multimedia Director [Ling99], adecuado para la creación rápida de aplicaciones multimediales interactivas 2D que no tienen fuertes

23 6 requerimientos de rendimiento. En el caso de juegos 2D para plataformas portátiles, no se dispone de semejantes lenguajes o frameworks básicos. Si bien se han logrado avances hacia el reuso de componentes por medio de enfoques orientados a objetos (OO) [Unre98], la excesiva especialización de estos frameworks permite por ahora pensar sólo en su propósito inmediato de crear variantes o nuevos niveles de juegos específicos, y no un sistema de reuso que abarque un subconjunto coherente de familias de videojuegos. En particular, no se dispone públicamente de medio alguno para la creación y reuso masivo de componentes de videojuegos para plataformas reducidas. De estas últimas consideraciones se desprende que existen necesidades particulares aún no cubiertas, y se carece de sistemas de reuso disponibles de buena calidad y adecuados para la creación masiva de videojuegos dentro de algún género determinado. Ante esta realidad, surge la siguiente pregunta de investigación: Se pueden aplicar métodos de reuso más de punta en el campo de los videojuegos, tal como está ocurriendo en el resto de la industria del software? El presente trabajo pretende dar una respuesta afirmativa a esta pregunta, contribuyendo con un sistema de reuso probado para un género particular de videojuegos. 1.4 Objetivos planteados Como conclusión, han quedado planteados los siguientes objetivos acerca del sistema de reuso a concebir: Involucrar costos y tiempo de desarrollo del sistema de reuso menores a los costos y tiempos que se ahorran en la subsecuente construcción de prototipos y videojuegos utilizando dicho sistema. También se debe considerar el beneficio de la disponibilidad del sistema en cuanto a abrir nuevas posibilidades de desarrollo, como la factibilidad de producir un mayor volumen de videojuegos. Seleccionar un género de videojuegos y eventualmente un subconjunto coherente de éste, que sea relevante en la práctica y que garantice una mejora en la calidad del diseño, con el menor impacto posible en el rendimiento de cada videojuego, dada su naturaleza de aplicación en tiempo real.

24 7 Alcanzar los niveles actuales de reuso planteados por las técnicas de la industria del software, en el sector de los videojuegos. Identificar los puntos esenciales del reuso en este tipo de aplicación. Incorporar eficazmente los preceptos de un buen diseño de videojuego, bajo el lente de estudios rigurosos y experiencia previa.

25 8 II. MARCO CONCEPTUAL 2.1 El proceso de software Modelos de proceso Atrás quedaron aquellos primeros tiempos de la programación en que ésta era relegada como una tarea secundaria en comparación con el diseño del hardware, además de ser considerada como una ciencia oscura y dominada sólo por algunos gurús. Hoy en día el software ha sobrepasado con holgura al hardware como industria, y una nueva disciplina ha surgido: la Ingeniería de Software. Ante la enorme complejidad de los proyectos que fueron surgiendo a medida que el hardware crecía en capacidad, se hizo evidente la necesidad de crear estándares y modelar el proceso de desarrollo de software, para poder controlar, administrar y evaluar estos proyectos. La programación dejó de ser tarea de una sola persona y equipos de desarrolladores fueron formados, introduciéndose el problema de la coordinación. Con el trascurso del tiempo surgieron los lenguajes de programación y nuevos paradigmas como la Orientación a Objetos, todos los cuales jugaron su papel en el desarrollo de los procesos de software. En la década de los 90 diversos autores en el tema [Larm98, Cole94, Mart95, Wirf90, Jaco92, Rumb91, Booc94, Pres93], coincidieron en señalar la existencia del siguiente grupo de etapas identificables dentro del proceso completo, bajo un prisma orientado a objeto: 1. Plan y elaboración: todo software es parte de un sistema mayor, por lo que el paso inicial fundamental consiste en determinar qué subconjunto de requisitos del sistema en el que se opera se asignan al software, y considerar las relaciones que deben existir entre el software y otros agentes del sistema como personas, bases de datos, etc. En conjunto con esta tarea, se realiza la planificación del proyecto y eventualmente se construyen prototipos para ayudar a identificar y comprender los requisitos. Con este mismo fin se construyen casos de uso y modelos conceptuales preliminares, de ser necesario. 2. Desarrollo: esta es la etapa técnica del desarrollo de software. Consiste en las siguientes fases:

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Ingeniería de Software I

Ingeniería de Software I Ingeniería de Software I Agenda Objetivo. Unidades de aprendizaje. Formas de evaluación. Bibliografía. 2 Datos del profesor Correo electrónico: egonzalez@upemor.edu.mx Asesorías Jueves de 11:00 a 13:00

Más detalles

Rational Unified Process (RUP)

Rational Unified Process (RUP) Rational Unified Process (RUP) Este documento presenta un resumen de Rational Unified Process (RUP). Se describe la historia de la metodología, características principales y estructura del proceso. RUP

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software IX Contenidos Prólogo... XIX Prefacio... XXI Guía de lectura...xxiii Parte I - Introducción Capítulo 1 - Evolución 1.1 Introducción... 2 1.2 Los hitos en la evolución histórica del desarrollo de software...

Más detalles

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1 Introducción al Proceso Unificado de Desarrollo de Software Autor: Ing. Silverio Bonilla 1 James Rumbaugh et al. Concepto de Método Una metodología de ingeniería del software es un proceso para producir

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

El Proceso Unificado de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:

Más detalles

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Introducción Este documento recopila las preguntas, opiniones y respuestas que se produjeron en un pequeño curso sobre las

Más detalles

Ingeniería de Negocios y Desarrollo de Sistemas de Información

Ingeniería de Negocios y Desarrollo de Sistemas de Información Ingeniería de Negocios y Desarrollo de Sistemas de Información Procesos de Negocios Modelos de negocio Ingeniería de Negocios: Notaciones Procedimientos Patrones Proceso de desarrollo de sistemas Metodologías

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entre otras fuentes. Definiciones

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

El Proceso Unificado

El Proceso Unificado El Proceso Unificado de Desarrollo de Software Prof. Gustavo J. Sabio Alcance de la presentación QA Entradas Proceso de desarrollo Salida equipo Cliente sistemas Cliente necesidades actividades varias

Más detalles

INGENIERIA DE SOFTWARE I INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE

INGENIERIA DE SOFTWARE I INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE INGENIERIA DE SOFTWARE I INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE Agenda El software. Definición de software Dominios de aplicación Software heredado La naturaleza de las webapps Ingeniería del software

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Brindar al alumno un marco teórico y práctico para el desarrollo de software bajo estándares de calidad.

Brindar al alumno un marco teórico y práctico para el desarrollo de software bajo estándares de calidad. Universidad Católica San Pablo Facultad de Ingeniería y Computación Programa Profesional de Ciencia de la Computación SILABO CS290T. Ingeniería de Software I (Obligatorio) 2012-2 1. DATOS GENERALES 1.1

Más detalles

HERRAMIENTAS Y ENTORNOS DE PROGRAMACIÓN

HERRAMIENTAS Y ENTORNOS DE PROGRAMACIÓN HERRAMIENTAS Y ENTORNOS DE PROGRAMACIÓN Tema 2. Tecnologías CASE Escuela Superior de Informática 1 Tema 2. Tecnologías CASE. Tecnologías CASE (~ 4 horas) Introducción. Conceptos, Objetivos, Herramientas

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 2 Unidad 1 Ciclo de vida del software y Diseño Orientado a Objetos Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto

Más detalles

TRABAJO FINAL ESPECIALIDAD EN CONTROL Y GESTION DE SOFTWARE GESTIÓN DE CONFIGURACIÓN DE PRODUCTOS SOFTWARE EN ETAPA DE DESARROLLO

TRABAJO FINAL ESPECIALIDAD EN CONTROL Y GESTION DE SOFTWARE GESTIÓN DE CONFIGURACIÓN DE PRODUCTOS SOFTWARE EN ETAPA DE DESARROLLO TRABAJO FINAL ESPECIALIDAD EN CONTROL Y GESTION DE SOFTWARE GESTIÓN DE CONFIGURACIÓN DE PRODUCTOS SOFTWARE EN ETAPA DE DESARROLLO Autor: Lic. Claudio Jorge Rancán Directora: M.Ing. Paola Britos Julio 2003

Más detalles

ANÁLISIS Y DISEÑO DE UN PORTAL DE VENTA DE LIBROS EDUCATIVOS

ANÁLISIS Y DISEÑO DE UN PORTAL DE VENTA DE LIBROS EDUCATIVOS INGENIERIA DE SOFTWARE Trabajo Final de Carrera ANÁLISIS Y DISEÑO DE UN PORTAL DE VENTA DE LIBROS EDUCATIVOS Jordi Cid Rodríguez - ETIG - Consultor: José Antonio Raya Martos Septiembre 2011 Objetivo El

Más detalles

Título: El proyecto de Software Educativo. Algunas consideraciones. Autor: MSc. José Antonio Gutiérrez Lam. Profesor Auxiliar

Título: El proyecto de Software Educativo. Algunas consideraciones. Autor: MSc. José Antonio Gutiérrez Lam. Profesor Auxiliar Título: El proyecto de Software Educativo. Algunas consideraciones. Autor: MSc. José Antonio Gutiérrez Lam. Profesor Auxiliar Centro de trabajo: Universidad de Ciencias Pedagógicas Rafael María de Mendive

Más detalles

Tema 5: El Lenguaje Unificado de Modelado. Departamento de Lenguajes y Sistemas Informáticos II www.kybele.urjc.es

Tema 5: El Lenguaje Unificado de Modelado. Departamento de Lenguajes y Sistemas Informáticos II www.kybele.urjc.es Tema 5: El Lenguaje Unificado de Modelado Departamento de Lenguajes y Sistemas Informáticos II Contenidos Introducción Diagramas de UML Modelado de la parte estática Modelado de la parte dinámica Las 4+1

Más detalles

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado

Más detalles

Interacción Persona - Ordenador

Interacción Persona - Ordenador Interacción Persona - Ordenador Diseño de la interfaz en la Ingeniería del Software Dr. Pedro Latorre Dra. Sandra Baldassarri Dra. Eva Cerezo Ingeniería del Software Ingeniería del Software: Definición

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software Tabla de Contenidos PARTE I INTRODUCCIÓN Capítulo 1: Evolución Los hitos en la evolución histórica del Desarrollo de Software Problemas y soluciones... Fallas, malas estimaciones

Más detalles

Modelos de desarrollo de software. septiembre de 2007 1

Modelos de desarrollo de software. septiembre de 2007 1 Modelos de desarrollo de software septiembre de 2007 1 Referencias básicas Ingeniería de software. Un enfoque práctico. Pressman, R. Quinta edición. Mc. Graw Hill 2002 Ingeniería de software. Sommerville,

Más detalles

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN Proceso de Negocio (Business Process) Conjunto estructurado, medible de actividades para producir un producto.

Más detalles

CICLO DE VIDA DEL SOFTWARE

CICLO DE VIDA DEL SOFTWARE CICLO DE VIDA DEL SOFTWARE 1. Concepto de Ciclo de Vida 2. Procesos del Ciclo de Vida del Software 3. Modelo en cascada 4. Modelo incremental 5. Modelo en espiral 6. Prototipado 7. La reutilización en

Más detalles

Capítulo 1. Introducción

Capítulo 1. Introducción Capítulo 1. Introducción El WWW es la mayor fuente de imágenes que día a día se va incrementando. Según una encuesta realizada por el Centro de Bibliotecas de Cómputo en Línea (OCLC) en Enero de 2005,

Más detalles

Programación en Capas.

Programación en Capas. Programación en Capas. Ricardo J. Vargas Del Valle Universidad de Costa Rica, Ciencias de Computación e Informática, San José, Costa Rica, 506 ricvargas@gmail.com Juan P. Maltés Granados Universidad de

Más detalles

Pontificia Universidad Católica Argentina

Pontificia Universidad Católica Argentina Carrera : Ingeniería Informática Pontificia Universidad Católica Argentina PROGRAMA DE INGENIERÍA DE SOFTWARE I 2010 Ubicación en el Plan de Estudios : 3 er Año, cuatrimestral Carga Horaria : 8 hs / semana

Más detalles

SERVICIOS: EXPLORACIONES EN SOA y WEB.

SERVICIOS: EXPLORACIONES EN SOA y WEB. SERVICIOS: EXPLORACIONES EN SOA y WEB. López, G. 1 ; Jeder, I 1.; Echeverría, A 1.; Grossi, M.D. 2 ; Servetto, A 2.; Fierro, P. (PhD.) 3 1. Laboratorio de Informática de Gestión - Facultad de Ingeniería.

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

Un modelo de proceso es una representación abstracta de un proceso. Presenta una descripción de un proceso desde una perspectiva particular.

Un modelo de proceso es una representación abstracta de un proceso. Presenta una descripción de un proceso desde una perspectiva particular. El proceso software Un conjunto estructurado de actividades y resultados asociados que conducen a la creación de un producto de software Especificación: Definir la funcionalidad y las restricciones en

Más detalles

Fundamentos de Ingeniería de Software [Modelos]

Fundamentos de Ingeniería de Software [Modelos] Fundamentos de Ingeniería de Software [Modelos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 13-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de fundamentos de ing. de software

Más detalles

2.1 Ingeniería de Software

2.1 Ingeniería de Software Capítulo 2 Marco Teórico Se pretende desarrollar un software que pueda ser aplicado como una herramienta útil para la administración de una empresa. Es necesario tener en cuenta que, en todo desarrollo

Más detalles

BASES DE DATOS. Ivon Tarazona Oriana Gomez

BASES DE DATOS. Ivon Tarazona Oriana Gomez BASES DE DATOS Ivon Tarazona Oriana Gomez Introducción Introducción Ventajas e (Unified Modeling Language) Es un lenguaje usado para especificar, visualizar y documentar los diferentes aspectos relativos

Más detalles

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos

Tema 13. Metodologías en el desarrollo de Sistemas de Software. Prof. Oscar Adolfo Vallejos Tema 13 Metodologías en el desarrollo de Sistemas de Software Prof. Oscar Adolfo Vallejos Desarrollo de Sistemas de Software Objetivo Conceptos en el contexto más amplio de Software e Ingeniería de Software

Más detalles

Tecnología VoIP integrada en Sistemas de Emergencia Policiales

Tecnología VoIP integrada en Sistemas de Emergencia Policiales Tecnología VoIP integrada en Sistemas de Emergencia Policiales Mariela E. Rodriguez 1, José Farfan 2, & José V. Zapana 3 Cátedra de Modelos de Desarrollo de Programas y Programación Concurrente / Facultad

Más detalles

Fundamentos de Ingeniería del Software. Capítulo 11. Reutilización del software

Fundamentos de Ingeniería del Software. Capítulo 11. Reutilización del software Fundamentos de Ingeniería del Software Capítulo 11. Reutilización del software Reutilización del software. Estructura 1. Reutilización del software 2. Beneficios de la reutilización 3. Dificultades para

Más detalles

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición.

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición. Glosario Aclaraciones Los conceptos del glosario están ordenados alfabéticamente. Un concepto puede ser un único término como meta o una frase como ambiente de ingeniería de software centrado en procesos.

Más detalles

Desarrollo de Software Basado en Líneas de Productos de Software

Desarrollo de Software Basado en Líneas de Productos de Software IEEE Computer Society Región n 9 Capítulo Argentina Programa DVP Desarrollo de Software Basado en Líneas de Productos de Software Jonás A. Montilva C., Ph.D. IEEE Member Universidad de Los Andes Facultad

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

ADMINISTRACIÓN DE PROYECTOS

ADMINISTRACIÓN DE PROYECTOS ADMINISTRACIÓN DE PROYECTOS QUÉ ES LA ADMINISTRACIÓN DE PROYECTOS? Es la planeación, organización, dirección y control de los recursos para lograr un objetivo a corto plazo. También se dice que la administración

Más detalles

Evolución histórica 60 -. Metodologías

Evolución histórica 60 -. Metodologías TEMA 1 INTRODUCCIÓN Historia Evolución de las técnicas de programación Qué es orientado a objetos? Factores cruciales que miden la calidad del software Externos Internos La familia Orientada a objetos

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

CAPÍTULO IV - GUÍA PARA HACER ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

CAPÍTULO IV - GUÍA PARA HACER ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS CAPÍTULO IV - GUÍA PARA HACER ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 4.1 Diferencias entre análisis y diseño La división entre el análisis y diseño es poco clara, el trabajo de los dos se mezcla continuamente

Más detalles

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos INGENIERÍA DE SOFTWARE Sesión 3: Tipos Contextualización Actualmente existe una gran variedad en los software que se pueden clasificar en varias categorías, como pueden ser, por tipo de licencia, tipo

Más detalles

CICLO DE VIDA DEL SOFTWARE. Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software

CICLO DE VIDA DEL SOFTWARE. Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software 3.010 CONCEPTO DE CICLO DE VIDA Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software IEEE 1074 Un marco de referencia que contiene los

Más detalles

SET (Software Engineering Tutor). Una herramienta para la construcción guiada de modelos de dominio

SET (Software Engineering Tutor). Una herramienta para la construcción guiada de modelos de dominio SET (Software Engineering Tutor). Una herramienta para la construcción guiada de modelos de dominio Arturo Cepeda Pérez, Sergio Bravo Martín, Francisco José García Peñalvo Universidad de Salamanca, Facultad

Más detalles

DESARROLLO DE SISTEMA DE INFORMACIÓN GEOGRÁFICA SOBRE PLATAFORMA WEB

DESARROLLO DE SISTEMA DE INFORMACIÓN GEOGRÁFICA SOBRE PLATAFORMA WEB Inmobiliaria Nueva Vía S.A. (INVIA) Phillips 84, Oficina 65, Piso 6 Santiago Centro / Chile e-mail: leo.corvalan@invia.cl LICITACIÓN PÚBLICA DESARROLLO DE SISTEMA DE INFORMACIÓN GEOGRÁFICA Parte II. Bases

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

BASES DE DATOS MIS 308

BASES DE DATOS MIS 308 2. MODELOS DE DATOS Introducción 2.1 Entidad relación 2.2 Jerárquico 2.3 De red 2.4 Relacional Introducción Hoy en día las empresas manejan una gran cantidad de datos. Cualquier empresa que se precie debe

Más detalles

UML 2 Iniciación, ejemplos y ejercicios corregidos

UML 2 Iniciación, ejemplos y ejercicios corregidos Ediciones ENI UML 2 Iniciación, ejemplos y ejercicios corregidos (3ª edición) Colección Recursos Informáticos Contenido Contenido 1 Capítulo 1 Introducción 1. Motivaciones de la obra.....................................

Más detalles

GUIA DEL CURSO DESARROLLO DE APLICACIONES EN ANDROID

GUIA DEL CURSO DESARROLLO DE APLICACIONES EN ANDROID GUIA DEL CURSO DESARROLLO DE APLICACIONES EN ANDROID ÍNDICE 1. INTRODUCCIÓN...3 2. PROFESORES...4 3. RESUMEN DE CONTENIDOS POR UNIDAD FORMATIVA...5 4. OBJETIVOS POR UNIDAD FORMATIVA...6 5. DISTRIBUCIÓN

Más detalles

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL

Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE I: TEST EXAMEN FINAL DNI Apellidos y nombre 1. Cuál de las siguientes afirmaciones no es una causa de los problemas del software?

Más detalles

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Cenditel, Mayo 2011 Licencia de Uso Copyright (c) 2010, Alvarez J., Solé S., Briceño R., Fundación CENDITEL. La Fundación CENDITEL

Más detalles

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Tema 2. Ingeniería del Software I feliu.trias@urjc.es Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición

Más detalles

Una Arquitectura para una Herramienta de Patrones de Diseño

Una Arquitectura para una Herramienta de Patrones de Diseño Una Arquitectura para una Herramienta de Patrones de Diseño José Sáez Martínez 1, Jesús García Molina, Pedro J. Jiménez García Departamento de Informática, Lenguajes y Sistemas. Campus de Espinardo C.P.

Más detalles

ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA:

ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA: UNIDAD 04: PATRONES DE DISEÑO WEB. ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA: Técnico en Ingeniería en Sistemas y

Más detalles

Tema 1 Introducción a la Ingeniería de Software

Tema 1 Introducción a la Ingeniería de Software Tema 1 Introducción a la Ingeniería de Software Curso Ingeniería de Software UMCA Profesor Luis Gmo. Zúñiga Mendoza 1. Software En la actualidad todo país depende de complejos sistemas informáticos. Podemos

Más detalles

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred. cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.com CICLO DE VIDA DEL SOFTWARE Para apreciar un poco más el problema

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos ZP09-0207, con fecha 2 de junio de 2009 IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos Índice 1 Resumen de características

Más detalles

La Gestión por Procesos en las Organizaciones La forma en la que los resultados se logran

La Gestión por Procesos en las Organizaciones La forma en la que los resultados se logran La Gestión por Procesos en las Organizaciones La forma en la que los resultados se logran Deloitte S.C. 2014 Reflexiones Aplicando la Gestión por Procesos en nuestras organizaciones Por qué adoptar un

Más detalles

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes

Tecnologías de componentes y proceso de diseño de aplicaciones basado en componentes Tecnologías de y proceso de diseño de aplicaciones basado en Programación orientada a objetos : Lenguajes, Tecnologías y Herramientas Master de Computación Santander, 2009 Patricia López Grupo de Computadores

Más detalles

CAPÍTULO 1. MARCO TEÓRICO

CAPÍTULO 1. MARCO TEÓRICO CAPÍTULO 1. MARCO TEÓRICO Capítulo 1. Marco teórico 1.1 Ingeniería Web (IWeb) Con el desarrollo de Internet, la mayoría de los proyectos y sistemas están enfocados para las aplicaciones basadas en la Web

Más detalles

MODELADO DE OBJETOS. {brossi,pbritos,rgm}@itba.edu.ar

MODELADO DE OBJETOS. {brossi,pbritos,rgm}@itba.edu.ar MODELADO DE OBJETOS Bibiana ROSSI, Paola BRITOS y Ramón GARCIA MARTINEZ, CAPIS - Centro de Actualizacion Permanente en Ingeniería de Software Escuela de Posgrado. ITBA. 0. INTRODUCCION {brossi,pbritos,rgm}@itba.edu.ar

Más detalles

ASI. Análisis del Sistema de Información

ASI. Análisis del Sistema de Información ASI Análisis del Sistema de Información 1 ASI Análisis del Sistema de Información Introducción Objetivo Obtención de una especificación detallada del Sistema Información a través de: Catálogo de Requisitos

Más detalles

PROCESO Y PROYECTO DE INGENIERIA DE SOFTWARE. Carlos Barra Peñaloza *

PROCESO Y PROYECTO DE INGENIERIA DE SOFTWARE. Carlos Barra Peñaloza * 1 PROCESO Y PROYECTO DE INGENIERIA DE SOFTWARE Carlos Barra Peñaloza * El Ciclo de Vida del Software. El Ciclo de Vida del Software (CVS) describe todo el proceso de software de un sistema dado, desde

Más detalles

ARQUITECTURA DE SOFTWARE

ARQUITECTURA DE SOFTWARE ARQUITECTURA DE SOFTWARE Introducción n a la Arquitectura de Software (sistemas) Requisitos de calidad Documento de Diseño RTFS-Método del control de diseño Introducción n al Diseño o de la interfaz Humano/Computador

Más detalles

Arquitecturas de Software

Arquitecturas de Software Arquitecturas de Software Ingeniería del Universidad Rey Juan Carlos César Javier Acuña cjacunia@escet.urjc.es Índice Introducción Motivación Definición Pipes and Filters Tipos abstractos de datos y OO

Más detalles

La aplicación de la simulación operativa a problemas logísticos i

La aplicación de la simulación operativa a problemas logísticos i Publicaciones La aplicación de la simulación operativa a problemas logísticos i Por Juan Pablo Guido Desde la aparición de los primeros trabajos a mediados de este siglo, la técnica de simulación ha ocupado

Más detalles

SCOPE PLANNING IN SOFTWARE PROJECTS PLANIFICACIÓN DEL ALCANCE EN PROYECTOS DE SOFTWARE

SCOPE PLANNING IN SOFTWARE PROJECTS PLANIFICACIÓN DEL ALCANCE EN PROYECTOS DE SOFTWARE Recibido: 23 de febrero de 2011 Aceptado: 29 de marzo de 2011 SCOPE PLANNING IN SOFTWARE PROJECTS PLANIFICACIÓN DEL ALCANCE EN PROYECTOS DE SOFTWARE MSc. Ailin Orjuela, MSc. Luis Alberto Esteban, MSc.

Más detalles

Desarrollo y comercialización de productos de software [El proceso unificado]

Desarrollo y comercialización de productos de software [El proceso unificado] Desarrollo y comercialización de productos de software [El proceso unificado] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 13-P Sergio Luis Pérez (UAM CUAJIMALPA) Curso de desarrollo

Más detalles

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG)

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Grupo de Ingeniería del Software Antonio José Sáenz Albanés (C.T.O) Reconocimiento No Comercial Compartir Igual - 3.0 - España 1 Objetivos del Tema Qué

Más detalles

Ingeniería de Software I. Sebastián Uchitel y Víctor Braberman 1er Cuatrimestre 2009

Ingeniería de Software I. Sebastián Uchitel y Víctor Braberman 1er Cuatrimestre 2009 Ingeniería de Software I Sebastián Uchitel y Víctor Braberman 1er Cuatrimestre 2009 Quienes somos? 2 Quienes son? 3 Objetivos del Curso Entender el rol fundamental que juega la construcción y análisis

Más detalles

Introducción a la Ingeniería de Software Capítulo 1

Introducción a la Ingeniería de Software Capítulo 1 Introducción a la Ingeniería de Software Capítulo 1 Curso de Ing. De Software FIIS UNAC Ing. Eddie Malca Vicente Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 No es más sabio aquel

Más detalles

DISEÑO DE COMPONENTES DE SOFTWARE *

DISEÑO DE COMPONENTES DE SOFTWARE * DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.

Más detalles

BplSoa: Framework para el desarrollo de líneas de procesos de negocios orientadas a servicios. Víctor Mario Cardona Medina

BplSoa: Framework para el desarrollo de líneas de procesos de negocios orientadas a servicios. Víctor Mario Cardona Medina BplSoa: Framework para el desarrollo de líneas de procesos de negocios orientadas a servicios Víctor Mario Cardona Medina Universidad Nacional de Colombia Facultad de Ingeniería, Departamento de Ingeniería

Más detalles

Business Intelligence (BI) is about generating necessary information to make timely decisions, based on data coming from multiple sources.

Business Intelligence (BI) is about generating necessary information to make timely decisions, based on data coming from multiple sources. Título: Open Source Business Intelligence Autor: Ing. Karel Reynaldo Piñero (karel@lt.desoft.cu) Abstract Business Intelligence (BI) is about generating necessary information to make timely decisions,

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

Más detalles

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar Gobierno Municipal del Cantón Bolívar Versión: Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Plan de Desarrollo de Software Universidad

Más detalles

INTERPRETACIÓN DINÁMICA DE MÚLTIPLES LENGUAJES DE DOMINIO ESPECÍFICO

INTERPRETACIÓN DINÁMICA DE MÚLTIPLES LENGUAJES DE DOMINIO ESPECÍFICO INTERPRETACIÓN DINÁMICA DE MÚLTIPLES LENGUAJES DE DOMINIO ESPECÍFICO Héctor A. FLOREZ FERNANDEZ Facultad Tecnológica, Universidad Distrital Francisco Jose de Caldas haflorezf@udistrital.edu.co Bogotá,

Más detalles

PRINCIPIOS DE PRUEBAS. ENFOQUE ESTRATEGICO.

PRINCIPIOS DE PRUEBAS. ENFOQUE ESTRATEGICO. PRINCIPIOS DE PRUEBAS. ENFOQUE ESTRATEGICO. 0. Consideraciones iniciales. Las pruebas son un conjunto de actividades que se pueden planificar por adelantado y llevar a cabo sistemáticamente. Por esta razón,

Más detalles

Módulo Profesional 01: Bases de datos (código: 0484).

Módulo Profesional 01: Bases de datos (código: 0484). Módulo Profesional 01: Bases de datos (código: 0484). Actividades de enseñanza-aprendizaje que permiten alcanzar los objetivos del módulo. Interpretar diseños lógicos de bases de datos. Realizar el diseño

Más detalles

Historia de revisiones

Historia de revisiones Herbert Game Descripción de la Arquitectura Versión 1.8 Historia de revisiones Fecha Versión Descripción Autor 29/08/2011 1.0 Creación del documento Juan Pablo Balarini Máximo Mussini 30/08/2011 1.1 Actualización

Más detalles

Desarrollo de software

Desarrollo de software Agenda 1. Introducción 2. Aspectos Metodológicos del Desarrollo de Software 3. Aplicación Web (Modelo del Producto) 4. Modelo del proceso 5. Dos enfoques Metodológicos 6. Métodos Seleccionados 7. Evaluación

Más detalles

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta (Business Process Management, BPM). La Gerencia de los Procesos del Negocio: Se define como: "integración

Más detalles

Historia de revisiones

Historia de revisiones Binary Rain Glosario Versión 1.1 Historia de revisiones Fecha Versión Descripción Autor 17/08/2012 1.0 Creación del documento Carolina Trias 18/08/2012 1.1 Revisado y corregido por SQA Mercedes Marzoa

Más detalles

IBM Rational Software Architect V8.0.1 ofrece nuevos e innovadores enfoques para desarrollar arquitecturas de solución

IBM Rational Software Architect V8.0.1 ofrece nuevos e innovadores enfoques para desarrollar arquitecturas de solución con fecha de 14 de diciembre de 2010 IBM Rational Software Architect V8.0.1 ofrece nuevos e innovadores enfoques para desarrollar arquitecturas de solución Tabla de contenidos 1 Visión general 1 Fecha

Más detalles

Primer avance de proyecto de software para la gestión de inscripciones en cursos

Primer avance de proyecto de software para la gestión de inscripciones en cursos Primer avance de proyecto de software para la gestión de inscripciones en cursos 1. Introducción Andrés Felipe Bustamante García, Carolina Sarmiento González En este documento se presentan los resultados

Más detalles

BASES DE DATOS. 1.1 Funciones de un DBMS

BASES DE DATOS. 1.1 Funciones de un DBMS BASES DE DATOS Un DBMS, son programas denominados Sistemas Gestores de Base de Datos, abreviado SGBD, en inglés Data Base Management System (DBMS) que permiten almacenar y posteriormente acceder a los

Más detalles

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA Resumen AUTORIA CARLOS CABALLERO GONZÁLEZ TEMATICA INFORMÁTICA ETAPA ESO-BACHILLERATO-CFGM(ESI,ASI,DSI) Se describe la revolución que supuso la incursión

Más detalles