INGENIERIA DEL SOFTWARE_ INGENIERIA DEL SOFTWARE

dgsacravilcana 15 views 47 slides Sep 08, 2025
Slide 1
Slide 1 of 47
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47

About This Presentation

INGENIERIA DEL SOFTWARE


Slide Content

Programa de Ingeniería de Sistemas INGENIERÍA DE SOFTWARE Sesión 14 Tema: Métricas, medidas e indicadores. Métricas para la calidad de software. Establecimiento de un sistema de métricas de software. SCAMPI y Otros Estándares

Resultado de aprendizaje Implementa software empresarial con técnicas y métodos de ingeniería para una organización real Evidencia de aprendizaje Informe Académico individual de: Métricas de Calidad

Agenda Métricas, medidas e indicadores. Métricas para la calidad de software. Establecimiento de un sistema de métricas de software. SCAMPI y Otros Estándares. Guía de Práctica de Laboratorio13: Métricas

Revisa el siguiente video:

Después de haber visualizado el video en la slide anterior, reflexionamos y respondemos las siguientes interrogantes: 01 ¿Cuál es la idea principal o el concepto clave que se destaca en el video? 02 ¿Cómo se relaciona este tema con otros conceptos dentro del mismo campo de estudio? 03 ¿Cuáles son las implicaciones prácticas o aplicaciones de este conocimiento en la vida cotidiana o en el ámbito profesional?

Métricas, medidas e indicadores. Métricas para la calidad de software. Establecimiento de un sistema de métricas de software. SCAMPI y Otros Estándares

Definiciones 7 Análisis y diseño de Sistemas - Sesión 14

8 Método del ciclo de vida clásico: Actividades que son realizadas por el analista para desarrollar e implantar un sistema. Método de desarrollo por análisis estructurado: Incorpora elementos tanto de análisis como de diseño. Especifica lo que se requiere que haga el sistema o la aplicación . Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.). Desarrolla un diseño físico eficiente para la situación donde será utilizado. Es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. Métodos para desarrollar software Análisis y diseño de Sistemas - Sesión 14

9 Métodos para desarrollar software Método del desarrollo por prototipos : Pueden desarrollarse con métodos y lenguajes de programación convencionales Los informes no tienen un encabezados, logos, etc., faltan controles de entradas y procesamiento. Lo importante es el ensayo, y hallar los requerimientos. Métodos de análisis orientado a objetos: E s un método de análisis que examina los requerimientos desde la perspectiva de las clases y objetos Se basa en conceptos como objetos y atributos, clases y miembros un todo y partes. Análisis y diseño de Sistemas - Sesión 14

10 Herramientas para desarrollar software Las herramientas de desarrollo de software diseñan y construyen aplicaciones y dan soporte al desarrollo e implantación de las mismas.   1.Calidad del Software Herramientas que tratan todos los aspectos de la calidad de software: funcionalidad, fiabilidad y rendimiento. 2. Construcción y Diseño Herramientas para la arquitectura y el modelado, el desarrollo dirigido por modelos, componentes, verificación de componentes, actividades de análisis de ejecución. 3. Gestión de cambios y configuración Gestión del ciclo de vida de los activos, como la automatización de procesos, el control de cambios, el rastreo y los informes. 4. Gestión de proceso y portafolio Herramientas integradas para gestionar requisitos, modelos y pruebas, implementar un proceso de desarrollo y progresos de informes y valoraciones. 5. Requisitos y análisis Herramientas integradas para la gestión de requisitos, de desarrollo de casos de estudio, los modelos de negocios y modelos de datos. Análisis y diseño de Sistemas - Sesión 14

