Tema 1: Introducción a la Ingeniería del Software PDF

Summary

This document provides an introduction to software engineering, covering topics such as software characteristics, types, and the importance of software engineering. It is taught at the University of Seville, which details the roles and concepts related to software engineering.

Full Transcript

Tema 1: Introducción a la Ingeniería del Software Introducción a la Ingeniería del Software y los Sistemas de Información I Ingeniería Informática – Tecnologías Informáticas Departamento de Lenguajes y Sistemas Informáticos Índice 1. Características del software...

Tema 1: Introducción a la Ingeniería del Software Introducción a la Ingeniería del Software y los Sistemas de Información I Ingeniería Informática – Tecnologías Informáticas Departamento de Lenguajes y Sistemas Informáticos Índice 1. Características del software 2. Qué es la Ingeniería del Software 3. Productos de la ingeniería del software 4. Mantenimiento del software 5. Calidad del software 2 Características del software Es intangible. Se desarrolla, no se fabrica. No se estropea (se puede quedar obsoleto). fallos fallos fallos cambios t t t Hardware Software ideal Software real 3 Características del software Dominio de aplicación Tipos de software Sistemas de información Telecomunicaciones Control en tiempo real Videojuegos Sistemas operativos Procesadores de lenguaje etc. A medida (proyecto interno) Hardware/ A medida (proyecto externo) software Producto (market driven) Sólo Producto (software libre) software Tipo de Tipo de desarrollo sistema 4 Qué es la Ingeniería del Software ¿Qué es una ingeniería? La ingeniería es una disciplina que se encarga de aplicar los conocimientos científicos para resolver problemas y desarrollar soluciones tecnológicas. Debe adecuarse a las limitaciones de tiempo, recursos, requisitos legales, requisitos de seguridad, ecológicos, etc. Actividades propias de los Ingenieros: Diseñar, construir, mantener y mejorar una amplia gama de sistemas, máquinas, estructuras y procesos. Por ejemplo: obras públicas, máquinas, sistemas de control, redes de comunicaciones, centrales energéticas, sistemas de regadíos, …. Y software. 6 Qué es la Ingeniería del Software Pilares de una ingeniería Vocabulario: conjunto de términos que se usan en un campo concreto Interfaz, clase, objeto, variable, interface, requisito, … Tecnología: instrumentos, procedimientos o recursos usados en un campo Java, Python, JS, HTML, Oracle, TCP/IP, … Herramientas: conjunto de instrumentos para desempeñar un trabajo concreto Eclipse, Aptana, VSCode, SQLDeveloper, … Buenas prácticas: conjunto de acciones que dan buenos resultados en un campo PMBOK, ITIL, CMMI, … Metodologías: conjunto de procedimientos bien definido para obtener buenos resultados. SCRUM, RUP, XP, AUP, … 7 Qué es la Ingeniería del Software Orígenes de la Ingeniería del Software Software Engineering Conference (SEC) de la OTAN, Garmisch, Alemania (1968). Enfoque ingenieril como solución a lo que se denominó la crisis del software. El término se atribuye a Fritz Bauer. Se definió el concepto de ciclo de vida del software y se identificaron los principales problemas asociados al software: Sobrecostes, retrasos, baja calidad, mantenimiento difícil, no cumplía los requisitos establecidos, no se completaba, etc. 8 Qué es la Ingeniería del Software Orígenes de la Ingeniería del Software Informes CHAOS (1994-2012) Factores de éxito Causas de problemas Causas de fracasos Implicación de los usuarios Falta de información por parte Requisitos incompletos Apoyo de los directivos de los usuarios Falta de implicación de los Enunciado claro de los Especificaciones y requisitos usuarios requisitos incompletos Falta de recursos Planificación adecuada Especificaciones y requisitos Expectativas no realistas Expectativas realistas cambiantes Falta de apoyo de los Hitos de proyecto pequeños Falta de apoyo de los directivos Personal competente directivos Especificaciones y requisitos Sentimiento de propiedad Incompetencia tecnológica cambiantes Visión y objetivos claros Falta de recursos Falta de planificación Trabajo duro y personal Expectativas no realistas Ya no lo necesito concentrado Objetivos poco claros Falta de gestión de TIC Plazos temporales no realistas Desconocimiento de la Nueva tecnología tecnología 9 Qué es la Ingeniería del Software Definiciones de Ingeniería del Software Según el glosario de IEEE (610.12): (a) la aplicación de un enfoque sistemático, disciplinado y cuantificable para el desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software. (b) el estudio de los enfoques como los descritos en (a). Según A. Davis (201 Principles of Software Development): “La aplicación inteligente de principios probados, técnicas, lenguajes y herramientas para la creación y mantenimiento, dentro de un coste razonable, de software que satisfaga las necesidades de los usuarios.” 10 Qué es la Ingeniería del Software Un proyecto software es un esfuerzo temporal que se lleva a cabo para crear un producto, servicio o resultado único (definición de Project Management Institute) Tipos de Proyecto: Productivo Público Social De vida Científico 11 Qué es la Ingeniería del Software Definición de Proyecto Software Esfuerzo temporal acometido para crear un único producto o servicio software. Es realizado por personas. Alcance (Entregables) Debe ser limitado en tiempo y coste. Debe ser planificado, ejecutado y controlado. Plazos (Tiempos) Esfuerzo (Recursos) 12 Qué es la Ingeniería del Software Etapas de un proyecto. Ciclo de Deming. 1. Plan Establecer los objetivos y los procesos necesarios para lograr los resultados deseados. Plan 2. Do Llevar a cabo los objetivos establecidos en el paso anterior. 3. Check Act Do Evaluar resultados de la fase Do y comparar con lo esperado para identificar desviaciones. 4. Act Identificar problemas y oportunidades de mejora, y aplicar Check mejora al proceso para atajarlos en la siguiente iteración. 13 Qué es la Ingeniería del Software Roles en un Proyecto Software. Director de Responsable de la ejecución del proyecto con capacidad ejecutiva para tomar decisiones sobre proyecto el mismo de acuerdo con el cliente. Ingeniero de También denominado analista. Responsable de interactuar con clientes y usuarios para obtener requisitos sus necesidades y de desarrollar y gestionar los requisitos. Equipo de Conjunto de personas implicadas en el desarrollo del software: arquitecto software, diseñador desarrollo de IU, programador, responsable de pruebas, administrador de BD, etc. Equipo de Conjunto de personas responsables de la calidad de los productos obtenidos, tanto calidad documentación como software. Suelen ocuparse también de la calidad de los procesos. Cliente Responsable de la financiación del proyecto con capacidad ejecutiva para tomar decisiones sobre el mismo. Suele tener una visión global del modelo de negocio. Usuario Usuario potencial del software a desarrollar en el proyecto con una visión detallada, aunque puede que parcial, del modelo de negocio. Responsable TIC Responsable del entorno tecnológico del cliente, sobre el que se integrará el sistema a del Cliente desarrollar. 14 Qué es la Ingeniería del Software Normas, estándares y certificaciones en la Ingeniería del Software Norma: pautas y especificaciones bien definidas que ayudan a los profesionales del software a diseñar, desarrollar, implementar y mantener software de manera eficiente y efectiva, intentando garantizar la calidad, consistencia y confiabilidad del software desarrollado. Estándar: especificaciones técnicas detalladas que describen cómo implementar las normas a través de guías y recomendaciones sobre la documentación del proyecto, la codificación, las pruebas y el mantenimiento. Certificación: garantía de que una organización adopta una determinada norma, cumpliendo lo que en ella se especifica. Contribuyen a la credibilidad y confianza en dicha organización en el desarrollo software. 15 Qué es la Ingeniería del Software Norma ISO 12207 Norma internacional para el ciclo de vida del software, proporcionando requisitos mínimos y mejores prácticas para garantizar la calidad y eficiencia en el desarrollo de software. Establece requisitos mínimos en áreas como la gestión de requisitos, planificación del proyecto, desarrollo y mantenimiento del software, verificación y validación, gestión de la configuración y gestión de la calidad. 16 Qué es la Ingeniería del Software Estándar ISO/IEC/IEEE 24765 Estándar que proporciona un vocabulario común para los términos utilizados en los estándares de ingeniería de software y sistemas, incluidos los términos utilizados en la ISO/IEC 12207. 17 Qué es la Ingeniería del Software Certificación relacionada: CMMI-DEV Capability Maturity Model Integration for Development. Se centra en la mejora de los procesos de desarrollo de productos y servicios. Define niveles de madurez de los procesos de una organización. 18 Productos de la Ingeniería del Software El conjunto de productos que deben desarrollarse y entregarse al cliente durante un proyecto se denominan entregables. Previos al comienzo Durante el desarrollo Petición de Propuestas Plan de proyecto Pliego de Prescripciones Técnicas Informes de seguimiento Oferta Contrato Especificación de requisitos Documento de diseño Detallan Plan de pruebas Las necesidades a satisfacer por el sistema. Código fuente Los entregables del proyecto. Software ejecutable El presupuesto y plazo de ejecución. Restricciones técnicas. Manuales de usuario Penalizaciones por retrasos 19 Mantenimiento del Software Una vez entregado se debe proporcionar un servicio de mantenimiento y de gestión de incidencias. Mantenimiento: Se encarga de mejorar, adaptar o corregir el software en explotación. Su coste es el más alto de todo el ciclo de vida. Gestión de incidencias: Restaurar cuanto antes la operativa normal del servicio minimizando el impacto negativo en las operaciones de negocio. Detección, registro, categorización, priorización, diagnóstico, escalado, resolución y cierre 20 Mantenimiento del Software Coste del mantenimiento 21 Mantenimiento del Software Tipos de mantenimiento Evolutivo (60%): incorporar nuevos requisitos o cambios en los ya existentes. Correctivo (17%): corregir errores del producto software no detectados durante el desarrollo. Adaptativo (18%): adaptar a cambios en el entorno tecnológico (hardware, sistema operativo, base de datos, comunicaciones, etc.). Perfectivo (5%): mejorar la calidad interna de los sistemas (refactorizar código, mejorar rendimiento, etc.) 22 Calidad del Software Aseguramiento de la Calidad Software (SQA) Por calidad del software se entiende: Cumplir los requisitos establecidos explícitamente. Cumplir con los estándares de desarrollo necesarios. Tener las características implícitas que se espera de todo software desarrollado profesionalmente, habitualmente relacionadas con los requisitos no funcionales. 23 Calidad del Software Los costes de aseguramiento de la calidad se compensan con el ahorro en mantenimiento. “El error es usualmente 100 veces más caro de corregir en la fase de mantenimiento que en la fase de requisitos.” (Barry Boehm, Software Engineering Economics, 1981, p. 40.) 24 Calidad del Software El equipo de SQA es responsable de: Establecer el plan de SQA del proyecto. Participar en la definición del plan del proyecto. Auditar los productos del desarrollo. Documentar e informar de las desviaciones o no conformidades que se vayan detectando en las revisiones técnicas formales (RTF). 25 Tema 1: Introducción a la Ingeniería del Software Introducción a la Ingeniería del Software y los Sistemas de Información I Ingeniería Informática – Tecnologías Informáticas Departamento de Lenguajes y Sistemas Informáticos

Use Quizgecko on...
Browser
Browser