Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Análisis y Diseño Orientado a Objetos Syllabus Nombre de la Asignatura Id de la Asignatura Fecha de Actualización Horas semanales Créditos Académicos Pre-Requisitos Vigencia Análisis y Diseño Orientado a Objetos 004183 Enero de 2015 Horas Contacto Clase : 4 Horas Trabajo Independiente : 2 2 Pensamiento Algorítmico 2016-30 Objetivos Se pretende que el estudiante: • Asimile los conceptos fundamentales de análisis y diseño orientado a objetos. • Conozca los conceptos básicos del Proceso de Ingeniería de software, y sus etapas (obtención de requerimientos, análisis, diseño, implementación, pruebas, puesta en marcha). • Aprenda a modelar gráficamente (diseñar) la solución de problemas con un enfoque Orientado a Objetos (ABET c). • Conozca y aprenda a usar un lenguaje de modelado, en este caso UML. Adicionalmente, podrá implementar dicho lenguaje en un editor de UML (ABET k). • Esté en capacidad de analizar, diseñar e implementar soluciones a problemas usando el paradigma orientado a objetos, sustentado bajo un esquema de proceso de ingeniería de software básico. Esto es, el estudiante obtiene la capacidad de realizar una formalización conceptual de una solución (ABET e). Habilidades que contribuye a Desarrollar • Estimular la destreza para solucionar problemas mediante una metodología de análisis y diseño OO, enmarcada dentro del proceso de ingeniería de software. • Dominar una herramienta de modelado para reflejar el análisis y el diseño OO. Estrategias Pedagógicas 1. Aprendizaje directivo mediado (Clases magistrales) 2. Aprendizaje colaborativo (Trabajo en grupo) 3. Talleres basados en problemas 4. Las categorías de trabajo independiente son: - Tareas y ejercicios - Preparación de clases - Preparación de Talleres - Proyectos Evaluación Parciales: Primer Parcial (20%) Segundo Parcial (20%) Tercer Parcial (15%) Trabajo en Clase (20%): Talleres en Clase (10%) Quices y tareas (10%) Proyecto (trabajo en equipo): Proyecto de análisis en el semestre (25%) - Primera entrega - Análisis (7%) - Segunda entrega - Diseño 1 (9%) - Tercera entrega - Diseño 2 (9%) Referencias Bibliográficas Textos guías LARMAN, C. “UML y Patrones”, Segunda Edición, Pearson Educación, 2002. (2 copias en Consulta en Sala – piso 0 Biblioteca U. Javeriana: ref 001.6424 L17U) [1]. BOOCH, G., RUMBAUGH, J. y JACOBSON, I. “El Lenguaje Unificado de Modelado UML”, Pearson Educación, Segunda Edición 2006. [2]. FOWLER M. “UML Distilled: A Brief Guide to the Standard Object Modeling Language”, Third Edition Sep.2003 [3]. BRUEGGE, B. y DUTOIT, A. “Ingeniería de Software Orientado a Objetos”. Prentice Hall, 2002. [4] HOOKS, Ivy, “Writing Good Requirements”. Proceedings of the Third NCOSE Symposium, Vol. 2, 1993. [5] WIEGERS, Karl E., “Writing Quality Requirements”, Process Impact, www.processimpact.com [6]. COCKBURN, “A. Basic Use Case Template”. Sep. 2006 [7]. ECKEL B. “Thinking in Java, Thinking in Patterns”, Sep.2006 * Material de apoyo en UML en Internet: o IBM_Clases http://www.ibm.com/developerworks/rational/library/content/RationalEdge/nov03/t_modelinguml_db.pdf o The Object Primer, Copyright 2003-2006 Scott W. Ambler http://www.agilemodeling.com/artifacts/classDiagram.htm#Associations o UML 2.0 http://www.uml.org/index.htm#UML2.0 Programa por semana y por clase Semana Clase Tema 1 1 Presentación del Curso 1 2 • Presentación del Curso • Proceso de desarrollo de software y especialidades de la Ingeniería de Sistemas • Importancia del modelado en el proceso de desarrollo de Sw • El proceso de Ingeniería de Sw • RUP estrategias y contexto en ADOO • Procesos ágiles • Introducción UML (Historia, Contextualización y Presentación de los diagramas más usados y su contexto dentro del proceso de IS) • Relación de diagramas UML con los procesos de Ingeniería de Software * Tarea. Leer: * Capítulo 1. “Por qué Modelamos” [Booch] * Capítulo 2 “Development Process” de [Fowler] * Para profundizar. * Capítulo 1. “Introduction” de [Fowler] * Capítulo 2 “Desarrollo Iterativo y el Proceso Unificado” de [Larman]) 2 3 • Ingeniería de Requerimientos • Clasificación de Requerimientos * Tarea: investigación sobre los requerimientos: definición, tipos y FURPS+. Entregar un resumen de una página. * Tarea: Leer sobre requerimientos: * Cap 5 “Comprensión de los requisitos” de [Larman] 2 4 • Buenas prácticas para la escritura de requerimientos • Validación y verificación de requerimientos • Taller de requerimientos (verificación y validación de la tarea) * Tarea. lectura sobre: * Buenos Requerimientos [Ivy Hooks] * Escribiendo Requerimientos de Calidad [Karl E. Wiegers] * Tarea: identificar y escribir los requerimientos de un sistema de software que desee un familiar. 3 5 • Casos de Uso • Teoría (Relaciones: inclusión, extensión y generalización) • Ejemplos * Tarea. lectura sobre UML: * Capítulo 6 “Modelo de Casos de Uso” [Larman] * Capítulo 9 “Use Cases” [Fowler] 3 6 • Taller de Casos de Uso * Tarea: descripción de tres editores de UML para la elaboración de los diferentes diagramas en UML. En una página. 4 7 • Documentación de casos de uso esenciales • Explicación de la herramienta HACER-USOS • Explicación de la plantilla de Cockburn • Taller de documentación de casos de uso * Tarea: leer la documentación de HACER-USOS. 4 8 5 9 5 10 6 11 • Taller de casos de uso y documentación • Taller de casos de uso y documentación Primer parcial • Conceptos Básicos de OO • Paradigma de POO • Evolución, Beneficios, Desventajas * Tarea. Lectura de conceptos POO: Capítulo 1 “Introducción a los objetos” de [Eckel] 6 12 • Solución de parcial • Herencia o Concepto Herencia o Vinculación dinámica o Polimorfismo Primera entrega proyecto 7 13 • Taller de Conceptos de Paradigma OO 7 14 • TC: Comprobación de lectura de conceptos OO • Introducción al modelo de Dominio * Tarea: lectura del modelo de dominio: * Capítulo 10. “Visualización de conceptos” [Larman] * Capítulo 11. “Añadir Operaciones” [Larman] * Capítulo 12. “Añadir Atributos” de [Larman] 8 15 8 16 9 17 9 18 10 19 • Taller modelo de dominio • Taller modelo de dominio • Diagrama de clases: o Identificación de clases o Atributos y Características • Conceptos de clase • Relaciones entre clases • Taller Diagrama de clases • Taller Diagrama de clases * Tarea: preparar el diagrama de clases (caso dado en clase) 10 20 • Diagramas de interacción – Secuencia • Taller de Diagramas de Secuencia * Tarea. Lectura * Capítulo 15: “Notación de los diagramas de Interacción” de [Larman] 11 21 11 22 12 23 • Taller de diagramas de secuencia • Taller de diagramas de secuencia • Diagramas de Colaboración * Tarea: lectura sobre los diagramas de Colaboración: * Capítulo 19: “Diagramas de Interacción” de [Booch, R. & J.] 12 24 13 25 13 26 • Taller de Diagramas de Colaboración Segundo parcial • Introducción de Patrones GRASP • Ejercicios Aplicación GRASP * Tarea: lectura de Patrones GRASP: * Cap 16: “GRASP: Diseño de Objetos con Responsabilidades” de [Larman] Segunda entrega proyecto 14 27 • Ejercicios Aplicación GRASP * Tarea: lectura de Patrones GRASP 14 28 • Patrones GoF: o Singleton o Factory Method o Composite * Tarea: lectura de los patrones GoF * Cap 23: “Patrones de diseño GoF” de [Larman] 15 29 • Patrones GoF: o Adapter o Strategy o Observer o MVC * Tarea: lectura de los patrones GoF: * Cap 23: “Patrones de diseño GoF” de [Larman] 15 30 16 31 16 32 • Taller de Patrones GoF • Taller de Patrones GoF • Diagrama de Actividad Tercer Parcial Tercera entrega proyecto