Construcción de Software y Pruebas

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:

  1. Aplicar “buenas prácticas” en los procesos de desarrollo de software.
    1. Manejo de versiones
    2. PSP
    3. Agilismo
    4. Gestión de riesgos
    5. Seguridad (Aclarar)
  2. 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.
    1. Conocer las etapas del proceso de pruebas de software y su interacción con las diferentes etapas del diseño y desarrollo de software.
    2. Explicar los diferentes tipos y niveles de pruebas de software existentes.
    3. Diseñar, ejecutar y evaluar pruebas funcionales de software.
    4. Diseñar, ejecutar y evaluar pruebas no funcionales de software.
    5. Identificar los tipos de pruebas funcionales que pueden ser automatizadas, sus beneficios y factores críticos de éxito.
  3. Desarrollar, validar y probar un producto de software de tamaño mediano
    1. Reconocer las “buenas prácticas” en los procesos de desarrollo de software.
    2. Identificar los aspectos más importantes en los procesos de verificación y validación de software.
    3. Enunciar los aspectos más importantes del desarrollo formal de Software.
    4. Construir e integrar componentes de software de acuerdo a especificaciones y diseños establecidos.
    5. Evaluar y validar soluciones de software con respecto a las especificaciones establecidas.
  4. Utilizar los procesos metódicos de análisis, diseño, desarrollo, validación y mantenimiento de software en un proyecto real.
    1. 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

  1. Lenguaje de programación Java (intermedio).
  2. Lenguaje de Modelado - UML (intermedio).
  3. 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
  1. Testing types, including human computer interface, usability, reliability, security, conformance to specification
  2. Testing fundamentals
    1. Unit, integration, validation, and system testing
    2. Test plan creation and test case generation
    3. Black-box and white-box testing techniques
    4. Regression testing and test automation
  3. Defect tracking
  4. Limitations of testing in particular domains, such as parallel or safety-critical systems
  5. 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

Integración Curricular

Resultados de Programa (ABET)

(A) La habilidad para aplicar conocimientos de matemáticas, ciencias e ingeniería.

(B) La habilidad para analizar un problema e identificar los requerimientos necesarios para su definición y solución.

(C) La habilidad para diseñar, implementar y evaluar procesos y sistemas computacionales.

(D) La habilidad para funcionar en equipos de trabajo.

(E) El entendimiento de la responsabilidad profesional y ética.

(F) La habilidad para comunicarse efectivamente.

(G) La habilidad para analizar los impactos de la computación y la ingeniería en las personas, organizaciones y la sociedad.

(H) El reconocimiento de la necesidad de, y la habilidad para, continuar con el desarrollo profesional.

(I) La habilidad para usar las técnicas, destrezas y herramientas modernas para la práctica de la computación.

(J) La habilidad para aplicar los fundamentos y principios de las matemáticas y de la computación en el modelamiento y diseño de sistemas computacionales de manera que se demuestre comprensión de las ventajas y desventajas en las decisiones de diseño.

(K) La habilidad para aplicar los principios de diseño y desarrollo de software en la construcción de sistemas de diferente complejidad.

Relevancia del curso con los resultados de programa

Resultados de Programa
A B C D E F G H I J K
Relevancia 3 2 5 2 2 2 5

Escala: (1) baja relevancia - (5) alta relevancia.

Integración de objetivos, contenido y metodología del curso

El curso es presencial y con participación y trabajo en clase. Se asignarán investigaciones, ejercicios y lecturas. Durante la sesión se expondrán los conceptos acompañados de ejemplos, se fomentará la participación de los estudiantes. Se realizará una exposición por cada estudiante relacionada con temas de Ingeniería de Software. Se desarrollará a lo largo del semestre un Proyecto en grupos con entregas y sustentaciones parciales.

