El concepto de ingeniería de software salió a la luz hacia finales de la década de 1960, cuando se observó que el desarrollo de grandes sistemas de software era un problema mas parecido a los problemas de ingeniería que a los matemáticos o de ciencias naturales. Desde entonces se han desarrollado varias prácticas importantes para el desarrollo de software como la ingeniería del software basada en componentes, la ingeniería de software orientada a objetos, la ingeniería del software del comercio electrónico cliente/servidor, la ingeniería del software asistida por computadora y la ingeniería Web.
A pesar de estos logros, la tarea de desarrollar grandes sistemas de software sigue siendo muy difícil. Todavía es común que los grandes sistemas se entreguen con retraso, cuesten más de lo previsto, sean poco confiables y estén documentados de manera inadecuada. Uno de los grandes problemas de la industria del software es que a pesar de que existen estándares, metodologías, técnicas, lineamientos y demás herramientas, estas no se emplean de manera generalizada, haciendo de esta industria algo menos que una artesanía. Además, los responsables de aplicarlas no tienen suficiente capacitación en ingeniería de software.
La educación en ingeniería de software ha sido tema de estudio de diversos autores y aunque sus enfoques difieren en detalle, el consenso es que la educación en este campo se debe basar en un firme fundamento teórico. Por otra parte, resulta evidente la necesidad de dar mayor importancia a la parte práctica de la ingeniería de software. Los currículum de informática y ciencias de la computación de la mayoría de las Universidades de todo el mundo incorporan la asignatura de ingeniería de software y sugieren que los alumnos desarrollen un proyecto de software completo. En este proceso de desarrollo, los alumnos pasan por todas las etapas que constituyen un proyecto de software hasta llegar a la entrega del producto final.
Tradicionalmente, donde los alumnos mejor asimilan los conceptos presentados en las clases teóricas es en las prácticas de laboratorio o en su caso la elaboración de trabajos prácticos, pero en la ingeniería de software hay que resolver los siguientes problemas; Los estudiantes de la ciencia de la computación carecen en los primeros años de su carrera de madurez o experiencia para percibir que los grandes sistemas de software no son simples versiones a escala de los programas que escriben como ejercicios educativos. Solo hacia el final de su carrera, después de adquirir experiencia en escribir programas y de utilizar sistemas de software prácticos, comprenden que la ingeniería de software no es lo mismo que la programación de computadoras. Además, considerando que el proceso de desarrollo de sistemas de software toma mucho tiempo resulta difícil simular el proceso de una manera realista en el tiempo disponible para los estudiantes de licenciatura. Este hecho, por si solo, ha ocasionado que los cursos se concentren en aspectos particulares del desarrollo de software sin considerar el tema como un todo. Sin embargo, y debido a que mucha de la teoría de la ingeniería de software se aborda durante el estudio de la ciencia de la computación, el enfoque de la enseñanza de la ingeniería de software debe ser práctico demostrando cómo se puede aplicar la teoría y como resulta un instrumento útil en este campo.
A pesar de estos logros, la tarea de desarrollar grandes sistemas de software sigue siendo muy difícil. Todavía es común que los grandes sistemas se entreguen con retraso, cuesten más de lo previsto, sean poco confiables y estén documentados de manera inadecuada. Uno de los grandes problemas de la industria del software es que a pesar de que existen estándares, metodologías, técnicas, lineamientos y demás herramientas, estas no se emplean de manera generalizada, haciendo de esta industria algo menos que una artesanía. Además, los responsables de aplicarlas no tienen suficiente capacitación en ingeniería de software.
La educación en ingeniería de software ha sido tema de estudio de diversos autores y aunque sus enfoques difieren en detalle, el consenso es que la educación en este campo se debe basar en un firme fundamento teórico. Por otra parte, resulta evidente la necesidad de dar mayor importancia a la parte práctica de la ingeniería de software. Los currículum de informática y ciencias de la computación de la mayoría de las Universidades de todo el mundo incorporan la asignatura de ingeniería de software y sugieren que los alumnos desarrollen un proyecto de software completo. En este proceso de desarrollo, los alumnos pasan por todas las etapas que constituyen un proyecto de software hasta llegar a la entrega del producto final.
Tradicionalmente, donde los alumnos mejor asimilan los conceptos presentados en las clases teóricas es en las prácticas de laboratorio o en su caso la elaboración de trabajos prácticos, pero en la ingeniería de software hay que resolver los siguientes problemas; Los estudiantes de la ciencia de la computación carecen en los primeros años de su carrera de madurez o experiencia para percibir que los grandes sistemas de software no son simples versiones a escala de los programas que escriben como ejercicios educativos. Solo hacia el final de su carrera, después de adquirir experiencia en escribir programas y de utilizar sistemas de software prácticos, comprenden que la ingeniería de software no es lo mismo que la programación de computadoras. Además, considerando que el proceso de desarrollo de sistemas de software toma mucho tiempo resulta difícil simular el proceso de una manera realista en el tiempo disponible para los estudiantes de licenciatura. Este hecho, por si solo, ha ocasionado que los cursos se concentren en aspectos particulares del desarrollo de software sin considerar el tema como un todo. Sin embargo, y debido a que mucha de la teoría de la ingeniería de software se aborda durante el estudio de la ciencia de la computación, el enfoque de la enseñanza de la ingeniería de software debe ser práctico demostrando cómo se puede aplicar la teoría y como resulta un instrumento útil en este campo.
No hay comentarios:
Publicar un comentario