Diagrama de temas

  • Ingeniería del Software II (2011)

    ingenieria_software_ii.jpg

         

    Profesores

    Pablo Sánchez Barreiro

    Carlos Blanco Bueno

    Juan Hernández Marqués

    Francisco Ruiz González

      

    Departamento de Matemáticas, Estadística y Computación

      

      

      

      

      

      

      

      

    Los objetivos generales de la asignatura son:

    1. Continuar la asignatura de "Ingeniería del Software I", explicando elementos de la Ingeniería de Sistemas Software que, por razones de tiempo, no pudieron abordarse en Ingeniería del Software I, tales como Pruebas de Sistemas Software o Control de la Calidad.

    2. Adquirir conocimientos y destrezas básicas sobre Gestión de Proyectos Software, tales como Gestión de Tiempo o Costes.

    3. Saber planificar y gestionar proyectos de desarrollo y/o mantenimiento de software.

     

    Palabras Clave de la Asignatura

    Pruebas de Sistemas Software, Ingeniería del Software, Diagramas de Gantt y Pert, Mantenimiento y Configuración de Sistemas Software, Gestión de Proyectos Software, Gestión de Costes Proyectos Software, Planificación Temporal Proyectos Software, Calidad Software, Gestión de Riesgos.

  • Programa

    programa

     

     

    Datos identificativos de la Asignatura

    • Asignatura: Ingeniería del Software II

    • Departamento / Área: Departamento de Matemáticas, Estadística y Computación

    • Título: Grado en Ingeniería Informática

    • Centro: Facultad de Ciencias

    • Créditos ECTS: 6

    • Idioma de impartición: Español

    • Profesores responsables: Pablo Sánchez Barreiro, Carlos Blanco Bueno, Juan Hernández Marqués y Francisco Ruiz González

     

     

     

        Programa de la asignatura    

     

     

    Teoría

    Parte A. Continuación de Ingeniería del Software

    • Tema 1. Pruebas de sistemas software

      • Estrategias de prueba.

      • Pruebas de unidad.

      • Pruebas de integración.

      • Pruebas de validación.

      • Diseño de Casos de Prueba.

      • Métodos de prueba: nivel de clase; nivel entre-clases.
    • Tema 2. Calidad de sistemas y procesos software

      • Concepto y factores de calidad del software, calidad de producto: Norma ISO 9126 y calidad de la información.

      • Calidad del proceso de desarrollo del software: ISO 90003, CMMI e ISO 15504.

      • Métricas de los productos y procesos software.

      • Proceso GQM.

      • Gestión de la calidad.: aseguramiento, verificación y validación del software.

      • Revisiones, inspecciones y auditorías.

       

    Parte B. Gestión de proyectos software

    • Tema 3. Fundamentos de gestión de proyectos

      • Concepto de proyecto, ciclo de vida y procesos de gestión de proyectos - PMBOK.

      • Conceptos básicos y áreas de trabajo e interacciones.

      • Métricas de control de proyectos: Earned Value Management (EVM).
    • Tema 4. Gestión de la integración y el alcance

      • Planificación de proyectos.

      • Plan de proyectos software - IEEE 1058.

      • Control global de los cambios.

      • Iniciación de un proyecto.

      • Análisis de necesidades.

      • Estudio de viabilidad.

      • Definición del alcance: estructuras de descomposición de trabajos; diagramas de flujos de trabajo.
    • Tema 5. Gestión de costes

      • Motivación.

      • Retos de la estimación de costes software.

      • Técnicas generales de estimación de costes.

      • Elaboración de presupuestos.

      • Estimación del tamaño mediante puntos función.

      • Método COCOMO II para la estimación del esfuerzo y el coste.

      • Control de costes.
    • Tema 6. Gestión del tiempo

      • Introducción.

      • Definición de actividades.

      • Secuenciación.

      • Estimación de la duración.

      • Desarrollo del calendario.

      • Representaciones del calendario.

      • Definición de actividades.

      • Secuenciación: diagramas en red.

      • Estimación de la duración.

      • Desarrollo del calendario: método PERT; método CPM.

      • Representaciones del calendario.
    • Tema 7. Gestión de riesgos

      • Planificación de los riesgos: identificación; análisis; priorización; planificación de respuestas.

      • Supervisión y control de riesgos.

       

    Parte C. Mantenimiento y configuración de sistemas software

    • Tema 8. Mantenimiento de sistemas software

      • Introducción.

      • Definiciones.

      • Tipos de mantenimiento.

      • Principales retos del mantenimiento software.

      • Sistemas heredados.

      • Técnicas de gestión del mantenimiento.

      • Norma ISO 14764.

      • Técnicas de mantenimiento: ingeniería inversa, refactorización y métricas.

      • Desarrollo software orientado a aspectos como técnica de mejora del mantenimiento.
    • Tema 9. Gestión de la configuración de sistemas software

      • Introducción.

      • Definiciones.

      • Trazabilidad.

      • Estándar IEEE 828-1998.

      • Identificación de versiones.

      • Árboles de características.

      • Control de versiones.

      • Gestión de entregas.

       

    Parte D. Miscelánea

    • Tema 10. Aspectos adicionales de los proyectos software

      • Capacidades y habilidades requeridas.

      • Roles.

      • Gestión de los recursos humanos.

      • Gestión de las comunicaciones.

      • Gestión de las adquisiciones.

      • Aspectos legales.

      • Aspectos éticos.

      • Prevención de riesgos laborales.

      • Subcontratación.

       

       

    Practicas (2009-2010)

    • Práctica 0. Pruebas de sistemas software.

    • Práctica 1. Mantenimiento de sistemas software.

    • Práctica 2. Métricas de sistemas software.

    • Práctica 4. Gestión de la configuración con subversion.

    • Práctica 5. Gestión de proyectos con Microsoft Project.

    • Práctica 6. Estimación de costes software con COCOMO II.

  • Bibliografía

    bibliografia

      

     

        Básica    

     

    •  Sommerville (2005): «Ingeniería del software». 7ª Ed. Addison-Wesley. Julio.

       

    Estándares

     

     

     

        Complementaria / Específica por temas    

     

    Gestión de proyectos software

    • Frederick P. Brooks (1995): «The mythical man-month: essays on software engineering». Anniversary Edition.

    • ANSI/IEEE (1998): «Std. 1058: IEEE standard for software project management plans». IEEE Computer Society, USA.

      

    Calidad de procesos y productos software

    • ISO/IEC (2001): «ISO/IEC 9126-1:2001 Software Engineering - Product Quality - Part 1: Quality Model».

      

    Pruebas de sistemas software

    • Colin Willcock, Thomas Deiß , Stephan Tobies, Stefan Keil, Federico Engler & Stephan Schulz (20059: «An introduction to TTCN-3». Wiley.

    • Paul Baker, Zhen Ru Dai, Jens Grabowski, Øystein Haugen, Ina Schieferdecker & Clay Williams (2007): «Model-driven testing: using the UML testing profile». Springer.

      

    Gestión de costes en sistemas software

    • David Garmus & David Herron (2002): «Function point analysis: measurement practices for successful software projects». Addison-Wesley.

    • Caper Jones (2007): «Estimating software costs: bringing realism to estimating». McGraw-Hill.

    • Barry W. Boehm, Chris Abts, A. Winsor Brown, Sunita Chulani, Bradford K. Clark, Ellis Horowitz, Ray Madachy, Donald J. Reifer & Bert Steece (2009): «Software cost estimation with COCOMO II».

      

    Mantenimiento de sistemas software

    • Penny Grubb & Armstrong A. Takang (2003): «Software maintenance: concepts and practice». World Scientific Publishing.

    • Martin Fowler (1999): «Refactoring: improving the design of existing code». Addison-Wesley.

    • ISO/IEC/IEEE (2006): «Software engineering - software life cycle processes - maintenance. Technical Report International Standard. ISO/IEC 14764:2006, IEEE Std 14764-2006». September.

    • The Institute of Electrical and Electronics Engineers (IEEE) (1992): «Standard for software maintenance. Technical report IEEE Std 1219-1993». December.

      

    Gestión de la configuración en sistemas software

    • C. Michael Pilato, Ben Collins-Sussman & Brian W. Fitzpatrick (2004): «Version control with subversion». O'Reilly.

    • Alexis Leon: «Software configuration management handbook». Artech Print.

    • Anne Mette Jonassen Hass: «Configuration management principles and practice». Addison-Wesley.

    • The Institute of Electrical and Electronics Engineers (IEEE) (2005): «Standard for software configuration management plans. Technical report IEEE Std 828-2005». August.

  • Materiales de Clase

    materiales

     

     

    Teoría

    Parte A. Continuación de Ingeniería del Software

    • MC-F-001. Tema 1. Pruebas de sistemas software.

    • MC-F-002. Tema 2. Calidad de sistemas y procesos software.

      

    Parte B. Gestión de proyectos software

    • MC-F-003. Tema 3. Fundamentos de gestión de proyectos

    • MC-F-004. Tema 4.1. Integración de proyectos software.

    • MC-F-005. Tema 4.2. Alcance de proyectos software.

    • MC-F-006. Tema 5. Gestión de costes.

    • MC-F-007. Tema 6. Gestión del tiempo.

    • MC-F-008. Tema 7. Gestión de riesgos.

      

    Parte C. Mantenimiento y configuración de sistemas software

    • MC-F-009. Tema 8. Mantenimiento de sistemas software.

    • MC-F-010. Tema 9. Gestión de la configuración de sistemas software.

      

    Parte D. Miscelánea

    • MC-F-011. Tema 10.1. Seminario programación orientada a aspectos.

    • MC-F-012. Tema 10.2. Enunciado del trabajo.

    • MC-F-013. Tema 10.3. Trabajos disponibles sobre aspectos adicionales de los proyectos software.

      

      

    Ejercicios

    Parte A. Continuación de Ingeniería del Software

    • MC-F-014. Ejercicios del Tema 1. Pruebas de sistemas software.

    • MC-F-015. Ejercicios del Tema 2. Calidad de sistemas y proyectos software.

      

    Parte B. Gestión de proyectos software

    • MC-F-016. Ejercicios del Tema 3. Fundamentos de gestión de proyectos.

      • MC-F-017. Material para el Ejercicio del Tema 3. Plantilla valor conseguido en formato Microsoft Excel.
    • MC-F-018. Ejercicios del Tema 4. Integración y alcance de proyectos software.

    • MC-F-019. Ejercicios del Tema 5. Gestión de costes.

    • MC-F-020. Ejercicios del Tema 6. Gestión del tiempo.

      

    Parte C. Mantenimiento y configuración de sistemas software

    • MC-F-022. Ejercicios del Tema 8. Mantenimiento de sistemas software.

      • MC-F-023. Material para el Ejercicio del Tema 8. Material adicional en formato zip.
    • MC-F-024. Ejercicios del Tema 9. Gestión de la configuración de sistemas software.

  • Prácticas

    practicas

      

     

    • PR-F-001. Prácticas del Tema 1. Pruebas de sistemas software.

    • PR-F-002. Solución a las Prácticas del Tema 1. (zip).
    • PR-F-003. Prácticas del Tema 2. Calidad de sistemas y procesos software.

    • PR-F-004Material complementario para las Prácticas del Tema 2. (zip).
    • PR-F-005. Prácticas del Tema 3. Fundamentos de gestión de proyectos.

    • PR-F-006. Material complementario para las Prácticas del Tema 3. (zip).
    • PR-F-007Prácticas del Tema 4. Integración y alcance de proyectos software.
    • PR-F-008Prácticas del Tema 5. Gestión de costes.

    • PR-F-009. Material complementario para las Prácticas del Tema 5. (zip).
    • PR-F-010Prácticas del Tema 6. Gestión del tiempo.

    • PR-F-011. Material complementario para las Prácticas del Tema 6. (zip).

    • PR-F-012. Solución a las Prácticas del Tema 6. (zip).

  • Otros Recursos

    otros_recursos

     

     

    Tema 2. Calidad de sistemas software

    Enlaces de interés:

    • OR-F-001. SDMetrics. The Software Design Metrics tool for the UML.

    • OR-F-002. Visual Paradigm.

    • OR-F-003. Diagramas de Kiviat. (Wikipedia).

      

    Tema 3. Fundamentos de gestión de proyectos software

    Enlaces de interés:

    • OR-F-004. Project Management Institute.

      

    Tema 5. Gestión de costes

    Recursos bibliográficos:

    • OR-F-005. Comparison of the software cost estimating methods.

    • OR-F-006. Tutorial sobre puntos de función (HTML).

    • OR-F-007. Página web oficial de COCOMO II.

    • OR-F-008. Manual de COCOMO II.

    Libros electrónicos:

    • OR-F-009. «Estimating software costs: bringing realism to estimating». (Capers Jones, 2007).

    Lecturas avanzadas / referencias históricas:

    • OR-F-010. «Allow plenty of time for large-scale software». (W. Myers, 1989).

    • OR-F-011. «The cost of developing large-scale software». (R.W. Wolverton, 1974).

    • OR-F-012. «Software function, source lines of code, and development effort prediction: a software science validation». (A.J. Albrecht & J.E. Gaffney, 1983).

    • OR-F-013. «Underestimating costs in public works projects: error or lie?». (Bent Flyvbjerg, Mette Skamris Holm & Soren Buhl, 2007).

    Enlaces de interés:

    • OR-F-014. International Function Point Users Group (IFPUG).

    • OR-F-015. International conference on predictive models in software engineering.

    • OR-F-016. Lista de proyectos con evidentes estimaciones bajas. (Wikipedia).

      

    Tema 7. Gestión de riesgos

    Enlaces de interés:

    • OR-F-017. Entrada sobre análisis DAFO (SWOT analysis). (Wikipedia).

    • OR-F-018. Entrada sobre el diagrama de Ishikawa. (Wikipedia).

    • OR-F-019. Identificación de riesgos basada en taxonomías. (SEI Technical Report).

    • OR-F-020. Entrada sobre el análisis de sensibilidad. (Wikipedia).

    • OR-F-021. Entrada sobre el método de Montecarlo. (Wikipedia).

    Herramientas:

    • OR-F-022. SEPO Risk Management Toolkit.

    • OR-F-023. Syncopation's Decision Analytic Software tools (DPL software).

      

    Tema 8. Mantenimiento de sistemas software

    Material adicional:

    • OR-F-024. Ejemplo plantilla gestión de un bug con Bugzilla (edición).

    • OR-F-025. Ejemplo plantilla notificación de un bug documento.

    • OR-F-026. Ejemplo de ingeniería inversa de código.

    Libros electrónicos:

    • OR-F-027. «Software maintenance: concepts and practice». (Penny Grubb & Armstrong A. Takang, 2003).

    • OR-F-028. «Refactoring: improving the design of existing code». (Martin Fowler & Kent Beck, 1999).

    • OR-F-029. «Refactoring workbook». (William C. Wake, 2003).

    Recursos bibliográficos:

    • OR-F-030. Estándar ISO 14764.

    • OR-F-031. «Refactorings». (Martin Fowler, Kent Beck, John Brant, William Opdyke & Don Roberts, 1999).

    • OR-F-032. «Clone detection using abstract syntax trees». (I.D. Baxter, A. Yahin, L. Moura, M. Sant'Anna & L. Bier, 2002).

    • OR-F-033. «A metrics suite for object oriented design». (S.R. Chidamber & C.F. Kemerer, 1994).

    Referencias externas:

    • OR-F-034. Informe de las Conferencias de Ingeniería de Software de la OTAN de 1968-1969.

    • OR-F-035. «The Humble Programmer». (Edsger W. Dijkstra, 1972).

    • OR-F-036. «Software maintenance costs». (Jussi Koskinen, 2015).

    • OR-F-037. «Design stability measures for software maintenance». (S.S. Yau & J.S. Collofello, 1985).

    • OR-F-038. «Common refactorings, a dependency graph and some code smells: an empirical study of Java OSS». (S. Counsell, Y. Hassoun, G. Loizou & R. Najjar, 2006).

    • OR-F-039. «On the criteria to be used in decomposing systems into modules». (D.L. Parnas, 1972).

    Para saber más:

    • OR-F-040. «Journal of software maintenance and evolution: research and practice».

    • OR-F-041. European Conference on Software Maintenance and Reengineering (CSMR).

    • OR-F-042. Working Conference on Reverse Engineering (WCRE) 2010.

    Herramientas:

    • OR-F-043. Bugzilla. Bugzilla is server software designed to help you manage software development.

      

    Tema 9. Gestión de la configuración de sistemas software

    Recursos bibliográficas:

    • OR-F-044. «Estándar IEEE 828-2005». (2005).

    • OR-F-045. Convención de nombres de Eclipse.

    • OR-F-046. Árboles de características. (Wikipedia).

    • OR-F-047. «Staged configuration through specialization and multilevel configuration of feature models». (K. Czarnecki, S. Helsen & U. Eisenecker, 2005).

    • OR-F-048. Problema de Harry y Sally (funcionamiento subversion).

    Libros electrónicos:

    • OR-F-049. Control de versiones con Subversion». (Ben Collins-Sussman, Brian W. Fitzpatrick & C. Michael Pilato, 2002-2016).

    • OR-F-050. «Configuration management. Principles and practice». (Anne Mette Jonassen Hass, 2003).

    Herramientas:

    - Herramientas de control de versiones:

    • OR-F-051. Apache Subversion. Enterprise-class centralized version control for the masses.

    • OR-F-052. Concurrent Version System (CVS). CVS is a version control system, an important component of Source Configuration Management (SCM).

    - Herramientas de trazabilidad de requisitos:

    • OR-F-053. IBM - Rational DOORS.

    • OR-F-054. Caliber RM. Caliber (anteriormente, Borland Caliber) es una solución de requisitos completa que garantiza la conformidad normativa y la coherencia del desarrollo con sus necesidades empresariales.

    • OR-F-055. IBM Rational RequisitePro. La administración efectiva de los requisitos es la especialidad de esta solución. Promueve una mejor comunicación, mejora la colaboración de los equipos y reduce el riesgo de los proyectos.

    - Herramientas de construcción software:

    • OR-F-056. Apache Ant. Is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.

    • OR-F-057. GNU Make. Is a tool which controls the generation of executables and other non-source files of a program from the program's source files.

    • OR-F-058. Apache Maven. Is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

    - Modelado de árboles de características:

    • OR-F-059. Hydra. The goal of Software Product Line (SPL) is to create the appropriate infrastructure for facilitate the quick development of similar software systems in the same market segment.

    • OR-F-060. Pure Systems. The leading provider of software for product line and variant management software.

    • OR-F-061. FeatureIDE. An Eclipse plug-in for Feature-Oriented Software Development.

       

    Tema 10. Aspectos adicionales de los proyectos software

    • OR-F-062. Cómo estructurar un informe técnico.

    Material de aprendizaje:

    • OR-F-063Cómo elaborar y redactar un informe como un verdadero ingeniero software.

    • OR-F-064. Técnicas de trabajo en equipo: el abogado del diablo.

    • OR-F-065. «Por qué nos vuelve locos Steve Jobs en un escenario». (Delia Rodríguez, 2011). (Artículo de El País).

    • OR-F-066. Código ejemplo control de accesos.

  • Pruebas de Evaluación

    evaluacion

      

     

        Ejemplos de exámenes    

     

    • PE-F-002. Examen teórico parcial 2.
    • PE-F-003. Examen teórico final de junio.
    • PE-F-004. Examen teórico final de septiembre.

      

      

      

        Criterios de evaluación (2010-2011)    

     

    Evaluación Continua

    • Para superar la asignatura se deberán superar por separado dos partes: Teoría y Prácticas. La Nota Final será la media ponderada del 70% de Teoría y el 30% de Prácticas.

    • La nota de Teoría en Evaluación Continua vendrá determinada por:

      • 85%: Nota de las Pruebas Parciales que consistirán en preguntas cortas y en ejercicios. La fecha de los Exámenes Parciales se fijarán en la primera semana de clases y a partir de ahí serán inamovibles.

      • Los Exámenes Parciales se realizarán siempre en horarios de clase y en ningún caso durarán menos de dos horas.

      • El reparto del peso entre preguntas cortas y ejercicios se ponderará de acuerdo con la carga teórica y práctica de cada bloque.

      • Para la parte de Ejercicios, se dejará hacer uso de todo tipo de material escrito, incluyendo apuntes y/o ejercicios, así como calculadoras básicas. En ningún caso se dejará hacer uso de portátiles, agendas personales, teléfonos móviles inteligentes u otros dispositivos electrónicos parecidos. Especialmente, queda totalmente prohibido el uso de dispositivos con capacidades de comunicación inalámbricas.

      • Se considerarán Ejercicios Supuestos Prácticos que describan una situación real de la vida de un ingeniero informático, y donde, con los datos aportados, el alumno/a tenga que tomar una cierta decisión. Se valorará justificación de la respuesta, capacidad de síntesis, claridad de la redacción y precisión en el uso del lenguaje técnico.

      • Se deberá obtener al menos una media ponderada de 4,50 en las Pruebas Parciales Teóricas para poder superar la asignatura.

      • 15%: Trabajo en grupo (Tema 10) y su defensa en clase.
    • La Nota de Prácticas en Evaluación Continua vendrá determinada por la media ponderada del material entregado como resultado de la realización de las Prácticas de Laboratorio no guiadas.

    • Los Trabajos en Grupo (Teoría y Laboratorio) tendrán un reparto interno de puntos decidido por el propio grupo de alumnos/as.

       

    Evaluación Final

    • Los alumnos/as que no superen por Evaluación Continua de la asignatura, podrán optar a una Prueba Evaluable Final, bien de Teoría, de Prácticas o de ambas.

    • La Prueba Evaluable Final se regirá por la misma normativa que las Pruebas Parciales, a excepción de que se realizará en periodo de exámenes en la fecha fijada por el Centro.

    • La Prueba Evaluable Final contará un 85% de la nota, quedando el 15% restante asignado al trabajo realizado sobre el Tema 10.

  • Guía de Aprendizaje

    guia

     

     
  • Sobre el Profesor

    profesor

     

     

    pablo_sanchez.jpg    

    Pablo Sánchez Barreiro

     

    Departamento de Matemáticas, Estadística y Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información

     

    logo_UC    

    Carlos Blanco Bueno

     

    Departamento de Matemáticas, Estadística y Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información

     

    logo_UC    

    Juan Hernández Marqués

     

    Departamento de Matemáticas, Estadística y Computación

    UNIVERSIDAD DE CANTABRIA
     
    Más información

     

    f_ruiz.jpg    

    Francisco Ruiz González

     

    Departamento de Tecnologías y Sistemas de Información  

    UNIVERSIDAD DE CASTILLA-LA MANCHA
     
    Más información