Información Básica
-
Créditos: 3
-
Horas de trabajo acompañado: 5 / semana (3 horas clase, 2 horas taller)
-
Horas de trabajo independiente: 4 / semana
-
Pre-requisitos: Diseño de Interfaces Humano-Computador, Procesos y Diseño de Software
-
Tipo de curso: Núcleo de Formación Fundamental.
Descripción del Curso
Los sistemas de información, aplicaciones y software de todo tipo forman parte integral de nuestras vidas. Desde el software de nuestro computador, teléfono celular o el software comercial que manejamos en la empresa, a todos nos ha pasado alguna vez que el ‘sistema’ o software no funciona de la manera correcta o funciona con defectos.
Son múltiples las causas de los defectos y sería muy difícil, en ocasiones, encontrar la causa raíz de los defectos de un software. Sin embargo, estos funcionamientos inapropiados o defectos pueden ser minimizados si se realizan correctamente procesos de pruebas de software en diferentes niveles que aporten fiabilidad a la calidad del software.
A continuación se presenta el curso Construcción de Software y pruebas en el cual los participantes comprenderán las buenas prácticas en construcción de software, la importancia de las pruebas de software y conocerán su proceso desde la planeación, análisis y diseño de las pruebas en la etapa de ingeniería y diseño del ciclo de vida de software, hasta la ejecución y evaluación de las pruebas.
Objetivos
Al finalizar el curso los participantes podrán:
-
Aplicar “buenas prácticas” en los procesos de desarrollo de software.
-
Manejo de versiones
-
PSP
-
Agilismo
-
Gestión de riesgos
-
Seguridad (Aclarar)
-
-
Comprender la importancia de las pruebas de software y de los insumos requeridos dentro de todo el ciclo de diseño y desarrollo de software.
-
Conocer las etapas del proceso de pruebas de software y su interacción con las diferentes etapas del diseño y desarrollo de software.
-
Explicar los diferentes tipos y niveles de pruebas de software existentes.
-
Diseñar, ejecutar y evaluar pruebas funcionales de software.
-
Diseñar, ejecutar y evaluar pruebas no funcionales de software.
-
Identificar los tipos de pruebas funcionales que pueden ser automatizadas, sus beneficios y factores críticos de éxito.
-
-
Desarrollar, validar y probar un producto de software de tamaño mediano
-
Reconocer las “buenas prácticas” en los procesos de desarrollo de software.
-
Identificar los aspectos más importantes en los procesos de verificación y validación de software.
-
Enunciar los aspectos más importantes del desarrollo formal de Software.
-
Construir e integrar componentes de software de acuerdo a especificaciones y diseños establecidos.
-
Evaluar y validar soluciones de software con respecto a las especificaciones establecidas.
-
-
Utilizar los procesos metódicos de análisis, diseño, desarrollo, validación y mantenimiento de software en un proyecto real.
-
Implementar una solución de software siguiendo una metodología específica, desde la etapa de obtención de requerimientos hasta la validación del producto desarrollado.
-
Competencias técnicas específicas que se desarrollan
-
Lenguaje de programación Java (intermedio).
-
Lenguaje de Modelado – UML (intermedio).
-
Herramientas de seguimiento de proyectos PSP (Intermedio).
Contenido
Capítulo 1: Introducción
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
1 | 3 | Presentación del curso. Introducción. Retos de desarrollo, y la validación y verificación del software | ||
2 | 2 | Práctica | ||
3 | 3 | Principales conceptos del trabajo en equipo, incluyendo responsabilidades para tareas concretas y estructura de reuniones y horario de trabajo | ||
4 | 2 | Definición del proyecto semestral | ||
5 | 3 | Los roles y responsabilidades en un equipo de software. Resolución de conflictos en los Equipo. Riesgos asociados con equipos virtuales (comunicación, percepción, la estructura) | ||
6 | 2 | Práctica. Trabajo en proyecto semestral |
Total de Horas: 15
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
1 – 6 | 12 | Lecturas, Tareas semanales y resolución de problemas en temas vistos |
Capítulo 2: Manejo del Riesgo y manejo de release
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
7 | 3 | El papel del riesgo en el ciclo de vida. Categorías de riesgo : Seguridad, mercado, financiero, tecnología, recursos humanos, calidad, estructura y proceso | ||
8 | 2 | Práctica | ||
9 | 3 | manejo de release. Entornos de programación que automatizan los procesos de construcción de software (Ej. Construcción automática) | ||
10 | 2 | Herramientas de integración: Conceptos y mecanismos |
Total de Horas: 10
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
7 – 10 | 8 | Lecturas, Tareas semanales y trabajo en proyecto semestral |
Capítulo 3: Construcción (Desarrollo de Software)
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
11 | 3 | Construcción (Desarrollo). Estándares en el desarrollo de software | ||
12 | 2 | Práctica. Refactoring. | ||
13 | 3 | Desarrollo Formal de Software | ||
14 | 2 | Taller | ||
15 | 3 | Sistemas de reingeniería. Reuso. Segmentos de código. Librerias y frameworks. Componentes. Lineas de productos | ||
16 | 2 | Práctica | ||
17 | 3 | Calidad de Software (Software reliability, system reliability and failure behavior) | ||
18 | 2 | Trabajo en proyecto semestral |
Total de Horas: 20
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
11 – 18 | 16 | Lecturas, Tareas semanales y trabajo en proyecto semestral |
Capítulo 4: Pruebas
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
19 – 28 |
-
Testing types, including human computer interface, usability, reliability, security, conformance to specification
-
Testing fundamentals
-
Unit, integration, validation, and system testing
-
Test plan creation and test case generation
-
Black-box and white-box testing techniques
-
Regression testing and test automation
-
-
Defect tracking
-
Limitations of testing in particular domains, such as parallel or safety-critical systems
-
Verification and validation of non-code artifacts (documentation, help files, training materials)
Total de Horas: 25
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
19 – 28 | 20 | Lecturas, Tareas semanales y trabajo en proyecto semestral |
Capítulo 5: Evolución del Software
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
29 | 3 | Evolución del Software | ||
30 | 2 | Práctica | ||
31 | 3 | Mantenimiento de Software. Características del software mantenible | ||
32 | 2 | Taller |
Total de Horas: 10
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
29 – 32 | 8 | Lecturas, Tareas semanales y trabajo en proyecto semestral |
Uso de material en exámenes
No está permitido el uso de notas de clase, bibliografía, calculadoras, computadores personales, teléfonos celulares ni ningún otro equipo electrónico.
Asistencia
Obligatoria
Bibliografía
-
Ingeniería de Software, un enfoque práctico. 7ed. Roger S. Pressman. McGraw Hill. Madrid, 2010.
-
Ingeniería de Software. 9ed. Ian Sommerville. Pearson Educación S.A. Madrid, 2011.
-
Ingeniería de Software. Un enfoque desde la guía SWEBOK. Salvador Sánchez, Miguel Ángel Sicilia y Daniel Rodriguez. Alfaomega. México D.F, 2012.
-
The Unified Modeling Language reference manual. – 2ed. James Rumbaugh, Ivar Jacobson, Grady Booch.
-
The rational unified process and introduction. – 2ed. Philippe Kruchten.
-
Fundamentos de Pruebas de Software. R. Black and G. Rueda Sandoval. RBCS, Inc. 2011.
Instalaciones
Salón de clase con computador y proyector. Laboratorio de Ingeniería de Sistemas y Computación.