Fundamentación y Objetivos
Los temas presentados en esta asignatura continúan la formación iniciada en la asignatura Análisis y Diseño de Sistemas. Los tópicos a profundizar ahora se centran en los aspectos de diseño y evolución del software. Ambas asignaturas se complementan tanto en contenidos teóricos como en ejercitación: el trabajo de campo iniciado deberá continuarse en nuevas etapas a fin de completar la especificación requerida. Las nuevas tecnologías requieren nuevos tipos de arquitecturas - Hipertextos, Cliente-Servidor, Patrones de Objetos, etc. - que deben ser comprendidas, analizadas y evaluadas por cualquier profesional en Software. La asignatura tendrá por objetivo el comprender y aplicar - en lo posible - los conceptos y técnicas del diseño de software, en los distintos enfoques que hoy son relevantes.
Contenidos
Unidad I: Diseño de Software. Actividad y Objetivos. Diseño para el cambio. Familia de Programas. Técnicas de modularización. Categorías de módulos. Diseño top-down vs diseño bottom-up. Arquitecturas de software. Estilos: pipes & filters, orientación a objetos, basado en eventos, sistemas por niveles, repositorios, intérpretes, sistemas de control. Diseño estructurado: conceptos básicos. Acoplamiento. Cohesión. Morfología y heurísticas. Análisis de Transformación y de Transacción.Bibliografía recomendada:
Ghezzi - Fundamentals of Software Engineering - Prentice-Hall, 1991 - Capítulo 4 (4.1 - 4.2)
Shaw & Garlan - Software Architecture - Prentice-Hall, 1996 - Capítulos 1 y 2
Yourdon & Constantine - Structured Design: Fundamentals of a Discipline of Computer Program and System Design - Prentice-Hall, 1979
Otras referencias:
Association for Software Design
Software Architectures Web Sites
Software Engineering Institute - Architectures
Unidad II: Implementación de sistemas modulares: enfoques básicos. Stubs y Drivers. Verificación de Software: objetivos y requerimientos. Testing: objetivos y bases teóricas. Testing de unidad: testing estructural y funcional. Cubrimientos para testing estructural. Análisis de flujo de datos. Testing de integración. Análisis: técnicas informales y formales. Ejecución simbólica. Debugging. Testing de sistema. Análisis mutacional. Testing de regresión.Bibliografía recomendada:
Ghezzi - Fundamentals of Software Engineering - Prentice-Hall, 1991 - Capítulo 6
Art¡culos Scuola estiva Software Testing Metodi e Tecniche, Italia, 1993
Harrold Mary Jane, Using Data Flow Analysis for Testing
Visaggio Giuseppe, System and Acceptance Testing
White Lee, An Overview of Specific Testing Techniques
White Lee, General Overview of Software Testing
White Lee, Integration Testing
White Lee, Regression Testing
Coward David, A review of software testing, Information and Software Technology, Vol 30, No. 3, 1988
Rapps & Weyuker, Data Flow Analysis Techniques for Test Data Selection, IEEE, 1982
Unidad III: Diseño Orientado a Objetos. Ciclo de vida de Objetos. Objetos. Mensajes. Métodos. Clases. Instancias. Signaturas. Polimorfismo. Herencia. Clases Abstractas. Responsabilidades. Colaboraciones. Contratos. Subsistemas. Protocolos. Patrones de Diseño. El Catálogo de Patrones. Heurísticas de uso. Patrones Abstract Factory, Builder, Adapter, Bridge, Composite, Decorator, Iterator, Observer, State, Strategy, etc. Bibliografía recomendada:
Gamma, Helm, Johnson & Vlissides - Design Patterns Elements of Reusable Object- Oriented Software - Addison Wesley, 1995
Wirf-Brock, Wilkerson & Wiener - Designing Object-Oriented Software - Prentice-Hall, 1990
Vlissides J., Pattern Hatching: Design Patterns Applied - Addison-Wesley, 1998
Otras referencias:
Patterns Home Page
Unidad IV: Métodos Formales: ventajas y desventajas. Especificaciones orientadas al modelo. Lenguaje Z. Especificaciones en Z. Conjuntos y predicados. Relaciones y funciones. Secuencias. Esquemas. Estados y operaciones. Cálculo. Tipos de esquema. Especificación. Diseño de datos. Modos de diseño. Vistas concretas y abstractas. Bibliografía recomendada:
Diller, Antoni - Z An Introduction to Formal Methods - John Wiley & Sons, 1994 - Capítulo 1
Harry, Andrew Formal Methods Fact File VDM and Z - John Wiley & Sons, 1996 - Capítulo 1, Capítulo 3 - Sección 1.
Wordsworth, J.B. Software Development with Z Addison-Wesley, 1992 - Capítulos 1 a 6
Bowen J. & Hinchey M. Seven more Miths of Formal Methods IEEE Software, 1994
Hall, Antoni Seven Miths of Formal Methods IEEE Software, Sept. 1990
Otras referencias:
Formal Methods Home Page
Unidad V: Interfaces de Usuario. Estilos de Interfaces. Ciclo de vida para Interfaces de Usuario. Participantes. Marco para diseño de Interfaces de Usuario. Clases de decisiones de diseño. Diálogos y Guiones. Objetos de interacción. Funciones y tipos de objetos de interacción. Administradores de Ventanas. Sistemas Administradores de la Interface de Usuario. Descripciones de Guiones: Diagramas de Transición de Estados - Gramáticas - Reglas y Restricciones - Técnicas Multiagente. Diseño de Interfaces Visuales. Principios. Estilos. Bibliografía recomendada:
Larson J. - Interactive Software Tools for Building Interactive User Interfaces - Prentice-Hall, 1992
Mullet & Sano Designing Visual Interfaces - Prentice-Hall, 1995
Unidad VI: Diseño de Hipertextos. Aplicaciones con Hipertextos. Arquitectura: nodos, links, motores de hipertextos. Hipertextos abiertos. Hipertextos e Internet. Heurísticas de diseño: navegación a través de grandes espacios, facilidad de uso del hipertexto, sobrecarga de información. Patrones para diseño de Hipertextos. Métodos de diseño: RMM, OOHDM. Bibliografía recomendada:
Nielsen J. - Multimedia and Hypertext - AP Professional, 1995. Capítulos 1, 2, 4, 5, 8, 9, 10
Ladd & O'Donnell Using HTML 4, XML, and Java 1.2 - Que Ed., 1999
Izakowitz y otros RMM: A Methodology for Structured Hypermedia Design - Communications of the ACM, August 1995, Vol. 38, Nø8
Schwabe & Rossi The Object-Oriented Hypermedia Design Model Communications of the ACM, August 1995, Vol. 38, Nø8
Rossi, Schwabe & Garrido Design Reuse in Hypermedia Applications Development Proceedings of Hypertext '97, p g. 57 a 66
Otras referencias:
Jakob Nielsen's Alertbox
W3C Organization
Java Home Page
Evaluación
Aprobación del cursado: mediante tres parciales de evaluación de conceptos teórico/prácticos.
Aprobación de la materia: mediante final oral/escrito de aspectos teóricos de elaboración y aplicación de conceptos. Entrega de trabajo de campo (Especificación de diseño de software del trabajo iniciado en la asignatura Análisis y Diseño de Sistemas).
Equipo de Catedra
Docentes
S. Alejandra Cechich - (Prof. Adjunto) Andres Flores - (Ayudante) Agustina Buccella - (Ayudante alumno)
Buenos Aires 1400 - (8300) NeuquénTel. +54-299-4490312 al 316 - Fax +54-299-4490313
jueves, 23 de abril de 2009
diseño y desarroyo de sofware
Suscribirse a:
Entradas (Atom)