Ingeniería de Software II
Primer Cuatrimestre de 2010
¿Quiénes somos?
Profesores de teóricas: Santiago Ceria, Hernán Wilkinson
JTP: Diego Garbervetsky
Ayudantes: Javier Martínez Viademonte, Gustavo
¿Por qué estamos acá?
Queremos prepararlos para participar de grandes proyectos de desarrollo de software en la industria
Esto abarca tanto temas técnicos como de gestión
Queremos que aquellos que elijan la industria sean “agentes de cambio”, ayudando (directa o
indirectamente) al crecimiento de la Industria del Software en Argentina
Queremos despertar su interés por temas de
investigación relacionados con la ingeniería del software
¿Por qué estamos acá? (cont.)
Queremos que entiendan a la ingeniería del software en el contexto de su evolución histórica
Queremos que conozcan a algunas personas importantes:
Consideraciones generales
La Materia tuvo varios cambios desde el 2do
Cuatrimestre de 2007. Principalmente se incluyó el tema de Arquitecturas de Software (diseño “in the large”),
eliminando varios temas “de gestión”
El cuatrimestre pasado incluimos más temas de diseño “in the small”, y eliminamos más temas “de gestión”. Diseño fue dictado por Hernán Wilkinson.
Este cambio tiene varios motivos:
“Llenar un espacio” que creemos que no está del todo
bien cubierto en la carrera
Alinear la materia con el foco de la carrera y el perfil
de los alumnos
Cambios del Cuatrimestre Pasado que se Mantienen
La Materia mantiene algunas pocas clases teóricas relacionadas con gestión de proyectos
La práctica sobre esos temas se hará en clase y sobre el enunciado del Trabajo Práctico del cuatrimestre anterior
Más consideraciones - Administración
Es importante la participación en clase
Es importante la puntualidad
Comunicación: ing2-alu, ing2-doc en dc.uba.ar
¿Cómo está organizada la materia?
Clases:
Generalmente divididas en dos módulos: teórica
primero, descanso y luego práctica o consultas del TP. 1,5 horas aproximadamente cada uno (18:00 a 19:30, 20:00 a 21:30 / 22:00)
Trabajo práctico:
Ejercicio de proyecto de la industria
Lectura y presentación sobre papers “fundacionales”
Entender el contexto Debatir ideas
Poner las cosas en perspectiva
Detalle de papers fundacionales
1: A debate on Teaching Computer Science. Edsger Dijkstra, David Parnas y otros. Communications of the ACM. Diciembre de 1989 (sólo hasta la página 1406).
2: Alan Kay: The Computer Revolution Hasn't Happened Yet. Keynote Speech en OOPSLA 1997.
http://video.google.com/videoplay?docid=-2950949730059754521. (En este caso se trata de un video y no de un paper).
3: Fred Brooks. No Silver Bullet. Essence and Accidents in Software Engineering. IEEE Computer, Abril de 1987.
Detalle del Trabajo Práctico
Replica desarrollo a gran escala
Pero sólo haremos una pequeña parte
Dos iteraciones iniciales
Una “a la UP” y otra “a la Scrum”
Entregables técnicos y de gestión (pocos)
En la segunda iteración se hacen reuniones en las clases
Evaluación
2 Parciales teórico prácticos. La parte práctica del primer parcial es sobre arquitecturas y la del segundo sobre
diseño
Trabajo Práctico
Las únicas lecturas obligatorias son los papers
fundacionales. Sólo se toma lo dictado y dicho en clase
A partir de este cuatrimestre la materia se puede promocionar. Para eso es necesario:
Tener más de 7 en todos los parciales y TP Promedio de notas de al menos 8
Contestar preguntas sobre papers fundacionales en el
La página de la materia
La página de la materia tiene:
Bibliografía
El detalle de cada clase teórica, incluyendo lecturas
recomendadas y opcionales
Los slides de cada clase que se suben antes de la
clase
Una página de anuncios sobre cambios en la página y
otros eventos
Programa
Introducción a la Ingeniería de Software
Modelos de Ciclo de Vida / Metodologías de desarrollo de software
Conceptos básicos de gestión de proyectos
Arquitecturas de Sistemas de Software (atributos de calidad, QAW, escenarios, tácticas, estilos
arquitectónicos, viewtypes, ATAM)
Diseño “in the small” (con Objetos)
Cronograma
Clase Día Fecha Parte 1 (Teórica) Resp Parte 2 (Práctica) TP Resp
1Lunes 22-mar
Introducción a la Materia y a la Ingeniería de Software SC
Modelos de Ciclo de Vida
(Teórica). SC
2Jueves 25-marEstimación de Proyectos SC
Ejercicio de Estimación de Proyectos
Presentacion
TP GS-MB - DG
3Lunes 29-marPlanificación de Proyectos SC
Ejercicio de Planificación de
Proyectos GS-MB-DG - Jueves 01-abrFeriado
4Lunes 05-abr
Introducción al Proceso
Unificado SC
Ejercicio de Definición de
Iteraciones GS-MB-DG
5Jueves 08-abr
Especificación de Atirbutos de
Calidad con Escenarios - QAW SC QAW del TP - Role Play Todos
6Lunes 12-abr
Introducción a las
Arquitecturas de Software SC
Práctica - Especificación con
Escenarios JMV-FA-MB
7Jueves 15-abrEstilos Arquitectónicos SC
Práctica - Especificación con Escenarios
Pre-Entrega
TP JMV-FA-MB
8Lunes 19-abr
Descripción de Arquitecturas
-Viewtypes SC Práctica - Arquitecturas JMV-FA-MB
9Jueves 22-abr
Introducción a las Tácticas
para Atributos de Calidad SC Práctica - Arquitecturas JMV-FA-MB
10Lunes 26-abr
Tácticas para Atributos de
Calidad - Parte 2 SC Práctica - Arquitecturas NR-FT 11Jueves 29-abrConectores de Software SC Práctica - Arquitecturas NR-FT
12Lunes 03-may
Seguimiento y Control de
Proyectos SC Consultas TP SC
13Jueves 06-may
Introducción a Scrum y los
Cronograma (cont.)
16Lunes 17-may
Scrum y métodos ágiles
-Parte II SC Presentación 2da parte TP
Presentación
2da parte TP JMV-GS
17Jueves 20-may
Ejercitación - The Scrum
Game PI PI
18Lunes 24-may
Prácticas de Extreme
Programming SC SC
19Jueves 27-may
Introducción al Diseño con
Objetos HW Práctica - DOO HW 20Lunes 31-mayDiseño con Objetos HW Práctica - DOO NR-FT-MC 21Jueves 03-junDiseño con Objetos HW Práctica - DOO NR-FT-MC 22Lunes 07-junDiseño con Objetos HW Práctica - DOO NR-FT-ND 23Jueves 10-junDiseño con Objetos HW Práctica - DOO NR-FT-ND 24Lunes 14-junTDD HW Práctica - DOO HW
25Jueves 17-jun
Análisis de Arquitecturas con
ATAM SC Ejercicio de ATAM NR-GS-ND - Lunes 21-junFeriado
26Jueves 24-junPresentacion de papers
27Lunes 28-jun
Research Day en
Arquitecturas JPG - DG Consultas TP Todos
28Jueves 01-jul
Profesionalismo y ética
profesional SC Entrega it 2 TP 29Lunes 05-jul Consultas para 2do Parcial Todos
30Jueves 08-jul 2do Parcial Todos