You are on page 1of 18

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

Ell Proceso de Desarrollllo de Software:: E Proceso de Desarro o de Software Una iintroducciin para educadores Una ntroducc n para educadores Manuel Gndara Vzquez Introduccin

Las oportunidades educativas de la computadora han llevado a que un nmero cada da mayor de docentes decidan incorporarla en su prctica cotidiana. Esta decisin tpicamente se convierte entonces en la decisin de crear un programa nuevo; es decir, en optar desarrollar nuevo software. En otro trabajo he sealado que esta decisin pudiera no ser la ptima, y que existen otras formas de integrar la computadora a la docencia (Gndara, este volumen 1): opciones como la traduccin y adaptacin (localizacin) de software ya existente, la creacin de experiencias de aprendizaje en torno a programas ya hechos, y el simple uso de la computadora como auxiliar en la presentacin son formas de incorporar esta tecnologa a la educacin mucho ms fciles y sencillas que intentar desarrollar software nuevo.

No obstante, tal como se detalla ms adelante, existen condiciones en que, en efecto, la decisin de desarrollar es la correcta. En ese caso, se requiere tener una idea, al menos global, del tamao y complejidad de la tarea, a fin de no acabar el proceso con productos a medias, mucha frustracin y una considerable cantidad de recursos aparentemente desperdiciados. Es nuestra apreciacin de que muchos de los docentes que deciden desarrollar software carecen precisamente de una idea clara de lo que est en juego. Por ello nos parece prudente el compartir algunas de las ideas sobre el proceso de desarrollo que son el resultado de haber tenido que pasar por ms de una experiencia propia frustrante; y finalmente reconocer que es preferible enfrentar el desarrollo de una manera sistemtica y tan estructurada como sea posible. As, este trabajo se divide en tres secciones: en la primera se define el proceso de desarrollo; en la segunda se describen las etapas principales del proceso; en la tercera se discute la composicin interdisciplinaria, por naturaleza, del equipo de desarrollo.

L - a captulo desarrollar o no

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

1. Qu es el desarrollo? Es el proceso de creacin de software (esto es, de programas nuevos). Incluye no solamente la programacin (cuando sta es necesaria), sino la seleccin de contenidos, estrategias de uso, e incluso la documentacin de los programas. (Gndara 1994a:2). Quiz algunos lectores encuentran sorprendente que se indique que la programacin no siempre es necesaria. Pero esto es cierto: hoy da se pueden producir programas sencillos (e incluso de complejidad moderada), usando por entero herramientas de autora que escriben el cdigo por nosotros, y que no requieren incluso que el autor entienda de la sintaxis de los lenguajes involucrados. En rigor, siempre se involucra algn tipo de programacin, pero no necesariamente a un programador. El caso ms claro es HyperCard 2 (Apple Computer 1994), en el que se pueden lograr hipertexto interesantes simplemente seleccionando ordenes en menus y dilogos; HyperCard se encarga de crear, tras bambalinas, el cdigo correspondiente en su lenguaje interno, HyperTalk 3, sin que el autor entre nunca al editor de programas. Otras herramientas, como Authorware 4 (Macromedia 1993), -que son, en sentido
2 3

estricto, lenguajes icnicos de programacin- permiten que con una comprensin bsica de cmo opera el flujo de un programa, el autor puede crear aplicaciones complejas, sin escribir directamente nunca una sola lnea de cdigo. En ambos casos, por supuesto, que el autor entienda la lgica de programacin involucrada ayudar y mejorar el proceso, pero en sentido estricto, se puede construir materiales sencillos sin tener que aprender un lenguaje tradicional de cmputo, con la sintaxis formal y rigurosa concurrente. Y si el autor se familiariza con los lenguajes que estn detrs de estos sistemas de autora, entonces podr aspirar a crear programas ms sofisticados. Por otro lado, hoy da el desarrollo (en todas las ramas, y en particular en los desarrollos comerciales) es un desarrollo complejo; y en lo que toca al cmputo educativo, para ser eficaz tiene que ser necesariamente interdisciplinario. Es en esa misma medida que no puede ser una labor solamente de programadores, dado que desarrollar implica la creacin de una solucin completa en todos sus aspectos. (Gndara, Ibid). 2. Etapas del proceso de desarrollo No siempre se justifica el desarrollo. Hemos dedicado otro trabajo a intentar clarificar en qu casos vale la pena desarrollar y cundo es ms 2

L - a D demo Gs - script 4 L a D - demo Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

conveniente optar por otras alternativas (Gndara 1994a) 5. Por ello, el paso previo al desarrollo debe ser el de determinar si, en efecto, justifica un nuevo desarrollo. En definitiva, quiz este paso previo sea el ms importante de todo el proceso. Si nuestro desarrollo no aade nada nuevo a lo ya existente, o si tampoco aprovecha las oportunidades especficas que tiene la computadora como medio instruccional, entonces tendremos un caso ms de lo que el Dr. Alvarez-Manilla 6, del CISE/UNAM llama un uso trivial de la computadora. Tpicamente, ello suceder a costa de considerables inversiones de tiempo, recursos materiales y humanos que quiz hubieran sido mucho ms eficaces en otras tareas. En consecuencia, resulta crucial que la evaluacin sobre la justificabilidad del desarrollo sea resultado de una reflexin seria y profunda, y no solamente la expresin de un capricho personal de utilizar la computadora a toda costa capricho, por otro lado, muy comprensible y quiz loable, si el patrocinio tambin fuera personal y no mediante fondos pblicos. Una vez determinado que, en efecto, el desarrollo educativo se justifica, se inicia el proceso, que puede ser descrito de diversas maneras. Las etapas que describimos a continuacin
5 6