11 Herramientas para desarrollar software Herramientas para análisis Éstas herramientas ayudan a los especialistas en sistemas a documentar un sistema existente, ya sea manual o automatizado. También sirve para determinar los requerimientos de una nueva aplicación. Incluye: Herramientas para recolección de datos : capturan detalles que describen sistemas y procedimientos en uso. Documentan procesos y actividades de decisión, se utilizan para apoyar la tarea de identificar requerimientos. Herramientas para diagramación: crean representaciones gráficas de sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujos de datos e iconos asociados con el análisis estructurado. Incluyen programas para representación en diagramas de flujo. Análisis y diseño de Sistemas - Sesión 14

12 Herramientas para desarrollar software Herramientas CASE : ( Computer Aided/Assisted Software/System Engineering ) se puede definir como: “ el conjunto de herramientas y metodologías que soportan un enfoque de ingeniería para las distintas fases del desarrollo de software” En primer lugar se suele distinguir, atendiendo a la fase del ciclo de vida que soportan, entre: • CASE frontales (" front-end ") o superiores (" Upper CASE "), abarcan las primeras fases de análisis y diseño. Automatizan las primeras actividades del proceso de desarrollo de sistemas. Esta herramienta proporciona soporte para el desarrollo de modelos gráficos de sistemas y procesos. Los diagramas de flujo son representativos de este tipo de herramientas. • CASE dorsales (" back-end ") o inferiores (" Lower CASE "), cuyo objetivo suele ser el diseño detallado y la generación de código Categorias de herramientas CASE mas frecuentes: a)Herramientas de análisis y diseño b) Generación de código y documentación c)Herramientas de prueba d)Herramientas de gestión de configuración e) Herramientas de ingeniería inversa Herramientas de prototipado :Como son los diseñadores de pantallas, generadores de menús, generadores de informes y lenguajes de especificación ejecutables. Análisis y diseño de Sistemas - Sesión 14

13 Actividades en el proceso de desarrollo de software Para desarrollar un producto de software se realizan diversas actividades que se estructuran y relacionan de acuerdo a un modelo y se desarrollan siguiendo un método . Los modelos encadenan las diversas actividades Análisis y diseño de Sistemas - Sesión 14

14 Actividades usuales Diseño Prototipaje Identificación y especificación de requerimientos Especificación Validación/ verificación Programación Integración Gestión de configuraciones Análisis. Desarrollo de la interfaz Análisis y diseño de Sistemas - Sesión 14

15 Acerca de las actividades La ingeniería de requerimientos es el proceso que lleva a la especificación del software Los procesos de diseño e implementación transforman la especificación en un programa ejecutable La validación involucra chequear que el sistema cumple su especificación y las expectativas del usuario La evolución concierne con la modificación del sistema después que está en uso Análisis y diseño de Sistemas - Sesión 14

16 Las actividades en el proceso de desarrollo de software : se relacionan conformando se desarrollan aplicando El método se fundamenta en El método puede ser soportado por principio(s) - método(s) - herramienta(s) - modelo(s) un modelo un método principios herramientas Análisis y diseño de Sistemas - Sesión 14

17 Ciclo de vida del software Comprensión del problema Desarrollo del software Liberación del producto Análisis del problema Análisis y diseño de Sistemas - Sesión 14

18 Mantenimiento del producto ...casi siempre...!! Transición Ciclo de vida del software Análisis y diseño de Sistemas - Sesión 14

19 Obsolescencia del producto Fin del ciclo de vida Análisis y diseño de Sistemas - Sesión 14

20 ¿ Cómo encadenar las actividades del proceso de desarrollo de software? Modelos (ciclo de vida) Ej.: Modelo de la cascada, UP.... ¿Cómo realizar las actividades del proceso de desarrollo de software? Métodos Ej.: Orientado a objeto, ... ¿Cuáles principios se aplican en el proceso de desarrollo de software? Ej.: Incrementable, iterativo,... Actividades – Modelos - Procesos Análisis y diseño de Sistemas - Sesión 14

21 Modelos de desarrollo de software La cascada Separa y secuencia las fases Evolutivo Especificación y desarrollo son intercalados De transformaciones Un modelo formal del sistema es transformado en otro modelo de más bajo nivel de abstracción Basado en reuso El sistema es producto de ensamblaje de componentes Análisis y diseño de Sistemas - Sesión 14

