
EN ESTA ENTREGA
| El siguiente
paso...
Y ahora que hacemos Por Rafael J. Barros El paso a continuaci'on es buscar un área de interés de las cuatro propuestas en la propuesta inicial, y seleccionar los temas de interés o en los culaes se sienten que pueden aportar más, para hacer una lista de perfiles de Ingeniería de Software para publicación en el boletín de Noviembre. Necesitamos colaboración para ofrecer más información en la página Web y una mayor participación en la lista de correo RISCO. no hay necesidad de hacer trabajo extra, nos interesa saber los temas de interés en Ingeniería de Software, qué se está dictando, las tendencias y cómo es la visión. Sería interesante ver discusiones en la lista... generalmente los puntos de vista diferentes enriquecen el conocimiento. me gustaría adicionar una sección de puntos de vista sobre un tema diferente cada mes. la propuesta para el mes de Noviembre es el Tema de Procesos de Software. Las contribuciones las pueden mandar a rbarros@sanmartin.edu.co |
| 1.1.3 Seminarios
de capacitación
Áreas básicas de ciencias de la computación:
1.1.4 Seminarios de actualización
Tecnologías orientadas a objetos: 1.2 Elaboración de material de apoyo para la enseñanza Contar con buen material para apoyar la docencia es fundamental para garantizar su calidad. En el caso de las áreas relacionadas con la Ingeniería de Software este material de apoyo debe permitir que el estudiante por una parte, desarrolle su capacidad y fomente su creatividad para construir software y, por otra, lo haga siguiendo las pautas metodológicas y los estándares de calidad internacionales requeridos. 1.2.1 Enseñanza de la programación El proyecto MULTIVERSIDAD propone la construcción de múltiples bibliotecas de software que funcionen en ambientes de programación multimedia (musicales, gráficos, procesadores de imagen y color) que hagan pleno uso de los recursos con que cuentan los computadoras hoy en día para atraer la atención y el interés del estudiante y le permitan reutilizar los componentes de dichas bibliotecas como cajas negras de una manera progresiva y sistemática. |
Este enfoque permitir'a la
enseñanza silmultánea de diferentes áreas del saber
(música, principios estéticos, artes gráficas, temas
en las diferentes ciencias exactas y naturales) y de los principios básicos
y fundamentales de la ciencia de computación y en general de la
informática.
Existen muchas artes y disciplinas con temas de alto contenido metódico y algorítmico que se prestarían para el doble propósito de enseñar los principios de la programación y construcción de software además de la introducción y culturización del estudiante en diferentes áreas del arte y el conocimiento. Se trata de que con este enfoque, los estudiantes comiencen a construir aplicaciones significativas que los inciten a dar sus primeros pasos en acitividades creativas y de investigación en múltiples artes y disciplinas. Su tarea en un principio consistirá en combinar los componentes de las bibliotecas y ensamblar diferentes sistemas con ellos. A medida que los estudiantes progresen, se dará un proceso de apertura paulaina de las "cajas negras".Los estudiantes se sentirán inclinados e interesados en comenzar a mirar dentro de las componentes mismas. Por múltiples razones, esta estrategia de enseñanza dará lugar a una introducción a los retos y satisfacciones del desarrollo de software definitivamente superior a los ejemplos de juguete que tradicionalmente han constituido parte integral de los cursos de introducción a la construcción de software. 1.2.2 Taller de Software El objetivo del taller de software es que los estudiantes construyan software de calidad siguiendo procesos definidos, medibles, evaluables y controlados. Para que esto sea posible, se requiere contar con material de apoyo que de soporte a las distintas actividades. Si se toma como marco de referencia las áreas claves de proceso definidas en el nivel 2 del CMM, el material de apoyo debe ayudar a ponerlas en práctica durante la construcción del software. Estas áreas son:
|
| 1.2.3. - Laboratorio
de estructuras de datos
El objetivo del Laboratorio de Estructuras de Datos (LED) es desarrollar un conjunto de herramientas computacionales de apoyo a la enseñanza de la programación en el tema de algorítmica de estructuras de datos en memoria principal. Estas herramientas soportan el manejo de vectores, matrices, listas encadenadas, pilas, colas, árboles binarios, árboles ordenados, árboles balanceados, árboles n-arios, grafos, tablas de hashing, etc. Dicho laboratorio debe permitir animar los algoritmos de manejo de estructuras de datos, permitiendo al estudiante su visualización y comprensión. Este debe incluir: editor de texto, compilador del lenguaje, depurador gráfico, intérprete gráfico del código, generador gráfico de datos de prueba, tutoriales, herramientas de medición de tiempo, herramientas de validación de estilo, formateadores de texto, etc. Se espera que el estudiante pueda desarrollar cualquier rutina (iterativa o recursiva) de manejo de estructuras de datos y evaluar su funcionamiento de manera gráfica, para cualquiera de las estructuras de datos planteadas anteriormente. 1.2.4. - Tipos abstractos de datos El estudio de tipos abstractos de datos (TADs) es fundamental en el aprendizaje de estructuras de datos y su utilización desde un punto de vista formal, con lo que se tiene la posibilidad de construir software correcto de manera sistemática. Los TADs pueden considerarse como módulos de programación independientes, consistentes en estructuras de datos provistas de operaciones que las manipulan. Su importancia es reconocida si se habla de programación modular o, más modernamente, de programación orientada por objetos. El objetivo de este proyecto es desarrollar ManTa (Manejador de Tipos abstractos de datos) un ambiente de diseño que debe permitir la definición formal de un TAD, la verificación de propiedades semánticas interesantes de la estructura de datos subyacente y la implementación (automática y/o guiada por el usuario) del diseño en un lenguaje de programación. De esta forma se tendrá la posibilidad de generar código fuente de manera automática, manteniendo la semántica y corrección de las estructuras de datos cuyo diseño haya sido previamente verificado en el ambiente. 1.2.5. - Taller de patrones de arquitectura y diseño La Biblioteca Real de Software: Haciendo realidad la utopía de la Reutilización de programas. |
La reutilización es
una condición indispensable para cualquier concepto de progreso
en software. De ninguna manera una condición suficiente pero sí,
una sin la cual las otras: mejores métodos, mejores herramientas
de desarrollo, hardware más rápido, enfoques más formales,
técnicas superiores de administración no pueden satisfacer
sus promesas. Mientras los constructores de software continúen consumiendo
su tiempo en sinfines de variantes individuales de los mismos patrones
básicos de programación el estado del software mundial no
cambiará mucho, sin importar la cantidad de dinero que se invierta
en grandiosas iniciativas estratégicas para la tecnología
de la información.
Aunque en la literatura especializada en software, se acostumbra rendirle homenaje a la reutilización, muy pocas referencias mencionan bibliotecas bien conocidas de software y muchas menos proporcionan orientación sobre para una adecuada reutilización. La Biblioteca Real de Software es un proyecto que se propone una reconstrucción intelectual y sistemática de las estructuras fundamentales de software inspirándose en el ejemplo de los naturalistas del siglo dieciocho Lineo y Buffon, quienes emprendieron esta clasificación para plantas y animales haciendo posible la definición como ciencia de la Zoología y la Botánica. Una empresa de esta naturaleza en nuestro país resulta fundamental para el despegue y consolidación de comunidades productoras de software de gran escala. Entre las temáticas más básicas que deben orientar la construcción de bibliotecas de software se encuentran: La biblioteca de estructuras de Datos: La más importante y que abarcaría algoritmos y estructuras de datos fundamentales organizados con una cuidadosa estructura taxonómica como la de Lineo. La biblioteca de Iteradores: proporcionaría facilidades para realizar recorridos por ciertas estructuras de datos (las compuestas de partes) La biblioteca de Visión: Permitiría construir sistemas interactivos avanzados apoyándose en interfaces gráficas de usuario. La biblioteca de análisis sintáctico. La biblioteca de Persistencia: mecanismos de persistencia de propósito general. |
| 1.2.6. - Métricas
y estimación
Material de apoyo a la labor de construir bases históricas de experiencias en desarrollo de software así como apoyar la utilización de métodos de estimación de esfuerzo en el desarrollo de proyectos. Para que estos métodos de estimación sean aplicables y válidos se requiere contar con datos históricos reales de esfuerzo invertido en construcción de software. 2 - Investigación y Desarrollo La dimensión de investigación y desarrollo es muy importante para cumplir la misión de RISCO de mejorar la práctica de la ingeniería de software para apoyar la industria nacional. El objetivo principal en esta dimensión es el acercamiento de la Universidad y las empresas para lograr una sinergia que nos permita estar mas al tanto de los problemas industriales y propiciar una transferencia de tecnología adecuada y oportuna. Se han identificado varias líneas de investigación cuyos proyectos tienen una aplicabilidad inmediata en la industria. Estas líneas, que consideramos estratégicas para el desarrollo de la industria son: Calidad en el proceso de desarrollo de Software, Comprensión y reestructuración de programas y reutilización de componentes de software. 2.1. - Mejoramiento de los procesos de desarrollo de software Estudiar y definir la manera de implementar en las empresas de Colombia los estándares y normas de calidad de procesos de construcción de software. En particular, se quiere poder definir planes de mejoramiento de procesos en empresas pequeñas de construcción de software. 2.2. - Ambientes de desarrollo de software guiados por los procesos Uno de los objetivos de definir modelos de procesos de software es que estos puedan ser usados para guiar las actividades de los usuarios. El propósito de este proyecto es pretende desarrollar ambientes cooperativos que faciliten la construcción de software. Aspectos como la integración y la inter-operabilidad entre herramientas son parte de la problemática de este proyecto. |
2.3. - Reestructuración
de programas
La evolución tecnológica es un reto para la industria de software. Una tecnología que se acepta como buena para el desarrollo de nuevos sistemas, no lo es tanto si no puede ser aplicada a sistemas existentes. A través de esta línea se podrá hablar de modernización y renovación. Una aplicación de este proyecto es estudiar la problemática generada en el software existente con el cambio de siglo (el problema "del año 2000") y espera crear alianzas con empresas para aportar soluciones en el medio colombiano. 2.4. - Herramientas de comprensión de programas El objetivo de este proyecto es mejorar la labor de mantenimiento de Software. Según diversos estudios, el 80% de la tarea de mantenimiento (corrección, adaptación, extensión de programas) se gasta en comprender los programas (código mal estructurado, sin documentación, en diversos lenguajes, sin estándares, etc.). Este proyecto pretende crear herramientas visuales y de interrogación que faciliten el entendimiento de los programas. 2.5. - Biblioteca de Componentes de Software Reutilizar en lugar de reinventar cada vez es una preocupación mayor. Se pretende proveer soluciones a problemas comunes reutilizando esquemas de arquitectura de software, de diseño y de programas. 3 - Divulgación RISCO debe ser un medio de divulgación de información referente a procesos, avances y tecnologías desarrolladas dentro de la comunidad de ingeniería de software en el mundo. 3.1. - Revista RISCO Editar una revista que reúna resultados de proyectos, casos de estudio de los integrantes de la Red o personas externas invitadas para tal fin. Esta publicación deberá contar con un comité editorial cuya responsabilidad será velar por la pertinencia y calidad de los artículos publicados. |
![]()
P: ¿Cómo hago para participar en RISCO? R: RISCO es un grupo de trabajo cooperativo en el
cual En RISCO no hay presión por proyectos, simplemente hay ganas de compartir, aprender y guiar para mejorar la calidad de la práctica y enseñanza de la Ingeniería de Software en Colombia en búsqueda de una industria de software nacional con proyección internacional. P: ¿Qué tipo de participación es útil? En general cualquier tipo de aporte para RISCO es aceptado de buena voluntad. En este momento estamos buscando personas de empuje que se encarguen de impulsar cada uno de los cuatro frentes de trabajo propuestos en los objetivos: Divulgación, Apoyo Académico, Investigación y Desarrollo y Representatividad. P: ¿Cómo puedo aportar a RISCO? RISCO cuenta en este momento con tres medios de divulgación: Una lista de correo llamada RISCO, la página Web y este boletín mensual. Colaboración a la página Web con Rubby Casallas en la Universidad de los Andes. |
3.2 - Sitio
Web
Mantener actualizado un sitio Web sobre RISCO con la información acerca de su misión, visión, objetivos, estrategias, actividades, miembros y con enlaces a otras redes, universidades, centros de investigación, contactos externos, eventos, etc. Las contribuciones las pueden mandar a rcasalla@uniandes.edu.co E-mail: rcasalla@uniandes.edu.co Dirección: http://agamenon.uniandes.edu.co/rcasalla Colaboración al boletín con Rafael J. Barros en la Fundación Universitaria San Martín. E-mail: rbarros@sanmartin.edu.co Para subscribirse a RISCO mandar un e-mail a: listserv@uniandes.edu.co Con el mensaje: subscribe RISCO mi_cuenta@servidor.com Para retirarse de la lista: unsubscribe RISCO mi_cuenta@servidor.com Para enviar un mensaje a la lista, enviarlo a la dirección: Risco@uniandes.edu.co Sugerencias, comentarios y contribuciones al boletín con Ing. Rafael J. Barros, rbarros@sanmartin.edu.co o rbarros@uniandes.edu.co Gracias, y nos vemos en el próximo número |