Universidad Tecnológica Nacional Facultad Regional San Francisco Ingenieria en Sistemas de Información Ingenieria de Software Orientada a Objetos PLANIFICACIÓN CICLO LECTIVO 2010
ÍNDICE ÍNDICE... 2 PROFESIONAL DOCENTE A CARGO... 3 UBICACIÓN... 4 OBJETIVOS... 5 ORGANIZACIÓN DE CONTENIDOS... 6 PROGRAMA ANALÍTICO... 8 CRITERIOS DE EVALUACIÓN... 12 EVALUACIÓN:... 12 AUTOEVALUACIÓN:... 12 PLAN DE TRABAJO... 13 METODOLOGÍA... 17 BIBLIOGRAFÍA... 18 ARTICULACIÓN... 20 ARTICULACIÓN CON EL ÁREA:... 20 TEMAS RELACIONADOS CON MATERIAS DEL ÁREA:... 21 ARTICULACIÓN CON EL NIVEL:... 22 TEMAS RELACIONADOS CON MATERIAS DEL NIVEL:... 23 ARTICULACIÓN CON LAS CORRELATIVAS:... 24 TEMAS RELACIONADOS CON LAS CORRELATIVAS:... 25 ORIENTACIÓN... 26 DEL ÁREA:... 26 DE LA ASIGNATURA:... 26 Página 2 de 26
PROFESIONAL DOCENTE A CARGO Docente Categoría Título Profesional Ing. Nicolás Bortolotti Arquitecto de Software Ingenieria en Sistemas de Información Página 3 de 26
UBICACIÓN Dentro del contexto curricular prescripto se ubica en: Carrera: Ingenieria en Sistemas de Información Plan: 2008 Orientación: Ingenieria de Software Área: Sistemas de información Nivel: 4to Carga Horaria Semanal: 8 horas Régimen: Cuatrimestral Teórica Teoría Práctica Laboratorio Distribución horaria Formación Práctica Formación experimental Resolución de problemas de Ingeniería Proyecto y diseño Práctica profesional supervisada Total de horas 48 28 20-16 16-128 Nota: sobre el total de 128 hrs de la materia está realizado el cálculo. Página 4 de 26
OBJETIVOS Los objetivos de la asignatura se fundamentan en entregar a los alumnos un esquema general en el desarrollo de aplicaciones utilizando el paradigma orientado a objetos, se resalta la construcción prototípica y el recorrido por un ciclo de vida donde se aplique metodología dependiendo de escenarios elásticos y flexibles adaptados a la problemática de las organizaciones actuales. Página 5 de 26
ORGANIZACIÓN DE CONTENIDOS Eje Temático Nº 1: Nociones de la ingenieria de Software Contenidos Conceptuales: Introducción a los conceptos ingenieriles del desarrollo de software, comparativas y desarrollo de los conceptos de sistemas. Contenidos Procedimentales: Conocimiento generalizado de la ingenieria de software. Contenidos Actitudinales: discusiones grupales de conceptos ingenieriles, desarrollo grupales de prácticos aplicados. Eje Temático Nº 2: Introducción al modelado Contenidos Conceptuales: UML (Lenguaje unificado de modelado), conceptos del paradigma orientado a objetos, utilización de elementos UML, transición al desarrollo orientado a objetos, esquemas estáticos de relaciones entre entidades. Contenidos Procedimentales: Conocimiento aplicado del lenguaje unificado a segmentos específicos del modelado de soluciones. Contenidos Actitudinales: discusiones grupales de modelado de artefactos del lenguaje, desarrollo grupales de prácticos aplicados. Eje Temático Nº 3: Requerimientos y Análisis de Soluciones Contenidos Conceptuales: introducción al desarrollo de soluciones, detección de requerimientos y modelado de los mismos, modelado y transición a los casos de uso, modelado de flujos de trabajo con actividades, introducción a conceptos de análisis de soluciones Contenidos Procedimentales: Modelado de requerimientos en escenarios prácticos para aplicar trazado en las soluciones desarrolladas. Contenidos Actitudinales: descripciones de escenarios para la elicitación de requerimientos por esquema grupal sobre prácticos simulados y práctico integrador. Eje Temático Nº 4: Diseño de Soluciones Contenidos Conceptuales: introducción al diseño de soluciones, modelado del segmento estático de las soluciones de software, modelado de vistas dinámicas de una solución. Contenidos Procedimentales: conocimiento de la estructura estática de las aplicaciones, trazado de artefactos en las Página 6 de 26
soluciones y guías concretas para el desarrollo corporativo de software. Contenidos Actitudinales: aplicación e conceptos basado en roles definidos en el grupo, discusiones generales sobre diversas opciones en el desarrollo actual de software. Eje Temático Nº 5: Implementación de Soluciones Contenidos Conceptuales: implementando soluciones de software, modelando el segmento interno de una solución, modelando el despliegue de la solución. Contenidos Procedimentales: detalles del despliegue de aplicaciones aplicado a soluciones distribuidas. Contenidos Actitudinales: definiciones generales del tratamiento del despliegue grupales, discusiones generales sobre los esquemas de despliegue de las aplicaciones actuales. Eje Temático Nº 6: Ingenieria Reversa y Reingeniería de Software Contenidos Conceptuales: Aplicación de metodologías de ingenieria reversa e inversa, descubrimiento de ensamblados, modelado de soluciones. Contenidos Procedimentales: detalles de ensamblados de aplicaciones. Contenidos Actitudinales: definiciones generales del tratamiento de ensamblados de software, discusiones generales sobre los esquemas de reversa de las aplicaciones actuales. Página 7 de 26
PROGRAMA ANALÍTICO Eje Temático Nº 1: Nociones de la Ingenieria de Software Unidad Nº 1: Ingenieria de Software Preguntas frecuentes sobre la ingenieria de software Definiciones generales de la ingenieria de software Software La naturaleza cambiante del software Software Heredado Mitos del Software Unidad Nº 2: Metodologías Ágiles Qué es la Agilidad? Modelos Ágiles de Proceso Programación Extrema Desarrollo adaptativo de Software (DAS) Método de desarrollo de sistemas dinámicos (MDSD) Melé Cristal Desarrollo conducido por características (DCC) Modelado Ágil Unidad Nº 3: El proceso de Software Marco de trabajo para el proceso Integración del modelo de capacidad de madurez Actividades del proceso Eje Temático Nº 2: Introducción al modelado Unidad Nº 4: Introducción a UML Porque es necesario UML La concepción de UML Modelos y Diagramas Diagramas de UML Otras características Para que tantos diagramas Unidad Nº 5: Orientación a Objetos Objetos, introducción Algunos conceptos Abstracción Herencia Polimorfismo Encapsulamiento Envío de mensajes Asociaciones Agregación Composición Unidad Nº 6: Uso de la Orientación a Objetos Página 8 de 26
Concepción de una clase Atributos Nombre Operaciones Atributos, operaciones y concepción Responsabilidades y restricciones Notas adjuntas Que hacen las clases y como encontrarlas. Unidad Nº 7: Uso de Relaciones Asociaciones Multiplicidad Asociaciones calificadas Asociaciones reflexivas Herencia y generalización Dependencias Eje Temático Nº 3: Requerimientos y Análisis de Soluciones Unidad Nº 8: Trabajo con Requerimientos Introducción Importancia de los requerimientos Ingenieria de requerimientos Porque fracasan los proyectos de Software Qué marca los proyectos exitosos? Tratamiento de Requerimientos Unidad Nº 9: Desarrollo de Casos de Uso Segmento 1 Que son los casos de uso Importancia de los casos de uso Inclusión de los casos de uso Extensión de los casos de uso Inicio del análisis de un caso de uso Segmento 2 Diagramas de casos de uso Representación de un modelo de casos de uso. Términos Comunes Usos Comunes Unidad Nº 10: Análisis de Complejidad con Diagrama de Actividades Qué es un diagrama de actividades Aplicación de los diagramas de actividades Swimlanes Elementos de un Diagrama de Actividades Conclusiones de Uso Página 9 de 26
Unidad Nº 11: Análisis Conceptual Situación de Caos Empresarial Proceso y Lenguaje Introducción al análisis Roles Análisis Vs Diseño Flujo de trabajo Escenarios Eje Temático Nº 4: Diseño de Soluciones Unidad Nº 12: Diseño Conceptual Propósitos del diseño Comparativa análisis diseño Roles del diseño El papel del diseño en el ciclo de vida del software Trabajadores Flujo de Trabajo Unidad Nº 13: Modelado Estático de la Solución Concepción de Clases Responsabilidades Restricciones Atributos Operaciones Descubrimiento del modelo estático Tratamiento de entidades Unidad Nº 14: Modelado Dinámico de la solución Segmento 1 Diagramas de Interacción Qué es un diagrama de secuencias. Creación de un objeto en la secuencia. Destrucción de un objeto en la secuencia. Representación de la recursividad. Modelado de flujos de control por ordenación temporal Diagrama bien estructurado Segmento 2 Qué es un diagrama de colaboraciones Cómo aplicar un diagrama de colaboraciones Uso de si y mientras Anidamiento Objetos activos y concurrencia Sincronización Dónde encajan los diagramas de colaboraciones en el UML Eje Temático Nº 5: Implementación de Soluciones Unidad Nº 15: Desarrollo de componentes de la Solución Qué es un componente Página 10 de 26
Componentes e interfaces Qué es un diagrama de componentes Aplicación de los diagramas de componentes Diagramas de componentes en el panorama del UML Testing Básico de componentes Unidad Nº 16: Despliegue de la solución Introducción Términos y conceptos Usos Comunes Maneras de Despliegue Testing Básico de escenarios Eje Temático Nº 6: Ingenieria Reversa y Reingeniería de Software Unidad Nº 17: Ingenieria Reversa o Inversa Introducción a las técnicas de Reversa Unidad Nº 18: Reingeniería de Software Nociones básicas de un proceso de reingeniería de software Página 11 de 26
: CRITERIOS DE EVALUACIÓN Se realizarán 2 parciales, uno al terminar el primero de los módulos y uno al término de respectivo segundo módulo, con un recuperatorio al final del ciclo. Evaluaciones: 1. de prácticos en clase: esta evaluación se concentra en cada uno de los módulos expuestos. Se deberán aprobar el 75% de los prácticos en clase. 2. Asistencia a clase rigurosa. 3. Práctico integrador (Prototipo Final) 4. Práctico Metodológico (Exposición en Clase) Condiciones de regularidad 1. Asistencia del 75% a las clases. 2. Aprobación de los parciales con nota de 4 o superior. 3. Aprobar el 75% de los prácticos en clase. 4. Aprobar el práctico integrador. Nota superior a 4 Autoevaluación: Será realizada utilizando el instrumento elaborado desde Secretaría Académica y aprobado por Consejo Académico. Página 12 de 26
PLAN DE TRABAJO Eje temático Nº 1: Nociones de Ingenieria de Software Semana Contenidos Metodología 1 La naturaleza cambiante del software 2 Nociones de la ingenieria de software - Preguntas Frecuentes Clase - Conferencia Clase 3 Desarrollo Ágil Clase 4 Desarrollo Ágil Metodologías Inicial Taller 5 Modelos Agiles de Proceso Clase 6 El proceso de Software Clase en modelo Nivel de Profundidad Conceptual Conceptual Conceptual Practico Básico Conceptual Conceptual Bibliografía *INGENIERIA DE SOFTWARE UN ENFOQUE PRÁCTICO *INGENIERIA DE SOFTWARE *INGENIERIA DE SOFTWARE UN ENFOQUE PRÁCTICO *INGENIERIA DE SOFTWARE *INGENIERIA DE SOFTWARE UN ENFOQUE PRÁCTICO *INGENIERIA DE SOFTWARE *INGENIERIA DE SOFTWARE UN ENFOQUE PRÁCTICO *INGENIERIA DE SOFTWARE*INGENIERIA DE SOFTWARE *INGENIERIA DE SOFTWARE UN ENFOQUE PRÁCTICO *INGENIERIA DE SOFTWARE Eje temático Nº 2: Introducción al Modelado Semana Contenidos Metodología 1 2 Introducción al lenguaje de modelado UML Conceptos del modelado de aplicaciones Muestra general de un ejemplo Clase - Conferencia Taller 3 Conceptos de la orientación a Objetos Clase en modelo Nivel de Profundidad Conceptual Informativo Conceptual Bibliografía * EL LENGUAJE *UML Y PATRONES INTRODUCCION AL ANALISIS Y DISEÑO ORIENTADO A OBJETOS Y PROCESO UNIFICADO * PROGRAMACION UML 2 *EL LENGUAJE *UML Y PATRONES INTRODUCCION AL ANALISIS Y DISEÑO ORIENTADO A OBJETOS Y PROCESO UNIFICADO 4 Programando orientado a objetos Taller 5 Modelando Orientado a Objetos Taller en modelo en modelo Practico Básico Práctico - Básico * COMO PROGRAMAR C# * PROGRAMACION UML 2 *EL LENGUAJE Página 13 de 26
Eje temático Nº 3: Requerimientos y Análisis de Soluciones Semana Contenidos Metodología 6 Trabajando con requerimientos 7 Taller de modelado (Requerimientos) Taller 8 Análisis con Casos de Uso Clase 9 Taller de modelado (Casos de Uso) Taller 10 Introducción a esquema estático Clases Generales - Análisis Clase Conferencia Clase 11 Taller de modelado (Clases) Taller en modelo en modelo en modelo Nivel de Profundidad Conceptual. Práctico - Básico Conceptual Práctico Básico Conceptual Práctico Básico Bibliografía *EL PROCESO DESARROLLO DE SOFTWARE SOFTWARE - PRESSMAN *EL LENGUAJE SOFTWARE - PRESSMAN *EL LENGUAJE *EL PROCESO DESARROLLO DE SOFTWARE SOFTWARE - PRESSMAN *UML Y PATRONES INTRODUCCION AL ANALISIS Y DISEÑO ORIENTADO A OBJETOS Y PROCESO UNIFICADO SOFTWARE - SOMMERVILE *EL LENGUAJE * PROGRAMACION UML 2 *EL LENGUAJE *UML Y PATRONES INTRODUCCION AL ANALISIS Y DISEÑO ORIENTADO A OBJETOS Y PROCESO UNIFICADO SOFTWARE PRESSMAN SOFTWARE - SOMMERVILE *EL LENGUAJE * PROGRAMACION UML 2 Eje temático Nº 4: Diseño de Soluciones Semana Contenidos Metodología 12 Modelado estático de una solución Desarrollo del modelo de clases de diseño Clase Conferencia Nivel de Profundidad Conceptual. Bibliografía *EL LENGUAJE *EL PROCESO DESARROLLO DE SOFTWARE SOFTWARE PRESSMAN SOFTWARE - SOMMERVILE 13 Taller de programación Colecciones, Taller en Práctico Básico * COMO PROGRAMAR C# Página 14 de 26
Eje temático Nº 4: Diseño de Soluciones Semana Contenidos Metodología Nivel de Profundidad Bibliografía manejo de datos y operaciones modelo * PROGRAMACION UML 2 14 15 Taller de programación - Desarrollo en capas. Creando capa de presentación Creando capa de lógica de negocios Creando capa de acceso a datos Modelando dinámicamente una solución. Esquema de Colaboraciones Esquema de Secuencias Taller Clase en modelo Práctico Medio Conceptual. * COMO PROGRAMAR C# * PROGRAMACION UML 2 *EL LENGUAJE SOFTWARE SOMMERVILE * PROGRAMACION UML 2 16 Modelando Trazabilidad en el modelo de diseño Taller en modelo Práctico Medio *ANALISIS Y DISEÑO ORIENTADO A OBJETOS DE SISTEMAS USANDO UML Eje temático Nº 5: Implementación de Soluciones Semana Contenidos Metodología 17 18 19 Desarrollando componentes de una solución Taller de programación Desarrollando componentes para el re uso. Taller de modelado Aplicando diagramas de componentes Clase Conferencia Taller Taller 20 Desplegando una solución Clase 21 Analizando el despliegue de la solución Taller 22 Taller de modelado para esquematizar el despliegue Taller en modelo en modelo en modelo en modelo Nivel de Profundidad Conceptual. Práctico Básico Práctico Básico Conceptual. Práctico Básico Práctico Básico Bibliografía *EL LENGUAJE *EL PROCESO DESARROLLO DE SOFTWARE SOFTWARE PRESSMAN SOFTWARE - SOMMERVILE * COMO PROGRAMAR C# * PROGRAMACION UML 2 * EL LENGUAJE * PROGRAMACION UML 2 *EL LENGUAJE SOFTWARE PRESSMAN SOFTWARE - SOMMERVILE SOFTWARE PRESSMAN SOFTWARE - SOMMERVILE *EL LENGUAJE * PROGRAMACION UML 2 Eje temático Nº 6: Ingenieria Reversa y Reingeniería Semana Contenidos Metodología 1 Introducción a la ingenieria reversa Clase - Conferencia Nivel de Profundidad Conceptual Bibliografía *Reverse Engineering of Object Oriented Code Página 15 de 26
Eje temático Nº 6: Ingenieria Reversa y Reingeniería Semana Contenidos Metodología 2 Descubriendo ensamblados Taller 3 Flujo de trabajo en Ingenieria Reversa Clase 4 Introducción a la reingeniería de software Clase - Conferencia Nivel de Profundidad Practico Básico Conceptual Conceptual Bibliografía *Reverse Engineering of Object Oriented Code *Reverse Engineering of Object Oriented Code *Reverse Engineering of Object Oriented Code Página 16 de 26
METODOLOGÍA La metodología de dictado de la asignatura comprende e grandes segmentos: Desarrollo conceptual de corte conferencista Desarrollo de taller de aplicación programática para soportar el práctico prototípico. Desarrollo de taller de modelado genérico. Cada una de las exposiciones comprende una disertación con presentación del tema, posteriormente discusiones sobre el mismo. Cada tema se aplica a un taller de programación o de modelado dependiendo la naturaleza del concepto. El resultado final tiene que materializarse en el práctico integrador, donde se aplica la teoría conceptual, y cada uno de los talleres detallados. Además se planifica un esquema de trabajo sobre metodologías estructuradas y ágiles donde se permita materializar escenarios de trabajos diversos dentro de la construcción de una aplicación. Repositorio de información: http://sites.google.com/site/nbortolotti/catedrasdictadas/demo Grupo de trabajo distribuido: http://groups.google.com/group/catedra-oo-utnfrsfco Calendario distribuido para todos los alumnos: http://sites.google.com/site/nbortolotti/catedrasdictadas/demo Nota: Cátedra Homologada por Microsoft. Laboratorio de Programación Página 17 de 26
BIBLIOGRAFÍA 1. EL PROCESO DESARROLLO DE SOFTWARE ISBN 9788478290369 Autor JACOBSON IVAR BOOCH GRADY, RUMBAUGH JAMES Editorial PEARSON EDUCACION Peso 0,98 Kg.Edición 2006,en Rústica 472 páginas Idioma Español 2. EL LENGUAJE UML 2.0 ISBN 9788478290765 Autor BOOCH GRADY JACOBSON IVAR, RUMBAUGH JAMES Editorial PEARSON EDUCACION Peso 0,99 Kg.Edición 2006,en Rústica 552 páginas Edición Número 2 Idioma Español 3. UML Y PATRONES INTRODUCCION AL ANALISIS Y DISEÑO ORIENTADO A OBJETOS Y PROCESO UNIFICADO ISBN 9788420534381 Autor LARMAN CRAIG Editorial PEARSON EDUCACION Peso 1,22 Kg.Edición 2003,en Rústica 624 páginas Edición Número 2 Idioma Español 4. PROGRAMACIÓN UML 2 ISBN 84-415-2033-X Autor Jim Arlow, Ila Neustadt Editorial ANAYA Idioma Español 5. INGENIERIA DE SOFTWARE UN ENFOQUE PRÁCTICO ISBN 9789701054734 Autor PRESSMAN ROGER S. Editorial MCGRAW-HILL Peso 1,43 Kg.Edición 2005,en Rústica 992 páginas Edición Número 6 Idioma Español 6. INGENIERIA DE SOFTWARE ISBN 9788478290741 Autor SOMMERVILLE IAN Editorial PEARSON EDUCACION Página 18 de 26
Peso 0,13 Kg.Edición 2005,en Rústica 712 páginas Edición Número 7 Idioma Español 7. COMO PROGRAMAR C# ISBN 9789702610564 Autor DEITEL HARVEY M. DEITEL PAUL J. Editorial PEARSON EDUCACION Peso 1,87 Kg.Edición 2007,en Rústica 1080 páginas y 1 CD-Rom Edición Número 2 Idioma Español 8. Reverse Engineering of Object Oriented Code ISBN 0-387-23803-4 Autor Paolo Tonella Alessandra Potrich Editorial Springer Idioma Inglés Página 19 de 26
ARTICULACIÓN Articulación con el Área: Asignatura Carga Horaria Porcentaje 128 12.3% Sistemas y Organizaciones 112 10.7% Análisis de Sistemas 192 18.5% Diseño de Sistemas 224 21.5% Administración de Recursos 192 18.5 % Proyecto Final 192 18.5% Página 20 de 26
Temas relacionados con materias del área: Sistemas y Organizaciones asignatura del área# Análisis de Sistemas asignatura del área# Diseño de Sistemas asignatura del área# Administración de Recursos asignatura del área# Proyecto Final asignatura del área# asignatura asignatura asignatura asignatura asignatura Página 21 de 26
Articulación con el Nivel: Asignatura Carga Horaria Porcentaje 128 14.8% Administración de Recursos 96 11.1% Investigación Operativa 160 18.5% Legislación 64 7.5 % Simulación 160 18.5% Sistemas de Gestión I 128 14.8% Teoría de Control 128 14.8% Página 22 de 26
Temas relacionados con materias del nivel: Administración de Recursos asignatura del nivel# Investigación Operativa asignatura del nivel# Legislación asignatura del nivel# Simulación asignatura del nivel# Sistemas de Gestión I asignatura del nivel# Teoría de Control asignatura del nivel# asignatura asignatura asignatura asignatura asignatura asignatura Página 23 de 26
Articulación con las correlativas: Asignatura Ingenieria de Software Orientada a Objetos Para cursar Para rendir Cursada Aprobada Aprobada - Análisis de Sistemas - Sintaxis y Semántica de los Lenguajes - Paradigmas de Programación - Probabilidad y Estadísticas - Diseño de Sistemas - Gestión de Datos - Probabilidad y Estadísticas - Diseño de Sistemas - Gestión de Datos Página 24 de 26
Temas relacionados con las correlativas: Probabilidad y Estadísticas asignatura correlativa# Diseño de Sistemas asignatura correlativa# Gestión de Datos asignatura correlativa# Análisis de Sistemas asignatura correlativa# Sintaxis y Semántica de los Lenguajes asignatura correlativa# Paradigmas de Programación asignatura correlativa# asignatura asignatura asignatura asignatura asignatura asignatura Página 25 de 26
ORIENTACIÓN Del Área: #Escriba aquí la orientación del área# De la Asignatura: #Escriba aquí la orientación de la asignatura# Página 26 de 26