Detalle de Clases Teóricas

En esta página se irá publicando el detalle de las clases teóricas antes de su dictado. Para cada clase se incluyen los temas, lecturas recomendadas y lecturas opcionales.

Clase #:

1 – Presentación de la Materia. Introducción a la ingeniería del software.

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Presentación de la materia, régimen de cursada, TP. Presentación de los docentes.
Introducción a la ingeniería del software. Ubicación en el contexto de la ingeniería. Evolución de la disciplina. Breve historia y sus hitos. Dificultades esenciales del desarrollo de software. Lecciones aprendidas de desastres causados por el software.

Bibliografía recomendada

Fred Brooks. No Silver Bullet. IEEE Computer, Abril 1987.
Mary Shaw. Prospects for an Engineering Discipline of Software. IEEE Software. November 1990.

Bibliografía opcional



Clase #:

1 – Modelos de ciclo de vida

Parte (s)

2

Profesor Responsable

Santiago Ceria

Temas

Modelos de ciclo de vida: waterfall y sus variaciones, espiral, iterativo e incremental, co-evolutivo. Distintas versiones del uso de ciclos de vida iterativos e incrementales en el Unified Process y en Métodos Agiles.

Bibliografía recomendada

Walt Scacchi. Process Models in Software Engineering. Encyclopedia of Software Engineering, 2nd ed, Diciembre 2001.

Bibliografía opcional

Michael Jackson and Daniel Mc. Cracken. Life Cycle Concept Considered Harmful. ACM SIGSOFT Software Engineering Notes. April 1982.
Barry Boehm. A Spiral Model for Software Development and Enhancement. IEEE Software, May 1988 (paper “fundacional”).
Craig Larman and Victor Basili. Iterative and Incremental Development: A Brief History. IEEE Computer. June 2003.
Winston Royce. Managing the development of Large Software Systems. Proceedings of the IEEE Wescon. 
Agosto de 1970.


Clase #:

2- Estimación de Proyectos de Software

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Conceptos sobre estimaciones de software. Estimación de tamaño y esfuerzo. Métodos: Wide Band Delphi, Clark, Function Points, Mark II, Use Case Points.

Bibliografía recomendada

[Wiegers]: Karl Wiegers. Stop Promising Miracles. Software Development Magazine. February 2000. 

Bibliografía opcional

 



Clase #:

3 – Planificación de Proyectos de Software y Administración de Riesgos

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Consideraciones generales sobre la gestión de proyectos. Identificación preliminar de requerimientos. Determinación de los factores clave a tener en cuenta para el desarrollo. Diagramas de flexibilidad. Work Breakdown Structures de producto, de proceso e híbridas. Definición de tareas y dependencias, camino crítico. Heurísticas para planificación. Identificación, Análisis y Planificación de Riesgos.

Bibliografía recomendada

CMMI Product Team. CMMI for Development, version 1.2. Process Area de Project Planning.Technical Report CMU/SEI-2006-TR-008.

Bibliografía opcional

[Carr93]: Marvin Carr et al. Taxonomy Based Risk Identification. CMU / SEI Technical Report TR6, 1993. Software Engineering Institute, Carnegie Mellon University.
[Williams99]: Ray Williams et al. SRE Method Description, version 2.0. CMU / SEI Technical Report TR29, 1999. 
Software Engineering Institute, Carnegie Mellon University.



Clase #:

4 –Proceso Unificado

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Introducción al Proceso Unificado. Antecedentes: UML. Concepto de Proceso. Descripción general de UP y sus fases. Artefactos y Disciplinas.

Bibliografía recomendada

Davor Gornik. IBM Rational Unified Process: Best Practices for Software Development Teams. IBM White Paper. Agosto 2004. ftp://ftp.software.ibm.com/software/ rational/web/whitepapers/2003/rup_bestpractices.pdf

Bibliografía opcional

