Tema: Introducción a la Ingeniería del Software- Introducción a la Ingeniería del Software. Historia de la Ingeniería del Software. Contexto de la Ingeniería del Software en la Ingeniería. La crisis del software. Perspectivas a futuro para la Ingeniería del Software. Temas fundacionales en IS. Lecciones aprendidas sobre desastres en la industria del software. Diferencias entre Ingeniería de Software y otras disciplinas (Ciencias de la Computación, Ingeniería en Sistemas).
Tema: Modelos de ciclo de vida / metodologías de desarrollo / Conceptos básicos de Gestión de Proyectos
- Modelos de ciclo de vida de desarrollo de software. Nociones de
ciclo de vida de sistemas. Modelos en cascada y sus variaciones y
distintos estilos de métodos iterativos e incrementales. Principales
características de cada uno. Metodologías “plan based” vs. Metodologías
“ágiles”. Pros y contras de cada modelo. Evolución de los modelos de
ciclo de vida a lo largo de la historia de la Ingeniería de Software.
- Metodologías “plan based”: UP. Introducción al Unified Process.
Diferencias entre metodologías y frameworks metodológicos. Las fases
del UP. Experiencias en la aplicación de UP. Principales templates
disponibles y versiones comerciales. Integración de UML en UP.
- Metodologías “ágiles”. Introducción a las metodologías ágiles.
Ubicación en el contexto de todos los métodos disponibles. El “agile
manifesto”. Principios de las metodologías ágiles. Metodologías
orientadas a la gestión de proyectos: Scrum.
- Otras metodologías “ágiles”: Prácticas de Extreme Programming. Test Driven Development.
- Métodos de Estimación, Planificación, Seguimiento y Control de Proyectos de Software.
Tema: Arquitecturas de Sistemas de Software- Introducción al a problemática de arquitecturas. Definición de Arquitectura de Software. Diferencias entre Arquitectura y Diseño. Arquitecturas vs. Estilos arquitectónicos vs. Arquitecturas de referencia. Documentación de Arquitecturas. Viewtypes para arquitecturas: vistas de módulos, de componentes y conectores y de alocación.
- Especificación de atributos de calidad y evaluación de arquitecturas. Quality Attribute Workshops (QAW) y Architecture Tradeoff Analysis Method (ATAM). Especificación de atributos de calidad con Escenarios. Técnicas de verificación estática de arquitecturas.
- Tácticas en el nivel de la arquitectura para lograr los atributos de calidad requeridos. Tácticas para Usabilidad, disponibilidad, eficiencia y flexibilidad.
- Principales estilos arquitectónicos: la taxonomía de Garlan y Shaw para estilos arquitectónicos. Data Flow, Client Server, Call & Return, Repository, Event Driven Systems.
- Introducción a las DSSA (Domain Specific Software Architectures)
Tema: Diseño de Software- El Software como modelo computable de un dominio. Objetivos del uso de modelos en el diseño de software. Representación de conocimiento con Objetos. Definiciones de Objetos revisitadas.
- Algunos tips fundamentales para el diseño.
- Idioms, Patrones, Frameworks y Arquitecturas: relación con el diseño.
- Ejercicios prácticos de diseño.
- TDD revisitado: su uso como técnica de diseño.
Otros temas:- Entrepreneurship Tecnológico
- Temas de Investigación en Ingeniería de Sofware
- Profesionalismo y ética profesional
BibliografíaTal como se menciona en la página de Bienvenida, la materia no tiene
bibliografía obligatoria. Se presentan a continuación algunos libros y
papers que fueron usados para preparar las clases y que en el detalle
de teóricas figuran como lecturas recomendadas u opcionales.
Ante cualquier duda sobre la conveniencia de comprar algunos de los
libros mencionados, sugerimos contactar a los profesores de la materia. [BASS03] | Software Architecture in Practice, Second Edition. Len Bass, Paul Clements , Rick Kazman . Addison-Wesley Professional, 2003.
| [Gamma95] | Design Patterns – Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison Wesley, 1995. | [Shaw96] | Software Architecture: Perspectives on an Emerging Discipline. Mary Shaw , David Garlan. Prentice Hall, 1996 | [Taylor09] | Software Architecture: Foundations, Theory, and Practice. R. N. Taylor, N. Medvidovic, E. M. Dashofy. Wiley, 2009.
| [West04] | Object Thinking. David West. Microsoft Press, 2004.
| [Einstein] | La Física, aventura del Pensamiento, Losada, 2002 | [Norman] | The Design of Everyday Things, Basic Books, 2002 | [Naur] | Computing: A Human Activity (Anthology) - Chapter: Programming as a Theory Building, Addisson-Wesley, 1991 | [Beck] | Test Driven Development By Example - Kent Beck, Addison-Wesley 2002
|
|
|