EVA 2003 - ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Ciclo de vida de desarrollo de software
ingeniería de software
Metodologías ágiles.
Fundamentos de Diseño de Software INFT.1
ANÁLISIS DE REQUERIMIENTOS
10º2 Sergio Posso. Jonatán Agualimpia. Julia Blandón. Docente:
Proyecto de Ingeniería de Software 2008
Modelos de Proceso del Software
Ingeniería del Software
Evaluación de Productos
 EL MODELO INCREMENTAL.:  EL MODELO EN ESPIRAL:  viene a suplir el problema de no poder retroceder en las fases de desarrollo del software.  : no.
Ingeniería del software de la usabilidad (I)
INGENIERIA DEL SOFTWARE
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
 Tema del proyecto  Integrantes y roles del equipo  Objetivos del proyecto  Alcance.
Ingeniería de Software
Fase Inicial Grupo 6 – PIS – 2013.
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Las etapas de un proyecto
Ingenieria de software
Inspecciones de Software
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
REQUERIMIENTOS DE SOFTWARE
Unidad VI Documentación
Aide Arcia Polanco Marcela Escobar Monroy Keilyn Gisela Echeverry Tatiana Lemus Melary Julieth Rivas Reyes Gloria Docente 10*2 INSTITUCION EDUCATIVA GABRIEL.
Tema 1: Introducción al análisis y diseño de aplicaciones software
Proyecto de Ingeniería de Software - Grupo 2 - Año 2006 Presentación del Proceso Sistema de Administración de Proteínas Objetivo y eXperimentos del Pasteur.
Ingeniería del Software
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Sistemas Basados en Conocimiento (Knowledge Based Systems) Lic. Mario G. Oloriz Agosto 2004.
Importancia en la efectividad del:
Programación orientada a objetos Capítulo 6 Diseño de clases.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
La Programación en Videojuegos M.C. Juan Carlos Olivares Rojas Huetamo, Michoacán, Marzo 2011.
Especialización en Desarrollo de Software
INTRODUCCIÓN AL PROCESO UNIFICADO DE DESARROLLO DESOFTWARE
El rol de SQA en PIS.
Alexander Aristizabal Ángelo flores herrera
Grupo 10 – 2008 Proyecto de Ingeniería de Software
Introducción a UML Departamento de Informática Universidad de Rancagua
Roles de Open UP.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Proceso de Diseño de Interfaces
“ NO HAY NADA MÁS DIFÍCIL DE CONSEGUIR, MÁS ARRIESGADO DE MANTENER NI MÁS INSEGURO DE TENER ÉXITO, QUE ESTAR A LA CABEZA EN LA INTRODUCCIÓN DE UN.
Ciclo de Vida del Software
Ingeniería de Software
Preocupaciones del Analista Programador & Usuarios
INTRODUCCIÓN A INGENIERIA KARLA TATIANA OLAYA TORRES ID ( )
INGENIERIA DE SOFTWARE
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
Proceso de desarrollo de Software
INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE ALUMNO MILLER ANDRES GALINDO DUCUARA (412088)
6.6 Administración de defectos
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos”
Fundamentos de Computación
Título de la Presentación Estado del arte sobre el testeo de software en las Pymes de Aragón 12 de Noviembre de 2015.
Comenzando con las ideas de Barry Boehm y Scott Shultz, James Martin desarrolló el Rapid Application Development durante los años 1980 en IBM y finalmente.
Software de Comunicaciones
Modelo de procesos de software
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
Diseño de interacción. El diseño de interacción es la disciplina encargada de definir cómo se utilizan los productos y servicios interactivos. Su objetivo.
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Entregables del Proyecto
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Seminario de Sistemas Distribuidora Autores: Silvana Bassi Federico Albera Director: Lic. José A. Peralta Febrero de 2008.
Transcripción de la presentación:

EVA ADVA1 Ingeniería de Software… ¿Vale la pena en el desarrollo de juegos? por Martín Massera (NGD studios)

EVA ADVA2 o… Desarrollo de juegos en grandes equipos

EVA ADVA3 ¿Por qué esta charla? ADVA: Transmitir la experiencia Para quienes quieren empezar un proyecto Ingenieria de software, gralmente poco conocida por programadores amateur

EVA ADVA4 Introducción a la ingeniería de software Un poco de historia: la software crisis varios interrogantes: ¿Qué tienen que ver programar bien con buen software? ¿Cómo manejar un proyecto grande para… que haga lo que tiene que hacer? que sea estable? Que sea terminado a tiempo?

EVA ADVA5 Historia de los videojuegos Empezó más tarde que el resto de la industria, pero la historia se repite. Pocas plataformas donde una persona sola puede terminar un juego.

EVA ADVA6 Diferencias entre videojuegos y “otro” software Objetivo: divertir “Es un arte” El prototipo del desarrollador Hay diferencias, pero no tanto a nivel de programación

EVA ADVA7 Qué es la I.S.? Conjunto de teorías, métodos, herramientas, etc. para producir software con la calidad deseada. Además, facilitan todo el ciclo de vida de un software.

EVA ADVA8 Ciclo de vida Diseño / Desarrollo Instalación Operación Retiro

EVA ADVA9 ¿Por qué esta charla? bis La I.S. proviene de la experiencia de otros desarrolladores (Best Practices) “No silver bullet” Es necesario encontrar soluciones para el desarrollo de videojuegos

