Guía Docente 2019-20
CALIDAD DEL SOFTWARE

DATOS BÁSICOS DE LA GUÍA DOCENTE:

Materia: CALIDAD DEL SOFTWARE
Identificador: 30545
Titulación: GRADUADO EN INGENIERÍA INFORMÁTICA (SEMIPRESENCIAL). 2008 (BOE 15/12/2008)
Módulo: INGENIERÍA DEL SOFTWARE
Tipo: OBLIGATORIA
Curso: 3 Periodo lectivo: Segundo Cuatrimestre
Créditos: 3 Horas totales: 75
Actividades Presenciales: 12 Trabajo Autónomo: 63
Idioma Principal: Castellano Idioma Secundario: Inglés
Profesor: Correo electrónico:

PRESENTACIÓN:

Uno de los problemas más acuciantes que afronta actualmente el mundo de la ingeniería informática es la producción de software de calidad. Desde la década de los 70 este tema ha sido motivo de preocupación para especialistas, ingenieros, investigadores y fabricantes de software, los cuales han realizado gran cantidad de investigaciones al respecto con el objetivo fundamental de obtener un software de calidad a través de una serie de procesos basados en el establecimiento de métricas, métodos de evaluación, seguimiento y realimentación en el ciclo de vida de desarrollo.

Se puede definir la calidad del software como el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad. La calidad del software es medible y varía de un sistema a otro o de un programa a otro. Un software elaborado para el control de naves espaciales debe ser confiable al nivel de "cero fallos"; un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad; mientras que un producto de software para ser explotado durante un largo período (10 años o más), necesita ser confiable, mantenible y flexible para disminuir los costes de mantenimiento y perfeccionamiento durante el tiempo de explotación.

La obtención de un software con calidad implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, menor mantenimiento y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software. El objetivo de la asignatura Calidad del Software es dotar al alumno de las competencias necesarias para medir, controlar y garantizar el desarrollo de software bajo unos estándares de calidad preestablecidos.

COMPETENCIAS PROFESIONALES A DESARROLLAR EN LA MATERIA:

Competencias Generales de la titulación G02 Capacidad innovadora para proponer y encontrar formas nuevas y eficaces de realizar cualquier tarea y/ o función dentro de su entorno profesional con una elevada motivación por la calidad
G03 Capacidad para trabajar dentro de equipos multidisciplinares para conseguir metas comunes, anteponiendo los intereses colectivos a los personales
G06 Capacidad para analizar y resolver los problemas o imprevistos complejos que puedan surgir durante la actividad profesional dentro de cualquier tipo de organización socio-económica
G07 Capacidad para trabajar con flexibilidad y versatilidad para adaptarse a las necesidades y exigencias de su entorno profesional
G09 Capacidad para tomar decisiones de manera imparcial y desde un punto de vista racional
G11 Habilidad para desenvolverse en un entorno multicultural e internacional, relacionándose con personas de distintas nacionalidades, idiomas y culturas
Competencias Específicas de la titulación E05 Capacidad para evaluar los aspectos económicos y empresariales de las actividades de la ingeniería
E06 Capacidad para aplicar procesos de aseguramiento de la calidad en procesos y productos
E12 Capacidad para gestionar la complejidad a través de la abstracción, el modelado, las ?best practices?, los patrones, los estándares y el uso de herramientas apropiadas
E22 Capacidad para desarrollar labores de implementación en las que se requiera un alto grado de conocimientos técnicos en diversos ámbitos (programación, configuración de equipos hardware y de comunicaciones, etc.).
E26 Capacidad para definir y gestionar políticas de calidad para sistemas informáticos y de comunicaciones aplicando principios cuantitativos basados en métricas y estadísticas
Resultados de Aprendizaje R01 Trabajar de forma metódica
R02 Automatizar tareas repetitivas
R03 Anticiparse a los problemas
R04 Analizar riesgos
R05 Aplicar procesos de calidad rigurosamente
R06 Diseñar soluciones a problemas.
R07 Dominar metodologías para la construcción organizada de software
R08 Interaccionar en inglés en un escenario de trabajo
R09 Trabajar productivamente en equipo
R10 Aplicar técnicas matemáticas a la ingeniería

REQUISITOS PREVIOS:

Asignatura “Ingeniería del Software”.

PROGRAMACIÓN DE LA MATERIA:

Contenidos de la materia:

1 - Principios de la Calidad del Software
    1.1 - Introducción: ¿Qué es la calidad software?
    1.2 - Actividades para garantizar la calidad del software
    1.3 - Ingeniería de la Calidad
2 - Métricas para medir la calidad del software
    2.1 - Métricas del producto
    2.2 - Métricas del Proceso
    2.3 - Mëtricas en Programación Orientada a Objetos
3 - Gestión de la Configuración y del Sofware
    3.1 - Principios Básicos
    3.2 - Patrones
    3.3 - Control de Versiones en Práctica
    3.4 - Integración Continua
4 - Pruebas
    4.1 - Conceptos Básicos
    4.2 - Actividades esenciales, gestión de los tests y automatización
    4.3 - Cobertura
    4.4 - Partición del dominio de parámetros de entrada y pruebas de límites.
    4.5 - Control de flujo, dependencias e interacciones.
    4.6 - Patrones
    4.7 - Frameworks
    4.8 - Desarrollo Orientado a Tests
5 - Más allá de las pruebas
    5.1 - Prevención de defectos y mejora de procesos
    5.2 - Inspecciones de Código y Verificación Formal
    5.3 - Assertion Driven Development y Diseñol por Contrato
    5.4 - Tolerancia a Errores y Contención de Fallos