22 Modelo caótico Análisis de Requerimientos Diseño del Sistema Diseño de Programas Construcción de Programas Validación de componentes Validación del Sistema Mantenimiento Liberación Integración ¿Cuál modelo han usado? Análisis y diseño de Sistemas - Sesión 14

23 Modelo de la cascada Encadenamiento secuencial de las actividades Cada etapa produce documentos que son la entrada a la siguiente Para desarrollar una etapa debe concluirse la anterior Popular en la década 70. Análisis de requerimientos Diseño Implementación Validación de componentes Integración y validación del sistema Liberación y mantenimiento Análisis y diseño de Sistemas - Sesión 14

24 Modelo de la cascada (cont.) El modelo original no se adapta a ciertas aplicaciones Los costos al descubrir errores en etapas avanzadas son muy altos Es rígido Se incorporan variantes al modelo. Análisis de requerimientos Diseño Implementación Validación de componentes Integración y validación del sistema Liberación y mantenimiento Análisis y diseño de Sistemas - Sesión 14

25 Análisis de requerimientos Datos provistos por los expertos en el dominio y usuarios potenciales Documentos orientados al usuario y útiles para el analista: Es una actividad requerida en cualquier modelo - Comprensibles - Precisos - Completos - Consistentes - Fáciles de modificar Análisis y diseño de Sistemas - Sesión 14

26 Análisis de requerimientos Identificar el problema Documentar los requerimientos Involucrar a los usuarios y expertos en el dominio de aplicación (requiere diálogo y comunicación) Existen estándares para la especificación de los requerimientos Esta actividad puede mantenerse a lo largo del proceso. Análisis y diseño de Sistemas - Sesión 14

27 Requerimientos de software: sub áreas 1. Proceso de ingeniería de requerimientos: modelos de proceso, actores, soporte y gerencia y mejora de calidad de proceso 2. Captura de requerimientos: origen de requerimientos, como capturarlos; incluye fuentes y técnicas. 3. Análisis de requerimientos: Detectar y resolver conflictos. Limites del sistema y como interactúa con el medio. Trasladar requerimientos de sistema a requerimientos de software Análisis y diseño de Sistemas - Sesión 14

28 4.Especificación de requerimientos de software: Calidad, estructura y verificabilidad del documento de especificación 5.Validación de requerimientos: Proceso para examinar documento de requerimientos a fin de asegurar que define el sistema esperado. 6.Gerencia de requerimientos: Abarca todo el ciclo de vida. Gerencia de cambios y mantenimiento de requerimientos de software Requerimientos de software: sub áreas Análisis y diseño de Sistemas - Sesión 14

29 Prototipaje Resultados parciales del análisis Prototipo (esbozo parcial, no definitivo,..) Desarrollo rápido de partes del sistema Prototipo a nivel de la interfaz a nivel de componentes del sistema Análisis y diseño de Sistemas - Sesión 14

30 Esbozo parcial de partes del sistema Permite experimentar Permite validar y precisar la especificación de requerimientos y características del futuro sistema Indispensable para el desarrollo de la interfaz Indispensable en el modelo evolutivo. Prototipaje Análisis y diseño de Sistemas - Sesión 14

31 Especificación Datos resultantes del análisis de requerimientos y consideraciones técnicas Descripción orientada al desarrollador Describe en forma precisa el sistema a desarrollar Análisis y diseño de Sistemas - Sesión 14

32 Diseño Resultados del análisis, de la especificación y consideraciones técnicas Descripción detallada orientada al implementador Constituye un refinamiento del análisis Análisis y diseño de Sistemas - Sesión 14

33 Programación Diseño y consideraciones técnicas Componentes de programas -Código - en un LP “echar código”... Análisis y diseño de Sistemas - Sesión 14

34 Integración y gestión de configuraciones Componentes de programa Ensamblaje de versiones coherentes de los componentes Obtener el sistema ejecutable Análisis y diseño de Sistemas - Sesión 14