EVA ADVA10 “Dicen que soy aburrido” Supuestas contras: rigidez en el proceso quita creatividad Más proceso = menos desarrollo

EVA ADVA11 Sobre qué trata la I. S. Análisis de requerimientos Manejo de riesgos Especificación Diseño / arquitectura Implementación Testing

EVA ADVA12 Y no nos olvidemos del… Proceso de desarrollo!

EVA ADVA13 En juegos Requerimientos: game design Testing: mucho beta testing, muy poco del resto “Otros”: Es importante manuales, cajas, promotoras en E3, etc.

EVA ADVA14 En juegos Especificacion: por qué no se hace? Tiempo de vida de los juegos Nivel académico requerido Riesgos: muy importante en proyectos largos Implementacion: esta parte es casi igual al resto del software

EVA ADVA15 Calidad del software “Hay que expresar la calidad deseada para poder alcanzarla” Una vez establecida la calidad deseada, la calidad final es producto directo de la calidad del proceso de desarrollo Calidad vs tiempo vs presupuesto

EVA ADVA16 Distintos atributos de calidad Internos vs externos Ej: Performance (FPS) Estabilidad (cuelgues) Arquitectura “Amigabilidad” con el usuario Y… diversión!!! La gran diferencia

EVA ADVA17 Calidad, servicio y limpieza La calidad depende de muchas cosas. Ejemplo: Target de usuario Tipo de juego. No siempre hay que ser carmack

EVA ADVA18 Prueba y error Hay que planear para obtener la calidad deseada. Engines: dificil de optimizar si no se penso en la velocidad desde el principio Prueba y error sirve en algunos casos (ej: balanceo de gameplay)

EVA ADVA19 Todo esto para alcanzar El nirvana de los programadores de juegos!

EVA ADVA20 Proceso de desarrollo Cascada Iterativo Milestones Distintas formas de ir asegurando la calidad

EVA ADVA21 Cascada Análisis de requerimientos Diseño Implementación Testing Demasiado utópico: una fase puede cambiar cosas de las anteriores

EVA ADVA22 Iterativo Una sucesión de “cascadas” Requerimientos 1  diseño 1  implementación 1  testing 1  Requerimientos 2  diseño 2  implementación 2  testing 2  Requerimientos 3  diseño 3  implementación 3  testing 3  etc

EVA ADVA23 Milestones Dividir la fase de implementación en partes El resultado de cada parte es un ejecutable estable (aunque con menos features) Previenen la “avalancha de bugs”

EVA ADVA24 Equipo de desarrollo Comunicación entre programadores Personalidades conflictivas Espíritu de equipo Comunicación con artistas / game designers ”El papel es tu amigo” Responsabilidades, no todos hacen todo

EVA ADVA25 Game design / requerimientos Game design: disciplina independiente Análisis de requerimientos: Game design y no tanto, distintas clases de requerimientos mas cerca de la implementación o del game design Un error en los requerimientos es muy dificil de corregir después (ej. No considerar multiplayer)

EVA ADVA26 Diseño / Arquitectura Arquitectura: distintas vistas Módulos Ejecución Conceptual Etc Más alto nivel Diseño: ya entrando en detalle

EVA ADVA27 Diseño / Arquitectura Definen el esqueleto del programa Patrones “Estilos arquitectónicos” Otras clases de software parecidas: Simulación Sistemas de tiempo real Herramientas: UML

EVA ADVA28 Diseño / Arquitectura Diseñar para: Velocidad Estabilidad Cambios (en el game design y segundas partes) Desafío: Abstraer la tecnología de base No cambió el gameplay tanto como las placas 3D Cohesión vs acoplamiento “No hardcodees mañana lo que puedes diseñar hoy”

EVA ADVA29 Implementación “Un pequeño pero importante detalle” A esta altura, todo + o – definido Los cambios a distintas etapas tiene que ser registrado (y no con comentarios en el código )

EVA ADVA30 Herramientas que ayudan IDE de desarrollo (Kdevelop, Visual studio) Compilación distribuida (IncrediBuild) Chequeo de memoria dinámica (Bounds checker) Análisis de performance (Vtune) Control de versiones (CVS) Reporte de bugs, TO-DO list, wiki, foro, feedback

EVA ADVA31 Errores En gral los errores son faciles de corregir solo si se detectan en la misma fase en que se hacen Hay que “testear” el game design

EVA ADVA32 Verificacion / Testing “El testing no puede demostrar la correctitud de un programa, solo sus errores” Viejo y querido beta testing Otras cosas: Regresion Integracion Unidad

EVA ADVA33 Verificacion / Testing En general se deja de lado por falta de tiempo Hay herramientas “assert” cppunit Los bugs pueden: Colgar el programa Arruinar la experiencia del jugador

EVA ADVA34 Problema del testing en videojuegos Muchas veces resultados gráficos Bugs difíciles de reproducir La arquitectura tiene que estar pensada para corregir errores (logueo, saves, etc)

EVA ADVA35 Conclusiones Vale la pena!!! Aunque no todo es útil para juegos... Seleccionar las herramientas/métodos

EVA ADVA36 Conclusiones excepciones: Software de alcance muy cortito plataformas donde no nos podemos dar el lujo de ciertas abstracciones por temas de eficiencia

EVA ADVA37 Bibliografía “Fundamentals of Software Engineering” Ghezzi, Jazayeri y Mandrioli “Game Architecture and Design” Andrew Rollings y Dave Morris

EVA ADVA38 Preguntas