1. CÓDIGO Y NÚMERO DE CRÉDITOS ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniería en Electricidad y Computación SYLLABUS DEL CURSO Ingeniería de Software II CÓDIGO FIEC03053 NÚMERO DE CRÉDITOS: 5 Teóricos: 5 Prácticos: 0 2. DESCRIPCIÓN DEL CURSO El curso pone en práctica el desarrollo y gestión del proyecto grupal iniciado en Ingeniería de Software I, evaluando y controlando cada una de las etapas de gestión, implementación, pruebas y mantenimiento, aplicando métricas y estándares de calidad; fomentando el trabajo en equipo y el desarrollo de habilidades de comunicación dentro y fuera del mismo. 3. PRERREQUISITOS Y CORREQUISITOS PREREQUISITOS CORREQUISITO FIEC03046 INGENIERÍA DE SOFTWARE I 4. TEXTO GUIA Y OTRAS REFERENCIAS REQUERIDAS PARA EL DICTADO DEL CURSO TEXTO GUÍA 1. Martin Fowler, Refactoring: Improving the Design of Eisting Code. 1st Edition, 1999, Addison Wesley. 2. Ian Sommerville, Software Egineering. 9th Edition, 2011, Pearson. 3. Dan Pilone y Russ Miles, Head First Software Development, 2008, O'Reilly Media. REFERENCIAS 1. Paul C. Jorgensen, Software Testing. 3rd Edition, 2008, Auerbach Publications 2. Clemens Szyperski, Component Software. 2nd Edition, 2002, Addison- Wesley 3. Ela Claridge, Software Testing Module, School of Computer Science, University of Birmingham 4. George Heineman y William Councill, Component-Based Software Engineering. 1st Edition, 2001, ACM Press Books 5. Joshua Kerievsky, Refactoring to Patterns. 1st Edition, 2005, Addison Wesley 6. Eric Freeman y Elisabeth Freeman, Head First Design Patterns. 1st Edition, 2004, O Reilly Media 7. William Brown, et al., AntiPatterns: Refactoring Software, Architecture and Project in Crisis. 1st Edition, 1998, John Wiley & Sons, Inc. 8. Oracle University, XML Fundamentals, 10g, Oracle University 9. Oracle University, Develop Web Services, 10g, Oracle University 10. ISO/IEC TR 19759:2005, Software Engineering - Guide to the Software Engineering Body of Knowledge. 2005, International Organization for Standardization 11. Artículos de actualidad relacionados a las diferentes temáticas del curso. 5. RESULTADOS DE APRENDIZAJE DEL CURSO El estudiante al finalizar el curso estará en capacidad de: 1. Describir y utilizar principios para la construcción de sistemas de software basados en componentes 2. Demostrar el entendimiento de tecnologías y estándares para componentes basados en objetos distribuidos 3. Conocer conceptos relacionados al mantenimiento de software 4. Describir las principales técnicas y estándares en pruebas de software 5. Evaluar estrategias para pruebas de software 6. Producir una documentación apropiada para llevar a cabo pruebas de software 7. Especificar y diseñar casos de prueba, así como ejecutar procedimientos de prueba para problemas seleccionados 8. Implementar y liberar versiones de sistemas debidamente probados y respaldados IG1002-3 Página 1 de 5 SYLLABUS DEL CURSO
9. Evaluar herramientas y documentación empleadas en el proceso de mantenimiento de sistemas de software 10. Usar habilidades de trabajo en equipo 11. Usar habilidades de comunicación oral y escrita 6. PROGRAMA DEL CURSO I. Software basado en componentes (6 sesiones, 15 horas) Ingeniería de software basada en componentes Componentes de software y arquitectura en capas Características de componentes Especificación y lenguaje de definición de interfaces (IDL) XML Composición de componentes Objetos y componentes Modelos de componentes Frameworks de componentes Servicios Web Middleware Cloud Computing II. III. IV. Gestión de la configuración (1 sesión, 2.5 horas) Actividades de la gestión de configuración Terminología Pruebas de Software (2 sesiones, 5 horas) a la prueba de software Estándares y documentación de pruebas Pruebas funcionales vs. Pruebas estructurales Pruebas funcionales (5 sesiones, 12.5 horas) Métodos de determinación de casos de prueba Técnicas para pruebas funcionales V. Pruebas estructurales (5 sesiones, 12.5 horas) Técnicas para pruebas estructurales VI. VII. VIII. IX. Pruebas de integración (2 sesiones, 5 horas) Tipos de pruebas de integración Pruebas de sistemas (2 sesiones, 5 horas) Automatización de pruebas Herramientas para pruebas Métricas y evaluación de pruebas Refactoring (3 sesiones, 7.5 horas) Patrones de diseño Principios del refactoring Catálogo de refactoring Revisión de casos Gestión de mantenimiento de software (2 sesión, 5 horas) Fundamentos de mantenimiento de software Acuerdos de niveles de servicio Gestión de incidentes 7. CARGA HORARIA: TEORÍA/PRÁCTICA El curso se ofrecerá en dos sesiones por semana. Cada sesión tendrá dos horas y media de duración. De ser necesario para los capítulos con componentes prácticos, una de las dos sesiones semanales podría ser impartida en uno de los laboratorios de computación de la FIEC. IG1002-3 Página 2 de 5 SYLLABUS DEL CURSO
8. CONTRIBUCIÓN DEL CURSO EN LA FORMACIÓN DEL ESTUDIANTE El curso introduce al estudiante los conceptos de desarrollo de software por medio del diseño y composición de componentes. Además, contribuye en la formación del estudiante para la producción de software de calidad por medio de la formalización de las técnicas y herramientas de pruebas de software. Se revisan las diversos tipos de pruebas, y sus principicios, que se llevan a cabo durante el proceso de desarrollo de una aplicación de software de variada complejidad. Ejemplos de estos tipos de pruebas son: pruebas unitarias, de integración, y de sistema. El curso también introduce los conceptos relacionados a la gestión de la configuración, versionamiento y mantenimiento de sistemas de software. Los estudiantes requieren conocimientos previos vistos en materias como Desarrollo de Aplicaciones Web, Bases de Datos, Estructuras de Datos, Programación Orientada a Objetos, entre otras; fundamentales para llevar a cabo la implementación del sistema. Desde el punto de vista práctico, el estudiante fortalece sus habilidades de gestión, desarrollo, pruebas y mantenimiento de sistemas de software por medio de la implementación de un proyecto real, para el cual se realizaron las etapas de levantamiento de requerimientos y diseño en el curso anterior de Ingeniería de Software. Los estudiantes desarrollan habilidades de trabajo en equipo y de comunicación a través de reuniones del grupo de proyecto y de reuniones con el cliente; además, se llevan a cabo eposiciones en clase. Los estudiantes reportan sus resultados a lo largo del desarrollo del sistema como son: plan de pruebas, estándares de código, actas de reunión, entre otros. Los estudiantes se comprometen a desarrollar el software éticamente sin violar normas de seguridad y confidencialidad del cliente. FORMACIÓN BÁSICA FORMACIÓN PROFESIONAL FORMACIÓN HUMANA 9. RELACIÓN DE LOS RESULTADOS DE APRENDIZAJE DEL CURSO CON LOS RESULTADOS DE APRENDIZAJE DE LA CARRERA RESULTADOS DE APRENDIZAJE DE LA CARRERA CONTRIBUCIÓ N (Alta, Media, Baja) RESULTADO S DE APRENDIZAJ EDEL CURSO** a) Habilidad para aplicar el conocimiento apropiado de Computación y ---- ---- ---- Matemáticas en esta disciplina b) Habilidad para analizar un problema, e identificar y definir los requerimientos computacionales Baja 5, 7 apropiados para su solución c) Habilidad para diseñar, implementar, y evaluar un sistema computacional, proceso, componente o Alta 1, 2, 3, 6, 8 programa que cumpla los requerimientos solicitados final. d) Habilidad para trabajar efectivamente en equipo y lograr un objetivo común Media 8,10,11 e) Comprensión de temas profesionales, éticos, legales, seguridad, social y de responsabilidad f) Habilidad para comunicarse efectivamente con grandes audiencias g) Habilidad para analizar el impacto computacional Media 1,2,3,4,5,6,7,8,9,10,11 Alta 2, 8, 10, 11 Media 1, 8 EL ESTUDIANTE DEBE: Identificar y definir las interfaces en problemas de composición de componentes. Determinar los casos de prueba apropiados para verificar la solución a un problema. Implementar el sistema de software iniciado en el primer curso de Ingeniería de Software I. Documentar adecuadamente los procesos de prueba llevados a efecto de verificar la solución Trabajar junto con compañeros de clase con la finalidad de completar el proyecto de implementación de un sistema de software para un cliente real. Respetar las normas de honestidad académica y ética profesional. Proponer y discutir con los clientes del sistema de software en desarrollo, como proyecto de curso, la implementación, las pruebas, y el proceso de implantación de la solución. Analizar y especificar interfaces y servicios que usen componentes IG1002-3 Página 3 de 5 SYLLABUS DEL CURSO
global y local en las personas, organizaciones y sociedad h) Reconocer la necesidad y una habilidad para mantener un constante desarrollo profesional a lo largo de la vida Alta 8 i) Habilidad para usar las técnicas, habilidades, y herramientas necesarias para la práctica de la Computación j) Capacidad de liderar, gestionar o emprender proyectos Media 2,4,5,9,10, 11 Media 8,9,10,11 preeistentes, con la finalidad de proponer una solución en base a la reutilización de componentes eistentes a fin de reducir el tiempo de implementación de un sistema de software y optimizar el uso de recursos humanos y financieros del proyecto. Investigar acerca de temas relacionados con la Ingeniería de Software y eponer la información investigada. Además, debe demostrar sus habilidades para un efectivo auto-estudio que le permita producir una solución informática apropiada para el proyecto, de acuerdo a las características y recursos que posea el cliente. Elaboración de una adecuada documentación de pruebas por medio de estándares para el sistema de software implementado como parte del curso. Además, el estudiante debe hacer uso de IDEs, herramientas CASE, frameworks, herramientas de pruebas y middleware, según sea el caso. Gestionar las actividades de un proyecto de software que constituya una necesidad para un cliente real, proyecto que fue iniciado en el curso de Ingeniería de Software I con el levantamiento de requerimientos. 10. EVALUACIÓN DEL CURSO Actividades de Evaluación Eámenes Lecciones Tareas Proyectos Laboratorio/Eperimental Participación en Clase Visitas Otras 11. RESPONSABLE DE LA ELABORACIÓN DEL SYLLABUS Y FECHA DE ELABORACIÓN Elaborado por Carlos Monsalve Fecha 9 Mayo del 2013 12. VISADO SECRETARIO ACADÉMICO DE LA UNIDAD ACADÉMICA NOMBRE: DIRECTOR DE LA SECRETARÍA TÉCNICA ACADÉMICA NOMBRE: FIRMA: FIRMA: Resolución y Fecha de aprobación en el Consejo Directivo: IG1002-3 Página 4 de 5 SYLLABUS DEL CURSO
13. VIGENCIA DEL SYLLABUS RESOLUCIÓN DEL CONSEJO POLITÉCNICO: FECHA: IG1002-3 Página 5 de 5 SYLLABUS DEL CURSO