La planificación de la asignatura podrá verse modificada por motivos imprevistos (rendimiento del grupo, disponibilidad de recursos, modificaciones en el calendario académico, etc.) y por tanto no deberá considerarse como definitiva y cerrada.


METODOLOGÍAS Y ACTIVIDADES DE ENSEÑANZA Y APRENDIZAJE:

Metodologías de enseñanza-aprendizaje a desarrollar:

El profesor seguirá las siguientes metodologías de enseñanza:

- Antes de cada sesión presencial el profesor indicará el material a preparar y las tareas a realizar

- Los alumnos de manera autónoma deberán trabajar esa materia y realizar los ejercicios correspondientes (si los hubiere).

- Sesiones Presenciales: El profesor utilizaraá esas sesiones para resolver dudas sobre la materia que ya ha debido ser estudiado , trabajos a entregar así como introducir el material para las siguientes semanas.

- Sesiones de tutoría: La adquisición de competencias se facilita mediante la observación del trabajo de expertos en la materia y la discusión interactiva sobre los asuntos prácticos. De este modo se dedicarán sesiones en las que los alumnos observarán al profesor durante el proceso de resolución de un problema para que luego ellos puedan enfrentarse a problemas similares de modo autónomo.

- Estudio de casos.

- Aprendizaje basado en casos y problemas: Análisis y evaluación de casos reales relacionados con la calidad del software.

Para optimizar la adopcioón de las competencias fijadas para esta asignatura se recomienda la siguiente metodología de aprendizaje:

- Seguimiento y estudio al día de la materia, según el calendario previsto por el profesor.

- Resolución de posibles dudas sobre la materia de cada semana durante las tutorías de esa semana o de la siguiente.

- Participación activa en las sesiones presenciales para poder así resolver aquellas dudas más importantes.

- Realización de los ejercicios y cuestiones prácticas propuestas por el profesor semanalmente. Que ciertas tareas no sean obligatorias no significa que no sean importantes. El trabajo en problemas prácticos ayuda a asimilar los conceptos teóricos y apreciar su utilidad y finalidad.

Volumen de trabajo del alumno:

Modalidad organizativa Métodos de enseñanza Horas estimadas
Actividades Presenciales
Clase magistral 4,5
Casos prácticos 3
Resolución de prácticas, problemas, ejercicios etc. 1,5
Actividades de evaluación 3
Trabajo Autónomo
Asistencia a tutorías 3
Estudio individual 24
Preparación de trabajos individuales 17
Preparación de trabajos en equipo 8
Tareas de investigación y búsqueda de información 7
Lectura libre 3
Otras actividades de trabajo autónomo 1
Horas totales: 75

SISTEMA DE EVALUACIÓN:

Obtención de la nota final:

Pruebas escritas: 25 %
Trabajos individuales: 30 %
Trabajos en equipo: 10 %
Prueba final: 20 %
Participación y Trabajos Voluntarios: 15 %
TOTAL 100 %

*Las observaciones específicas sobre el sistema de evaluación serán comunicadas por escrito a los alumnos al inicio de la materia.

BIBLIOGRAFÍA Y DOCUMENTACIÓN:

Bibliografía básica:

Patton, Ron ?Software Testing?, 2nd ed., Sams Publishing, 2005
Horch, John W. ?Practical Guide to Software Quality Management?, Artech House, 2003
Humble, Jez. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Pearson Education, 2010
Nygard, Michael. Release It!: Design and Deploy Production-Ready Software. Pragmatic Bookshelf, 2007.

Bibliografía recomendada:

Kan, Stephen. ?Metrics and Models in Software Quality Engineering?, Addison Wesley, 2002
Evans, Isabel ?Achieving Software Quality through Teamwork?, Artech House, 2004
Ravindranath, Pandian. ?Software Metrics. A Guide to Planning, Analysis andApplication?, Auerbach Publications, 2004
Stamelos, Ioannis G. ?Agile Software Development Quality Assurance?, IdeaGroup Inc, 2007
Burnstein, Ilene. ?Practical Software Testing?, Springer-Verlag, 2003
Lewis, William. ?Software Testing and Continuous Quality Improvement? 2nd ed.,Auerbach Publications, 2005
Tim Riley, Adam Goucher. Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice). O'Reily Media, 2009
Dorothy Graham, Mark Fewster, Experiences of Test Automation: Case Studies of Software Test Automation, Addison-Wesley Professional, 2012

Páginas web recomendadas:

The most popular Software Testing and Quality Assurance discussions site. With over 50 forums that cover almost every area in software testing, quality assurance and quality engineering. http://www.qaforums.com/
Grupo de calidad del software, ingenieri?a y gestio?n en espan?ol. http://www.calidaddelsoftware.com/
El sistema de calidad del centro de vuelos espacial de la NASA. http://sw-assurance.gsfc.nasa.gov/disciplines/quality/
Enlaces a gran nu?mero de instituciones y organizaciones relacionados con la Calidad del Software. http://www.soft.com/Institute/HotList/
Project Management Institute (PMI). PMI is the world?s leading not-for-profit association for the project management profession. http://www.pmi.org
Algunos blogs relacionados con la calidad del software http://nobugleftbehind.com/ http://jmbeas.blogspot.com/ http://adam.goucher.ca
Comunidad CMS: http://www.cmcrossroads.com/


* Guía Docente sujeta a modificaciones