34
EL PROCESO DE DESARROLLO DE SOFTWARE: Una introducción para educadores Manuel Gándara Vázquez

El proceso de desarrollo de software

Embed Size (px)

Citation preview

Page 1: El proceso de desarrollo de software

EL PROCESO DE DESARROLLO DE SOFTWARE: Una introducción para educadores

Manuel Gándara Vázquez

Page 2: El proceso de desarrollo de software

Introducción

Las oportunidades educativas de la computadora han llevado a que un número cada día mayor de docentes decidan incorporarla en su práctica cotidiana.

Esta decisión típicamente se convierte en la decisión de optar por desarrollar nuevo software

Page 3: El proceso de desarrollo de software

Esta decisión pudiera no ser la óptima …existen otras formas de integrar la computadora a la docencia

La traducción Adaptación («localización») de software ya existente La creación de experiencias de aprendizaje en torno a

programas ya hechos El uso de la computadora como auxiliar en la

presentación

Introducción

Page 4: El proceso de desarrollo de software

Existen condiciones que justifican la decisión de desarrollar, lo cual implica tener una idea, al menos global, del tamaño y complejidad de la tarea

Este trabajo se divide en 3 secciones en las que:

1. Se define el proceso de desarrollo

2. Se describen las etapas principales del proceso

3. Se discute la composición interdisciplinaria

Introducción

Page 5: El proceso de desarrollo de software

EL DESARROLLO es «el proceso de creación de software»

(programas nuevos) …

Incluye no solamente la programación (cuando ésta es necesaria),

sino la selección de contenidos, estrategias de uso,

e incluso la documentación de los programas»

(Gándara)

¿Qué es el desarrollo?

Page 6: El proceso de desarrollo de software

¡La PROGRAMACIÓN no siempre es necesaria¡

Hoy día se pueden producir programas sencillos (y de complejidad moderada), usando herramientas de autoría que «escriben el código por nosotros», y que no requieren que el autor entienda de la sintaxis de los lenguajes involucrados.

Siempre se involucra algún tipo de programación, pero no necesariamente a un programador.

¿Qué es el desarrollo?

Page 7: El proceso de desarrollo de software

El desarrollo (en todas las ramas, y en particular en los desarrollos comerciales) es un proceso complejo; y en lo que toca al cómputo educativo, para ser eficaz tiene que ser necesariamente interdisciplinario.

El paso previo al desarrollo debe ser el de determinar si en efecto se justifica un nuevo desarrollo

¿Qué es el desarrollo?

Page 8: El proceso de desarrollo de software

Quizá este paso previo sea el más importante de todo el proceso

Si nuestro desarrollo no añade nada nuevo a lo ya existente, o si tampoco aprovecha las oportunidades específicas que tiene la computadora como medio instruccional, entonces tendremos un caso más de lo que se llama «un uso trivial de la computadora»

¿Qué es el desarrollo?

Page 9: El proceso de desarrollo de software

Una vez determinado que, en efecto, elaborar un nuevo software se justifica, se inicia el proceso de desarrollo, que comprende etapas … que a veces ocurren en paralelo, o en un orden, no siempre lineal

Las ETAPAS son cuatro:

1. EL DISEÑO

2. LA INSTRUMENTACIÓN

3. LA PRUEBA Y DEPURACIÓN FINAL

4. LA ENTREGA

¿Qué es el desarrollo?

Etapas del proceso de desarrollo

Page 10: El proceso de desarrollo de software

1. Diseño1.1 Detección de necesidades, definición del objetivo del software (la “tarea”)1.2 Definición del usuario y del contexto1.3 Selección de herramientas de desarrollo1.4 Selección de plataforma (desarrollo y entrega)1.5 Elaboración de una “mapa mental”1.6 Elaboración de una primera especificación1.7 Elaboración de prototipos1.8 Determinación final de requerimientos

2. Instrumentación2.1 Lineamientos de diseño y uso de recursos2.2 Elaboración de pseudocódigo2.3 Elaboración del código2.4 Obtención/creación de materiales, creación de contenidos, obtención de derechos2.5 Integración de medios

3. Depuración y prueba piloto3.1 Depuración (“debugging”)3.2 Evaluación y ajustes finales

4. Entrega

Etapas del proceso de desarrollo

Page 11: El proceso de desarrollo de software

