INSTITUTO TECNOLÓGICO DE OAXACA
MATERIA: Taller de Investigación II
CATEDRÁTICA: Lic. Dalia Silva Martínez
TRABAJO:
PROTOCOLO DE INVESTIGACIÓN ALUMNAS: Sánchez García Diony Shurianeth López Salazar Elizabeth Saraí
NÚMERO DE CONTROL: 09161289 09161221
Fe b r e r o -
Junio 2013
TÍTULO: SOFTWARE INTERACTIVO QUE FACILITE EN NIÑOS DE ENTRE TRES Y CINCO AÑOS
LA
ADQUISICIÓN
DE
LOS
INDICADORES
DE
DESARROLLO
CORRESPONDIENTE A SU EDAD.
PLANTEAMIENTO DEL PROBLEMA: Existen software educativos facilitadores del aprendizaje, algunos de ellos son: Gcompris y el Rincón del clic . Éstos están enfocados a facilitar el aprendizaje en niños de 2 a 10 años en áreas como matemáticas, español o idiomas (Inglés e Italiano) con el inconveniente de estar desarrollados en un idioma diferente al Español. Así mismo existen portales web como TASTA’M con el inconveniente de ser poco interactivos. Estas son herramientas útiles para niños de esas edades y enfocado a esas área pero no existe un software interactivo enfocado a la estimulación de los indicadores de desarrollo correspondiente a niños con edades entre 3 y 5 años. Es muy importante mencionar que en esos primeros años de vida de un niño son muy importantes para su salud y desarrollo pues deben alcanzar determinados indicadores de desarrollo como lo son diferenciar a los niños de las niñas, comenzar a vestirse y desvestirse solos, jugar con otros niños, recordar partes de los cuentos , cantar una canción, aprender a cepillarse los dientes, saludar y respetar a sus mayores así como qué hacer en caso de perderse y aprender a no hablar con extraños, entre otras cosas. Actualmente no existe software que facilite la adquisición de estos indicadores, por lo que la presente investigación se enfoca en la realización de éste. Es por ello que esta investigación está enfocada al desarrollo de un software interactivo que cubra esta necesidad.
PREGUNTA DE INVESTIGACIÓN: ¿El software interactivo “aprendiendo a aprender” facilitará en niños de tres a cinco años la adquisición de los indicadores de desarrollo correspondiente a su edad?
OBJETIVO GENERAL: Desarrollar un software interactivo que facilite en niños de entre tres y cinco años la adquisición de los indicadores de desarrollo correspondientes a su edad, tales como son diferenciar a los niños de las niñas, comenzar a vestirse y desvestirse solos, jugar con otros niños, recordar partes de los cuentos, ir solo (a) al baño, aprender a cepillarse los dientes, saludar y respetar a sus mayores así como qué hacer en caso de perderse y aprender a no hablar con extraños.
OBJETIVOS ESPECÍFICOS:
Analizar los indicadores de desarrollo en niños de 3 a 5 años.
Entrevistar a psicólogos, pediatras y especialistas en el área de educación prescolar conocedores del comportamiento de los niños en estas edades.
Identificar los colores idóneos para lograr que los niños se interesen por el software.
Enfocar el desarrollo del software a gráficos y animaciones sin incluir demasiado texto.
Definir las áreas de desarrollo a incluir en el software.
JUSTIFICACIÓN: La creación de este software ayudará a niños, padres y maestros. A los niños los ayudará de tal forma que les permitirá adquirir sus indicadores de desarrollo de una manera divertida e interactiva.
Beneficiando así a los padres de familia, pues aparte de tener entretenidos a sus hijos los niños adquirirán de manera natural esos indicadores logrando el buen desarrollo de éstos, facilitando su desenvolvimiento en la vida cotidiana y formación, es en esta etapa (3-5 años) donde se comienzan a cimentar los valores y se forja la integridad personal. Además, este software le servirá también a los profesores a nivel preescolar ya que gracias a las áreas que éste incluirá será una herramienta eficaz y material didáctico, por lo que permitirá evaluar el avance y los indicadores que el niño va desarrollando con el uso de la herramienta. Así mismo se les facilitará la enseñanza a los niños debido a que con ayuda del software tendrán un conocimiento previo, y de esta forma enseñarles, educarlos y fomentar sus valores será menos complicado.
MARCO TEÓRICO
1. SOFTWARE EDUCATIVO
1.1 SOFTWARE EDUCATIVO Investigadores de esta nueva disciplina, definen al software educativo como “cualquier programa computacional que cuyas características estructurales y funcionales le permiten servir de apoyo a la enseñanza, el aprendizaje y la administración educacional” (Sánchez, 1995). “Las expresiones de software educativo, programas educacionales y programas didácticos como sinónimos para designar genéricamente todo tipo de programas para computador creados con la finalidad específica de ser utilizado como medio didáctico”, esta última definición involucra a todo los programas que son diseñados con el fin de apoyar la labor del profesor, como es el caso de los programas conductistas para la Enseñanza Asistida por Computador (E.O.A.), y los programas de Enseñanza Inteligente Asistida por Computador (E.I.A.O.) (MARQUÉS, 1995). Tomando como referencia las definiciones anteriores, puede decirse que, un software educativo es aquel programa de cómputo que facilita el aprendizaje de un tema o área en específico siendo de gran ayuda para el usuario en el proceso de adquisición del conocimiento.
1.2 CARACTERISTICAS DEL SOFTWARE EDUCATIVO (MARQUÉS, 1995)Todo el software educativo comparte cinco características esenciales:
Son materiales elaborados con una finalidad didáctica, como se desprende de la definición.
Utilizan el ordenador como soporte en el que los alumnos realizan las actividades que ellos proponen.
Son interactivos, contestan inmediatamente las acciones de los estudiantes y permiten un diálogo y un intercambio de informaciones entre el ordenador y los estudiantes.
Individualizan el trabajo de los estudiantes, ya que se adaptan al ritmo de trabajo cada uno y pueden adaptar sus actividades según las actuaciones de los alumnos.
Son fáciles de usar. Los conocimientos informáticos necesarios para utilizar la mayoría de estos programas son similares a los conocimientos de electrónica necesarios para usar un vídeo, es decir, son mínimos, aunque cada programa tiene unas reglas de funcionamiento que es necesario conocer. Después de analizar los puntos anteriores, es importante mencionar que dentro de
las características con las que un software educativo debe contar están el ser didáctico, interactivo y fácil de usar. Dichas características son de gran ayudan en el presente proyecto debido a que con el software se pretende que los niños con edades entre 3 y 5 años adquieran los indicadores de desarrollo correspondiente a su edad de una forma más agradable e interactiva permitiendo que aprendan mientras se divierten. 1.3 ESTRUCTURA DEL SOFTWARE La mayoría de los programas didácticos, igual que muchos de los programas informáticos nacidos sin finalidad educativa, tienen tres módulos principales claramente definidos: el módulo que gestiona la comunicación con el usuario (sistema input/output), el módulo que contiene debidamente organizados los contenidos informativos del programa (bases de datos) y el módulo que gestiona las actuaciones del ordenador y sus respuestas a las acciones de los usuarios (motor). (MARQUÉS, 1995)
2. INDICADORES DE DESARROLLO Los indicadores del desarrollo son las cosas que la mayoría de los niños pueden hacer a una edad determinada. (CDC, 2013) Según el Centro para el control y la prevención de enfermedades (CDC). La manera en que un niño, juega, aprende, habla y actúa, ofrece pistas importantes sobre cómo se está desarrollando el niño. Basados en los indicadores que esta organización establece. A continuación se presentan los índices de desarrollo según las edades que abarca esta aplicación:
2.2NIÑOS DE 3 AÑOS 2.2.1 Áreas social y emocional Tendencia a imitar el comportamiento de adultos y amigos Demuestra afecto por sus amigos espontáneamente Espera su turno en los juegos Se preocupa si ve un amigo llorando Entiende la idea de lo que “es mío”, “de él” o “de ella” Expresa una gran variedad de emociones Se separa de su mamá y su papá con facilidad Se molesta con los cambios de rutina grandes Se viste y desviste
2.2.2 Áreas del habla y la comunicación Sigue instrucciones de 2 o 3 pasos Sabe el nombre de la mayoría de las cosas conocidas Entiende palabras como “adentro”, “arriba” o “debajo”
Puede decir su nombre, edad y sexo Sabe el nombre de un amigo Dice palabras como “yo”, “mi”, “nosotros”, “tú” y algunos plurales (autos, perros, gatos) Habla bien de manera que los desconocidos pueden entender la mayor parte de lo que dice Puede conversar usando 2 o 3 oraciones
2.2.3 Área cognitiva (aprendizaje, razonamiento, resolución de problemas) Puede operar juguetes con botones, palancas y piezas móviles Juega imaginativamente con muñecas, animales y personas Copia un círculo con lápiz o crayón Pasa las hojas de los libros una a la vez Arma torres de más de 6 bloquecitos Arma rompecabezas de 3 y 4 piezas Enrosca y desenrosca las tapas de las botellas Entiende lo que significa “dos” jarras o abre la manija de la puerta
2.2.4 Áreas motora y de desarrollo físico Trepa bien Corre fácilmente Puede pedalear un triciclo (bicicleta de 3 ruedas) Sube y baja escaleras, un pie por escalón
2.3 NIÑOS DE 4 AÑOS 2.3.1 Áreas social y emocional Disfruta haciendo cosas nuevas q Juega al “papá” o a la “mamá” Cada vez se muestra más creativo en los juegos de imaginación Le gusta más jugar con otros niños que solo Colabora con otros niños Generalmente no puede distinguir la fantasía de la realidad Describe lo que le gusta y lo que le interesa
2.3.2 Áreas del habla y la comunicación
Canta una canción o recita un poema de memoria como “La araña pequeñita” o “Las ruedas de los autobuses” Sabe algunas reglas básicas de gramática, como el uso correcto de “él” y “ella” Relata cuentos Puede decir su nombre y apellido
2.3.3 Área cognitiva (aprendizaje, razonamiento, resolución de problemas) Nombra algunos colores y números Entiende la idea de contar Comienza a entender el concepto de tiempo Recuerda partes de un cuento Entiende el concepto de “igual” y “diferente”
Sabe usar tijeras Dibuja una persona con 2 o 4 partes del cuerpo Empieza a copiar algunas letras mayúsculas Juega juegos infantiles de mesa o de cartas Le dice lo que le parece que va a suceder en un libro a continuación
2.3.4 Áreas motora y de desarrollo físico
Brinca y se sostiene en un pie hasta por 2 segundos La mayoría de las veces agarra una pelota que rebota Se sirve los alimentos, los hace papilla y los corta (mientras usted lo vigila)
2.4 NIÑOS DE 5 AÑOS 2.4.1 Áreas social y emocional Quiere complacer a los amigos Quiere parecerse a los amigos Es posible que haga más caso a las reglas Está consciente de la diferencia de los sexos Puede distinguir la fantasía de la realidad Le gusta cantar, bailar y actuar Es más independiente (por ejemplo, puede ir solo a visitar a los vecinos de al lado) [para esto todavía necesita la supervisión de un adulto] A veces es muy exigente y a veces muy cooperador
2.4.2 Áreas del habla y la comunicación Habla con mucha claridad Puede usar el tiempo futuro; por
Puede contar una historia sencilla ejemplo, “la abuelita va a venir” usando oraciones completas Dice su nombre y dirección
2.4.3 Área cognitiva (aprendizaje, razonamiento, resolución de problemas) Cuenta 10 o más cosas Puede dibujar una persona con al menos 6 partes del cuerpo Puede escribir algunas letras o números Dibuja triángulos y otras figuras Conoce las cosas de uso diario como el dinero y la comida
2.4.4 Áreas motora y de desarrollo físico Se para en un pie por 10 segundos o más Brinca y puede ser que dé saltos de lado Puede dar volteretas en el aire Usa tenedor y cuchara y, a veces, cuchillo Puede ir al baño solo Se columpia y trepa
3. Sistemas operativos móviles Existen distintos sistemas operativos móviles como:
BlackBerry OS
Android
SimbianOS
IOS
Entre otros.
En la siguiente sección se hace un análisis referente a los OS para poder elegir el adecuado según los requerimientos de la aplicación.
Sistemas operativos móviles más utilizados en México
Según los resultados del seguimiento realizado por StatCounter (herramienta de seguimiento estadistico instalada en mas de tres millones de sitios de internet) en México el sistema operativo movil mas utilizado es Android con un 32.1% del total, seguido muy de cerca de IOS con un 25.69% y en tercer lugar SymbianOS con un 14.85% (Esquema 1). (StatCounter,2012)
Esquema 1.- Gráfica de los sistemas operativos móviles más utilizados en México.
La presente aplicación estará basada principalmente en tablets y smartphones debido a que de acuerdo con la revista Summa en el 2013 se venderán 150 millones de tablets por lo que esto representará un 28% más que lo reportado en el 2012 de los cuales, de las ventas realizadas el 37 % fueron tablets con OS Android.
Así mismo se desarrollará para
Smartphone debido a que éste está en su etapa de expansión, principalmente en los mercados emergentes como América Latina, y se prevé que las ventas de este aparato aumentarán 23 veces más en los próximos tres años. (La nación, 2013)
3.1 Tabla comparativa de los sistemas operativos móviles más usados en México s.o.
Arquitectura Componentes
Android Diseñado para
Bibliotecas
Basado en:
Incluye un set de
Basado en Linux
bibliotecas
, depende de él
C/C++, tales
para los servicios
como System C
base del sistema:
de aplicaciones
library,
seguridad,
c)
Bibliotecas
bibliotecas de
gestión
d)
Runtime
medios,
memoria, gestión
e)
Núcleo de
bibliotecas de
de
gráficos 3D,
stack de red y
SQLite así como
modelo
un set de
controladores
bibliotecas base.
permitiéndole
a)
reutilizar componentes
Aplicacione s b)
Framework
Linux
de
procesos,
de
actuar como capa de
abstracción
entre el hardware y el resto del stack
del
software.
IOS
Está basado en
Diseñado en 4
-maneja las
Sistema
el concepto de
capas:
bibliotecas para
operativo
dibujar 2D y 3D
de Apple. Ofrece
- Foundation
servicios básicos
Framework, que
de un s.o. tales
manipulación directa, usando gestos
a) núcleo del s.o. b) servicios
móvil
multitáctiles.
principales
proveen de
como: sistema de
c) medios
estructuras de
administración de
d) Cocoa-
datos de alto
archivos,
el
nivel orientadas
Schedule,
los
a objetos como
tiempos,
colecciones,
demonios
administración
refrescando
de archivos,
datos,
operaciones de
sistemas
de
red.
estructura
de
-bibliotecas para
datos,
acceder a fotos,
hilos POSIX, la
información de
red inalámbrica,
dispositivos de
la
hardware y
entre otros.
Touch
contactos.
red
SQLite,
bonjour,
celular,
4. BASE DE DATOS 4.1 LA BASE DE DATOS DE UN SOFTWARE EDUCATIVO
Las bases de datos según Marquez (MARQUÉS, 1995) contienen la información específica que cada programa presentará a los alumnos. Pueden estar constituidas por:
Modelos de comportamiento. Representan la dinámica de unos sistemas. Distinguimos: o Modelos físico-matemáticos, que tienen unas leyes perfectamente determinadas por unas ecuaciones. o Modelos no deterministas, regidos por unas leyes no totalmente deterministas, que son representadas por ecuaciones con variables aleatorias, por grafos y por tablas de comportamiento.
Datos de tipo texto, información alfanumérica.
Datos gráficos. Las bases de datos pueden estar constituidas por dibujos, fotografías, secuencias de vídeo, etc
Sonido. Como los programas que permiten componer música, escuchar determinadas composiciones musicales y visionar sus partituras.
4.2 GESTORES DE BASE DE DATOS Última versión
Características
Limites
Soporte de
Tipos de datos
consultas Apache Derby
IBM DB 2 Sistema gestor de base de datos relacional que integra XML
10.9
IBM DB2 Express C Workgroup Server
Utilizado para realizar procesos de transacciones Online APIs para JDBC y SQL Soporta internamente procedures Soporte multilenguaje Transacciones y recuperación ante errores ACID
Integridad referencial. Soporte ACID. SQL recursivo. Definición de datos. funciones por parte del usuario Soporte multimedia: texto, imágenes, video, audio. Recuperación utilizando accesos de sólo índices
Derby hace uso de una mayor cantidad de memoria y su rendimiento y compatibilidad SQL puede considerarse inferior que otras alternativas Derby está escrito en Java y no tiene bindings para otros lenguajes por lo que limita al programador a utilizarlo mediante la máquina virtual de Java y en programas escritos en ese lenguaje o lenguajes de scripting que se ejecuten sobre JVM (Jython, JRuby, Jacl, etc.). Máximo manejo de objetos 2GB
El optimizador en Apache Derby hace búsqueda de profundidad de izquierda a derecha, es decir el primer elemento de la matriz es la tabla de la izquierda en la unión del árbol.
BLOB, CHAR, CHAR FOR BIT DATA, CLOB, FECHA, DECIMAL, DOBLE, DOUBLE PRECISION, FLOAT, INTEGER, LONG, VARCHAR, LONG VARCHAR FOR BIT DATA, NUMÉRICO, VERDADERO, SMALLINT,
Queries paralelos, commit de dos fases, backup/recuperación on−line y offline Uniones hash
Integer: SMALLINT, INTEGER y BIGINT: INTEGER. SMALLINT DECIMAL REAL DOUBLE FLOAT CHAR o CHARACTER
MySQL
-My SQL Entreprise Edition -MySQL Standard Edition -MySQL Classic Edition -MySQL Cluster CGE -MySQL Embedded (OEM/ ISV)
Desarrollado en su mayor parte en ANSI C Permite tener integridad referencial Soporte ACID Soporte a procedimiento almacenados, Soporta 2 tipos de UNICODE: Ucs2 y utf8
El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2)
Soporte a consultas complejas Joins muy rápidos
TinyInt Bit ó Bool MediumInt Integer, Int
usando un multi-join de un paso optimizado Inner joins Outer oins Unions Intersect
BigIntFloat xReal, Double Decimal, Dec, Numeric:
En cuanto a manejador de base de datos se refiere, la aplicación será desarrollada haciendo uso de IBM DB 2 debido a que éste soporta multimedia ( imágenes, texto, video y audio),ofrece integridad referencial de las tablas y permite acceder a los datos a través de índices evitando tener que buscar en toda la base de datos anexando también que integra XML .
5.- METODOLOGÍAS DE INVESTIGACIÓN
5.1 Metodologías Ágiles (José H. Canós, 2006) En febrero de 2001, tras una reunión celebrada en UtahEEUU, nace el término “ágil” aplicado al desarrollo de software. En esta reunión participan un grupo de 17 expertos de la industria del software, incluyendo algunos de los creadores o impulsores de metodologías de software. Su objetivo fue esbozar los valores y principios que deberían permitir a los equipos desarrollar software rápidamente y respondiendo a los cambios que puedan surgir a lo largo del proyecto. Se pretendía ofrecer una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por ser rígidos y dirigidos por la documentación que se genera en cada una de las actividades desarrolladas como se puede apreciar en la siguiente tabla .
Metodologías Ágiles Basadas en heurísticas provenientes de prácticas de producción de código Especialmente preparados para cambios durante el proyecto Proceso menos controlado, con pocos principios Grupos pequeños (menos de 10 integrantes) Pocos roles Menor énfasis en la arquitectura del software
Metodologías Tradicionales Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo Difícilmente adaptable a los cambios Proceso mucho más controlado, con numerosas políticas Grupos grandes Muchos roles La arquitectura del software es esencial y se expresa mediante modelos
Tabla 2.- Metodologías Ágiles vs Metodologías Tradicionales.
(Sommerville, 2005) Los métodos ágiles universalmente dependen de un enfoque iterativo para la especificación, desarrollo y entrega del software, y principalmente fueron diseñados para apoyar al desarrollo de aplicaciones de negocio donde los requerimientos del sistema normalmente cambiaban rápidamente durante el proceso de desarrollo. Están pensados para entregar software funcional de forma rápida a los clientes, quienes pueden entonces proponer que se incluyan en iteraciones posteriores del sistema nuevos requerimientos o cambios en los mismos. Probablemente el método ágil más conocido es la programación extrema. Sin embargo, otros enfoques ágiles son SCRUM, Cristal, Desarrollo Dirigido por Características. El éxito de estos métodos ha llevado a una cierta integración con métodos
de desarrollo más tradicionales basados en el modelado de sistemas, dando por resultado la noción de modelado ágil y las instanciaciones ágiles del proceso unificado racional.
5.2 Comparación de metodologías Existen diferentes metodologías ágiles, esto debido a la aceptación que han tenido. La siguiente tabla muestra una comparación de éstas. Metodología APM
Calidad en la metodología
Conformidad a los requisitos. Mantiene la vista siempre en la visión y establece un rol responsable del producto.
Usabilidad mediante la eficiencia. Utilización de tarjetas de especificación de rendimiento.
Crystal
Satisfacción del cliente. Continuo feedback en las diferentes reuniones.
Conformidad a los requisitos y consistencia y precisión (Fiabilidad), mediante pruebas de funcionalidad automáticas y regresivas.
Satisfacción del cliente, dos usuarios revisan y valoran las versiones liberadas.
Usabilidad, cumpliendo el parámetro de claridad y precisión, documentación, ya que exige la generación de guía de usuario.
DSDM
Conformidad a los requisitos, los documentos de especificación en DSDM deben tener criterios de calidad especificados, mediante las diferentes revisiones se comprueban.
La fiabilidad del producto mediante su atributo de consistencia y precisión con la realización de pruebas dinámicas y prototipos.
SCRUM
Conformidad a los requisitos mediante la utilización del rol de product owner y demos de producto.
TDD
Satisfacción del cliente, a través de las reuniones y demos presentadas.
La usabilidad a través de: 1.
Consistencia y precisión mediante la escritura de pruebas exhaustivas.
2.
Robustez .
3.
Trazabilidad. Cuando aparece una nueva funcionalidad, lo primero es
Tabla 4.- Cuadro comparativo de metodologías ágiles. (Continua)
escribir las pruebas para ella. 4.
Simplicidad.
La usabilidad a través de: 1.
Fiabilidad.
2.
Habilidad de probar el software.
La mantenibilidad a través de: 1.
Modularidad.
2.
Legibilidad mediante la técnica de refactoring.
3.
Simplicidad.
4.
Estudios empíricos.
La adaptabilidad a través de la capacidad de modificar el software.
Tabla 4.- Cuadro comparativo de metodologías ágiles.
Después de analizar las diferentes metodologías ágiles que existen , se decidió que este proyecto se llevará a cabo bajo la metodología de programación extrema (XP) debido a que permite realizar varias iteraciones de la aplicación permitiendo mostrarle al usuario los avances del proyecto para que así éste brinde su punto de vista o las modificaciones que considere adecuadas logrando la comunicación usuario-desarrolladores al mismo tiempo que se cubren sus necesidades, además como desarrolladores la metodología es ideal para el proyecto debido al escaso tiempo con que se cuenta para la realización del proyecto
5.2.1 Programación extrema (Sommerville, 2005)La programación extrema (XP) es posiblemente el método ágil más conocido y ampliamente utilizado. El nombre fue acuñado por Beck (Beck, 2000) debido a que el enfoque fue desarrollado utilizando buenas practicas reconocidas, como el desarrollo iterativo, y con la participación del cliente en niveles extremos. En la programación extrema, todos los requerimientos se expresan como escenarios (llamados historias de usuario), los cuales se implementan directamente como una serie de tareas. Los programadores trabajan en parejas y desarrollan pruebas para cada tarea antes de escribir el código. Todas las pruebas se deben ejecutar satisfactoriamente cuando el
código nuevo se integre al sistema. Existe un pequeño espacio de tiempo entre las entregas del sistema. (Sommerville, 2005) Según Sommerville, la programación extrema implica varias prácticas, que se ajustan a los principios de los métodos agiles:
1. El desarrollo incremental se lleva a cabo a través de entregas del sistema pequeñas y frecuentes y por medio de un enfoque para la descripción de requerimientos basado en las historias de cliente o escenarios que pueden ser la base para el proceso de planificación.
2. La participación del cliente se lleva a cabo a través del compromiso a tiempo completo del cliente en el equipo de desarrollo. Los representantes de los clientes participan en el desarrollo y son los responsables de definir las pruebas de aceptación del sistema. 3. El interés en las personas, en vez de en los procesos, se lleva a cabo a través de la programación en parejas, la propiedad colectiva del código del sistema, y un proceso de desarrollo sostenible que no implique excesivas jornadas de trabajo. 4. El cambio se lleva a cabo a través de las entregas regulares del sistema, un desarrollo previamente probado y la integración continua. 5. El mantenimiento de la simplicidad se lleva a cabo a través de la refactorización constante para mejorar la calidad del código y la utilización de diseños sencillos que no prevén cambios futuros en el sistema. En el siguiente esquema se ilustra el proceso de la XP para producir un incremento del sistema que se está desarrollando.
Seleccionar las historias de usuario para esta entrega
Dividir las historias en tareas
Evaluar el sistema
Planificar la entrega
Desarrollar/ integrar / probar el software
Esquema 3. El ciclo de entrega en la programación extrema
En un proceso de la XP, los clientes están fuertemente implicados en la especificación y establecimiento de prioridades de los requerimientos del sistema. Se elimina la fase inicial de captura de requisitos y se permite que éstos se vayan definiendo de una forma ordenada durante el tiempo que dura el proyecto. (Gregorio Robles Martínez, 2002) El cliente puede cambiar de opinión sobre la marcha y a cambio debe encontrarse siempre disponible para resolver dudas del equipo de desarrollo y para detallar los requisitos especificados cuando sea necesario. Los requerimientos no se especifican como una lista de funciones requeridas del sistema. Más bien, los clientes del sistema son parte del equipo de desarrollo y discuten escenarios con otros miembros del equipo. Desarrollan conjuntamente una tarjeta de historias (story card) que recoge las necesidades del cliente. El equipo de desarrollo intentará entonces implementar ese escenario en una entrega futura del software.
Una vez desarrollado las tarjetas de historias, el equipo de desarrollo las divide en tareas y estima el esfuerzo y recursos requeridos para su implementación. El cliente establece entonces la prioridad de las historias a implementar, eligiendo aquellas historias que pueden ser utilizadas inmediatamente para entregar un apoyo útil al negocio. Por supuesto, cuando los requerimientos cambian, las historias sin implementar también cambian o se pueden descartar. Si se requieren cambios en un sistema que ya se ha
entregado, se desarrollan nuevas tarjetas de historias y, de nuevo, el cliente decide si estos cambios tienen prioridad sobre nuevas funcionalidades. (Sommerville, 2005)
La programación extrema adopta un enfoque extremo para el desarrollo iterativo. Se pueden construir varias veces al día nuevas versiones del software y los incrementos se entregan al cliente cada dos meses aproximadamente. Cuando un programador construye el sistema para crear una versión nueva, debe ejecutar todas las pruebas automatizadas existentes además de las pruebas para las funcionalidades nuevas. El nuevo software generado solamente se acepta si se ejecutan satisfactoriamente todas las pruebas. (Sommerville, 2005)
Un precepto fundamental de la ingeniería del software tradicional es que se debe diseñar para el cambio. Esto es hay que prever los cambios futuros en el software y diseñar este de forma que tales cambios se puedan implementar fácilmente. Sin embargo, la programación extrema ha descartado este principio partiendo del hecho de que diseñar para el cambio es a menudo un esfuerzo inútil. Con frecuencia los cambios previstos nunca se materializan y realmente se efectúan peticiones de cambios completamente diferentes.
El problema con la implementación de cambios imprevistos es que tienden a degradar la estructura del software, por lo que los cambios se hacen cada vez más difíciles de implementar. La programación extrema aborda este problema sugiriendo que se debe refactorizar constantemente el software. Esto significa que el equipo de programación busca posibles mejoras del software y las implementa inmediatamente. Por lo tanto, el software siempre debe ser fácil de entender y cambiar cuando se implementen nuevas historias. (Sommerville, 2005)
Las pruebas del sistema son fundamentales en XP, en la que se ha desarrollado un enfoque que reduce la probabilidad de producir nuevos incrementos del sistema que introduzcan errores en el software existente.
Las características clave de las pruebas en XP son: 1. Desarrollo previamente probado. 2. Desarrollo de pruebas incremental a partir de los escenarios. 3. Participación del usuario en el desarrollo de las pruebas y en la validación. 4. El uso de bancos de pruebas automatizados. El desarrollo previamente probado es una de las innovaciones más importantes en XP. Al escribir primero las pruebas se define implícitamente tanto una interfaz como una especificación del funcionamiento para la funcionalidad a desarrollar. Se reducen los problemas en los requerimientos y las confusiones de la interfaz. Se puede adoptar este enfoque en cualquier proceso en el que exista una relación clara entre un requerimiento del sistema y el código que implementa ese requerimiento. En XP, siempre puede verse este vínculo debido a que las tarjetas de historias que representan los requerimientos se dividen en tareas, y las tareas son las unidades principales de implementación. (Sommerville, 2005)
6.- Hipótesis de investigación El software interactivo “aprendiendo a aprender” mejorará en un 30% la adquisición de los indicadores de desarrollo en niños con edades entre 3 y 5 años.