CAPÍTULO 1: Introducción la Ingeniería del Software
Transcript of CAPÍTULO 1: Introducción la Ingeniería del Software
![Page 1: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/1.jpg)
CAPÍTULO 1:Introducción la Ingeniería del
Software
Ing. Alejandra Colina V.
Enero, 2019
![Page 2: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/2.jpg)
• Reconocer los elementos que conforman la Ingeniería del
Software y sus principales componentes de estudio.
Objetivo del capítulo
![Page 3: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/3.jpg)
Contenido
Software: definición, características, dominios de aplicación y software
heredados.
Proceso de Ingeniería de software
Ingeniería de software: definición y capas
Modelos de ingeniería de software
Métodos de ingeniería de software
![Page 4: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/4.jpg)
En la actualidad, el software tiene un papel dual.
Introducción la Ingeniería del Software
Producto
Vehículo para entregar
producto
Transformador de información
Distribuir el producto
El software de computadora sigue siendo la tecnología más importante en
la escena mundial.
Se considera una tecnología indispensable para los negocios, ciencias e
ingeniería.
Crea nuevas tecnologías
Amplia tecnologías existentes
Cambio radical de tecnologías antiguas
![Page 5: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/5.jpg)
¿Qué tipo de desarrollador se ve en la ilustración?
![Page 6: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/6.jpg)
Definición de Software
![Page 7: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/7.jpg)
Según Pressman (2010) el software es:
1) instrucciones (programas de cómputo) que cuando se ejecutan
proporcionan las características, función y desempeño buscados;
2) estructuras de datos que permiten que los programas manipulen en
forma adecuada la información, y
3) información descriptiva tanto en papel como en formas virtuales que
describen la operación y uso de los programas
Introducción la Ingeniería del Software
![Page 8: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/8.jpg)
Características del Software
![Page 9: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/9.jpg)
El software se desarrolla o modifica con intelecto; no se manufactura en el sentido clásico.
El software no se “desgasta”.
Aunque la industria se mueve hacia la construcción basada en componentes, la mayor parte del software se construye para un uso individualizado.
![Page 10: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/10.jpg)
Dominios de aplicación del software
![Page 11: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/11.jpg)
Existen siete grandes categorías de software de computadora como retos
continuos a los ingenieros de software
Software de sistemas(Sistemas
operativos. Compiladores)
Software de aplicación (Bases
de datos y sistemas de gestión de información)
Software de ingeniería y
ciencias (Aplicaciones en la astronomía, física
cuántica,)
Software incrustado (Tablero de
refrigeradores, de microondas)
Software de línea de productos (Control de inventario)
Aplicaciones web (Webapps)
Software de inteligencia artificial
(Elaboración de algoritmos numéricos)
![Page 12: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/12.jpg)
SOFTWARE HEREDADOS
![Page 13: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/13.jpg)
Los sistemas de software heredado programas que han sido desarrollados
hace varias décadas y modificados de manera continua para que
satisfagan los cambios en los requerimientos de los negocios y
plataformas de computación (Pressman, 2010).
Se convierten en dolores de cabeza para las organizaciones grandes, son
costoso mantenerlos y riesgoso hacerlos evolucionar.
Definición
![Page 14: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/14.jpg)
¿QUÉ HAGO SI ENCUENTRO UN SISTEMA HEREDADO DE MALA CALIDAD?
![Page 15: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/15.jpg)
Un software HEREDADO es de mala calidad cuando:
‒ No son susceptibles de extenderse
‒ Código confuso
‒ Documentación mala o inexistente
‒ Casos de pruebas y resultados nunca se archivaron
‒ Historia de los cambios mal administrada.
Sin embargo, AUN dan apoyo a las “funciones básicas del
negocio y son indispensables para éste”.
¿Qué hacer?
![Page 16: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/16.jpg)
¿QUÉ TIPOS DE CAMBIOS SE HACEN A LOS SISTEMAS HEREDADOS?
![Page 17: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/17.jpg)
‒ El software debe adaptarse para que cumpla las necesidades de los
nuevos ambientes del cómputo y de la tecnología.
‒ El software debe ser mejorado para implementar nuevos requerimientos
del negocio.
‒ El software debe ampliarse para que sea operable con otros sistemas o
bases de datos modernos.
‒ La arquitectura del software debe rediseñarse para hacerla viable dentro
de un ambiente de redes.
![Page 18: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/18.jpg)
1. Muchas aplicaciones modernas cambian con frecuencia, antes de
que se presenten al usuario final y después de que la primera
versión ha entrado en uso. Sugiera algunos modos de elaborar
software para detener el deterioro que produce el cambio.
2. Considere las siete categorías de software. ¿Piensa que puede
aplicarse a cada una el mismo enfoque de ingeniería de software?
Explique su respuesta.
Taller
![Page 19: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/19.jpg)
Ingeniería de Software
![Page 20: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/20.jpg)
Es el establecimiento y uso de principios fundamentales de la
ingeniería con objeto de desarrollar en forma económica software que
sea confiable y que trabaje con eficiencia en máquinas reales.
Es la aplicación de un enfoque sistemático, disciplinado y cuantificable
al desarrollo, operación y mantenimiento de software; es decir, la
aplicación de la ingeniería al software (IEEE).
Definición
![Page 21: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/21.jpg)
La ingeniería de software es una tecnología multicapa, cualquier
enfoque de ingeniería debe apoyarse sobre un compromiso de
organización de calidad.
Capas
![Page 22: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/22.jpg)
Capas
Herramienta
Método
Proceso
Enfoque de calidad
MÉTODO: cómo se debe construir técnicamente el software. abarcan una gran
gama de tareas, que incluyen: Análisis de requisitos. Diseño. Construcción de
programas. Pruebas. Mantenimiento.
HERRAMIENTAS: Soporte de ayuda para construir el software, proporciona un
enfoque automático o semiautomático para el proceso y para los métodos.
ENFOQUE DE CALIDAD: comprende la gestión para
obtener un software de calidad, y hace revisiones para
hacer mejoras al producto.
PROCESO: definen las actividades para poder realizar el
software.
![Page 23: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/23.jpg)
¿Cuáles son los elementos de un proceso de software?
![Page 24: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/24.jpg)
Proceso
Es un conjunto de actividades, acciones y tareas que se ejecutancuando va a crearse algún producto del trabajo.
Actividad
Pretende lograr un objetivo amplio y se desarrolla sin importar eldominio de la aplicación, tamaño del proyecto, complejidad del esfuerzoo grado de rigor con el que se usará la ingeniería de software.
Acción
Conjunto de tareas que producen un producto importante del trabajo.
![Page 25: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/25.jpg)
Tarea
Centra en un objetivo pequeño pero bien que produce un resultado tangible.
En el contexto de la INGENIERÍA DE SOFTWARE un proceso NO es
una prescripción rígida de cómo elaborar software de cómputo.
Es un enfoque adaptable que permite que las personas que hacen el
trabajo busquen y elijan el conjunto apropiado de acciones y tareas
para el trabajo.
Un proceso de software es una serie de actividades relacionadas que
conduce a la elaboración de un producto de software .
![Page 26: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/26.jpg)
Proceso de Ingeniería de software
![Page 27: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/27.jpg)
Se define proceso del software como una estructura para las
actividades, acciones y tareas que se requieren a fin de
construir software de alta calidad (Pressman, 2010).
![Page 28: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/28.jpg)
ESTRUCTURA DE
UN PROCESO
DEL SOFTWARE
Fuente: Pressman (2010).
![Page 29: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/29.jpg)
Los procesos de software se clasifican:
• Dirigidos por un plan: son aquellos donde todas las actividades
del proceso se planean por anticipado y el avance se mide contra
dicho plan
• Procesos ágiles: la planeación es incremental y fácil modificar el
proceso para reflejar los requerimientos cambiantes del cliente.
![Page 30: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/30.jpg)
¿Cuáles son las cinco actividades estructurales del proceso?
![Page 31: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/31.jpg)
• Entender los objetivos de los participantes respecto del proyecto, y reunir los requerimientos que ayuden a definir las características y funciones del software.
Comunicación.
• Define el trabajo de ingeniería de software al describir las tareas técnicas por realizar, los riesgos probables, los recursos que se requieren, los productos del trabajo que se obtendrán y una programación de las actividades.
Planeación.
• Un ingeniero de software hace lo mismo al crear modelos a fin de entender mejor los requerimientos del software y el diseño que los satisfará.
Modelado.
![Page 32: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/32.jpg)
• Esta actividad combina la generación de código y las pruebas que se requieren para descubrir errores en éste.
Construcción.
• El software se entrega al consumidor que lo evalúa y que le da retroalimentación, misma que se basa en dicha evaluación.
Despliegue.
![Page 33: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/33.jpg)
• Un flujo de proceso lineal ejecuta cada una de las cincoactividades estructurales en secuencia, comenzando por lacomunicación y terminando con el despliegue.
• Un flujo de proceso iterativo repite una o más de las actividadesantes de pasar a la siguiente.
![Page 34: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/34.jpg)
• Un flujo de proceso evolutivo realiza las actividades en forma “circular”. A través de las cinco actividades, cada circuito lleva a una versión más completa del software.
![Page 35: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/35.jpg)
• Un flujo de proceso paralelo ejecuta una o más actividades en paralelo con otras
![Page 36: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/36.jpg)
¿Qué acciones son apropiadas para una actividad estructural,dados la naturaleza del problema por resolver, las características delas personas que hacen el trabajo y los participantes que patrocinanel proyecto?
▪Para un proyecto de software pequeño solicitado.
▪Para proyecto de software grande.
Diferentes proyectos demandan diferentes conjuntos de
tareas.
El equipo de software elige el conjunto de tareas con
base en las características del problema y el proyecto.
![Page 37: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/37.jpg)
Evaluación y Mejora del Proceso
![Page 38: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/38.jpg)
¿De qué técnicas formales se dispone para evaluar el proceso del
software?
![Page 39: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/39.jpg)
• Proporciona un modelo de cinco fases para evaluar el proceso: inicio, diagnóstico, establecimiento, actuación y aprendizaje.
Método de evaluación del estándar CMMI para el proceso de mejora (SCAMPI, por sus siglas en inglés):
• Proporciona una técnica de diagnóstico para evaluar la madurez relativa de una organización de software; usa el SEI CMM como la base de la evaluación.
Evaluación basada en CMM para la mejora del proceso interno (CBA IPI, por sus siglas en inglés):
![Page 40: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/40.jpg)
• Define un conjunto de requerimientos para la evaluación delproceso del software. Cuyo objetivo es ayudar a las organizacionesa desarrollar una evaluación objetiva de cualquier proceso delsoftware definido.
SPICE (ISO/IEC 15504):
• Estándar genérico que se aplica a cualquier organización que deseemejorar la calidad general de los productos, sistemas o serviciosque proporciona.
ISO9001:2000 para software:
![Page 41: CAPÍTULO 1: Introducción la Ingeniería del Software](https://reader034.fdocument.pub/reader034/viewer/2022051900/62842ddc69c93b1f5c7b47a7/html5/thumbnails/41.jpg)
BIBLIOGRAFÍA
Ian Sommerville, Software Engineering. 9th edition, 2011, Addison-Wesley
Roger Pressman, Ingeniería de Software: Un Enfoque Práctico. Séptima Edición, 2010, McGraw-Hill
.