Ingeniería de Software 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Ingeniería De Software Carrera: Ingeniería En Sistemas Computacionales Clave de la asignatura: TIM-0701 Horas teoría-Horas práctica-Créditos: 3-2-8 2.- HISTORIA DEL PROGRAMA Lugar y Fecha de elaboración y revisión Instituto Tecnológico Superior del Sur Noviembre del 2006 Participantes Observaciones (Cambios y Justificación) Representantes de la academia de Ingeniería en Sistemas Computacionales 3.- UBICACIÓN DE LA ASIGNATURA a) RELACIÓN CON OTRAS ASIGNATURAS DEL PLAN DE ESTUDIO: ANTERIOR ASIGNATURAS Tópicos Selectos de Programación Programación Orientada a Objetos Taller de Base de Datos Programación de Sistemas TEMAS POSTERIOR ASIGNATURAS Desarrollo de Proyectos de Software Planificación y Modelado TEMAS b) APORTACIÓN DE LA ASIGNATURA AL PERFIL DEL EGRESADO: Conoce herramientas y metodologías para generar soluciones estandarizadas y óptimas en el desarrollo de software. 4.- OBJETIVO(S) GENERALES DEL CURSO El estudiante utilizará estratégicamente los principales estándares vigentes para la Ingeniería de Software en el contexto de las aplicaciones empresariales, permitiendo definir y asegurar los procesos de fabricación de software y así obtener productos de software de calidad según estándares internacionales. 5.- TEMARIO NUM. I TEMAS El proceso software II Metodologías orientadas a objetos III Ingeniería de software asistida por computadora(CASE) IV V VI VII Modelado de Requisitos con UML Métrica Ingeniería de Software y de Calidad Reutilización del software SUBTEMAS 1.1. El proceso software 1.2. Estándares en Ingeniería de Software 1.3. Estándares relacionados con el proceso de software 1.4. Familia de estándares ISO 9000 1.5. CMMI 1.6. IEEE/ISO/IEC 12207 1.7. Introducción a SQA (Software Quality Assurance) 2.1. Descripción de las metodologías 2.2. Herramientas de apoyo 2.3. Ventajas y limitaciones 3.1. Herramientas de apoyo 3.2. Ventajas y limitaciones 4.1. Introducción a UML 4.2. Diagrama de Casos de uso 4.3. Diagrama de Clases 4.4. Diagrama de actividades 4.5. Diagramas de interacción: 4.5.1. Diagrama de secuencias 4.5.2. Diagrama de colaboraciones 4.6. Statecharts (Diagramas de estado) 5.1. Objetivos generales del método. 5.2. Ámbito de aplicación. 5.3. Alcance del método. 5.4. Versiones. 5.5. Objetivos en el desarrollo de la versión 3. 5.6 Influencias. 5.7. Modelo de procesos de Métrica 3. 5.8. Procesos en Métrica 3. 5.9. Planificación de sistemas de información (PSI). 5.10. Estudio de viabilidad del sistema (EVS). 5.11. Análisis del sistema de información (ASI). 5.12. Diseño del sistema de información (DSI). 5.13. Construcción del sistema de información (CSI). 5.14. Implantación y aceptación del sistema (IAS). 5.15. Mantenimiento de sistemas de información (MSI). 6.1. Validación de requisitos 6.2. Pruebas de Completitud 6.3. Pruebas de Integración 6.4. Auditoria del proceso de desarrollo 7.1. Beneficios de la reutilización 7.2. Dificultades para la reutilización 7.3. Assets 7.4. Niveles de reutilización 7.5. Modelo de procesos con reutilización 7.6. Ingeniería de dominios 7.7. Ingeniería del software basada en componentes 7.8. Clasificación y recuperación de assets o componentes 6.- APRENDIZAJES REQUERIDOS ¾ ¾ ¾ ¾ ¾ Comprensión de conceptos de Programación Orientada a Objetos Manejo un lenguaje de Programación Orientado a Objetos Conocer algún modelo de Desarrollo de Software Conocer algún motor de Base de Datos Comprender los diferentes paradigmas de programación 7.- SUGERENCIAS DIDÁCTICAS • Exposición de los contenidos temáticos en clase por el profesor de la asignatura. • Análisis por parte del alumno del material de soporte de los contenidos temáticos de la asignatura. • Discusión en clase sobre los contenidos temáticos del curso. • Presentación de casos en clase por el profesor de la asignatura. • Solución de casos en el nivel de abstracción, por parte de los alumnos • Integrar equipos de 3 personas para analizar y evaluar cada tema del programa • Aplicar las metodologías en la creación de un proyecto de software • Uso de un portal de Internet para apoyo didáctico de la materia, que cuente por lo menos con un foro, preguntas frecuentes, material de apoyo y correo electrónico. 8.- SUGERENCIAS DE EVALUACION • • • • • • • • Valoración de conocimientos previos. Dar seguimiento al desempeño Participación en dinámicas grupales de ideas, debate, entre otras. Actividades de auto evaluación. Exámenes prácticos y escritos Evaluaciones departamentales. Elaborar un proyecto de Desarrollo de Software Elaboración de contenido para Internet 9.-UNIDADES DE APRENDIZAJE UNIDAD I: El proceso software OBJETIVO EDUCACIONAL ACTIVIDADES DE APRENDIZAJE BIBLIOGRAFÍA El alumno conocerá los principales estándares para el desarrollo de software así como la importancia de estos en la elaboración del producto. - En equipo de 3 analizar los principales estándares en Ingeniería de Software. Participar en un Foro de discusión respecto a los estándares de calidad en Ingeniería de software. - 1, 2, 4, 7 UNIDAD II: Metodologías orientadas a objetos OBJETIVO EDUCACIONAL ACTIVIDADES DE APRENDIZAJE El alumno conocerá las diferentes metodologías orientadas a objetos más populares para sistemas en tiempo real. - - Participar en un foro de discusión sobre cual es la mejor metodología orientada a objetos. Elaborar un software con alguna de las metodologías mas populares. Aprender el uso de alguna herramienta de apoyo para la metodología orientada a objetos. BIBLIOCRAFÍA 4, 5, 8 UNIDAD III: Ingeniería de software asistida por computadora (CASE) OBJETIVO EDUCACIONAL ACTIVIDADES DE APRENDIZAJE El alumno aprenderá a utilizar una - Investigar las diferentes herramientas de herramienta de apoyo para la ingeniería de software ingeniería de software. - En equipo de 3 exponer las diferentes herramientas de Ingeniería de Software BIBLIOGRAFÍA 5, 8 UNIDAD IV: Modelado de Requisitos con UML OBJETIVO EDUCACIONAL ACTIVIDADES DE APRENDIZAJE El alumno conocerá el modelado de requisitos en UML, así como el uso correcto de las herramientas para cada uno de los diagramas. - - En equipo de 3 personas expondrán cada uno de los diagramas UML. Investigar Software para el manejo de UML En equipo de 3 realizar un proyecto en donde apliquen cada uno de los diagramas UML BIBLIOGRAFÍA 3, 5, 8 UNIDAD V: Métrica OBJETIVO EDUCACIONAL El alumno aplicación de comprenderá los aspectos ACTIVIDADES DE APRENDIZAJE la de En equipo de 3 investigar una herramienta de seguimiento y medición BIBLIOGRAFÍA calidad de software, los cuales deben ser medidos desde diferentes puntos de vista como son el análisis, desarrollo, funcionalidad, documentación y proceso, de software. Implementar una Herramienta para el seguimiento y medición para cada una de las fases de desarrollo de software. Participar en un foro de discusión en el cual se analizaran ls ventajas y desventajas de cada herramienta. 6 UNIDAD VI: Ingeniería de software y de calidad OBJETIVO EDUCACIONAL ACTIVIDADES DE APRENDIZAJE El alumno identificará la calidad de software a través de pruebas y auditorias en el proceso de creación y desarrollo de software. - En equipo de 3 personas analizar cada uno de los subtemas de la unidad. - Realizar pruebas de calidad en el software. BIBLIOGRAFÍA 4, 6, 7 UNIDAD VII: Reutilización del software OBJETIVO EDUCACIONAL El alumno aprenderá a identificar que componentes del software se puede reutilizar. ACTIVIDADES DE APRENDIZAJE - - Investigar cada uno de los subtemas y generar contenido para Internet. Elaborar un proyecto de software en el cual se apliquen técnicas de reutilización. 10.- BIBLIOGRAFÍA 1.- Pressman Roger S. Ingeniería del software. McGraw-Hill. 2001. 2.- Sommerville, Ian. Ingeniería de software. Prentice-Hall. 2001 3.- Larman, Craig. UML y patrones. Pearson. 1999. 4.- Lawrence. Ingeniería de Software. Pearson 5.- Booch, Grady. UML Lenguaje De Modelado Unificado. Pearson 6.- Weitzenfeld, Alfredo. Ingeniería De Software Orientada A Objetos . Thomson 7.- ESA “Software Engineering estándar” 8.- Booch, G, Diseno Orientado a Objetos. Ed. Prentice hall 11. PRÁCTICAS PROPUESTAS • Normas para el aseguramiento de la calidad durante el proceso de software. • Enfoque estructurado vs. Orientado a Objetos. • Modelos de desarrollo de proceso de software: • Herramientas CASE. BIBLIOGRAFÍA 3, 5, 6, 7, 8