Bienvenidos



Esta página corresponde al Segundo Cuatrimestre de 2009. Para ver la página del Primer Cuatrimestre, por favor consultar: http://www-2.dc.uba.ar/materias/isoft2/2009_01/Default.htm.

La Ingeniería del Software trata con la problemática del desarrollo de software a gran escala, y esto abarca tanto temas técnicos como de gestión. Esta materia funcionará de manera integrada con Ingeniería de Software I para brindarles un panorama de los procesos y técnicas que pueden ser usadas en este tipo de proyectos. La definición formal de Ingeniería de Software según la IEEE es: La aplicación de un enfoque sistemático, cuantificable y disciplinado al desarrollo, operación y mantenimiento de Software. En la materia trataremos de entender a la Ingeniería de Software en el contexto de su evolución histórica y de aprender conceptos que sean válidos por varios años, evitando caer en enseñar los "métodos de moda".

Durante el Segundo Cuatrimestre vamos a estar haciendo nuevos cambios a la materia, profundizando un proceso de cambios que se inició en el Segundo Cuatrimestre de 2007. En este cuatrimestre vamos a incluir más temas relacionados con arquitecturas y diseño de software y vamos a dejar de lado algunos temas de gestión de proyectos y procesos que, si bien son importantes para la formación de cualquier profesional de la computación, creemos que no son el foco de la carrera y por lo tanto tampoco deben ser el foco de la materia. En otras palabras, nos vamos a estar concentrando en los aspectos más "técnicos" de la construcción de grandes sistemas de software. Dado que el software se construye en el marco de proyectos, vamos a mantener algunas clases sobre cómo se organiza, estima, planifica y controla un proyecto de desarrollo. El resto de los temas de gestión que se daban en la materia probablemente pasen a una materia optativa del área. Para ayudar en este objetivo se va a estar sumando a la Materia durante este cuatrimestre Hernán Wilkinson, quien es hace muchos años docente de las materias Programación Orientada a Objetos y Diseño Avanzado con Objetos.



Objetivos de la Materia

El objetivo principal es introducir a los alumnos en varios aspectos de la problemática de la construcción de grandes y complejos sistemas de software, sobre todo lo referido a arquitecturas y diseño.

Otros objetivos puntuales son:

  • Entender y conocer a la Ingeniería de Software en el contexto de su evolución histórica. Qué hitos tuvo, quiénes fueron sus precursores y cuáles fueron las "ideas fundacionales" de la disciplina.
  • Informar a los alumnos sobre los temas en Ingeniería de Software que se están investigando en el Departamento.
  • Presentar algunos temas puntuales sobre cómo se definen y organizan proyectos de desarrollo de software.
  • Fomentar el espíritu emprendedor entre los alumnos que elijan trabajar en la Industria.



Modalidad de Dictado

La modalidad incluye:

  • Dictado de dos clases teóricas por semana, de aproximadamente 90 minutos cada una.
  • Lectura por parte de los alumnos de papers “fundacionales” de la Ingeniería del Software. Los alumnos deberán hacer, en grupos, presentaciones sobre estos papers (20 minutos, en dos días). La sección “Lectura de Papers” tiene el detalle sobre este tema.
  • Ejecución de un trabajo práctico que incluirá un pequeño desarrollo de software que sirva para entender los problemas de la construcción de grandes sistemas y para producir entregables representativos de este tipo de proyectos. El foco estará en los temas de arquitecturas y diseño y en la comparación crítica de dos métodos de desarrollo.
  • Clases prácticas, que tendrán distintas modalidades según el caso:
    • Resolución de ejercicios en clase. Para aquellos temas que no tengan una guía de TPs, entregaremos enunciados de ejercicios en la clase para que los alumnos resuelvan. Luego discutiremos la resolución.
    • Resolución de ejercicios de la guía de TPs. Para los temas de Arquitecturas y Diseño, tendremos clases para resolver y discutir los ejercicios.
    • Clases de explicación y/o consulta sobre el trabajo práctico.
  • Clases de Profesores Invitados: Durante el Cuatrimestre tendremos al menos una clase con profesor invitado. Emiliano Kargieman, Socio Fundador de Core Security Technologies, nos contará su experiencia de emprendedor.


Lecturas

Para cada clase se van a indicar dos tipos de lecturas: las recomendadas y las opcionales. Las recomendadas son aquellas que creemos que mejor representan el contenido de la clase. Las opcionales profundizan el tema y son material de referencia. Las únicas lecturas obligatorias de la materia son los “papers fundacionales”. La asistencia a clases con el soporte de los slides usados (que se envían a la lista de alumnos antes de cada clase) deberían ser suficientes para contar con material de estudio para los exámenes.



Régimen de Cursada

La materia tendrá dos parciales con sus respectivos recuperatorios. Al final de la materia se tomará un coloquio integrador, con preguntas sobre los “papers fundacionales” y sobre los temas vistos en la materia.

Las preguntas de los parciales serán sobre el contenido de las clases teóricas y prácticas dictadas. Si bien cada clase tendrá una lista de papers recomendados y opcionales, no es obligatorio  leerlos para los exámenes: sólo lo dictado en clase es lo que se toma. Los llamados “papers fundacionales” sólo se toman en el coloquio integrador.

En principio las preguntas teóricas de los parciales serán del tipo “Verdadero o Falso” con justificación. El detalle sobre la cantidad de preguntas que se deberán responder correctamente para aprobar el parcial será definido oportunamente. En los últimos años hemos tomado alrededor de 6 preguntas teóricas por parcial, necesitando la mitad de los puntos para aprobar.

El otro aspecto que será evaluado es el Trabajo Práctico, que tendrá dos entregas. Además, se evaluará la presentación que haga el grupo del “paper fundacional”.