Facultad de Ingeniería Escuela de Informática www.unab.cl SYLLABUS de la Asignatura PROYECTO DE TÍTULO I – INS242 1. Descripción de la asignatura El estudiante deberá conceptualizar, estructurar, planificar y ejecutar un proyecto de desarrollo de software. Para ello, el alumno deberá (1) elaborar una propuesta completa, clara, correcta y coherente que describa el proyecto desde el punto de vista técnico, económico y de negocio, y dependiendo del modelo de desarrollo, (2) completar un diseño acabado de su propuesta de solución, y (3) ejecutar las etapas correspondientes a este. 2. Prerrequisitos, Co-requisitos y Horas Pedagógicas Prerrequisito: Dirección De Proyectos TI Co-requisito: N/A Horas: Cátedra : 6 hrs. Laboratorio : 0 hrs. Ayudantía : 0 hrs. La distribución de las horas se realizará de la siguiente forma: Profesor de Cátedra [4 horas] + Profesor Coordinador (Escuela) [2 horas] Funciones del Profesor de Cátedra : o Impartir ramo a un máximo de 6 alumnos (y/o 3 proyectos). o Revisar entregables y entregar retroalimentación o Evaluar presentación final de alumno ante comisión. Funciones del Profesor Coordinador:: o Control y seguimiento de las secciones impartidas. o Validación de los hitos del curso mediante su participación activa en las presentaciones. o Entrega de informes a Dirección de Carrera de avances de alumnos. o Administración de Aula(s) Virtual(es) del ramo. Facultad de Ingeniería Ingeniería en computación e informática 3. Aprendizajes Esperados a. Objetivo General Formalizar, fundamentar y ejecutar un proyecto de software considerando factores económicos, del negocio y técnicos. b. Objetivos Específicos Justificar la necesidad de un proyecto de Software desde la perspectiva del negocio del cliente. Elicitar los requisitos del proyecto en base al dominio y a las necesidades del cliente. Formular una solución de ingeniería que dé respuesta a la problemática o necesidades definidas, justificando su elección mediante el estudio de diferentes alternativas. Seleccionar y justificar la arquitectura definida si aplica. Seleccionar y justificar la elección de un modelo de desarrollo Seleccionar y justificar la elección de una arquitectura de Software Dirigir, controlar y ejecutar el proyecto. Poner en práctica en los hitos escritos como de presentación los aprendizajes obtenidos en la asignatura de comunicación efectiva. Facultad de Ingeniería Ingeniería en computación e informática 4. Sistema de Evaluación de la Asignatura Esta asignatura posee las siguientes evaluaciones: Evaluación Hito 1 Hito 2 Hito 3 Desempeño Fórmula (NM + NT+NP)/3 (NM + NT+NP)/3 (NM + NT+NP)/3 NDES Porcentaje 25% 25% 25% 25% La nota de cada hito se descompone en nota memoria (NM), nota técnica (NT) y nota de presentación (NP). La NM evalúa tanto la calidad como el avance del documento escrito. La NT evalúa aspectos técnicos de diseño, desarrollo, despliegue, liberación y calidad del producto de Software. La NP evalúa la justificación de la importancia del proyecto, el material de apoyo usado durante la exposición, la efectividad de la presentación en responder las preguntas de negocio y en la muestra del producto. Se sugiere para componer la nota NP considerar al menos los siguientes puntos: - Dominio del tema - Claridad en la presentación del tema - Calidad del material - Capacidad de Síntesis - Capacidad para responder a preguntas formuladas La nota Desempeño (NDES) corresponde al promedio de las evaluaciones semanales de avance acorde al plan, a la metodología de desarrollo y a la gestión del proyecto. Toda inasistencia no justificada obtiene nota 1.0. Sólo una de las notas de NDES puede ser reemplazada por una nota de participación acumulada clase a clase. Atrasos no justificados en presentación de hitos o desempeño son calificados con nota 1.0. La NDES al menos debería contemplar los siguientes puntos: Técnico. Dominio de conceptos técnicos como: o metodologías para definir el problema, o metodologías y modelos de desarrollo de Software, o enfoque funcional, o entre otros Proyecto. Dominio conceptos de gestión de proyectos: o Planificación, seguimiento de la planificación, riesgos/ o Factores críticos de éxito, etc. Cliente. Dominio de conceptos y herramientas como: o Minutas de reunión, gestión de expectativas, o Negociación, etc. Personas: Dominio de estrategias para: motivar, o Trabajar en equipo, Organizar el equipo, delegar tareas o Evaluar el Desempeño, relaciones interpersonales, etc. La nota presentación a comisión (PC) consiste en el promedio de las notas de tres hitos y la nota de desempeño semanal: PC= (Hito 1 + Hito 2 + Hito 3 + Desempeño)/4 El Hito 1 corresponde a la propuesta donde se sugiere al menos abordar los siguientes puntos: - Introducción (Contexto) - Identificación del Problema Facultad de Ingeniería Ingeniería en computación e informática - Objetivos Alcance de proyecto Solución propuesta Enfoque de Solución Organigrama y cronograma del proyecto Factores Críticos de Éxito Condiciones Comerciales Conclusiones La nota final del ramo se calcula de la siguiente manera: NF = (PC* 60%) + (NE* 40%) Donde NE corresponde a la Nota obtenida durante el examen. La comisión debe estar conformada al menos por dos de los profesores de la asignatura y un profesor invitado. Importante: - Para tener derecho a examen debe cumplir TODAS las siguientes condiciones o Nota PC mayor o igual que 4.0 o NDES mayor o igual que 4.0 - Si el alumno no cumple con alguno de los requisitos anteriores entonces, reprueba con nota NF 3,0 máximo. - Si la nota obtenida en la presentación a comisión es inferior a 4,0 entonces el alumno reprobará la asignatura con NF 3,5 máximo. Si el alumno no se presenta ante comisión en la fecha indicada, la nota NE será un 1.0, por lo que el alumno reprobará la asignatura con NF 3,0 máximo. Evaluación de desempeño: Durante el desarrollo de las asignaturas, se reforzarán los ámbitos de competencias requeridos para el desarrollo de proyectos y serán considerados en la evaluación de desempeño a final del semestre, identificados en la siguiente figura: Facultad de Ingeniería Ingeniería en computación e informática • Dominio conceptos técnicos. • Análisis funcional. • Diseño. • Construcción. • Documentación • • • • Técnica Proyecto Cliente Personas Planificación y seguimiento. Gestión de riesgos. Tomar acciones correctoras. Informes de seguimiento. • Trabajo en equipo • Motivar y organizar equipos de trabajo. • Relaciones interpersonales. • Delegar tareas • Evaluar desempeño • Gestión de expectativas. • Negociación. • Labores comerciales. Figura 4 Competencias reforzadas, en distinta medida, durante el desarrollo de la asignatura. Desde este punto de vista, se pretende que cada alumno al finalizar Proyecto de Título I tenga un desarrollo como el mostrado en la siguiente figura: Técnica Proyecto Personas Cliente Figura 5 Desarrollo de competencias de un alumno al finalizar la asignatura Facultad de Ingeniería Ingeniería en computación e informática 5. Actividades del Curso Mes 1 Semana 1 1.- Formalización de ideas Semana 2 1.- Formulación del problema Semana 3 1.- Objetivos y definición de la solución 2.-Búsqueda tecnológica Semana 4 1.- Metodologías 2.- Planificación y condiciones comerciales Mes 2 Semana 5 1.- Evaluación formativa de propuesta Semana 6 Hito 1 1.- Entrega 2.- Presentación Semana 7 1.- Plan de Proyecto Semana 8 1.- Planificación Mes 3 Semana 9 1.- Seguimiento de Planificación de Proyecto Semana 10 Hito 2 1.- Entrega 2.- Presentación Semana 11 1.- Seguimiento de Planificación de Proyecto Semana 12 1.- Seguimiento de Planificación de Proyecto Mes 4 Semana 13 1.- Seguimiento de Planificación de Proyecto Semana 14 Hito 3 1.- Entrega 2.- Presentación Semana 17 Examen Semana 18 Examen Semana 15 1.- preparación de examen ante comisión Mes 5 Semana 16 Evaluación Desempeño * Profesores y Autoevaluación Facultad de Ingeniería Ingeniería en computación e informática HITO 1: A continuación se presenta pauta de ejecución de las primeras 6 semanas, las cuales, es común para todos los proyectos independiente del modelo de desarrollo que se define en la propuesta entregada en el HITO 1 Semana Estructura de Contenidos 1 Presentación de objetivos de la asignatura en su contexto general de Proyecto de Título I y II. 06 de Marzo al 20 de Marzo Actividades de Evaluación y Fecha Revisión de los Syllabus de los cursos de manera participativa. Diálogo abierto respecto de Ideas de proyectos de desarrollo de software Técnicas para descubrir el problema. Ejemplo: 1. 5 ¿Por qué? 2. Mapas Mentales 3. Catwoe 4. Diagrama Ishikawa Desprender los objetivos del proyecto a partir de la problemática del cliente. Discutir acerca de Metodologías de desarrollo de SW Actividad 1: Resumen ejecutivo: describir situación actual, oportunidades de negocio, situación futura. Actividad 2: Planificación proyecto Propuesta (qué haré estas primeras 6 semanas) 2 13 de Marzo al 27 de Marzo 3 30 de Marzo al 3 de Abril 4 6 de Abril al 10 de Abril Discusión acerca de la administración de los riesgos. Discusión acerca de la gestión de configuración y de cambios. Actividad 1: Requisitos de alto nivel Actividad 2: Ambiente de desarrollo apoyado herramientas para el control de versiones y de cambio de Discusión acerca de pruebas de aceptación y TDD Lluvia de posibilidades de implementación para diferentes proyectos los Actividad 1: Al menos tres alternativas de implementación. Discusión acerca de vistas a considerar al definir la arquitectura Discusión de la importancia de los requisitos no funcionales en decisiones de arquitectura Actividad 1: construcción versión inicial del prototipo funcional Actividad 2: pruebas de aceptación Plantear Idea de Proyecto y un plan para levantarlo como proyecto de título en el hito 1 Status Proyecto Evaluación actividades anterior semana Status Proyecto Evaluación actividades anterior semana Facultad de Ingeniería Ingeniería en computación e informática Semana 5 13 de Abril al 17 de Abril 6 20 de Abril al 24 de Abril Estructura de Contenidos Discusión acerca de gestión de proyectos Discusión acerca de la importancia de la retroalimentación Discusión acerca de metodologías de gestión del proyecto Discusión acerca de kickoff de proyecto Actividades de Evaluación y Fecha Status Proyecto Evaluación actividades semana anterior Alumnos defienden la propuesta del proyecto y entrega documento en aula virtual a ser evaluado. Hito 1: Propuesta + Kickoff proyecto + Prototipo funcional Discusión de técnicas de estimación Discusión acerca de métricas Actividad: Alumnos corrigen acorde a retroalimentación, presentan estrategia de inicio de proyecto y Plan de Gestión de Proyectos. Obtienen retroalimentación de clientes/usuarios claves o tipo/profesor guía. Facultad de Ingeniería Ingeniería en computación e informática HITO 2 y 3: A continuación se sugieren contenidos a discutir que dependerán de las metodologías aprobadas por los proyectos en la sección. Semana 7 27 de Abril al 1 de Mayo 8 4 de Abril al 8 de Mayo 9 11 de Abril al 15 de Mayo 10 18 de Abril al 22 de Mayo 11 25 de Abril al 29 de Mayo 12 Semana 1 de Junio al 5 de junio 13 Semana 8 de Junio al 12 de junio Estructura de Contenidos Discusión acerca de técnicas de refinación de requisitos así como de su documentación Discusión acerca de pruebas de aceptación Discusión trazabilidad requisitos de negocio y requisitos técnicos Herramientas para seguimiento de proyectos Actividad: aplicar a proyecto Discusión acerca de definición de arquitectura física y lógica Discusión acerca de pruebas de integración Discusión acerca de las pruebas asociadas a requisitos no funcionales (ej. GQM) Actividad: aplicar a proyecto Discusión acerca del diseño detallado Discusión acerca de las pruebas unitarias Discusión acerca de la importancia de automatizar las pruebas unitarias Actividades de Evaluación y Fecha Status proyecto y producto Status proyecto y producto Status proyecto y producto Actividad: aplicar a proyecto Discusión acerca de Aseguramiento de calidad del proceso y del producto Actividad: aplicar a proyecto clientes/usuarios claves y retroalimentación Discusión replanificación Discusión refinamiento de arquitectura Discusión pruebas de regresión Hito 2: Capítulo I, II y III de la memoria del proyecto Liberación primera versión producto de Software Defensa proyecto continúa alineado al problema Status proyecto y producto Actividad: aplicar a proyecto Discusión de pruebas de rendimiento Discusión acerca de herramientas para pruebas de estrés. Status proyecto y producto Actividad: aplicar a proyecto. Discusión acerca de la trazabilidad del negocio al código y prueba. Actividad: aplicar a proyecto corrigiendo si corresponde. Status proyecto y producto Demo producto bajo ambiente simulado de carga real Facultad de Ingeniería Ingeniería en computación e informática 14 Semana 15 de Junio al 19 de junio Discusión acerca de la comparación de métricas de proceso, producto y equipo entre iteraciones. Actividad realizar postmortem interno del equipo. Hito 3 - Correcciones capítulos anteriores al IV Iteraciones capítulo IV Liberación segunda versión producto de Software Defensa proyecto continúa alineado al problema EXAMEN – Paso a comisión: A continuación se presenta pauta de ejecución de las últimas 4 semanas, las cuales, es común para todos los proyectos, independiente del modelo de desarrollo que se define en la propuesta entregada en el HITO 1. Semana 15 Semana 22 de Junio al 26 de junio Estructura de Contenidos Discusión de liberación de Software a ambiente de pruebas externo. Discusión acerca de ejecución de batería de pruebas automáticas Actividades de Evaluación y Fecha Status proyecto y producto Tarea: Liberación de Software, script de instalación, sitio Web del proyecto, manual de uso. Taller: Postmortem y lecciones aprendidas Discusión: preparación examen ante la comisión 16 y 17 Semana 29 de Junio al 10 de julio Examen: comisión evalúan desempeño del equipo en el ramo y da por aprobada las primeras etapas del proyecto si aplica. Examen Correcciones hasta capítulo IV Liberación tercera versión producto de Software Instalación por externo en servidor externo Defensa de que el proyecto continúa alineado al problema Facultad de Ingeniería Ingeniería en computación e informática 6. Conformación de Curso y Restricciones La cantidad de estudiantes en el desarrollo de un proyecto de desarrollo de software, son indicados a continuación: Los integrantes del equipo de proyectos a desarrollar el software tendrá un mínimo y máximo de 2 estudiantes. Sólo en casos excepcionales y debidamente justificados un equipo podrá estar integrado por sólo un estudiante. El proyecto será desarrollado en el periodo de 2 semestres, debiendo incluir las asignaturas de Proyecto de Título I y Proyecto de Titulo II. Las secciones asignadas a un profesor tendrán un total de 6 estudiantes. Un curso podrá estar constituido por 2 secciones distintas con 2 profesores distintos, siendo un máximo de 6 proyectos a atender. El alumno deberá tomar tanto el ramo de Proyecto de Título I y Proyecto de Titulo II con el mismo profesor. En caso que un profesor sólo dicte Proyecto de Título I, el alumno debe recurrir a la brevedad al coordinador del ramo para obtener una sugerencia del profesor más ad-hoc. Se recomienda a alumnos vespertinos que realicen sus proyectos en la misma empresa en la cual trabajan. El alumno debe ir a la clase con el profesor que tiene el ramo inscrito. No puede asistir a clases con otro profesor o sección. Restricciones respecto al proyecto: o Tipos de proyecto: investigación aplicada (con patrocinio de profesor guía), proyecto de desarrollo con cliente o proyecto de desarrollo sin cliente (en base a estudio de mercado). La asistencia a clases es obligatoria para los estudiantes. 7. Aula Virtual El aula virtual se encuentra enmarcada dentro del plan estratégico de la Universidad y la Facultad de Ingeniería. Dado lo anterior el aula virtual debe ser utilizada para los siguientes puntos: Entrega de trabajos de alumnos a evaluar. Registro de notas de evaluaciones, según Syllabus. Facultad de Ingeniería Ingeniería en computación e informática Retroalimentación: consejos obtenidos de la evaluación de cada hito de manera de ayudar al alumno a superar sus actuales problemas mitigando su reincidencia en las próximas iteraciones. Comunicación con alumnos, para fechas de entregas, diálogos en foros, etc. Citación de alumnos a reuniones especiales de seguimiento. Anuncios y Consultas (Foros) 8. Bibliografía del Curso Obligatoria Pfleeger, S., Atlee, J.: Software engineering - theory and practice (4. ed.). Pearson Education 2009, ISBN 978-0-13-814181-3, pp. 1-782. Craig, L. (2004). UML y Patrones. Prentice Hall. Recomendada: Baca, G. (2010). Evaluación de Proyectos. McGraw-Hill Interamericana Editores S.A. de C.V. Bernal, C. A. (2006). Metodología de La Investigación (2nd. ed.). Pearson Publications Company. Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., … Stafford, J. (2010). Documenting Software Architectures: Views and Beyond (2nd ed.). AddisonWesley Professional. Diaz. (2012). Dirección de Proyectos. ALFAOMEGA. Fowler, M. (2003). UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed.). Addison-Wesley Professional. Institute, P. M. (2008). A Guide to the Project Management Body of Knowledge: (4 Original.). Project Management Inst. JOYANES, L. (2009). Programación en C/C++ Java y Uml. mcgraw-hill interamericana. Martínez, F. R. (2011). Administración De Proyectos. Pearson - México. Pressman, R. S. (2010). Ingeniería de Software: Un enfoque práctico (Séptima Edición.). México D.F.: McGraw-Hill Interamericana Editores S.A. de C.V. Sapag, N. (2007). Preparación y evaluación de proyectos. McGraw-Hill Interamericana Editores S.A. de C.V. Silyn-Roberts, H. (2002). Writing for Science and Engineering: Papers, Presentations and Reports (1st ed.). Butterworth-Heinemann. Sommerville, I. (2010). Software Engineering (9th ed.). Addison Wesley.