jueves, junio 21, 2007

Metodologias de desarrollo de software

Hay en El Salvador diferentes blog’s dedicados a la tecnología de información. He observado que muchos de ellos están orientados a software libre, especialmente a la utilización y configuración de herramientas, lo cual es muy bueno, pero creo que también es importante ir difundiendo los diferentes mecanismos y metodologías que deben seguirse para lograr el desarrollo de un sistema.

En la actualidad no se considera recomendable concentrarse solamente en la programación cuando se desea desarrollar un software, aunque resulta muy usual que esa sea la manera en que muchas personas lo hacen. Especialmente, si los programas son grandes y complejos no es recomendable simplemente iniciar la programación.

Lo tradicional es que para desarrollar un sistema se realicen las siguientes actividades: estudio de factibilidad, análisis, diseño, programación e implementación. Cualquiera que halla pasado por la carrera de informática debe saber lo que se conoce como “el ciclo de vida de desarrollo de sistemas”, pero es bueno recordar que hay muchos programadores que no han pasado por aulas universitarias, o que la carrera que han estudiado no ha sido informática. De hecho yo conozco muy buenos programadores que son empíricos o no han estudiado informática en la universidad, sino ingeniería eléctrica, industrial o alguna otra ingeniería.

En los últimos años se han vuelto bastante populares dos metodologías y un conjunto de herramientas. Estas son la “Programación Extrema” o Extreme Programming y la metodología RUP (Rational Unified Process), definida por Rational, la cual es hoy propiedad de IBM. El conjunto de herramientas que se ha vuelto popular es UML (Unified Modelling Language), también desarrollada en gran medida por Rational.

Hoy día es muy importante el uso de herramientas para el análisis y el diseño, conocidas como herramientas CASE (Computer Aided Software Engineering), las cuales en su mayoría soportan el manejo de UML.

Existen diferentes tipos de diagramas que pueden desarrollarse para definir las especificaciones y diseño de un sistema. Los mas importantes son: casos de uso, diagramas de secuencia, diagrama de clases y el diagrama entidad relación. Hay mas diagramas que son considerados bajo UML e inclusive puede que alguien considere que he omitido alguno que considere es importante, pero hasta cierto punto es cuestión de gustos.

En blogs futuros ire tratando algunos de estos temas.

Los Blog's y la educación

Este día chateando con mi hermano, quien es profesor de la Universidad Interamericana de Puerto Rico, nos planteábamos la forma en que los blog’s pueden ser usados como una herramienta para la enseñanza. Los dos pensamos que si puede ser de utilidad y eso es lo que voy a explorar en este texto.

En primer lugar el blog es una herramienta para compartir conocimiento. Un profesor o un alumno puede utilizarlo como un mecanismo para compartir sus opiniones, descubrimientos, puntos de vista con sus demás compañeros. Es importante considerar que al final una clase, sobre todo de nivel universitario, viene siendo una comunidad de aprendizaje, lo que implica que todos pueden aportar, no solamente es el profesor el que sabe todo y del que hay que aprenderlo todo.

En segundo lugar el blog es un mecanismo de establecer vínculos con otras fuentes de información, especialmente en Internet, pero no solamente en Internet, ya que podes poner referencias a libros u otro tipo de material impreso, donde se enfoquen los temas en estudio de manera diferentes o con aportes novedosos.

El blog es además un espacio de reflexión donde, incluso individuos ajenos a la clase, pueden aportar sus opiniones y conocimientos. Esto seria especialmente importante si las personas con conocimientos especializados se encuentran geográficamente dispersos.

Los blog’s pueden convertirse en un punto de encuentro entre alumnos y profesores. Sobre todo porque, al menos en nuestros ambientes, suele haber una distancia entre el profesor y sus alumnos. Puede ser un medio para que los alumnos conozcan mejor a su profesor y viceversa, es decir, el profesor a sus alumnos. Este es un punto muy importante en el proceso de enseñanza /aprendizaje.

Yo les preguntaría a los alumnos: no les gustaría que su profesor tuviese un blog? Y les preguntaría también a los profesores: no les gustaría que sus alumnos tuviesen un blog?