Tema 1 Introduccin a la Ingeniera del Software Univ. Cantabria Fac. de Ciencias Francisco Ruiz 1.2 Francisco Ruiz - IS1 Objetivos Comprender qu es la Ingeniera del Software y su necesidad. Situarla en el contexto ms amplio de la Informtica. Conocer el significado e implicaciones de la palabra ingeniera. Conocer las principales reas que la forman. Conocer el cuerpo de conocimientos SWEBOK. 2 1.3 Francisco Ruiz - IS1 Contenido El Problema del Desarrollo de Software Evolucin Histrica Nuevos Paradigmas Naturaleza del Problema Contexto de la Ingeniera del Software Perspectiva de Ingeniera Por qu Ingeniera del Software? Definicin Cuerpo de Conocimientos - SWEBOK Ingeniera del Software vs Informtica Currculos Internacionales Mercado Profesional Academia Es Hacer Software una Profesin? Conclusiones reas de Conocimiento Requisitos Diseo Construccin Pruebas Mantenimiento Gestin de la Configuracin Gestin de la Ingeniera Soft. Procesos Herramientas y Mtodos Calidad Disciplinas relacionadas CHARLA 1.4 Francisco Ruiz - IS1 Bibliografa Bsica IEEE Computer Society (2004) SWEBOK - Guide to the Software Engineering Body of Knowledge, 2004 Version. Captulo 1. http://www.swebok.org/ Complementaria Caps. 1, 2 y 4 del libro de Sommerville (2005). Transparencias en http://www.comp.lancs.ac.uk/computing/resources/IanS/SE7/Present ations/index.html Cap. 1 del libro de Pressman (2005). 3 1.5 Francisco Ruiz - IS1 Software Engineering Body of Knowledge http://www.swebok.org/ Cuerpo de Conocimientos - SWEBOK 1.6 Francisco Ruiz - IS1 Cuerpo de Conocimientos - SWEBOK Software EngineeringBody of Knowledge Proyecto conjunto de IEEE-CS y ACM. Versin actual de 2004. Aprobada oficialmente como ISO/IEC TR 19759:2005. Los objetivos principales de SWEBOK son cinco: Promover una visin consistente del mundo de la IS. Clarificar el papel y delimitar las fronteras- de la IS con respecto a otras disciplinas asociadas: ciencia de la computacin, gestin de proyectos, ingeniera de computadores, y matemticas. Caracterizar los contenidos de la disciplina. Proveer acceso a los contenidos del cuerpo de conocimientos. Proveer las bases para desarrollar planes de estudios o materiales para certificaciones individuales. 4 1.7 Francisco Ruiz - IS1 Cuerpo de Conocimientos - SWEBOK Gua para el Cuerpo de Conocimientos de Ingeniera del Software (IS) SWEBOK (versin 2004) Mantenimiento Gestin de la IS Proceso de IS Herramientas y Mtodos * Fundamentos * Aspectos clave * Proceso *Tcnicas * Iniciacin y definicin del alcance * Planificacin del proyecto * Realizacin del proyecto * Revisin y evaluacin * Cierre * Medicin en IS * Implementacin y cambio del proceso * Definicin del proceso * Evaluacin del proceso * Medicin del proceso y el producto * Herramientas software para: - requi si tos - di seo - construcci n - pruebas - manteni mi ento - gesti n de l a confi guraci n - gesti n de l a IS - el proceso de IS - cal i dad - probl emas vari os * Mtodos de desarrollo de software: - heursti cos - formal es - prototipado Gestin de la Configuracin * Gestin del proceso * Identificacin de la configuracin * Control de la configuracin * Contabilidad del estado de l a configuracin * Auditora de la configuracin * Gestin y entrega de versiones Calidad * Fundamentos * Procesos de gestin de la calidad * Consideracio- nes prcticas Pruebas * Fundamentos * Niveles de prueba * Tcnicas * Mediciones relacionadas * Proceso Construccin * Fundamentos * Gestin de la construccin * Consideracio- nes prcticas Diseo * Fundamentos * Aspectos clave * Estructura y arquitectura software * Anlisis y evaluacin de la calidad de un diseo * Notaciones Requisitos * Fundamentos * Proceso * Elicitacin * Anlisis * Especificacin * Val idacin * Consideracio- nes prcticas 1.8 Francisco Ruiz - IS1 Cuerpo de Conocimientos - SWEBOK Gua para el Cuerpo de Conocimientos de Ingeniera del Software (IS) SWEBOK (versin 2004) Mantenimiento * Fundamentos * Aspectos clave * Proceso *Tcnicas Pruebas * Fundamentos * Niveles de prueba * Tcnicas * Mediciones relacionadas * Proceso Construccin * Fundamentos * Gestin de la construccin * Consideracio- nes prcticas Diseo * Fundamentos * Aspectos clave * Estructura y arquitectura software * Anlisis y evaluacin de la calidad de un diseo * Notaciones Requisitos * Fundamentos * Proceso * Elicitacin * Anlisis * Especificacin * Validacin * Consideracio- nes prcticas Fases en el proceso de desarrollo de software 5 1.9 Francisco Ruiz - IS1 Cuerpo de Conocimientos - SWEBOK Gua para el Cuerpo de Conocimientos de Ingeniera del Software (IS) SWEBOK (versin 2004) Gestin de la IS Proceso de IS Herramientas y Mtodos * Iniciacin y definicin del alcance * Planificacin del proyecto * Realizacin del proyecto * Revisin y evaluacin
* Cierre * Medicin en IS * Implementacin y cambio del proceso * Definicin del proceso * Evaluacin del proceso * Medicin del proceso y el producto * Herramientas software para: - requisi tos - diseo - construccin - pruebas - mantenimi ento - gesti n de l a confi guraci n - gesti n de la IS - el proceso de IS - cal i dad - probl emas vari os * Mtodos de desarrollo de software: - heursticos - formales - prototi pado Gestin de la Configuracin * Gestin del proceso * Identificacin de la configuracin * Control de la configuracin * Contabilidad del estado de la configuracin * Auditora de la configuracin * Gestin y entrega de versiones Calidad * Fundamentos * Procesos de gestin de la calidad * Consideracio- nes prcticas Incorporacin de la perspectiva de ingeniera 1.10 Francisco Ruiz - IS1 Cuerpo de Conocimientos - SWEBOK Descripcin de un rea de Conocimiento Clasificacin Taxonoma de Vincenti Clasificacin de Tpicos Matriz de Tpicos y Referencias Referencias Descripciones de Tpicos Clasificacin Taxonoma de Bloom Referencias a Disciplinas Relacionadas 6 1.11 Francisco Ruiz - IS1 Cuerpo de Conocimientos - SWEBOK Diseo del Software Notaciones * Descripciones estructurales (vista esttica) * Descripciones del comportamiento (vista dinmica) Anlisis Cualitativo y Evaluacin * Atributos de calidad * Tcnicas de anlisis y evaluacin de la Calidad * Mediciones Estructura y Arquitectura * Estructuras y puntos de vista arquitecturales * Estilos arquitecturales (patrones macro- arquitecturales) * Patrones de diseo (patrones micro- arquitecturales) * Familias de programas y marcos (frameworks) Aspectos Clave * Concurrencia * Control y manejo de eventos * Distribucin de Componentes * Manejo de errores y excepciones, y tolerancia a fallos * Interaccin y presentacin * Persistencia de datos Fundamentos * Conceptos generales * Contexto * Proceso * Tcnicas facilitadoras Estrategias y Mtodos * Estrategias generales * D. orientado a funciones (estructurado)
* D. orientado a objetos * D. centrado en las estructuras de datos * D. basado en componentes) * Otros mtodos 1.12 Francisco Ruiz - IS1 reas de Conocimiento Fases del Proceso de Desarrollo Requisitos Diseo Construccin Pruebas Mantenimiento Perspectiva de Ingeniera Gestin de la Configuracin (gestin de productos) Gestin de la Ingeniera (gestin de proyectos) Proceso de Ingeniera (orientacin a procesos) Herramientas y Mtodos (tecnologa de soporte) Calidad 7 1.13 Francisco Ruiz - IS1 reas de Conocimiento Requisitos Se refiere a la elicitacin, anlisis, especificacin y validacin de los requisitos software. En la industria del software existe el consenso en que los proyectos de I.S. son muy vulnerables cuando estas actividades se realizan de forma pobre. Los requisitos software expresan las necesidades y restricciones que debe satisfacer un producto software para contribuir a la solucin de un problema real. 1.14 Francisco Ruiz - IS1 reas de Conocimiento Diseo El proceso de diseo de software consiste en analizar los requisitos con el fin de producir una descripcin de la estructura interna del software que sirva como base para su construccin. Un diseo software (resultado) debe describir: La arquitectura (cmo est descompuesto y organizado en componentes) y las interfaces entre dichos componentes; y Los componentes con el nivel de detalle adecuado para poder construirlos. 8 1.15 Francisco Ruiz - IS1 reas de Conocimiento Construccin Se refiere a la creacin detallada de software mediante la combinacin de codificacin, verificacin, pruebas unitarias, pruebas de integracin y depuracin. 1.16 Francisco Ruiz - IS1 reas de Conocimiento Pruebas Sirve para evaluar la calidad de un producto software o para mejorarlo, mediante la identificacin de sus defectos y problemas. Consiste en la verificacin dinmica del comportamiento real de un programa frente al comportamiento esperado, para un conjunto finito de casos de prueba (convenientemente seleccionados entre las usualmente infinitas posibilidades de ejecucin) . 9 1.17 Francisco Ruiz - IS1 reas de Conocimiento Mantenimiento Todo producto software, despus de su despliegue o entrega, est destinado a cambiar o evolucionar. Algunas causas de ello son: Defectos descubiertos durante su uso, Cambios en el entorno operativo, Nuevos requisitos del usuario, .. En SWEBOK este rea se refiere a las actividades requeridas para proveer un adecuado soporte al software, sea antes o despus del despliegue o entrega. 1.18 Francisco Ruiz - IS1 reas de Conocimiento Gestin de la Configuracin Es la disciplina de identificar la configuracin de un sistema en distintos momentos en el tiempo con el fin de controlar sistemticamente los cambios y mantener la integridad y trazabilidad. Una configuracin de un sistema es una coleccin de versiones especficas de sus elementos (items de configuracin) combinados de acuerdo a procedimientos de construccin adecuados a los propsitos buscados. 10 1.19 Francisco Ruiz - IS1 reas de Conocimiento Gestin de la Ingeniera Consiste en aplicar actividades de gestin (planificar, coordinar, medir, supervisar, controlar e informar) para asegurar que el desarrollo y mantenimiento de software se realizan de forma sistemtica, disciplinada y cuantificable. Bsicamente, engloba dos clases de esfuerzos: Gestin de Proyectos (Project Management) Medicin (futura nueva rea en SWEBOK) 1.20 Francisco Ruiz - IS1 reas de Conocimiento Proceso de Ingeniera Se refiere a la definicin, implementacin, evaluacin, medicin, gestin, cambio y mejora de los propios procesos del ciclo de vida del software. Engloba aspectos con fuerte impacto en la industria: Madurez de las organizaciones (CMMI, SPICE) Mejora de Procesos Por ello, ha surgida la llamada Ingeniera de Procesos Software 11 1.21 Francisco Ruiz - IS1 reas de Conocimiento Herramientos y Mtodos Las herramientas (basadas en computador) ayudan a realizar los procesos del ciclo de vida del software. Los mtodos imponen una manera o estructura para realizar las actividades de ingeniera del software, de forma que el trabajo sea ms sistemtico y mas exitoso. 1.22 Francisco Ruiz - IS1 reas de Conocimiento Calidad En este rea se abordan las tcnicas estticas para alcanzar la calidad del software. Las tcnicas dinmicas (ejecutar el software) son parte de las Pruebas. Este campo tambin ha tenido un fuerte desarrollo en la industria: Aseguramiento de la Calidad Verificacin y validacin Auditora 12 1.23 Francisco Ruiz - IS1 Disciplinas Relacionadas Ingeniera de Computadores Ciencia de la Computacin Gestin Matemticas Gestin de Proyectos Gestin de la Calidad Ergonoma del Software Ingeniera de Sistemas incluye Sistemas de Informacin