calidad-en-el-desarrollo-de-software.pdf - Lic Cesar Espinoza Jim\u00e9nez Objetivo de la Materia \u0001 Introducir al estudiante a las metodolog\u00edas existentes

calidad-en-el-desarrollo-de-software.pdf - Lic Cesar...

This preview shows page 1 out of 176 pages.

You've reached the end of your free preview.

Want to read all 176 pages?

Unformatted text preview: Lic. Cesar Espinoza Jiménez Objetivo de la Materia  Introducir al estudiante a las metodologías existentes en la Industria del Software para asegurar la calidad de los proyectos.  Desarrollar las habilidades del estudiante para medir sus procesos personales de Software Bibliografía Básica  Ingeniería del Software : Un enfoque práctico. Roger S. Pressman. Mc Graw Hill 6ta Edición  Ingeniería del Software: orientado a objetos. Erick Braude. Alfa-Omega 1era Edición  Ingeniería del Software. Ian Sommerville Preston Education 8ta Edición ¿ Podemos iniciar? Autodiagnóstico  De manera individual defina los siguientes conceptos:  Calidad  Metodología  Software  UML  Desarrollo  Madurez  Proceso  Capacidad  Paradigma  Modelo Retroalimentación  En grupos de 4 personas discuta sus definiciones y lleguen a un consenso. Contenido Temático 1. Ingeniería de Software y Calidad 1.1 Conceptos básicos de Calidad 1.2 Factores que determinan la calidad del Software 1.3 Características del Software 1.4 Modelos de desarrollo de Software 1.5 Importancia de las diferentes etapas en el Desarrollo de Software Contenido Temático 2. Métricas y Procesos (PSP) 2.1 Introducción al Personal Software Process (PSP) 2.2 Estructura del PSP 2.3 Métricas del PSP Contenido Temático 3. CMM-I Capability Maturity Model - Integration 3.1 Inmadurez y madurez en los procesos de Creación de Software 3.2 Los cinco niveles de madurez en los Procesos de Creación de Software 3.3 Definición operacional del modelo CMM 3.4 ¿ Porqué usar el modelo CMM – I? Ingeniería de Software y Calidad Objetivo de la Unidad  Introducir al alumno en el análisis de los diferentes modelos de desarrollo de Software, así como su relación con los conceptos básicos de calidad en el desarrollo de sistemas. 1.1 Conceptos Básicos de Calidad 1. 1 Conceptos básicos de calidad  Clasifique las siguientes marcas en base a su calidad: 1. 1 Conceptos básicos de calidad  Calidad “Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud para satisfacer unas necesidades explícitas o implícitas”. (Norma ISO 9000:8402)  “Característica o atributo de algo”( American Heritage Dictionary). 1. 1 Conceptos básicos de calidad  Calidad  Características mensurables: cosas que se pueden comparar con estándares conocidos como: longitud , color, maleabilidad. 1. 1 Conceptos básicos de calidad  Control de Calidad “Conjunto de técnicas y actividades de carácter operativo, utilizadas para verificar los requerimientos relativos a la calidad del producto o servicio” 1. 1 Conceptos básicos de calidad  ¿ Qué control de calidad aplicarías, por ejemplo, para comprar un par de zapatos deportivos (tennis)? 1. 1 Conceptos básicos de calidad  Garantía de calidad “Conjunto de acciones planificadas y sistemáticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisface los requerimientos dados sobre calidad.” 1. 1 Conceptos básicos de calidad  Garantía de calidad En software es un diseño de acciones planificado y sistemático, que se requiere para asegurar la calidad del software. 1. 1 Conceptos básicos de calidad  Calidad del Software “Es el grado con el que un sistema, componente o proceso cumple con los requerimientos y las necesidades o expectativas del cliente o usuario” (IEEE 610/1990) 1. 1 Conceptos básicos de calidad  Calidad del Software “Concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente que desea el usuario”.( Pressman, 2006). 1.2 Factores que determinan la calidad del SW 1. 2 Factores que determinan la calidad del software a) Factores que se pueden medir directamente (objetivo: cualitativo) b) Factores que se pueden medir indirectamente (subjetivo) 1. 2 Factores que determinan la calidad del software Factores de Calidad de McCall  Características Operativas  Capacidad de soportar cambios  Adaptabilidad a nuevos entornos Características Operativas  Corrección ¿ HACE LO QUE QUIERO? Hasta donde satisface un programa una especificación y logra los objetivos del cliente. Características Operativas  Fiabilidad ¿ Lo hace de forma fiable todo el tiempo? Hasta donde se puede esperar que un programa lleve a cabo su función pretendida con la exactitud requerida Características Operativas  Eficiencia ¿ Se ejecutará en mi HW lo mejor que se pueda? La cantidad de recursos informáticos y código necesaria para que un programa realice su función. Características Operativas  Seguridad ¿ Es seguro? Hasta donde se puede controlar el acceso al software o a los datos por personas no autorizadas. Características Operativas  Usabilidad ¿ Es fácil de manejar? El esfuerzo necesario para aprender, operar , preparar datos de entrada e interpretar salidas (resultados) de un programa. Capacidad de soportar cambios  Facilidad de mantenimiento ¿Puedo corregirlo? El esfuerzo necesario para localizar y arreglar un error en un programa. Capacidad de soportar cambios  Flexibilidad ¿Puedo cambiarlo? El esfuerzo necesario para modificar un programa operativo. Capacidad de soportar cambios  Facilidad de prueba ¿Puedo probarlo? El esfuerzo necesario para probar un programa y asegurarse de que realiza la función pretendida. Adaptabilidad a nuevos entornos  Portabilidad ¿Podré usarlo en otra máquina? El esfuerzo necesario para transferir el programa de un entorno de sistema de HW y/o SW a otro. Adaptabilidad a nuevos entornos  Reusabilidad ¿Podré reutilizar alguna parte del software? Hasta donde se puede volver a emplear un programa (o partes de un programa) en otras aplicaciones, en relación con el empaquetamiento y alcance de las funciones que realiza el programa. Adaptabilidad a nuevos entornos  Interoperabilidad ¿Podré hacerlo interactuar con otro sistema? El esfuerzo necesario para acoplar un sistema con otro. 1.3 Características del SW 1.3 Características del Software  Crisis del SW  Software  Características del SW Crisis del Software La industria del software no ha podido satisfacer la demanda. La complejidad del software producido y demandado se incrementa constantemente. Crisis del Software Síntomas 1. 2. 3. 4. Baja Calidad del Software. Tiempo y Presupuesto Excedido. Confiabilidad Cuestionable. Altos Requerimientos de Personal para desarrollo y mantenimiento. Crisis del Software Factores de influencia 1. Aumento del poder computacional. 2. Reducción del costo del hardware. 3. Rápida obsolescencia de hardware y software. Crisis del Software Factores de influencia 4. 5. 6. Aceptación de la computarización en las empresas. Incremento en el número de usuarios de los sistemas de software. Tipo de usuario no homogéneo aun en sistemas hechos a la medida. Crisis del Software Factores de influencia 7. 8. Personal de desarrollado y mantenimiento diferente. La magnitud del proyecto impacta en: a. b. 9. Tiempo costo y número de desarrolladores, Control administrativo y detalles técnicos Aumento en el conocimiento del problema. Crisis del Software Factores de influencia 10. Cambios en el entorno: a. b. c. d. e. Tecnológicos (Internet,redes,ERP,CRM,SCM..) Económicos (crisis económicas, globalización,..) Sociales (nuevas necesidades, costumbres nuevas,..) Ambientales (...) ... Preguntas 1. 2. 3. 4. 5. 6. 7. ¿Cómo desarrollar software? ¿Cómo dar mantenimiento al creciente volumen de software? ¿Cómo poder mantenerse al corriente a la creciente demanda de software? ¿Porqué lleva tanto tiempo terminar los programas? ¿Porqué tan caro? ¿Porqué no podemos encontrar todos los errores? ¿Porqué es tan difícil evaluar el avance? Preguntas por equipo: 1. 2. ¿Cómo desarrollan el software en las organizaciones? ¿Los desarrolladores de hoy en día están concientes del problema del ciclo de software? 1.3.1 Software Programas Estructura de datos + algoritmos Producto de software Conjunto de elementos de software (programas, tablas, reportes, documentación, etc.) que tienen un propósito específico y completo desde el punto de vista del usuario, de tal manera que la sustracción de cualquiera de los elementos del conjunto daría como resultado que el propósito no se cumpliera. 1.3.1 Software a) Instrucciones (programas de computadora) que cuando se ejecutan proporcionan la función y el rendimiento deseados b) Estructuras de datos que permiten a los programas manipular adecuadamente la información c) Documentos que describen la operación y uso de los programas. Productos de Software  Productos genéricos (sw de mostrador)  Desarrollados por una organización para ser vendidos al mercado. Productos de Software  Productos hechos a medida  Desarrollados bajo pedido a una empresa desarrolladora de software. Productos de Software  La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida. 1.3.2 Características del SW  Como Producto  Como Proceso  Como Proyecto PRODUCTO  Tiene definidas una fecha de inicio de desarrollo y una fecha esperada o estimada de terminación.  Apoya alguna función del usuario hacia el cual está dirigido. Diferencias como producto  Se desarrolla y no se fabrica como otros productos.  No se estropea.  No se “desgasta”.  Hecho por humanos. Atributos de los productos de SW  Facilidad de mantenimiento  Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones.  Confiabilidad  El software no debe causar daños físicos o económicos en el caso de fallas.  Eficiencia  El software no debe desperdiciar los recursos del sistema.  Utilización adecuada  El software debe contar tanto con una interfaz de usuario adecuada como con una documentación clara y precisa. Importancia de los Atributos del Producto de Software  La importancia relativa de las características depende del tipo de producto y en el ambiente en el que será utilizado.  En algunos casos, algunos atributos pueden dominar.  En sistemas de seguridad críticos de tiempo real, los atributos clave pueden ser la confiabilidad y la eficiencia.  Los costos tienden a crecer exponencialmente si se requieren altos niveles de alguna característica. Costos de eficiencia Costos Eficiencia Metas de un producto • • • • • Mantenibilidad Usabilidad Confiabilidad Reusabilidad Portabilidad Productividad Calidad Costos Tiempo Clasificación del Software  Externas  Internas  Del producto  Del proceso Propiedades del Software          Correctividad, Confiabilidad, Robustez. Desempeño (performance) Amigabilidad (Uso amigable) Verificabilidad (Facilidad de verificar) Mantenibilidad. Facilidad de mantenimiento:  Para su reparación → REPARABILIDAD  Para su evolución → VIGENCIA Reusabilidad Portabilidad Comprensibilidad (Comprehensibility): Facilidad de entenderse Interoperabilidad Formas de categorizar el software:  Por tipo de Aplicación o Disciplina.  Por tipo de Arquitectura  Por área Funcional  Por nivel Jerárquico  Por tipo de Estructura Organizacional  Por Tiempo de Respuesta Aplicación o disciplina         Para sistemas Sistemas tiempo real Negocios Ingeniería/científico Empotrado (Embebido) PC´s Inteligencia artificial Aplicaciones Web. Tipo de arquitectura  Stand Alone  Main Frame  Red: LAN, WAN  Internet  Intranet  Extranet Niveles o áreas funcionales Directivo Administración Conocimiento Operacional Contabilidad Finanzas Ventas Mercadotecnia Recursos Humanos Manufactura Niveles o áreas funcionales Directivo Sistema Soporte Ejecutivo (SSE) Administración Sistema Soporte de Decisiones (SSD) Sistema Información Admo. (SIA) Conocimiento Sistema de Automatización de Oficinas. (SAO) / Apoyo Trabajadores del Conocimiento (SATC) Operacional Sistema de Transacción de Operaciones (STO) Nivel Jerárquico  Sistema de Transacción de Operaciones  Sistema de Apoyo a Trabajadores del Conocimiento  Sistema para la Automatización de Oficinas  Sistema de Información Administrativo  Sistema para Soporte de Decisiones  Sistema de Soporte Ejecutivo  Sistema de Soporte de Grupo  Sistema de Soporte Inteligente Actividad Soportada  Sistemas Operacionales  Orientado diarias. hacia transacciones  Sistemas Tácticos  Orientados a apoyar actividades de mandos intermedios: Estadísticas/ Reportes de excepción/Reportes Periódicos/Análisis Comparativos/Proyecciones/Detecci ón Temprana de Problemas/Decisiones Rutinarias.  Sistemas estratégicos Estructura organizacional  Sistemas de Información Departamentales  Sistemas de Información Empresariales  Sistemas de Información Interorganizacionale s Tiempo de Respuesta  Tiempo Real  En línea  Batch Actividad  Proporcione ejemplos de sistemas:  operacionales,  soporte a trabajadores conocimiento,  administrativos,  directivos. del  ¿Qué utilidad tendrá el clasificar los productos de software?  ¿Cuál es el orden de importancia de las propiedades de un sistema de información? PROCESO  Características importantes:  Productividad  Calendarización  Visibilidad PROYECTO DE SOFTWARE Un proyecto está integrado por un conjunto de actividades para lograr uno o más productos de software. Puede dividirse en uno o más subproyectos conformados por subconjuntos de actividades. Proyecto de Software  Características:  Tiene una fecha de inicio definida y una fecha de terminación. Sin embargo en la práctica, la fecha de terminación se puede alargar.  Se calendarizan entregas de “productos” concretos y específicos.  Número de personas variable en el tiempo.  Su propósito es proporcionar un conjunto de facilidades que apoyen a un conjunto de actividades del usuario que lógicamente están relacionadas entre sí. Mitos del Software 3 puntos de vista 3 expectativas 3 intenciones 1. El 2. El Gestor Cliente o Usuario 3. El Desarrollador Mitos del Software  Gestor  Se tienen libros llenos de estándares y procedimientos para desarrollar software  Tienen lo mas avanzado en cómputo; tienen super computadoras.  Si se falla en la planeación, se incluye mas personal. Mitos del Software  Cliente  Una declaración general de objetivos es suficiente para empezar la programación del sistema.  Los requisitos cambian, pero se pueden acomodar con facilidad. Mitos del Software Desarrollador  Escrito y funcionando el programa ya terminó el proyecto  Solo funcionando el programa se puede evaluar la calidad del sistema.  Lo único que se entrega es el código funcionando. Impacto del cambio “Cuando se puede medir y cuantificar aquello sobre lo que uno habla y expresarlo en números, se sabe algo acerca de eso; cuando no puede ser expresado en números el conocimiento es escaso e insatisfactorio...” Lord Kelvin Actividad  Describir un proyecto de desarrollo de software y catalogarlo de acuerdo a la clasificación vista.  Ordene los mitos vistos de acuerdo con la creencia popular de las organizaciones  ¿Qué acciones se deben realizar en su organización para eliminar y/o atenuar los mitos del software? Ingeniería del Software        Definición Importancia Sistemas de Calidad Ciclo de vida Documentos asociados Modelos de Desarrollo Aseguramiento de Calidad. Pruebas. Verificación y Validación Definición Propuesta de solución Establecer y usar principios robustos de ingeniería con el fin de obtener económicamente software que sea fiable y que funcione eficientemente sobre máquinas reales Ingeniería en Software (ISW) Aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del software, esto es, la aplicación de la ingeniería al software Ingeniería del Software La Ingeniería de Software pretende: Analizar, diseñar, construir y dar mantenimiento a grandes y complejos sistemas de software. Importancia de la Ingeniería de Software  LA INDUSTRIA DEL SOFTWARE, UNA NUEVAS AREA DE OPORTUNIDAD (PARA MEXICO) Entorno Internacional Mercado Mundial $541 mmusd. Principales Mercados: NORTEAMÉRICA 48 % OTROS 14 % JAPÓN 12 % EUROPA 26 % Entorno Internacional Principales Segmentos: Administración de Negocios Servicios de Administración Servicios de Integración y Desarrollo de Sistemas Servicios de Consultoría Servicios de Mantenimiento y Soporte Principales Proveedores: India USA Irlanda Israel China Rusia Pakistán Filipinas Otros Entorno Internacional Crecimiento cercano al 15 % anual en los próximos 5 años. Severa escasez de personal capacitado en Tecnologías de la Información. 770,000 en USA1 1,000,000 en Europa1 1,000,000 en Japón1 1 Puestos vacantes Entorno Internacional Intensa competencia entre los países de mayor oferta por los mercados mas importantes. Fuerte tendencia hacia servicios E-Commerce: Integración de aplicaciones en Internet Conversión a modelos basados en Internet Desarrollo y mantenimiento de sitios WEB Tendencia hacia la demanda de servicios integrales. Mercado total $1,584.2 musd Sectores Principales: Financiero Gubernamental Industrial Industrial Educación Otros Principales Servicios: Desarrollo de aplicaciones Mantenimiento de sistemas. Servicios de consultoría. Integración de sistemas. Aplicaciones de Internet. Soluciones e-business. Aplicaciones empaquetadas. No. DE EMPRESAS    257 TIPO DE EMPRESA Nivel Internacional Con estructura formal Sin estructura formal 15 75 167 MEDIANAS 3.2% GRANDES 2.8% PEQUEÑAS 4.0% MICRO 90% CERTIFICACIONES ☺ Certificación ISO 5 ☺ Certificación CMM 5 Oportunidades • Mercado viable en Norteamérica de $20,000 mdd. • Potencial para atraer entre 500 y 1,000 nuevas empresas. • Creación de nuevos polos de desarrollo. • Creación de un flujo neto de divisas positivo. Sistema de Calidad del Software Estándares Revisiones Pruebas Análisis de defectos Administración de la configuración  Seguridad  Educación  Administración de contrataciones      Herramientas Métodos Procesos Ingeniería de Software: Elementos ELEMENTOS Métodos  Los métodos indican cómo construir técnicamente el software.  Tareas que componen los métodos.  Planificación; Estimación de proyectos.  Análisis de requerimientos del software y hardware.  Diseño de estructuras de datos, Arquitectura de los programas.  Procedimientos algorítmicos.  Codificación , prueba y mantenimiento. Herramientas y procesos  Las herramientas son un soporte automático o semiautomático para el proceso y los métodos.  Microsoft Project ( Planificación).  UML ( Modelado).  RationalRose, visio (Modelado soportan UML).  Designer 2000.  Erwin (Bases de datos).  MAGERI (Seguridad).  Los procesos son los encargados de integrar los métodos y herramientas, además de definir la secuencia en la que se aplican los métodos, las entregas que requieren, los controles de calidad y las guías para el desarrollo. Fases Genéricas de la ISW Enfoque de calidad 1. La totalidad de características de un producto que surgen de su habilidad de satisfacer necesidades dadas  cumplir con las especificaciones. 2. Grado en que el software posee una combinación deseada de atributos. 3. Grado en que un cliente o usuario percibe que el software alcanza sus expectativas compuestas. 4. Las características compuestas del software que determinan el grado en que el software en uso cumple con las expectativas del cliente. ANSI/IEEE Std 729-1983 “IEEE Standard Glossary of Software Engineering Terminology 1.4 Modelos de Desarrollo de Software El Proceso de Software Conjunto estructurado de actividades requeridas para desarrollar un sistema de software. Especificación. Diseño. Validación. Debe estar Evolución. explícitamente modelado para ser bien administrado. Modelo de Ingeniería del Proceso Especificación: Establecer los Especificación requerimientos y restricciones del sistema. Diseño: Diseño Producir un modelo en papel del sistema. Manufactura: Manufactura Construir el sistema. Prueba: Prueba Verificar que el sistema cumpla con las especificaciones requeridas. Instalación: Instalación Entregar el sistema al usuario y asegurar su operacionalidad. Mantenimien...
View Full Document

  • Fall '19
  • Comunicación, Control de calidad, Ingeniería de software, Estructura de datos, Desarrollo rápido de aplicaciones

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes