domingo, 6 de mayo de 2007

MÉTODO VAN-MOLLEN-GÁNDARA Y HERRAMIENTAS DE DESARROLLO DE SOFTWARE
a) Investigar y analizar sobre los puntos críticos del método Van-Mollen-Gándara

Puntos críticos del método Van-Mollen-Gándara:

1. Problema y solución eficaz mediante computadora. Planear es un proceso fundamental en la realización de cualquier proceso que persigue un fin y este método requiere de la planeación. Entre los elementos a definir en el proceso de planeación es la definición del problema, objetivo, metas a alcanzar y uso de “lluvia de ideas”.

2. Elección de metodología, plataforma y herramientas. Se deber tener en cuenta cómo, con quiénes y con qué se va hacer (libros, hardware, software, etc.).

3. Conformación del equipo de trabajo. Coordinarse adecuadamente a través de una constante comunicación y definición de funciones entre quien va a usar el proyecto y quienes lo van a realizar.

4. Especificación y prototipos iterativos. Los prototipos iterativos desarrollados serán modificados a medida que las tareas a realizar lo requieran.

5. Lineamientos de trabajo y resguardo. Establecimiento de las líneas que tengan por objeto coordinar las actividades y funciones de las áreas que intervengan, así como de las responsabilidades de quienes intervienen.

6. Control de acervo (derechos) y versiones. Registro del producto, tanto para darle la asignación de derecho a quien le corresponda como para que no se haga un mal uso del dicho producto.

7. Asegurar continuidad y aplicabilidad. La continuidad va a depender de una adecuada planeación inicial, ya que si va a cumplir con las metas fijadas su aplicabilidad va a ser exitosa; asimismo, tanto la continuidad como la aplicabilidad dependerán de un seguimiento de los procesos de manera que se mantengan actualizados y mejorados. “Buscar que el proyecto se adapte a las necesidades del usuario, más no, que el usuario se adapte al proyecto”.

b) Requerimientos del desarrollo de software y hasta dónde se cumplen en su propio contexto

De los requerimientos

Dentro de los requerimientos del desarrollo de software, se encuentra el conjunto de técnicas y procedimientos que nos permiten conocer los elementos necesarios para definir un proyecto de software, siendo esta la etapa más crucial del desarrollo de un proyecto de software.

Para realizar bien el desarrollo de software es esencial realizar una especificación completa de los requerimientos de los mismos, independientemente de lo bien diseñado o codificado que esté.

Cuando un programa
no es especificado desde el inicio adecuadamente, muy difícilmente cumplirá con lo requerido por el usuario.

La tarea de análisis de los requerimientos es un proceso de descubrimiento y refinamiento, de ahí que el método Van-Mollen-Gándara, es empleado como una herramienta útil en el desarrollo de software, porque determinar subtemas o aspectos del tema central; tomar un subtema y en su caso, subdividirlo en sub-subtemas; si es necesario, subdividir y así sucesivamente; va permitiendo realizar ese descubrimiento y refinamiento del proyecto.

Tanto el que desarrolla el software como el usuario
tienen un papel activo en la especificación de requerimientos. El cliente intenta reformular su concepto, algo nebuloso, de la función y comportamiento de los programas en detalles concretos, el que desarrolla el software actúa como interrogador, consultor y el que resuelve los problemas.

El análisis de requerimientos puede dividirse en cuatro áreas:

1.- Reconocimiento del problema
2.- Evaluación y síntesis
3.- Especificación
4.- Revisión.

Inicialmente, el analista estudia la especificación del sistema (si existe) y el plan
de proyecto. Es importante comprender el contexto del sistema y revisar el ámbito de los programas que se usó para generar las estimaciones de la planificación. A continuación, debe establecerse la comunicación necesaria para el análisis, de forma que se asegure el reconocimiento del problema.

Las formas de comunicación requeridas para el análisis se ilustran en la siguiente figura. El analista debe establecer contacto con el equipo técnico y de gestión
del usuario y con quien vaya a desarrollar el software. El gestor del programa puede servir como coordinador para facilitar el establecimiento de los caminos de comunicación. El objetivo del analista es reconocer los elementos básicos del programa tal como lo percibe el usuario/cliente.
La evaluación del problema y la síntesis de la solución es la siguiente área principal de trabajo del análisis. El analista debe evaluar el flujo y estructura
de la información, refinar en detalle todas las funciones del programa, establecer las características de la interfase del sistema y descubrir las ligaduras del diseño. Cada una de las tareas sirven para descubrir el problema de forma que pueda sintetizarse un enfoque o solución global.

Las tareas asociadas con el análisis y especificación existen para dar una representación del programa que pueda ser revisada y aprobada por el cliente. En un mundo ideal el cliente desarrolla una especificación de requerimientos del software completamente por sí mismo. Esto se presenta raramente en el mundo real. En el mejor de los casos, la especificación se desarrolla conjuntamente entre el cliente y el técnico.

Una vez que se hayan descrito las funcionalidades básicas, comportamiento, interfase e información, se especifican los criterios de validación para demostrar una comprensión de una correcta implementación de los programas. Estos criterios sirven como base para hacer una prueba durante el desarrollo de los programas. Para definir las características y atributos del software se escribe una especificación de requerimientos formal. Además, para los casos en los que se desarrolle un prototipo se realiza un manual
de usuario preliminar.

Es recomendable que desde el proceso de desarrollo se vaya elaborando el manual de usuario, para que le vaya permitiendo a éste ir revisando el software desde una perspectiva de ingeniería humana y no se produzca al final comentarios como: "La idea es correcta pero ésta no es la forma en que pensé que se podría hacer esto". Es mejor descubrir tales comentarios lo mas tempranamente posible en el proceso.

Los documentos
del análisis de requerimiento (especificación y manual de usuario) sirven como base para una revisión conducida por el usuario y el técnico. La revisión de los requerimientos casi siempre produce modificaciones en la función, comportamiento, representación de la información, ligaduras o criterios de validación. Además, se realiza una nueva apreciación del plan del proyecto de software para determinar si las primeras estimaciones siguen siendo validas después del conocimiento adicional obtenido durante el análisis.

Hasta dónde se cumplen los requerimientos del desarrollo de software en su propio contexto
-En mi opinión- los requerimientos del desarrollo de software en muchos de los casos no se cumplen en su totalidad, me ha tocado ver el desarrollo de sistemas que por evadir etapas de planeación al final se aplica el comentario de que “está bien desarrollado y tiene muchas aplicaciones, pero no considera el proceso que llevamos a cabo”. Todo ello generalmente se desencadena de la mala comunicación que existe entre quien elabora y quien va a emplear el proyecto, pues quien elabora da por hecho algunas tareas o desea imitarlas por otras que ha visto sin consultar al usuario, o bien el usuario no tiene definidas con precisión los procedimientos.

c) Reporte de resultados y reflexiones de la experiencia del uso del método Van-Mollen-Gándara y de la relevancia del desarrollo en su contexto escolar

En mi caso hace bastantes años que no realizo la programación de proyectos de manera codificada (convertir a un lenguaje de programación); sin embargo, si he participado como usuario y puedo comentar que si en la practica se aplicaran métodos como el de Van-Mollen-Gándara, el resultado final sería un software de acuerdo a las necesidades del usuario o de la situación, que es lo que al final se busca como meta en un proyecto, es decir, que resuelva el problema inicial y no que interfiera en él.

d) Herramientas de autoría de software educativo en la red; detectar las principales herramientas de desarrollo de software

Manejadores de bases de datos

MySQL, surgió como un manejador de pequeñas bases de datos, rápido y ágil. Con el paso del tiempo y la reciente incorporación del código de la reconocida base de datos SapDB, se ha sumado al mercado de las bases de datos profesionales.
Una de sus principales ventajas es que es soportada por la mayoría de los proveedores de alojamiento web (webhosting), por lo cual se encuentra instalada en casi todos los servidores web de Internet.
PostgreSQL es uno de los "decanos" de las bases de datos. Su desarrollo se inició en 1986 y desde entonces ha incorporado características avanzadas, inclusive antes que costosos manejadores privativos líderes del mercado.
Entre sus casos de éxito se encuentran bases de datos de tamaños superiores a los 50Gb, lo cual demuestra su confiabilidad y eficiencia.

Lenguajes y herramientas de desarrollo

Rails es un framework para el desarrollo de aplicaciones web basado en el lenguaje Ruby, que reduce notablemente el tiempo de desarrollo, permitiendo lograr aplicaciones robustas y de fácil mantenimiento y extensión.

Esta herramienta se presenta como una verdadera revolución en el desarrollo de aplicaciones web, habiendo obtenido su creador el premio "OpenSource 2005", otorgado por
Google y O'Reilly, y gozando de las mejores críticas a nivel mundial.

PHP es el lenguaje para el desarrollo de aplicaciones web. Entre sus principales ventajas, se encuentran el soporte por parte de casi todos los proveedores de alojamiento web y la gran cantidad de código desarrollado. PHP es para desarrollar sistemas o sitios de pequeña envergadura.
Existen numerosas herramientas libres desarrolladas en PHP, como
Joomla, un potente sistema de gestión de contenidos (CMS) muy flexible y facilmente extensible, que puede adaptarse para cubrir la mayoría de las necesidades en sistemas de publicación de contenidos.

Perl, es un potente lenguaje de scripting, apto no solo para el desarrollo de aplicaciones Web, sino también para herramientas de administración de sistemas, herramientas de conversión de formatos, software de acceso a redes, etc.

Con una larga trayectoria, y una extensa cantidad de módulos y aplicaciones desarrolladas, es una elección ideal para aquellos programas que deben interactuar a un nivel medio/bajo con sistemas Unix o funciones de red.

Otras herramientas

Apache WebServer, es un servidor Web, es para alojar un sitio o sistema Web. Con soporte de todas las tecnologías estándares existentes (desde PHP hasta Java Servlets), se ejecuta en las plataformas de software más difundidas. Apache es apto aún en sistemas con alta demanda de servicio.