35 Validación y verificación Documentos (textos, programas, etc) Documentos validados/ verificados Permite determinar la confiabilidad o correctitud del producto Análisis y diseño de Sistemas - Sesión 14

36 Validación: el software responde a lo que espera el usuario Verificación: el software satisface la especificación Técnicas diversas : Pruebas formales: garantizar que el programa satisface la especificación Chequeo “testing” : búsqueda de errores en los componentes, en la integración, en el sistema Pruebas de usabilidad: “medir” la satisfacción del usuario al usar el producto Validación y verificación Análisis y diseño de Sistemas - Sesión 14

37 Tipos de pruebas Test unitario Chequeo de componentes individuales Test de módulo Chequeo de colecciones de componentes dependientes Test de sub-sistemas Prueba de Módulos integrados en sub-sistemas . El centro es la prueba de las interfaces Test de sistemas Se prueba el sistema como un todo Test de aceptación Pruebas con datos del cliente para chequear las expectativas del usuario Análisis y diseño de Sistemas - Sesión 14

38 Prueba de software Verificación dinámica del comportamiento de un programa sobre un número finito de casos de prueba seleccionados del dominio de ejecuciones usualmente infinito. Conceptos básicos: terminología, fundamentos teóricos, relaciones de la prueba con otras actividades. Técnicas de prueba: criterios para la generación de datos de prueba. Mediciones relacionadas con pruebas: evaluación de programa en prueba, evaluación de las pruebas realizadas Gerencia: tópicos gerenciales y de actividades de prueba Análisis y diseño de Sistemas - Sesión 14

39 Mantenimiento de software Conceptos básicos: definiciones, actividades y problemas de mantenimiento Procesos de mantenimiento basados en estándares Factores clave: técnicos, gerenciales, costos, estimaciones y mediciones Técnicas: incluyen comprensión de programas, reingeniería, ingeniería reversa y análisis de impacto Análisis y diseño de Sistemas - Sesión 14

Autoevaluación Sesión 14

Pregunta 1 ¿Qué es SCAMPI en el contexto del establecimiento de métricas de software? Un estándar utilizado para evaluar y mejorar los procesos y la calidad del software Un conjunto de métricas específicas para medir la seguridad del software Un enfoque para desarrollar métricas personalizadas para un proyecto de software específico

Pregunta 2 ¿Qué se debe tener en cuenta al establecer un sistema de métricas de software basado en estándares como SCAMPI? Seguir rigurosamente las métricas definidas por el estándar sin adaptación Personalizar las métricas del estándar para que se ajusten a las necesidades del proyecto Utilizar métricas cuantitativas únicamente, sin considerar aspectos cualitativos

Las métricas para la calidad de software son herramientas utilizadas para evaluar y medir la calidad del software en términos de diferentes atributos, como funcionalidad, rendimiento, mantenibilidad y seguridad. El establecimiento de un sistema de métricas de software implica definir las métricas y los objetivos de calidad relevantes para el proyecto, recopilar datos, analizarlos y utilizar los resultados para tomar decisiones informadas y mejorar la calidad del software. SCAMPI (Standard CMMI Appraisal Method for Process Improvement ) es un estándar utilizado para evaluar y mejorar los procesos y la calidad del software, basado en el modelo CMMI ( Capability Maturity Model Integration ).

Aplicando lo aprendido: Ver Guía de Laboratorio de la Sesión

Fue n t es de I n f or m aci ó n VILLADA, J. Desarrollo y optimización de componentes software para tareas administrativas de sistemas [en línea]. Antequera (España): IC Editorial, 2016. Disponible en: https://www.digitaliapublishing.com/a/86848 COQUE, S. y LOHANA, L. Investigaciones sobre ingeniería de software [en línea]. Editorial Abya-Yala, 2017. Disponible en: Digitalia, https://www.digitaliapublishing.com/a/58977