1. DISEÑO

1.1 Detección de necesidades y definición del objetivo del software

1.2 Definición del usuario y del contexto

1.3 Selección de herramientas de desarrollo

1.4 Selección de plataforma

1.5 Elaboración de una “mapa mental”

1.6 Elaboración de una primera especificación

1.7 Elaboración de prototipos

1.8 Determinación final de requerimientos

Etapas del proceso de desarrollo:

1.

Page 12: El proceso de desarrollo de software

1.1 Detección de necesidades, definición del objetivo

del software (la “tarea”)

Se clarifica y se plantea cuál es la necesidad a la que responde el desarrollo, y cuáles son los objetivos a cubrir (la tarea que el software habrá de realizar)

Se detectan las necesidades que se intenta resolver mediante el uso de la computadora, que se plasmarán en objetivos del diseño instruccional

1. DISEÑO

Etapas del proceso de desarrollo:

Page 13: El proceso de desarrollo de software

1.2 Definición del usuario y del contexto

Se determinan las características generales del usuario: edad, sexo, escolaridad, familiaridad previa con el contenido, o con la tarea, del software; familiaridad previa con la computadora, y otras características del usuario que impacten la usabilidad del software

Se define el contexto de uso, tanto en términos de los equipos y locales en que se utilizará el software, como del modelo de uso y las consecuencias de la tarea

1. DISEÑO

Etapas del proceso de desarrollo:

Page 14: El proceso de desarrollo de software

1.3 Selección de herramientas de desarrollo

Una vez determinados la tarea y el usuario hay que determinar que herramienta de desarrollo es la adecuada

En cómputo educativo se recurre normalmente a las llamadas «herramientas de autoría» que son programas especializados para este fin, de uso relativamente simple, por ejemplo: HyperCard, Authorware, Director, etc.

1. DISEÑO

Etapas del proceso de desarrollo:

Page 15: El proceso de desarrollo de software

1.4 Selección de plataforma (desarrollo y entrega)

La «plataforma» es la combinaciónentre un procesador y un sistema operativo

Lo ideal es que 1. se especifique el objetivo y que en base a éste 2. se elijan tanto herramientas como plataforma.

La realidad es que normalmente el proceso es exactamente el inverso

Para cada desarrollo debe hacerse un análisis cuidadoso de la mezcla entre estos dos extremos que conviene adoptar para el proyecto

1. DISEÑO

Etapas del proceso de desarrollo:

Page 16: El proceso de desarrollo de software

1.5 Elaboración de una “mapa mental”

1. Se inicia con una descripción muy breve del objetivo y el público que se beneficiará con el software

2. Se ubica al centro la idea rectora del programa3. Se especifican «subramas’ de esta ramas principales, y así sucesivamente,

de manera estructurada. 4. Se añade a cada subrama la lista de tipos de material que emplearía (por

ejemplo, textos, gráficas o video digital) … que pueden ser codificados mediante marcadores de colores.

5. Se añaden señalamientos de qué ramas se prestan para actividades interactivas; las fuentes de los materiales requeridos (cuando ya existan), o un recordatorio de que hay que desarrollarlos

6. Se ubican las ramas que se estima serían las más fáciles y las más difíciles de desarrollar, esto para tener una idea de por dónde empezar y cuáles serán las áreas mas problemáticas.

1. DISEÑO

Etapas del proceso de desarrollo:

Page 17: El proceso de desarrollo de software

1.5 Elaboración de un “ mapa mental”

1. DISEÑO

Etapas del proceso de desarrollo:

Page 18: El proceso de desarrollo de software

Este mapa se puede depurar y refinar de manera sucesiva

El mapa es una excelente ayuda para el paso siguiente, el de la pre-especificación, puesto que se puede regresar al mapa para calcular cuántos textos, gráficas, audio o video se emplearán, que tipo de actividades requerirán de programación adicional, etc., lo que luego se puede traducir en elementos de estimación de costos y tiempos para el proyecto

1. DISEÑO

Etapas del proceso de desarrollo:

1.5 Elaboración de un “ mapa mental”

Page 19: El proceso de desarrollo de software

1.6 Elaboración de una primera especificación

La ESPECIFICACIÓN es a la descripción escrita del resultado de las decisiones anteriores

