
Técnicas
de Diseño
Departamento
de Computación
Materia
de grado, código 75.10.
En
este curso se busca introducir a los alumnos en el concepto de diseño
de software. Para lograrlo se presentan además de técnicas de
diseño, los aspectos claves que determinan la validez de las mismas como
solución a un problema de implementación. Se analiza el contexto
en el que se deben aplicar las técnicas y se fijan criterios de selección.
Se estudia la evolución del software en el tiempo, lo que hace que algunas
de las técnicas que en determinado momento fueron válidas, hoy
ya no lo sean y en cambio otras continue vigentes.
Se introduce el concepto de arquitectura de software, como marco a todas las
actividades del diseño de software de un sistema en desarrollo.
volver
al menú 
volver al menú
- Técnicas
de diseño, su evolución en el tiempo. Contexto del diseño.
Criterios de buen diseño.
- Arquitectura
de software. Significado, evolución del concepto, distintos tipos.
Las distintas
vistas de la arquitectura de software. Relación con el Proceso de Desarrollo.
Diseño de Arquitectura, Diseño Detallado y Diseño de
Código.
- Evolución
de la ingeniería informática y Patrones. Referencia histórica
y motivación. Descripción. Clasificación. Sistema de
Patrones. Aprendizaje y selección. Patrones y metodologías de
desarrollo. Criterios de diseño y Patrones. Requerimientos no funcionales
y Patrones.
- Proceso de Desarrollo
de Software y Patrones. Patrones de arquitectura.
- Frameworks.
Arquitectura. Relación con patrones y clases. Diseño, uso, selección,
documentación, evolución.
- C++ y Java.
Una revisión crítica y comparativa.
- Diseño
de Arquitectura, Patrones de Arquitectura : layer, model view controller.
- Diseño
Detallado, Patrones de Diseño: factory method, abstract factory, prototype,
adapter, decorator, composite, facade, proxy, chain of responsibility, command,
state, iterator, mediator, strategy y visitor.
- Diseño
de Código, Patrones de tipo Idioms: singleton, template
method.
Todos
los temas que se traten serán ejemplificados en C++ y/o Java , según
sea la característica saliente del Patrón en cuestión.
volver al menú

Ubicación en el
plan de estudios
Los requisitos
que deben cumplir los cursantes para inscribirse son : haber cursado alguna
materia de metodología de desarrollo de software, alguna materia introductoria
de algoritmos, alguna materia de lenguajes orientados a objetos y alguna materia
introductoria de bases de datos.
Forma de cursada
Se cursará
en un cuatrimestre con dos clases semanales. Las clases son teórico prácticas.
Las clases se desarrollan los días Lunes y Jueves a las 19 horas.
Forma de aprobación
La evaluación
para la aprobación de la materia consistirá en dos examenes parciales
y uno final.
volver al menú

Artículos
- "Foundations
for the Study of Software Architecture", Dewayne E. Perry, Alexander
L. Wolf; ACM SIGSOFT SOFTWARE ENGINEERING NOTES vol 17 no 4 Oct 1992 Page
40.
Acceso
al documento
- "An Introduction
to Software Architecture", David Garlan and Mary Shaw, Advances in Software
Engineering and Knowledge Engineering, Volume I, edited by V.Ambriola and
G.Tortora, World Scientific Publishing Company, New Jersey, 1993.
Acceso al documento
- "Architectural
BlueprintsThe 4+1 View Model of Software Architecture",
Philippe Kruchten, IEEE Software 12 (6), November 1995, pp. 42-50.
Acceso al documento
- "The Coming-of-Age
of Software Architecture Research", Mary Shaw, Institute for Software
Research, International, Carnegie Mellon University, Pittsburgh PA 15213.
Acceso
al documento
Libros
- Software Architecture,
Perspectives on an emerging discipline, Mary Shaw, David Garlan, Prentice
Hall, 1996.
- Code Complete,
Steve McConnell, Microsoft Press, 1994.
- Design Patterns,
E. Gamma et al., Addison Wesley, 1995.
- Streamlined Object Modelling, Jill Nicola elt al., Prentice Hall, 2002.
volver al menú

volver al menú

Ejercicios
y material para alumnos:
Patrones de Análisis Acceso al documento
Criterios de buen diseño Criterios.pdf
Ejemplo de uso de los Patrones de Análisis Planteo Solución
Ejemplo de trabajo con paquetes Paquetes.pdf
Esquema del Sistema de Patrones SistemaPatrones.zip
Patrones de Arquitectura Layer.zip MVC.zip
Patrones de Arquitectura (diagramas) UML1.zip UML2.zip
Patrones
de Arquitectura (diagramas) Broker.zip PipeFilter.zip
Patrones de Diseño (diagramas) UML3.zip
Patrones de Diseño (código de creacionales) creacionales.zip
Patrones de Diseño (código de organización del trabajo) organizacionTrabajo.zip
Patrones de Diseño (código de control de acceso) ctrolAcceso.zip
Patrones de Diseño (diagramas) UML4.zip
Patrones de Diseño (código de variación de servicio) variacionServicio.zip
Patrones de Diseño (código de extension de servicio) extensionServicio.zip
Patrones de Diseño (diagramas) UML5.zip
Patrones de Diseño (código de adaptación) adapter.zip
Patrones de Diseño (código de estructural) composite.zip
Uso de patrones de diseño UsoPatronesDisenio.pdf
Métricas sobre el código MétricasCódigo.pdf
Métricas sobre paquetes MétricasPaquetes.pdf
Fechas de coloquio:
Encuesta voluntaria y anónima que nos permite mejorar con las opiniones de los alumnos.
Llenar y entregar en el coloquio o firma de libreta. GRACIAS !!! : encuesta
Listado de inscriptos del cuatrimestre 1ro de 2012: lista
blog
Página de la práctica, donde se publican los TPS, resumen de temas vistos en las clases, etc.
Lista de Mail
volver al menú

©FIUBA-(75.10) Técnicas de Diseño