es, es una herramienta de autoría para e-learning que ayuda a usuarios sin conocimientos informáticos en la creación de cursos y materiales educativos multimedia llenos de interactividad. Permite crear cursos para su distribución en Web y CD-ROM, ayuda en la creación de todo tipo de materiales educativos multimedia, desde el contenido más sencillo hasta sofisticados cursos, tutoriales y presentaciones, además combina un sólido diseño instruccional, la creación intuitiva de acciones, sin programación y potentes capacidades multimedia, en un entorno de trabajo amigable.

Con EasyProf, tanto si es Usted autor, formador, profesor, instructor o tutor, independientemente de su experiencia en la realización de multimedia, podrá rápidamente diseñar, crear, distribuir y actualizar cursos en línea llenos de interactividad. EasyProf, permite concentrarse en la creación de materiales educativos y no en aprender a programar.

Esta herramienta de Autor vértice, es un software con el que podrá diseñar contenidos multimedia e interactivos compatibles AICC/SCORM (cursos, tutoriales, presentaciones, demos, etc.) sin necesidad de conocimientos de programación o diseño web. Su manejo es sencillo e intuitivo y en poco tiempo obtendrá resultados espectaculares (
Ejemplos de contenidos realizados con la herramienta).

Para concluir, coloco una dirección en donde podemos ver varias ligas de herramientas de autoría, específicamente de herramientas de desarrollo de multimedia:
http://www.teleformacion.edu/herramientas%20de%20autor.htm
Y una dirección más en donde se encuentran entornos y herramientas para desarrollo de software es: http://lml.ls.fi.upm.es/~mcollado/enlaces.html, en la cual existen ligas para herramientas/entornos CASE (y meta-CASE), herramientas de modelado y simulación, editores/IDEs personalizables, herramientas para consulta de código: "navegación", referencias cruzadas, generación de documentación, compiladores/entornos para diversos lenguajes, herramientas de análisis de código, herramientas de gestión de configuración, ambiente UNIX sobre DOS/Windows, etc.
Principales herramientas de desarrollo de software

De las bases para un buen desarrollo de software, considero que es tener una adecuada planeación tanto por parte del usuario como de quien va a elaborar, así como mantener una constante y abierta comunicación entre ambos.

De las claves para lograr el éxito de un proyecto de desarrollo de software, se pueden mencionar:
  • Independencia tecnológica: La utilización de tecnologías estándares y herramientas libres garantiza la independencia de plataformas y asegura la posibilidad de mantenimiento futuro de las aplicaciones.
  • Metodologías de desarrollo ágiles: Las metodologías de desarrollo basadas en una fuerte interacción con el cliente y usuarios, permiten obtener productos adecuados a las necesidades reales, ahorrando esfuerzo y aumentando la satisfacción del usuario final.
  • Uso de la tecnología adecuada: No existe un paradigma de diseño ni un lenguaje de programación que se ajuste a todas las necesidades, por lo cual debe escogerse en cada caso la tecnología que mejor satisfaga los requerimientos. Para esto, obviamente, es necesario un conocimiento amplio de las ciencias de la computación.
  • Utilización de código libre: Cuando es posible, la utilización de programas libres existentes (su modificación, integración o corrección), permite obtener productos de excelente calidad, en menor tiempo y, por consiguiente, con menores costos.
  • Utilización de licencias libres: El producto terminado debe ser entregado al cliente con toda la documentación y el código fuente. De esta manera no se impone ninguna traba a la futura extensión del mismo, asegurando un trato justo, claro y transparente.

El uso de herramientas como son los diagramas de flujo y algoritmos sin duda también contribuyen a ser elementos que deben estar implícitos en el proceso de planeación, dado que éstos permiten definir procedimientos más detallados y tanto usuario como el equipo que elaborará, debieran desarrollarlos para mantener una comunicación aún más vinculada.

Hacer uso de mapas similares a los mentales como lo requiere el método de Van-Mollen-Gándara, va a permitir ir previendo que es alcanzable y que no en el proyecto, además se puede ir determinando situaciones no previstas o consideradas a través de la clasificación sistematizada del proyecto en donde se debe determinar subtemas o aspectos del tema central; tomar un subtema y en su caso, subdividirlo en sub-subtemas; si es necesario, subdividir y así sucesivamente. Asimismo, la organización de actividades, permitirá definir con mayor precisión en dónde y cómo va a participar el usuario.

“Una adecuada planeación, conducirá a una correcta organización, ejecución y control del software desarrollado”.


REFERENCIAS

http://cecte.ilce.edu.mx/docs/sistemas/tina_v4.ppt
http://www.monografias.com/trabajos5/desof/desof.shtml
http://www.smaldone.com.ar/profesional/programacion.shtml
http://www.e-ducativa.com/soluciones_easyprof.htm
http://www.ari.es/aplicaciones.shtml?autor.html

1 comentario:

Julieta Ruiz dijo...

Norma Edith:

Excelente trabajo. "Como pez en el agua", sabes de lo que hablas por conocimientos y experiencia. Gracias por compartir.

Saludos afectuosos,