Resultados del Programa Indicadores de Desempeño Objetivos/Contenido del Curso Actividades de aprendizaje Instrumentos de medición
(A) Aplicación de Conocimientos (A1) Identificar los fundamentos científicos y los principios de ingeniería que rigen un proceso o sistema. (Conocimiento) (A2) Resolver problemas relacionados con la disciplina y otras áreas por medio de la utilización de conocimientos, modelos y formalismos de las ciencias de la computación, las matemáticas y la ingeniería. (Aplicación) (A3) Analizar conjuntos de datos. (Análisis) Capítulo 1 Exposiciones del profesor, solución de ejercicios y lecturas Exámenes
(B) Análisis de problemas y requerimientos (B3) Sintetizar la información, evidencias y hechos necesarios para analizar un problema. (Análisis - Síntesis). Obj. 3,6 / Cap. 2,3 Exposiciones del profesor, Talleres y desarrollo de proyectos Exámenes, miniproyecto, proyecto semestral y tareas
(C) Diseño (C1) Utilizar estándares de codificación en la implementación de componentes de software. (Aplicación). (C2) Identificar componentes, interacciones, relaciones e interfaces entre componentes. (Análisis). (C4) Evaluar un componente de software de acuerdo a su complejidad temporal y espacial. (Evaluación). Capítulos 2,3,4 Solución de ejercicios y lecturas Proyectos y tareas
(D) Trabajo en equipo (D2) Participar en tareas y en la toma de decisiones. (Respuesta - Afectivo). (D3) Integrar diferentes puntos de vista, información, críticas y retroalimentación para proponer una solución. (Síntesis). (D4) Definir tareas, roles y responsabilidades. (Aplicación). Obj. 1,2,5,6 Desarrollo de proyectos (2) Mniproyecto y Proyecto semestral
(F) Comunicación efectiva (F1) Producir textos de manera efectiva teniendo en cuenta la estructura, coherencia, flujo, ortografía y correcto uso del lenguaje. (Aplicación). (F2) Comunicarse de manera efectiva de acuerdo al público objetivo haciendo uso correcto del lenguaje, estilo, tiempo y expresión corporal. (Aplicación). (F3) Utilizar recursos gráficos para comunicar y expresar una idea. (Aplicación). (F4) Defender ideas con precisión y claridad. (Evaluación). Capítulos 2,3,4 Proyectos y tareas Presentaciones orales y reportes escritos
(I) Uso de herramientas y técnicas (I1) Utilizar herramientas de desarrollo de software. (Aplicación). (I2) Utilizar herramientas de diseño, modelamiento y simulación. (Aplicación). (I3) Combinar herramientas de software y hardware para resolver un problema. (Síntesis). (I4) Demostrar flexibilidad para adaptarse a diferentes paradigmas y lenguajes de programación. (Valuación). Capítulos 2,3,4 Laboratorios y lecturas Proyecto y tareas
(K) Desarrollo de software (K2) Implementar e integrar componentes de software respetando los criterios de diseño. (Aplicación). (K3) Establecer invariantes y propiedades de componentes de software. (Análisis). (K4) Evaluar y verificar soluciones de software con respecto a las restricciones y requerimientos establecidos. (Aplicación - Evaluación). Todos Proyectos (2) Exámenes, miniproyecto y proyecto semestral

Contribución al Desarrollo de Competencias Genéricas

La tabla muestra que aspectos de las competencias de Comunicación Escrita, Lectura Crítica y Razonamiento Cuantitativo son evaluados a través de los factores ABET correspondientes. Por otra parte, las competencias de Ciudadanía e Inglés se favorecen gracias a la metodología del curso y también, gracias a los factores ABET correspondientes.

Resultados de Programa
A B C D E F G H I J K
Ciudadanía U U
Comunicación escrita E
Lectura crítica E
Inglés U
Razonamiento cuantitativo E E

E- Se evalúa. U - Se usa

Contribución a los objetivos educacionales

La Carrera de Ingeniería de Sistemas y Computación plantea los siguientes objetivos educacionales, El estudiante graduado de la carrera será capaz de:

  1. EO1. Ejercitar la práctica de la Ingeniería de Sistemas y Computación profesionalmente.
  2. EO2. Diseñar y operar sistemas de computación que contribuyen a la solución de problemas relacionados a la disciplina, otra área de la ciencia y la ingeniería u otras disciplinas.
  3. EO3. Contribuir al bienestar de las comunidades desde posiciones prominentes en la industria, academia, sector público o como un emprendedor.
  4. EO4. Ser distinguido por su bases sólidas en computación, su sentido de ciudadanía responsable, su profesionalismo y liderazgo.
  5. EO5. Continuar su desarrollo profesional o involucrarse en estudios de posgrado.
Resultados de Programa
A B C D E F G H I J K
EO1 X X X X
EO2 X X X X X
EO3 X X X
EO4 X X X
E05 X

Reglas del curso

Calificación y Balance de Evaluación del Curso

Instrumento Porcentaje A B C D E F G H I J K
Parcial I 25 % 55 % 20 % 25 %
Parcial II 25 % 20 % 50 % 20 % 10%
Proyecto 30 % 15 % 30% 10 % 45 %
Tareas 5 % 100 %
Talleres 15 % 50 % 50 %

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

  1. Ingeniería de Software, un enfoque práctico. 7ed. Roger S. Pressman. McGraw Hill. Madrid, 2010.
  2. Ingeniería de Software. 9ed. Ian Sommerville. Pearson Educación S.A. Madrid, 2011.
  3. 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.
  4. The Unified Modeling Language reference manual. - 2ed. James Rumbaugh, Ivar Jacobson, Grady Booch.
  5. The rational unified process and introduction. - 2ed. Philippe Kruchten.
  6. 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.

 
materias/construccionsoftwarepruebas.txt · Última modificación: 2016/08/31 15:10 por juancmartinez
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki