310 likes | 515 Views
Aspectos Avanzados de la Tecnología de Objetos. Presentación del curso. Propósito y descripción. Esta asignatura guía al estudiante en el uso apropiado de las metodologías de Análisis y Diseño Orientado a Objetos (A/D OO). Entrega los conocimientos necesarios para analizar, diseñar,
E N D
Aspectos Avanzados de laTecnología de Objetos Presentación del curso
Propósito y descripción Esta asignatura guía al estudiante en el uso apropiado de las metodologías de Análisis y Diseño Orientado a Objetos (A/D OO). Entrega los conocimientos necesarios para analizar, diseñar, desarrollar e implementar aplicaciones utilizando las metodologías actuales a partir de la orientación a objetos, permitiendo a los alumnos adecuarse a los requerimientos técnicos que les presente su problemática específica de trabajo. Dr. Juan José Aranda Aboy
Objetivos generales Al término de la asignatura, el estudiante será capaz de: • Consolidar y desarrollar los conocimientos sobre análisis, diseño e implementación de sistemas orientados a objeto. • Modelar y Construir software usando Orientación a Objetos, mediante enfoques de desarrollo apropiados. • Conocer los últimos avances y técnicas que se han propuesto para el desarrollo de aplicaciones utilizando orientación a objetos. Dr. Juan José Aranda Aboy
Metodología • Clases expositivas, ejemplificando las distintas materias con apoyo de material físico: talleres, presentaciones y uso de computador. • Desarrollo de casos prácticos en grupo, tanto en clases de laboratorio como fuera de la sala de clases mediante las herramientas disponibles para colaboración: foro, chat, blog y wiki. • Desarrollo de proyectos en grupos. • Controles relacionados con los tópicos estudiados y el estado del avance de cada proyecto por unidad. Dr. Juan José Aranda Aboy
Sistema de evaluación Evaluación teórica: • 2 Pruebas solemnes: Promedio 70% • 6 Controles: Promedio 30% (sin eliminación) Evaluación práctica: • Proyecto de Análisis y Diseño: 100% Nota: [ Solemnes (70%) + Controles (30%) + Proyecto (100%) ] / 2 Dr. Juan José Aranda Aboy
Contenidos • Introducción: Ideas de calidad de software, modularidad y tipos abstractos de datos. • Fundamentos del modelo de objetos • Modelo de objetos representados en los lenguajes de programación • Métodos de análisis y diseño orientado a objetos a través del estudio de casos. • Aspectos avanzados de programación orientada a objetos. • Objetos y componentes de software. Persistencia en el modelo de objetos. • Tópicos avanzados: Concurrencia, distribución, desarrollo bajo el modelo cliente servidor e Internet. Dr. Juan José Aranda Aboy
1. Introducción • Calidad de Software: • ¿Qué es un buen sistema? • ¿Se tienen buenos sistemas? • ¿Cómo son los buenos sistemas? • ¿Cómo se construye un buen sistema? • Modularidad. • Tipos abstractos de datos. • El proceso de desarrollo. • Sistema, diseño, modelo, diagrama. Dr. Juan José Aranda Aboy
1. Objetivos específicos • Definir qué se entiende por un buen sistema. • Caracterizar la problemática de los sistemas existentes. • Conocer cómo el enfoque de análisis y diseño orientado a objetos contribuye a la construcción de buenos sistemas. Dr. Juan José Aranda Aboy
2. Fundamentos del modelo de objetos • Ingeniería del software con componentes. • Conceptos de objetos. • El proceso de desarrollo. • El lenguaje unificado de modelado (Unified Modeling Language – UML): • Fundamentos de los modelos de casos de uso. • Fundamentos de los modelos de clases. • Fundamentos de los diagramas de interacción y colaboración. • Fundamentos de los diagramas de estado y de actividad. • Diagramas de implementación. • Paquetes, subsistemas, modelos. Dr. Juan José Aranda Aboy
2. Objetivos específicos • Definir los conceptos de objeto, clase y componente. • Caracterizar el proceso de desarrollo. • Conocer y emplear adecuadamente el lenguaje unificado de modelado (UML). Dr. Juan José Aranda Aboy
3. Modelo de objetos representados en los lenguajes de programación • Identificación de requisitos. • Diseño de objetos con responsabilidades: Patrones GRASP. • Patrones de diseño de la “pandilla de los cuatro” (Gang of Four - GoF). • Diagramas de secuencia y contratos de operaciones. Dr. Juan José Aranda Aboy
3. Objetivos específicos • Conocer cómo definir apropiadamente los requisitos del sistema. • Definir los patrones. • Aprender a aplicar los patrones GRASP y GoF al diseño de casos. Dr. Juan José Aranda Aboy
4. Métodos de análisis y diseño orientado a objetos a través del estudio de casos Casos para analizar y diseñar: • Una Calculadora. • Una Biblioteca. • Juegos con tablero: Tres en Raya (gato) y Ajedrez. • Simulación de un Elevador. • Puntos de venta. • Gestión de calificaciones. • Almacenamiento y Comunicación de señales e imágenes biomédicas • Hacia la Web semántica: Repositorio de prácticas institucionales: Taxonomías y Ontología. Dr. Juan José Aranda Aboy
4. Objetivos específicos • Desarrollar el análisis y diseño de los diferentes casos. • NOTA: Esta unidad se realiza prácticamente en las horas de laboratorio durante todo el curso. Dr. Juan José Aranda Aboy
5. Aspectos avanzados de programación orientada a objetos • Análisis arquitectural y el Documento de la Arquitectura del Software (Software Architecture Document – SAD). • Diseño de un entorno de trabajo (framework) de persistencia con patrones. 4to Control Dr. Juan José Aranda Aboy
5. Objetivos específicos • Conocer y aplicar prácticamente cómo se diseña la arquitectura de los sistemas. • Explicar y manejar apropiadamente la arquitectura lógica. • Mostrar la arquitectura utilizando los diagramas de paquetes de UML. • Conocer como se diseña un framework. Dr. Juan José Aranda Aboy
6. Objetos y componentes de software. Persistencia en el modelo de objetos • Bases de datos orientadas a objetos. • Estándares de objetos de datos: • Patrones utilizados para resolver el Modelo de Negocio y su Acceso • Patrones utilizados para resolver el Mapeo de la Persistencia • Patrones utilizados para resolver la Arquitectura de la Persistencia • Patrones utilizados para resolver el Comportamiento de la Persistencia • Motores de persistencia. Opciones disponibles. Dr. Juan José Aranda Aboy
6. Objetivos específicos • Describir la correspondencia (mapping) objeto – relacional. • Conocer y aplicar apropiadamente los patrones utilizados. • Emplear apropiadamente los motores de persistencia. Dr. Juan José Aranda Aboy
7. Tópicos avanzados • Concurrencia. • Patrones utilizados para resolver la Concurrencia • Distribución: CORBA y RMI. • Patrones utilizados para resolver la Distribución • Patrones utilizados para resolver la Presentación • Desarrollo bajo el modelo cliente - servidor e Internet. Dr. Juan José Aranda Aboy
7. Objetivos específicos • Conocer, describir y aplicar apropiadamente los patrones utilizados para resolver la concurrencia y la distribución. • Explicar las características de CORBA y Java RMI, comparándoles adecuadamente. • Utilizar el modelo Cliente – Servidor para construir sistemas. Dr. Juan José Aranda Aboy
Tópicos para investigación • Integración con la programación funcional: Metodología funcional y Orientada a Objetos. • Programación extrema (eXtreme Programming – XP) y buenas prácticas. • Desarrollo de sistemas Seguros. Dr. Juan José Aranda Aboy
Bibliografía en castellano • Stevens, P. “Utilización de UML en Ingeniería del Software con Objetos y Componentes”, Addison Wesley, 2002 (en inglés: “Using UML: software engineering with objects and components”) • Larman, C. “UML y Patrones” 2da ed. Pearson Prentice Hall, 2004 • Amescua, A. et. al. “Análisis y Diseño Estructurado y Orientado a Objetos de Sistemas Informáticos”, Mc Graw Hill, 2003 • Schmuller, J. “Aprendiendo UML en 24 horas”, Prentice Hall, 2001 • Universidad Carlos III de Madrid: “Modelado con UML” • Deitel y Deitel, “Java: ¿Cómo programar?, Mc Graw Hill, 2004 • Connolly,T. y Begg,C. “Sistemas de Bases de Datos” 4ta edición, Pearson, 2005 • Alonso,A. et al “Ingeniería del Conocimiento: Aspectos Metodológicos”, Pearson, 2004 Dr. Juan José Aranda Aboy
Textos POO en inglés • Shoval, P. “Functional and object oriented analysis and design : an integrated methodology”, Idea Group Inc., 2007 • Cockburn, A. “Writing Effective Use Cases”, Addison Wesley, 2000 • Reynolds-Haertle, R. A. “OOP with Microsoft Visual Basic .NET and Microsoft Visual C# Step by Step”, Microsoft Press, 2002 • Bruce, K.B. “Foundations of Object-Oriented Languages: Types andSemantics”, The MIT Press, 2002 • Taylor, A. D. “Object Technology”, Addison Wesley, 1997 • Hunt, J. “Smalltalk and Object Orientation: An Introduction” • Champeaux,D.; Lea,D. y Faure,P. “Object-Oriented System Development”, Addison Wesley, 1993 Dr. Juan José Aranda Aboy
Textos UML en inglés • Grady Booch, James Rumbaugh, Ivar Jacobson “The Unified Modeling Language User Guide”, Addison Wesley, 1998 • OMG Unified Modeling Language Specification, Version 1.3, June 1999 • Gross, H-G. “Component-Based Software Testing with UML”, Springer, 2005 • Rosenberg, D. y Scott, K. “Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example”, Addison Wesley, 2001 • Kruchten, P. “The Rational Unified Process”, Addison Wesley, 2000 Dr. Juan José Aranda Aboy
Textos Patrones en inglés • Eckel, B. “Thinking in Patterns, with JAVA”, MindView Inc., 2000 • Eckel, B. “Thinking in C++”, MindView Inc., 2000 • Evitts, P. “A UML Pattern Language”, New Riders Publishing, 2000 • Hubert, R. “Convergent Architecture - Building Model-Driven J2EE Systems with UML”, John Wiley & Sons, 2002 Dr. Juan José Aranda Aboy
Textos XP en inglés • Wake, W. C. “Extreme Programming Explored”, Addison Wesley, 2000 • Beck, K. “Extreme Programming Explained: Embrace Change”, Addison Wesley, 2004 • Beck, K.; Fowler, M. y Martin,R. “Planning Extreme Programming”, Addison-Wesley, 2000 Dr. Juan José Aranda Aboy
Conceptos importantes • Programación Extrema • Extreme Programming: A gentle introduction. • XProgramming > Software Downloads • Rapid application development (RAD) • Refactoring • Scrum • Arquitectura de Software Dr. Juan José Aranda Aboy
Artículos recomendados • Software quality development and assurance in RUP, MSF and XP: A comparative study • Introducing an agile process to an organization • The V-Model • The spiral model as a tool for evolutionary acquisition • Quality in an agile world • Agile software testing in a large-scale project • Agile software development with Scrum • Project management and Scrum: A side by side comparison Dr. Juan José Aranda Aboy
Artículos … (2) • Improve competitive quality with extreme programming • Best practices in Scrum project management and XP agile software development • Rational Unified Process: Best practices for software development teams • Agile modeling and the Rational Unified Process (RUP) • RUP in the dialogue with Scrum • Test-driven development, a portable methodology • Test-driven development in .NET • Test-driven C#: Improve the design and flexibility of your project with extreme programming techniques Dr. Juan José Aranda Aboy
Otras referencias en Internet • Wikipedia: • Programación Orientada a Objetos • Patrón de diseño • Wikibooks: • Computer programming/Object oriented programming • Topic: Object-Oriented Programming • The Object Oriented Programming Web • The Object Management Group (OMG) • Introducing UML: Object-Oriented Analysis and Design • Design with ArgoUML • Architecture & Design: Overview Dr. Juan José Aranda Aboy