Constituye la base para un entendimiento entre los participantes en el proyecto, así como el establecimiento del compromiso ante la institución patrocinadora o el cliente.

Determina: los objetivos del software, el tipo de usuario y contexto de uso esperado, la herramienta y plataforma a emplear (incluyendo la especificación técnica de los equipos), así como el plan general o estrategia de instrumentación que permitirá que los objetivos se cumplan.

1. DISEÑO

Etapas del proceso de desarrollo:

Page 20: El proceso de desarrollo de software

En ocasiones, si se incluye además un plan global o prototipo en papel, la especificación actúa como el resultado y síntesis de la etapa de diseño dentro el proceso de desarrollo

La especificación será la guía para poder determinar, cuando menos en forma preliminar, el costo y duración del proceso de desarrollo, al apuntar hacia algunos de los insumos que se requerirán, tanto en equipo, software y accesorios como en tiempo de recursos humanos que serán necesarios

1. DISEÑO

Etapas del proceso de desarrollo:

1.6 Elaboración de unaprimera especificación

Page 21: El proceso de desarrollo de software

1.7 Elaboración de prototipos

La ELABORACIÓN DE PROTOTIPOS es el proceso de diseñar algo, sea en la computadora o fuera de ella, que demuestra algunas de las características o elementos interactivos del sistema que se intenta construir.

1. DISEÑO

Etapas del proceso de desarrollo:

Al usar el prototipo, se puede evaluar el diseño, incorporar cualquier cambio en el siguiente prototipo, y eventualmente refinar el diseño para la aplicación o sistema final

Page 22: El proceso de desarrollo de software

El prototipo actuará como vehículo interno de comunicación, permitiendo que el equipo de desarrollo pueda saber qué se espera de ellos y cómo se integran todas las partes

Actuará también como una primera aproximación a las características de uso real del producto, al incluir un primer intento de «interfaz con el usuario»

Hay dos tipos de prototipos:

«horizontal» … se intenta dar una idea global de la funcionalidad entera del programa, aunque ninguna de las funciones opere todavía en detalle.

«vertical» … las funciones simplemente son listadas, y se toma alguna(s) como módulos representativos del desempeño del conjunto, y se desarrollan en profundidad

1. DISEÑO

Etapas del proceso de desarrollo:

1.7 Elaboración de prototipos

Page 23: El proceso de desarrollo de software

La elaboración 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 institución patrocinadora o el cliente que financiarán el desarrollo.

1. DISEÑO

Etapas del proceso de desarrollo:

1.8 Determinación final de requerimientos

Page 24: El proceso de desarrollo de software

La INSTRUMENTACIÓN, conocida también como la etapa de «desarrollo» en sentido estricto, consiste en transformar la especificación y prototipos finales en

un producto probado listo para entrega

Las actividades o fases más importantes son:2.1 Lineamientos de diseño y uso de recursos

2.2 Elaboración de pseudocódigo

2.3 Elaboración del código

2.4 Obtención/creación de materiales, creación de contenidos, obtención de derechos

2.5 Integración de medios

2. INSTRUMENTACIÓN

Etapas del proceso de desarrollo:

2.

Page 25: El proceso de desarrollo de software

2.1 Lineamientos de diseño y uso de recursos

Consiste en elaborar un documento que oriente el trabajo de todos los participantes tanto en el sentido de homogeneizar el desarrollo (ver que todos utilicen las convenciones de tipografía y diseño acordadas en el prototipo, por ejemplo), así como permita programar el uso de recursos de desarrollo (tales como scanners o tarjetas de digitalización).

En proyectos pequeños esto quizá no sea necesario

2. INSTRUMENTACIÓN

Etapas del proceso de desarrollo:

Page 26: El proceso de desarrollo de software

2.2 Elaboración de pseudocódigo

Se le llama «pseudocódigo» a la descripción, en lenguaje prácticamente coloquial, de lo que se espera realice la computadora, con las precisiones de en qué puntos debe variar la ejecución o cuando deben repetirse ciertas actividades.

Es la descripción de los algoritmos centrales, los procesos a ejecutar, pero sin plasmar éstos todavía en un lenguaje de computación de alto nivel

2. INSTRUMENTACIÓN

Etapas del proceso de desarrollo:

Page 27: El proceso de desarrollo de software

2.3 Elaboración del código