(y que a veces ocurren en paralelo, o en un orden no siempre lineal), son las normalmente reconocidas en el proceso, y son, en general, cuatro: el diseo, la instrumentacin, la prueba y depuracin final, y la entrega (ver Fig. ) 7. 3.1 Diseo 3.1.1. Deteccin de necesidades, definicin del objetivo del software (la tarea) Aqu se clarifica y se plantea en un documento cul es la necesidad a la que responde el desarrollo, y cules son los objetivos a cubrir. Es decir, se define la tarea que el software habr de permitir realizar. En el caso del software educativo, esto depender de la particular deteccin de necesidades que se intenta resolver mediante el uso de la computadora, que se plasmarn en objetivos del diseo instruccional 8. 3.1.2. Definicin del usuario y del contexto No hay tarea sin usuario; y las caractersticas del usuario son elementos fundamentales para guiar el desarrollo; en consecuencia, aqu se determinan las caractersticas generales del usuario (edad, sexo, escolaridad, familiaridad
7 8

L - a captulo desarrollar o no Ge - foto del Dr

Gi - grfica interactiva L - a captulo Ana sobre diseo instrucc.

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

previa con el contenido, o con la tarea, del software; familiaridad previa con la computadora, y otras caractersticas del usuario que impacten la usabilidad del software. Adicionalmente, debe definirse el contexto de uso, tanto en trminos de los equipos y locales en que se utilizar el software, como del modelo de uso 9 y las consecuencias de la tarea. Por ejemplo, no es lo mismo software diseado con un modelo de un usuario por computadora, que una computadora por saln; ni tampoco es lo mismo el software que requiere de equipos sofisticados que el que puede correr en el mnimo equipamiento posible; por ltimo, no es lo mismo el software que sirve para ampliar o reforzar el aprendizaje, en que el usuario navega en el programa sin mayor limitacin que el tiempo de uso que se le pueda asignar, que un examinador automatizado, del cual depende el ingreso o permanencia en la escuela. 3.1.3 Seleccin de herramientas de desarrollo Una vez determinados la tarea y el usuario hay que determinar que herramienta de desarrollo es la adecuada. En cmputo educativo se recurre normalmente a las llamadas herramientas de autora que son programas especializados para este fin, de uso relativamente simple. Son
9

menos poderosos que los lenguajes de alto nivel (como Pascal 10, Basic 11, C++ 12, etc.), pero estn optimizados para la elaboracin de cursos, tutoriales y otros materiales educativos. No es ste el lugar para entrar en detalles, pero baste decir que estas herramientas existen para hipertexto, hipermedios, multimedios, simulacin, examinadores, etc.., para todas las plataformas. Los ejemplos ms notables son HyperCard, Authorware 13, MediaText 14, Stella 15, Guide 16, Owl 17, Director 18 (para Macintosh); Toolbook 19, LinkWay 20, StoryBoard Professional 21, Authorware Professional 22, Guide 23, Animator 24 (para MSDOS/W indows) 25; CanDo (Amiga) (ver Gndara 1994 para una discusin ms detallada de las diferencias entre lenguajes de alto nivel y sistemas de autora).

10 11

H - nuevo texto sobre modelos de uso

Gs Gs 12 Gs 13 Gs 14 Gs 15 Gs 16 Gs 17 Gs 18 Gs 19 Gs 20 Gs 21 Gs 22 Gs 23 Gs 24 Gs 25 Gs

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

3.1.4. Seleccin de plataforma (desarrollo y 26 entrega) La plataforma es la particular combinacin entre un procesador y un sistema operativo. Las plataformas ms populares son Intel/MS-DOS-W indows 27 (malllamada PC-compatible), Motorola/Macintosh OS, Motorola/AmigaDOS, RISC/Unix,(para estaciones de trabajo), RISC/Macintosh OS (para PowerMacintosh). Para algunos docentes resulta una sorpresa enterarse de que hay algo ms que las llamadas IBM compatibles, y que existen ventajas y desventajas tanto para sta como para cualquier plataforma. Por desgracia, ello lleva a que los profesores predeterminen las posibilidades de su proyecto a partir de una plataforma pre-escogida, por lo que la tecnologa entonces regula la solucin acadmica y no a la inversa. En principio, lo ideal es que primero se especifique el objetivo y que en base a ste se elijan tanto herramientas como plataforma. La realidad es que normalmente el proceso es exactamente el inverso, dado que muchos docentes adoptan de manera implcita lo que podra llamarse una estrategia reactiva, y no una de carcter proactivo.
26

H - nuevo texto definiendo ambos tipos de plataforma 27 L - a artculo sobre recursos Educacin Asistida por Computadora II

En el primer caso, se desarrolla para aquellas mquinas que constituyen el mnimo comn denominador existente (la base instalada). Esto asegura que el software desarrollado podr correr en esta base instalada y que el desarrollo ser entonces de utilidad inmediata. Por desgracia, los ciclos de desarrollo suelen tener tiempos no triviales, por lo que esta estrategia reactiva puede tener como consecuencia la situacin exactamente opuesta a la buscada: que para el momento en que el desarrollo se termina las mquinas en cuestin ya no son las ms comunes, o de plano han sido descontinuadas. Por supuesto, dependiendo del tamao y envergadura de los cambios en la tecnologa, el software quiz todava podr correr en las nuevas mquinas, pero desperdiciar con seguridad parte del podero ahora disponible. Por otro lado, sin embargo, seguir una estrategia totalmente proactiva implica que si se adoptan tempranamente tecnologas de punta, y la base instalada no cambia al ritmo esperado, entonces el software no podr ser usado porque las viejas mquinas disponibles no cuentan con el podero suficiente. En consecuencia, para cada desarrollo debe hacerse un anlisis cuidadoso de la mezcla entre estos dos extremos que conviene adoptar para el proyecto. Pero por ello es crucial que este punto forme parte explcita del proceso de 5

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

desarrollo y no se deje simplemente al azar de lo que puede estar sucediendo en la institucin patrocinadora en ese momento en particular. 3.1.5. Elaboracin de un mapa mental La idea de mapa mental o mindmap ha sido propuesta como herramienta para el desarrollo por Tina Van der Mollen 2829, quien la ha utilizado con xito en su programa de capactacin para desarrolladores en HyperCard, el programa HyperEd, de Nueva Zelanda (Van der Mollen 1990:). Se trata de una especie de lluvia de ideas personal, en la que se vierten en una hoja de papel las caractersticas bsicas que tendr el software a desarrollar. Se inicia con una descripcin muy breve del objetivo y el pblico que se beneficiar con el software; luego se ubica al centro la idea rectora del programa, de la se derivan luego ramas temticas. Este proceso puede continuar con la especificacin de subramas de esta ramas principales, y as sucesivamente, de manera estructurada. Luego se aade a cada subrama la lista de tipos de material que empleara (por ejemplo, textos, grficas o video digital), que pueden ser codificados mediante marcadores de colores. Se aaden en seguida sealamientos de qu ramas se prestan para
28

actividades interactivas; las fuentes de los materiales requeridos (cuando ya existan), o un recordatorio de que hay que desarrollarlos; finalmente, se ubican las ramas que se calcula seran las ms fciles y las ms difciles de desarrollar, como para tener una idea de por dnde empezar y cules sern las reas mas problemticas. Este mapa, que debe elaborarse contra tiempo fijo, a fin de promover una mayor fluidez de ideas, se puede depurar y refinar de manera sucesiva. Por ejemplo, quiz se detecte en ese momento que habr ramas para las que el proceso de producir contenidos resulte demasiado caro o tardado; esto puede llevar a segmentar el proyecto en etapas y optar por desarrollar en una primera etapa la estructura general y algunas ramas ms sencillas. Por otro lado, el mapa es una excelente ayuda para el paso siguiente, el de la preespecificacin, puesto que se puede regresar al mapa para calcular cuntos textos, grficas, audio o video se emplearn, que tipo de actividades requerirn de programacin adicional, etc., lo que luego se puede traducir en elementos de estimacin de costos y tiempos para el proyecto. 3.1.6. Elaboracin de una primera especificacin Se le llama especificacin a la descripcin escrita de el 6

Ge - foto de Tina 29 H - nuevo texto, sobre mindmap, con ejemplos Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

resultado de las decisiones anteriores, ms una visin general de cmo es que operar el programa, y cmo ha de evaluarse su desempeo. Constituye la base para un entendimiento entre los participantes en el proyecto, as como el establecimiento del compromiso ante la institucin patrocinadora o el cliente. Determina, en consecuencia, los objetivos del software, el tipo de usuario y contexto de uso esperado, la herramienta y plataforma a emplear (incluyendo la especificacin tcnica de los equipos 30 al menos preliminar requisitos de velocidad de procesador, cantidad de memoria RAM y almacn, monitor y tipo de salida de video, etc.), as como el plan general o estrategia de instrumentacin que permitir que los objetivos se cumplan. En ocasiones, si se incluye adems un plan global o prototipo en papel, la especificacin acta como el resultado y sntesis de la etapa de diseo dentro el proceso de desarrollo. En trminos prcticos, la especificacin ser la gua para poder determinar, cuando menos en forma preliminar, el costo y duracin del proceso de desarrollo, al apuntar hacia algunos de los insumos que se requerirn, tanto en equipo, software y accesorios como en tiempo de recursos humanos que sern necesarios 31. Es por esta
30 31

razn que la especificacin resulta crucial, sobre todo en proyectos de desarrollo comercial, dado que permite facilitar tanto la presupuestacin como el compromiso ante el cliente, y dejar todo tan claramente explicitado como sea necesario 1 . En ocasiones, una caracterizacin global basta; en otras es indispensable definir parmetros como la velocidad de acceso y respuesta, tamao mximo en almacn, etc.. 3.1.7. Elaboracin de prototipos La elaboracin de prototipos 2 es el proceso de disear algo, sea en la computadora o fuera de ella, que demuestra algunas de las caractersticas o elementos interactivos del sistema que se intenta construir. Al usar el prototipo, se puede evaluar el diseo, incorporar cualquier cambio en el siguiente prototipo, y eventualmente refinar el diseo para la aplicacin o sistema final. (Bauersfeld 1994: 155). Para algunos expertos, este paso es en realidad ya un elemento de la etapa siguiente, la de instrumentacin; otros insisten en que es el ltimo e indispensable paso de la etapa de diseo. Lo cierto es que, a diferencia de las etapas anteriores, aqu se involucran ya cantidades importantes de recursos y trabajo, por lo que en algunos desarrollos comerciales la elaboracin de prototipos en ya una tarea pagada (sea como 7

L - a recursos H - a nuevo texto con bases de costeo

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

pago final o como pago parcial del costo total del desarrollo). Esto es as porque el prototipo es el equivalente a una maqueta en arquitectura, o al conjunto ya no de bocetos libres sino de planos generales para una construccin. En cualquier caso, el prototipo actuar como vehculo interno de comunicacin, permitiendo que los diferentes miembros del equipo de desarrollo puedan saber qu se espera de ellos y cmo se integran todas las partes; y actuar tambin como una primera aproximacin a las caractersticas de uso real del producto, al incluir un primer intento de la llamada interfaz con el usuario, es decir, la forma en que el programa ser operado en un contexto real, o sea, la suma de interacciones que habrn de darse entre usuario y mquina. Esta fase es crucial, porque si las pruebas tempranas de los prototipos muestran que el programa es difcil de usar, o demasiado lento en desempeo, ello indicar seguramente que hay que revisar la especificacin y probablemente realizar cambios que pudieran impactar tanto los presupuestos como los tiempos de desarrollo. Los expertos (por ejemplo, Tognazzini 1990:81 32) consideran que hay dos tipos de prototipos, y que ambos cumplen funciones ligeramente diferentes: en el caso de los prototipos
32

horizontales, se intenta dar una idea global de la funcionalidad entera del programa, aunque ninguna de las funciones opere todava en detalle. En los prototipos verticales, las funciones simplemente son listadas, y se toma alguna o un par de ellas como mdulos representativos del desempeo del conjunto, y estas de desarrollan en profundidad. As, en un prototipo horizontal tal vez queden expresados los menes y submenes generales, con las opciones dentro de cada men, y sea funcional solamente la navegacin global, con pantallas dibujadas que den una idea de cmo se ver y operar cada funcin. En un prototipo vertical se prefiere tomar una opcin de algn men y desarrollarla en profundidad a fin de mostrar su funcionalidad interna, que se espera sea una muestra representativa del conjunto de funciones restantes. Por supuesto, un prototipo ms completo sera el que incorpora ambos enfoques y muestra ejemplos tanto de la amplitud como de la profundidad del desarrollo. 3.1.8. Determinacin final de requerimientos La elaboracin de un prototipo global final dar una mucho mejor idea de los requerimientos precisos del proyecto. Esto, a su vez, permite afinar calendarios y presupuestos, lo que puede implicar hacer ajustes con la 8

Ge - scaneo de portada libro

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

institucin patrocinadora o el cliente que financiarn el desarrollo. Quiz un ejemplo ayude a ilustrar esta idea con un sencillo proyecto imaginario. Supongamos que el objetivo del proyecto es una permitir una presentacin interactiva de la historia de los presidentes del pas X 33. La especificacin preliminar establece que habr por lo menos una pantalla con una sntesis resumida de la biografa de cada presidente, y una imagen a colores de alta resolucin con su fotografa o retrato. Los usuarios podrn acceder a esta informacin va una tabla cronolgica o bien un ndice alfabtico, y avanzar y retroceder entre cada ficha dado que estarn organizadas por orden cronolgico. Tambin podrn hacer bsquedas libres de texto. En el prototipo se vio que ello implica cuando menos 26 fichas, ms la portada, la introduccin e instrucciones de uso, el men para acceso alfabtico, el men para acceso cronolgico, una ficha con bibliografa, y los elementos de navegacin y bsqueda que conectan todas estas partes. Dadas estas caractersticas, se requiere de una herramienta con buen desempeo de bsqueda textual, pero tambin capaz de mostrar grficas de 24 bits, previamente capturadas mediante escaneo. A su vez, esto implica una plataforma con buena velocidad
33

de acceso, capacidad de video en 24 bits y posibilidad de trabajar con grficas y texto combinados. Quiz a partir de esta consideracin se elige trabajar con HyperCard y una plataforma Macintosh/Motorola 68030, con monitor de 14" a 24 bits 34. Con estos datos podemos entonces ya costear el equ ipo (computadora, monitor, scaner, ampliacin de memoria RAM y de memoria de video), y determinar el tamao del disco duro que albergar el conjunto, as como el medio de distribucin que habr que emplear -ya an utilizando compresin, las 26 ilustraciones quiz ocupen ms que 1.4 Mb almacenables en un slo diskette. Tambin es posible entonces estimar cunto tiempo se requiere para escanear y retocar las imgenes, para capturar y corregir los textos, para disear los elementos de interaccin, y en su caso, el cdigo adicional para optimizar el despliegue de imgenes a colores en HyperCard. Esto, a su vez, nos permite saber qu tipo de personal estar involucrado, lo que multiplicado por la estimacin del tiempo que cada uno aportar, nos da una idea del costo de recursos humanos y de los tiempos. Con esta ltima informacin podremos armar un cronograma en el que se determine que procesos pueden correr en

D - hacer este prototipo, desde papel (escanear) hasta prototipo real Educacin Asistida por Computadora II

34

L - cap recursos

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

paralelo, y en conjunto, establecer una ruta crtica. An a este nivel tan simple de desarrollo, el prototipo nos ayuda a fijar los lineamientos de diseo de interfaz 35, diseo grfico (tipografa, diagramacin, esquema de colores, etc.) y de codificacin; a preveer costos y tiempos; y a establecer criterios de uso y evaluacin. Como se ver, esto es ms til que la suscinta descripcin: se trata de un programa sobre presidentes del pas X, que correr en una Macintosh. Las descripciones de este grado de generalidad no permiten determinar si se espera que incluyamos imgenes, sonido o video digital, el grado de detalle de los textos, o las caractersticas de desempeo del programa. En definitiva, contar con una especificacin y un prototipo constituyen la forma ms eficaz de planificar y poder hacer el seguimiento de un proyecto. 3.2. Instrumentacin

Consiste en elaborar un documento (tan detallado y formal como lo requiera el tamao del proyecto), que oriente el trabajo de todos los participantes tanto en el sentido de homogeneizar el desarrollo (ver que todos utilicen las convenciones de tipografa y diseo acordadas en el prototipo, por ejemplo), as como permita programar el uso de recursos de desarrollo (tales como scanners o tarjetas de digitalizacin). En proyectos pequeos esto quiz no sea necesario, salvo por el adecuado control de la llamada copia maestra, es decir, la ltima copia en la que se incorporan las versiones actualizadas de cada mdulo del desarrollo; y por el control de los resguardos (cuando menos dos resguardos del tipo llamado incremental, en que slo se van actualizando las partes cambiadas). 3.2.2. Elaboracin de pseudocdigo Se le llama pseudocdigo a la descripcin, en lenguaje prcticamente coloquial, de lo que se espera realice la computadora, con las precisiones de en qu puntos debe variar la ejecucin o cuando deben repetirse ciertas actividades. En realidad, es la descripcin de los algoritmos centrales, los procesos a ejecutar, pero sin plasmar stos todava en un lenguaje de computacin de alto nivel. As, por ejemplo, en el caso de un examen 10

Esta etapa, conocida tambin como la de desarrollo en sentido estricto, consiste en transformar la especificacin y prototipos finales en un producto probado listo para entrega. Las actividades o fases ms importantes son: 3.2.1. Lineamientos de diseo y uso de recursos

35

L - a caps respectivos

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

automatizado 36 podemos especificar que la computadora mostrar un reactivo, esperar por la respuesta del usuario, esperar confirmacin por parte del usuario y luego comparar la respuesta con la respuesta correcta del reactivo. Al trmino de los n reactivos del examen, la computadora sumar las respuestas correctas y desplegar el resultado para informacin del usuario. A partir de esta descripcin se puede elaborar una formulacin casi equivalente a la que tendr finalmente el programa. La ventaja es que no se requiere saber de lenguajes de programacin para determinar el pseudo-cdigo, sino ms bien tener una idea clara de en qu consiste el proceso a ejecutar. Ya armado con el pseudocdigo, esta descripcin facilita al programador convertir los algoritmos a las instrucciones o comandos de algn lenguaje en particular. 3 Y si bien el cdigo seguramente podr diferir de un lenguaje a otro, el pseudocdigo, al contener la descripcin general de los algoritmos, es completamente transportable y reutilizable para ser convertido a otros lenguajes. 3.2.3. cdigo Elaboracin de

Esta es la tarea particular del experto en cmputo o programador, dentro del equipo de desarrollo. El cdigo formaliza la descripcin coloquial de la especificacin y del pseudocdigo en un conjunto de instrucciones, rutinas o procedimientos (y, ms recientemente, en descripcin de objetos, propiedades, mensajes y eventos) que la computadora puede entender. Dependiendo del lenguaje, a veces este cdigo es luego procesado para hacer que corra ms rpido y pueda ser entendido directamente en el lenguaje que la mquina utiliza, procedimiento llamado compilacin, que produce una versin en ocasiones llamada ejecutable o runtime. La ventaja de los ejecutables es que pueden distribuirse y ser usados por los usuarios finales sin tener que incluir el conjunto entero del ambiente de programacin original, reduciendo as el tamao del programa y los costos involucrados (ya que de otra manera hay que tener o adquirir permiso (licencia) para distribuir el lenguaje entero, que de cualquier manera el usuario promedio no necesita usar para simplemente poder correr el programa de inters. 3.2.4. Obtencin/creacin de materiales, creacin de contenidos, obtencin de derechos El cdigo, a pesar de ser el alma del programa, normalmente es 11

El cdigo es el conjunto de instrucciones o comandos que un programa ejecutar, expresados en algn lenguaje en particular 4 .
36

H - ejemplo de pseudocdigo

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

solo un componente ms en un proyecto de cmputo educativo, en particular si se trata de un proyecto de multimedios. Tpicamente, se requiere de elaborar y depurar textos, plasmarlos en pantallas que hay que disear y dibujar; quiz de nuevos diagramas, dibujos o animaciones creados en la computadora; o de imgenes fijas, video o sonido que hay que digitalizar (esto es, convertir a un formato que la computadora entiende y puede incorporar). Ello involucra la creacin o la obtencin de materiales, lo que a su vez implica procesos de investigacin documental y grfica, o produccin de contenidos originales, tareas todas que consumen tiempo y recursos. En el caso de la utilizacin de materiales previamente disponibles, es importante recordar que tpicamente estos materiales estn protegidos en cuanto a derechos de autor, lo cual puede involucrar el tener que obtener permiso escrito o pagar derechos de uso, en particular si el desarrollo ser objeto de comercializacin. En muchas ocasiones, los autores o editores originales no requieren de pagos o licencias si el software ser usado en educacin y sin fines de lucro; en otros casos, si el uso es el equivalente al de una cita o referencia corta en un libro, entonces no se requiere normalmente ms que asentar el crdito y fuente del material utilizado. En cualquier ca so, esta fase puede resultar, a la larga, ms compleja, difcil y
Educacin Asistida por Computadora II

tardada de lo que podra parecer inicialmente, por lo que vale la pena incluir tiempos de margen en la planificacin de proyecto. 3.2.5. Integracin de medios En esta fase se arma el programa, integrando el cdigo, que acta como estructura global, y los diferentes contenidos que habr de incorporar el programa. Puede implicar tener que cortar y pegar sonidos, imgenes y videos producidos en diferentes herramientas, hacia la herramienta de autora 37 o programacin utilizada, lo cual puede implicar pasos previos de conversin de formatos. Las herramientas de autora ms poderosas son capaces de facilitar esta integracin al poder incorporar diferentes medios y tipos de archivos, e incluso permitir el control de dispositivos externos como el videodisco, el cd-rom, el cd-audio y robots o dispositivos electromecnicos de diferentes tipos. Evidentemente, la integracin de medios puede correr al parejo de la captura de nuevos materiales, de forma que estas dos actividades pueden hacerse parcialmente concurrentes. 3.3. Depuracin y prueba piloto 3.3.1 Depuracin (debugging)

37

L - a cap respect

12

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

Una vez integrados el cdigo y los contenidos del programa, hay que asegurarse de que ste corre de manera adecuada (tiene un buen desempeo o performance -esto es, no tan lento como para entorpecer la tarea o la experiencia de uso; que es robusto, es decir, que es estable y no suspende la ejecucin ante errores del usuario o problemas de comunicacin con dispositivos perifricos; es correcto, es decir, no contiene errores de codificacin; es veraz, es decir, no contiene errores de contenido; y, en el caso del software educativo, que es eficaz, en el sentido de que permite que se cumplan los objetivos instruccionales 38 planteados. Para ello, se conducen pruebas primero internas, por el propio equipo de desarrollo, en lo que se conoce como depuracin (en ingls, debugging). Luego es importante que personas no familiarizadas con el desarrollo lo evalen, aunque an sea de manera interna, en lo que se conoce como una versin alfa. Se logra con ello una versin llamada beta, completamente funcional y con todo el contenido final, que est lista para ser entonces evaluada por terceros. 3.3.2. Evaluacin y ajustes finales

Este proceso puede tener momentos sucesivos de evaluacin-ajuste-nueva evaluacin-nuevo ajuste, hasta que finalmente se logra una versin final, llamada de entrega o release (de liberacin). La evaluacin de terceros es importante antes de poder hacer la entrega final y equivale a lo que se conoce a veces como etapa de validacin externa en diseo instruccional. En el caso del software educativo es crucial garantizar que no persistan errores de contenido, proceso o eficacia instruccional. El autor muchas veces ya no percibe las deficiencias de su propio trabajo, a base de verlo repetidamente: la opinin de terceros es doblemente valiosa en ese caso. La versin final deber ser no solamente eficaz y correcta, sino fcil de usar, amigable; la amigabilidad 39 se evala por referencia a la facilidad de aprendizaje, la retencin de lo aprendido, el nmero de errores en la ejecucin sucesiva por parte del usuario, y la experiencia subjetiva de uso (que debe ser agradable y no tensa y frustrante). Todos estos criterios pueden evaluarse formal e informalmente, mediante procesos de observacin directa (o etnogrficos), por encuestas y cuestionarios estadsticamente significativos, mediante simulaciones de uso y protocolos de observacin/ejecucin - a veces
39

38

L - a cap resp

L - a cap resp

Educacin Asistida por Computadora II

13

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

apoyados por dispositivos como cmaras de video o grabadoras de audio ante las cuales los usuarios comentan y describen lo que estn haciendo. Independientemente del procedimiento, lo crucial es reconocer que, a final de cuentas, es la opinin del usuario la vale, independientemente de lo que nosotros u otros expertos opinen (ver Gndara, este 40). volumen, pags. 3.4. Entrega

tanto para corregir errores como para mejorar o adecuar el programa a nuevas condiciones. 4. El equipo interdisciplinario de desarrollo 41 Debe ser claro para el lector ahora que la simple multiplicidad de tareas y habilidades involucradas en un desarrollo de rango medio trasciende las posibilidades de un individuo aislado. Es indispensable contar con un equipo interdisciplinario, o al menos tener acceso a un grupo en donde el conjunto de las habilidades requeridas estn representadas. Quienes participaran en un equipo de esta naturaleza, al menos bajo condiciones ideales? Aunque la composicin puede variar, los versados en estas cosas parecen estar de acuerdo en que se requiere, en general, contar con los siguientes perfiles: Experto en contenido: 42 alguien actualizado en su campo de conocimiento, con inters en transmitir lo que sabe de manera clara y sencilla mediante un medio novedoso Experto en diseo instruccional: un especialista en psicologa educativa, didctica, pedagoga o similar, que tenga experiencia

Esta es la ltima etapa del proceso, aunque no por ello signifique que el desarrolle termine, al menos no para efectos prcticos 5 . De hecho, involucra no solamente terminar el cdigo e integracin final, sino la documentacin (manuales de instalacin, del usuario, y en el caso del software educativo, las guas para el maestro, el usuario y quiz el administrador de la red). El trabajo no termina ah, dado que hay que preveer que los usuarios puedan tener preguntas tanto sobre la instalacin como sobre el uso del programa; o detecten errores que hasta ahora no se haban detectado; o sugieran cambios y mejoras; o bien ocurren cambios en el hardware requieren de cambios en el software. Todo ello cae dentro del rubro de soporte y puede llevar a la actualizacin, esto es, a la elaboracin de nuevas versiones,
40

41 42

L - a cap resp

Gi - ver en Careers in Multimedia L a la grfica anterior de Carrers, lo mismo para los especialistas que siguen

Educacin Asistida por Computadora II

14

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

o inters en el desarrollo de medios instruccionales (es decir, en la instruccin ms all de la interaccin directa maestro-alumno Experto en interfaz con el usuario: una persona que entienda y tenga experiencia en facilitar la usabilidad de un programa, diseando la interaccin para que sea intuible y amigable Programador: generalmente un computlogo, informtico o similar, conocedor de lenguajes de computacin y tecnologas informticas Capturistas, digitalizadores y procesadores de medios: personal que puede ser tcnico en su materia, o estudiantes avanzados de las disciplinas respectivas, que ayuden a localizar, jerarquizar y transformar materiales a formatos comprensibles por la computadora (tpicamente, personal que se encarga del manejo de escaners y digitalizadores) Diseadores grficos, de audio y video: expertos, normalmente artistas o personas de intuicin y habilidad artstica, que puedan plasmar sus conocimientos de estos medios, ya sea va la produccin de materiales en la propia computadora o bien supervisando el trabajo de captura y digitalizacin de materiales previamente existentes Evaluadores (beta testers): expertos externos en las ramas mencionadas

hasta ahora, que puedan opinar sobre el desarrollo; usuarios tipo, representativos de la poblacin a la que se orienta el desarrollo; usuarios novatos y usuarios expertos en computacin; y evaluadores preferiblemente profesionales o con conocimientos de evaluacin de software. Coordinador: Finalmente, una persona con dones organizativos, capaz de integrar y motivar a un equipo de trabajo diverso como el descrito arriba, y que pueda administrar recursos, conciliar agendas, cuidar calendarios de entrega, y en general actuar como enlace entre los productores y los patrocinadores del desarrollo.

Esto no significa que fsicamente haya siempre este nmero de personas en el equipo de desarrollo; a veces algunos miembros del equipo pueden cubrir ms de una funcin. Por otro lado, tampoco implica que todos estn incluidos en la nmina durante la duracin total del proyecto. Algunos de los expertos pueden ser trados a colaborar sobre metas muy concretas solamente en las etapas relevantes del proyecto. Lo que resulta imprescindible es contar con la asesora o trabajo continuo del experto en contenido y del programador, as como los capturistas, dado que normalmente las intensidades de trabajo que se requieren de ellos pueden ameritar incluso 15

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

dedicaciones cercanas al tiempo completo. 5. Comentarios finales El proceso de desarrollo es un proceso complejo pero divertido; es una oportunidad de ejercer, al mismo tiempo, las capacidades creativas y las de planificacin cuidadosa, a fin de mejorar los resultados. Conviene, en consecuencia, considerar el proceso en su conjunto al momento de evaluar el grado de ambicin o complejidad de un proyecto. Por otro lado, es un proceso que requiere de revisin y ajustes continuos, que si bien a veces descorazonan a los autores, son indispensables para que los productos terminados satisfagan no solamente a los autores, sino a los usuarios, autnticos destinatarios del esfuerzo (ver captulo sobre evaluacin del desarrollo en este volumen 43). No existe una sola y nica metodologa que garantice el xito. Pero, como en el caso de cualquier viaje hacia un territorio desconocido, ms vale tener una idea aunque sea global, de lo que se nos espera. El propsito de este articula ha sido precisamente ese, el de destacar algunas de las etapas y actividades ms comunes en el desarrollo. Recomendamos a los lectores interesados en los aspectos ms tcnicos el profundizar lo expuesto aqu con una lectura de metodologas
43

explcitamente destinadas a facilitar y organizar reas como la de programacin (codificacin) y control de proyectos. Para ello pueden ser tiles las referencias bibliogrficas que se incluyen en el Apndice B del libro de Yourdon (1993:313-40) 44, y la introduccin general a la programacin ya mencionada, de Levine (1989). Bibliografa 45 Apple Computer Inc. 1994. HyperCard 2.2. Cupertino. Bauersfeld, Penny. 1994. Software by Design.M&T Books. New York. Levine, Guillermo. 1989. Introduccin a la computacin y a la programacin estructurada. MacGraw Hill. Mxico. Macromedia 1993. Authorware. Macromedia. Sn. Francisco. Tognazzini, Bruce 1992. Tog on Interface. Addison-Wesley. Reading. Yourdon, Edward 1993.Decline and fall of the American Programmer. Yourdon Press. Englewood Cliffs. Van der Mollen, Tina 1990. The Hypered Handbook. Apple Computer/Intellimation. Cupertino. Notas

44

L - a cap resp

45

H - texto nuevo con bibliografia de Yourdon H - a bibliografa general

Educacin Asistida por Computadora II

16

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

1.

La propia experiencia personal me lleva a enfatizar la importancia de la especificacin. No hay otra forma de evitar tanto las recriminaciones extemporneas del cliente, como de proteger al cliente de presupuestos eternamente creciente y tiempos de entrega que se alargan. Si en la especificacin acordada se incluy el uso de imgenes de alta resolucin a colores, entonces el cliente podr con justicia reclamar cuando se le entregan imgenes en grises a baja resolucin. Pero cuando simplemente se mencionaron imgenes digitalizadas, el desarrollador pudo haber entendido que eran 20 y en blanco y negro, y el cliente o institucin que eran 200 y a colores. Slo una buena especificacin, discutida y acordada por las partes, puede prevenir este tipo de conflictos. 2. Prototipia, o prototyping en ingls. 3. Esta caracterizacin del pseudocdigo es bastante informal y liberal. En sentido un poco ms tcnico, el pseudocdigo toma las estructuras bsicas 46 de los lenguajes de programacin (las de decisin o alternancia, las de repeticin y las de accin), y las plasma en un lenguaje coloquial. (ver Levine, 47. As, en el ejemplo 1989) anterior, una versin ms
46 47

D - hacer ejemplo en cdigo en algn lenguaje H - nuevo texto, largo

formal del pseudocdigo quiz se vera as: Iniciar proceso Repetir tantas veces como reactivos tenga el examen: presentar el reactivo recibir respuesta pedir confirmacin recibir confirmacin evaluar respuesta en relacin a respuesta correcta para ese reactivo: si la respuesta es correcta sumarla a un contador de respuestas correctas proceder al siguiente reactivo Informar resultado al alumno desplegar texto diciendo que el alumno tuvo el nmero de respuestas correctas registrado en el contador, del total de reactivos posibles. Terminar proceso A diferencia de los lenguajes de computacin, que tienen sintaxis precisa y convenciones muy claras para la formulacin del cdigo, el pseudocdigo lo podemos expresar en una variedad de formas posibles, y a distintos niveles de detalle. segn sea necesario. Lo importante es que su funcin es la de actuar como puente entre la idea general de un procedimiento y su expresin final en un lenguaje de programacin. (Agradezco a la Mtra. Elisa Viso, de la Facultad de Ciencias, el haberme introducido a las bondades del pseudocdigo). 4. En el pasado, este cdigo era en realidad un cdigo, en el sentido de que las viejas computadoras tenan tablas de 17

Educacin Asistida por Computadora II

MCA / UNAED / EAC II / Proceso de Desarrollo de Software: Una introduccin para educadores

conversin que establecan la equivalencia entre expresiones tan crpticas como quiz 001000101000, y una instruccin como dividir 48. Posteriores computadoras permitan ya usar abreviaturas llamadas mnemnicos que empezaban a parecerse al lenguaje natural, tales como DIV (35,36) (Dividendo, en ingls, en este caso de 35 entre 36). Finalmente, los lenguajes recientes permiten expresiones ya casi naturales, como divide 35 by 36. En cualquier caso, a la escritura de programas en un lenguaje de computacin se le qued el nombre de codificacin. 5. De hecho, podemos formular la ley gandariana 49 de que el desarrollo nunca se acaba; la versin entregada no es sino una nueva versin beta.
Adaptacin y diseo de contenido: Dr. Lisandro Nava Cadena UAT. UNAED. 2010

48

Ge - cdigo en assembler y lenguaje de mquinas 49 Ge - foto mgv ojo idea de galera de personajes Educacin Asistida por Computadora II

18

You might also like