Eclipse Project Framework (http://www.eclipse.org/epf/).




Clase #:

5 – Especificación de Atributos de Calidad – QAW

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Atributos de calidad para un producto de software que tienen impacto en su arquitectura: disponibilidad, facilidad de cambios, performance, seguridad, facilidad de testing, usabilidad. Cómo   identificar esos atributos: Quality Attribute Workshops. Cómo especificarlos: el Método de Especificación con Escenarios.

Bibliografía recomendada

[Bass2003], capítulo 4

Bibliografía opcional

Quality Attribute Workshops (QAWs), Third Edition. Mario R. Barbacci et al. TECHNICAL REPORT CMU/SEI-2003-TR-016, August 2003. Software Engineering Institute.




Clase #:

6 – Introducción a las Arquitecturas de Software

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Arquitecturas en el contexto de la Ingeniería del Software. Definiciones de Arquitecturas, estilos arquitectónicos y arquitecturas de referencia. Conceptos de Vistas y Estilos arquitectónicos.  Principales estilos arquitectónicos.

Bibliografía recomendada

[Bass2003], capítulo 2

Bibliografía opcional

[Shaw96], capítulos 1 y 2



Clase #:

7 – Documentación de arquitecturas – Viewtypes

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Principios básicos para documentar una arquitectura. Noción de Viewtypes. Detalle sobre Viewtypes de Módulos, de Componentes y Conectores y de Alocación. Uso de UML para documentar arquitecturas.

Bibliografía recomendada

[Bass2003], capítulo 9

Bibliografía opcional

[Clements2005]: Paul Clements, Felix Bachmann y otros. Documenting Software Architectures, views and beyond. Capítulos 1 al 7.


Clase #:

8 – Arquitecturas – Tácticas de Arquitecturas

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Escenarios generales para Atributos de Calidad. Tácticas de Arquitectura para atributos de calidad. Tácticas para: Performance, Disponibilidad, Modificabilidad, Usabilidad, Seguridad y Facilidad de testeo.

Bibliografía recomendada

Len Bass, Paul Clements, Rick Kazman. Software Architecture in Practice, Second EditionAddison-Wesley Professional, 2003. Capítulos 4 y 5.

Bibliografía opcional

Nick Rozanski. Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives. Addison Wesley, 2005.




Clase #:

9 – Repaso de temas de arquitecturas. El Proceso de derivar una arquitectura. Más tácticas para Disponibilidad. Introducción a la Tolerancia a Fallas y los Sistemas Autónomos.

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Repaso de temas de Arquitecturas. Qué significa ser un buen arquitecto? El Proceso del SEI para derivar arquitecturas (ADD). Introducción a la tolerancia a fallas. Definición de SPoF. Introducción al Self Healing. Sistemas Closed Loop y Open Loop. Rainbow.

Bibliografía recomendada

Software, Heal Thyself. Presentación de David Garlan en UML 2002.

Bibliografía opcional




Clase #:

10 – Arquitecturas – Conectores de Software

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

Definiciones sobre conectores. Roles de conectores: comunicación, coordinación, conversión y facilitación. Tipos de conectores. Clasificación de dimensiones de conectores. Ejemplos de conectores compuestos.

Bibliografía recomendada

Richard Taylor, Nenad Medvidovic and Eric Dashofy. Software Architecture, Foundations, Theory and Practice. Wiley, 2009.

Bibliografía opcional





Clase #:

11 – Seguimiento y Control de Proyectos

Parte (s)

1

Profesor Responsable        

Santiago Ceria

Temas

Características de los cronogramas efectivos. Recomendaciones prácticas para el seguimiento de proyectos. Uso de técnicas de valor acumulado para seguimiento. Seguimient ágil: uso de burndowns. Qué hacer y qué no hacer ante un atraso en un proyecto. 

Bibliografía recomendada

CMMI Product Team. CMMI for Development, version 1.2. Process Area de Project Monitoring and Control. Technical Report CMU/SEI-2006-TR-008.

Bibliografía opcional

         




Clase #:

12 – Introducción a los Métodos Agiles y Scrum

Parte (s)

1

Profesor Responsable

Santiago Ceria

Temas

El Agile Manifesto. Principios de los métodos ágiles. Scrum en el contexto de los métodos ágiles. proceso de Scrum.  Conceptos de Scrum: roles, tipos de reuniones, productos. Especificación de requerimientos con Epics, User Stories y Acceptance cases. Cuándo y cuándo no usar Scrum.

Bibliografía recomendada

Ver http://www.controlchaos.com y último slide de la clase para más bibliografía.

Bibliografía opcional

 Agile Software Development with Scrum. Ken Schwaber.




Clase #:

13 - Prácticas de Extreme Programming

Parte (s)

1

Profesor Responsable        

Santiago Ceria

Temas

Historia y objetivos de XP. Valores y principios. Las 12 prácticas de XP (Planning Game, TDD, Pair programming, Refactoring, Integración continua, etc.). Dónde sirve y dónde no sirve XP.

Bibliografía recomendada

Ver: www.extremeprogramming.org

Bibliografía opcional

         



Clase #:

19 - Evaluación de arquitecturas con ATAM y Walkthroughs

Parte (s)

1

Profesor Responsable        

Santiago Ceria

Temas

Objetivos y beneficios del análisis de arquitecturas. El Architecture Tradeoff Analysis Method (ATAM) del SEI. Uso de Utility Trees. Walthroughs de Arquitecturas.

Bibliografía recomendada

[Bass03], Capítulo ATAM.

Bibliografía opcional

         



Clase #:

20 - Introducción al profesionalismo y la ética profesional 

Parte (s)

1

Profesor Responsable        

Santiago Ceria

Temas

Profesionalismo y ética profesional. Definiciones. Responsabilidades de un profesional. Códigos de ética del a ACM / IEEE.

Bibliografía recomendada

Ver: http://csciwww.etsu.edu/gotterbarn/

Bibliografía opcional