El «código» es el conjunto de instrucciones o comandos que un programa ejecutará, expresados en algún lenguaje en particular

Es la tarea particular del experto en cómputo o programador, dentro del equipo de desarrollo

2. INSTRUMENTACIÓN

Etapas del proceso de desarrollo:

Page 28: El proceso de desarrollo de software

2.4 Obtención/creación de materiales, creación de contenidos, obtención de derechos

Se requiere: Elaborar y depurar textos, plasmarlos en «pantallas» que hay que

diseñar y dibujar Nuevos diagramas, dibujos o animaciones creados en la computadora De imágenes fijas, video o sonido que hay que digitalizar (esto es,

convertir a un formato que la computadora entiende y puede incorporar) … ello involucra la creación o la obtención de materiales, lo que a su vez implica procesos de investigación documental y gráfica, o producción de contenidos originales, tareas todas que consumen tiempo y recursos.

En el caso del uso de materiales previamente disponibles, se revisan

derechos de autor, para ver si se tiene que obtener un permiso escrito o pagar derechos de uso … en particular si el desarrollo será objeto de comercialización

2. INSTRUMENTACIÓN

Etapas del proceso de desarrollo:

Page 29: El proceso de desarrollo de software

2.5 Integración de medios

En esta fase se «arma» el programa, integrando el código, que actúa como estructura global, y los diferentes contenidos que habrá de incorporar el programa … puede implicar el manejo de sonidos, imágenes y videos, hacia la herramienta de autoría o programación utilizada

La integración de medios puede correr al parejo de la captura de nuevos materiales, de forma que estas dos actividades pueden hacerse parcialmente concurrentes

2. INSTRUMENTACIÓN

Etapas del proceso de desarrollo:

Page 30: El proceso de desarrollo de software

3.1 Depuración (“debugging”)

3.2 Evaluación y ajustes finales

3. DEPURACIÓN Y PRUEBA PILOTO

Etapas del proceso de desarrollo:

3.

Page 31: El proceso de desarrollo de software

3.1 Depuración (“debugging”)

Una vez integrados el código y los contenidos del programa …hay que asegurarse de que éste corre de manera adecuada (tiene un buen «desempeño» o performance

Se conducen pruebas internas, por el propio equipo de desarrollo, en lo que se conoce como «depuración» (en inglés, «debugging»)

Luego es importante que personas no familiarizadas con el desarrollo lo evalúen, aunque aún sea de manera interna, en lo que se conoce como una «versión alfa» … se logra así una versión llamada «beta», completamente funcional y con todo el contenido final, que está lista para ser entonces evaluada por terceros

3. DEPURACIÓN Y PRUEBA PILOTO

Etapas del proceso de desarrollo:

Page 32: El proceso de desarrollo de software

3.2 Evaluación y ajustes finales

Este proceso puede tener momentos sucesivos de evaluación-ajuste-nueva evaluación-nuevo ajuste, hasta que finalmente se logra una versión final, llamada «de entrega» o «release» (de «liberación»).

La evaluación de terceros es importante antes de poder hacer la entrega final y equivale a lo que se conoce a veces como «etapa de validación externa» en diseño instruccional

3. DEPURACIÓN Y PRUEBA PILOTO

Etapas del proceso de desarrollo:

Page 33: El proceso de desarrollo de software

Involucra terminar el código e integración final, y la documentación (manuales de instalación, del usuario, y en el caso del software educativo, las guías para el maestro, el usuario y quizá el administrador de la red)

Hay que preveer que los usuarios puedan tener preguntas tanto sobre la instalación como sobre el uso del programa; o detecten errores que hasta ahora no se habían detectado; o sugieran cambios y mejoras; o bien ocurren cambios en el hardware requieren de cambios en el software

4. ENTREGA

Etapas del proceso de desarrollo:

4.

Page 34: El proceso de desarrollo de software

Experto en contenido Experto en diseño instruccional Experto en interfaz con el usuario Programador Capturistas, digitalizadores y

procesadores de medios Diseñadores gráficos, de audio y video Evaluadores (“beta testers”) Coordinador

EL EQUIPO INTERDISCIPLINARIO DE

DESARROLLO

Esto no significa que físicamente haya siempre este número de personas en el equipo de desarrollo; a veces algunos miembros del equipo pueden cubrir más de una función