Segunda unidad
MATERIA FUNDAMENTOS DE SISTEMAS DE INFORMACIÓN
TRABAJO:
ENSAYO DE CALIDAD DE SOFTWARE
INTEGRANTES SOLEDAD BOLAÑOS SEVERIANO ANA LAURA BRAVO VAZQUEZ AZELINA CARLOS ISIDRO LUCRECIA CASTILLO LORENZO JACQUELINE SANCHEZ MENDEZ MIRNA LUCRECIA TORRES GARCIAS CATEDRÁTICO LIC.MARIA DE LOS ANGELES MARTINEZ MORALES
TUXTEPEC, OAX, 18DE SEPTIEMBRE DEL 2012
Ensayo Resumen Se describe la incursión de la informática dentro de las empresas, de un modo generalista los diferentes caminos para obtener la calidad de software, por eso en este ensayo se describe los diferentes ciclos de vida de un desarrollo de software. El desarrollo de software basado en componentes se ha convertido actualmente en uno de los mecanismos más efectivos para la construcción de grandes sistemas y aplicaciones de software. Una vez que la mayor parte de los aspectos funcionales de esta disciplina comienzan a estar bien definidos, la atención de la comunidad científica comienza a centrarse en los aspectos extra funcionales y de calidad, como un paso hacia una verdadera ingeniería.
Palabras claves Ingeniería en informática, software, ciclo de vida, calidad de software, metodología, características y mitos de software.
Introducción El término de Ingeniería de Software fue introducido a finales de los 60 a raíz de la crisis del software. Esta crisis fue el resultado de la introducción de la tercera generación del hardware. Por otra parte se exige que el software sea eficaz y barato tanto en el desarrollo como en la compra. También se requiere una serie de características como fiabilidad, facilidad de mantenimiento y de uso, eficiencia, etc. Por ese motivo presentamos el siguiente ensayo que será reflejado esas características de la calidad de software proporcionando elementos que permitan tomar decisiones en relación a las inversiones de aseguramiento de calidad y la mejora de procesos.
Desarrollo 2.1 Definición de ingeniería de software. ¿Qué es software? • Según la definición del IEEE, citada por [Lewis 1994] "software es la suma total de los programas de computadora, procedimientos, reglas, la documentación
asociada y los datos que pertenecen a un sistema de cómputo". Según el mismo autor, "un producto de software es un producto diseñado para un usuario". El término Ingeniería del Software fue acuñado en 1969 en el transcurso de un curso de verano de la OTAN en Garmisch. La Ingeniería del Software es una disciplina de la ingeniería cuya meta es el desarrollo costeable de sistemas de software. ¿QUÉ ES LA INGENIERIA DEL SOFTWARE? • Ingeniería de software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad. Es un conjunto de elementos u objetos que conforman una configuración Incluye: • Programas • Documentos • Datos Esta son algunas de la metodología de software que se nuestra a continuación . 1. Requerimientos. Identificar las necesidades del usuario y documentarlas términos de los servicios que debe ofrecer el software. 2. Análisis y diseño. Desarrollar un modelo técnico conceptual de la solución que permita cumplir todos los requerimientos especificados y sirva como base para la construcción del software. 3. Codificación. Implementar el modelo conceptual en un lenguaje o herramienta de programación, es decir, generar el código fuente, además de realizar las pruebas unitarias a cada componente de software y la integración de estos. 4. Pruebas de sistema. Verificar que el software cumpla con los requerimientos especificados y no presente fallas Costos de la calidad en el desarrollo de software De acuerdo con diversos autores [2], [8], [9], [11], [13], a continuación se presentan los diversos tipos de costos asociados con la calidad de software: a) Costos para asegurar la calidad o costos de conformidad Costos de Prevención Costo de todos aquellos esfuerzos para asegurar la calidad del software y prevenir defectos en todas las fases del desarrollo de software. Por ejemplo: aseguramiento de la calidad (planeación de la calidad, mejora de procesos, definición de procesos, políticas y estándares, obtención, análisis y uso de datos sobre la calidad, análisis de causas raíces), requerimientos (especificaciones y prototipos), administración del proyecto (planeación, capacitación, recopilación de métricas), librería de reusó (capacitación y herramientas), administración de la configuración (capacitación y herramientas), consultoría. Costos de evaluación Costo del esfuerzo para descubrir la condición de la calidad del software (evaluaciones planeadas). Esto comprende por ejemplo: evaluación de proyectos (Revisión de especificaciones de requerimientos, diseño y componentes, verificaciones y validaciones en general, inspecciones, pruebas unitarias, de integración y de sistema), auditorías de calidad del producto, evaluaciones externas, pruebas de productos adquiridos.
2.2. Características y mitos del software • El software se desarrolla, no se fabrica. • El software no se estropea. ¡Pero se deteriora! • Aunque la industria tiende a ensamblar componentes, la mayoría del software se construye a medida. Los problemas asociados con el desarrollo del software se han caracterizado como una crisis. Algunos “problema” que indican que el software se encuentra en un periodo de crisis son: • Baja calidad del software. • Tiempo y presupuesto excedido. • Confiabilidad cuestionable. • Altos requerimientos de personal para desarrollo y mantenimiento. En la actualidad, la mayoría de los profesionales reconocidos en la ingeniería del software identifican los mitos en su real dimensión: actitudes equivocadas que han causado problemas serios a los administradores y al personal técnico por igual. Sin embargo, las antiguas actitudes y viejos hábitos son difíciles de modificar, por lo que aún subsisten creencias falsas sobre el software. Mitos de los administradores Mito 1. Ya se tiene un libro lleno de estándares y procedimientos para la construcción de software. ¿Esto proporcionará a mi gente todo el conocimiento necesario? Mito 2. Si se está atrasado en el itinerario es posible contratar más programadores para así terminar a tiempo. Mito 3. Si decido subcontratar el proyecto de software a un tercero, puedo relajarme y dejar que esa compañía lo construya. Mitos de los Clientes Mito 1. Un enunciado general de los objetivos es suficiente para comenzar a escribir programas; los detalles se pueden afinar después. Mito 2. Los requerimientos del proyecto cambian de manera continua, pero el cambio puede ajustarse con facilidad porque el software es flexible. Mitos de los Desarrolladores Mito 1. Una vez que el programa ha sido escrito y puesto a funcionar, el trabajo está terminado. Mito 2. Mientras el programa no se esté ejecutando, no existe forma de evaluar su calidad. Mito 3. El único producto del trabajo que puede entregarse para tener un proyecto exitoso es el programa en funcionamiento.
Mito 4. El Ing. de Sw obligará a emprender la creación de una documentación voluminosa e innecesaria y de manera invariable tornará más lento el proceso.
2.3. Capas de la ingeniería de software Independientemente de la complejidad del sistema y de su área de aplicación la Ingeniería del Software se puede considerar una tecnología multicapa.
Es una necesidad inminente de la industria del software y de los usuarios que el software desarrollado cumpla con todas las dimensiones de la calidad. La calidad no es casual, sino resultado de las actividades y decisiones que se realizan para asegurarla. Las organizaciones deben invertir en actividades que permitan asegurar la calidad, el beneficio de hacerlo es significativamente mayor que no hacerlo. Los métodos de la Ingeniería del Software indican “como” construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Las herramientas de la Ingeniería de Software proporcionan un enfoque automático o semi-automático para el proceso y para los métodos. Cuando se integran herramientas para que la información creada por una herramienta la pueda utilizar otra, se establece un sistema de soporte para el desarrollo del software llamado Ingeniería del Software Asistida por Computadora (CASE).
2.4Definición de software de calidad CALIDAD DE SOFTWARE: El objetivo general de la ingeniería de software es la producción de software de calidad. La calidad del software puede ser considerada desde dos perspectivas diferentes; la óptica del desarrollador y la del cliente o usuario final. Los factores que afectan al desarrollador se denominan Internos y los del cliente Externos La calidad del software es un concepto complejo que no es directamente comparable con la calidad de la manufactura de productos. Según la norma ISO 9000 la calidad es el “grado en el que un conjunto de características inherentes cumple con los requisitos”. La calidad de software está directamente relacionada con su proceso de desarrollo. Se considera que un proceso bien conocido y ampliamente utilizado, sustentado en medición y predicción de eventos, permite controlar en buena medida la producción de software y en consecuencia, producir software de calidad. En la calidad de un producto de software, así como las métricas asociadas en las diferentes etapas del ciclo de vida del software, se suelen distinguir tres aspectos diferentes: Calidad interna: Medible a partir de las características intrínsecas, como el código fuente. Calidad externa: Medible en el comportamiento del producto, como en una prueba. Calidad en uso: Medible durante la utilización efectiva por parte del usuario en un contexto determinado.
2.5. Factores de calidad y productividad FACTORES DE CALIDAD DE SOFTWARE CORRECCIÓN Es la capacidad de los productos software para realizar con exactitud las tareas expresadas en su especificación. Uno de los problemas de la corrección es que se presupone la confianza en los distintos componentes involucrados en la producción del sistema; compilador, bibliotecas, módulos, Sistema operativo, etc. FACTORES DE CALIDAD DE SOFTWARE ROBUSTEZ Es la capacidad de los productos software de reaccionar apropiadamente ante condiciones excepcionales. La robustez viene a ser el complemento de la corrección. En implementación se cuenta con el mecanismo de excepciones el cual garantiza el correcto flujo de ejecución del código. (Programación por contrato) FACTORES DE CALIDAD DE SOFTWARE EFICIENCIA Es la capacidad del software para hacer buen uso de los recursos que manipula. Una práctica muy común en los desarrolladores es la optimización excesiva, lo importante es mantener un balance adecuado entre eficiencia y corrección
FACTORES DE CALIDAD DE SOFTWARE PORTABILIDAD Es la facilidad con que un sistema software puede ser migrado entre diferentes plataformas hardware o software. La portabilidad es un factor que tomó gran importancia en la década de los 90 debido a la gran proliferación de los sistemas basados en Internet y su vasta heterogeneidad. FACTORES DE CALIDAD DE SOFTWARE INTEGRIDAD Es la característica de un sistema de ser capaz de proteger sus diferentes componentes contra los procesos o elementos que no tengan derecho de acceso a los mismos. La integridad es un factor muy importante en sistemas contables, administrativos y gerenciales ya que de ellos depende el capital de la empresa. FACTORES DE CALIDAD DE SOFTWARE FACILIDAD DE USO Es la facilidad con la que un usuario puede interactuar con un sistema software. La facilidad de uso es un factor determinante en términos de mercadeo y venta, ya que es el principal elemento que afecta al usuario final. La facilidad de uso incluye prestancia en instalación, operación y supervisión. FACTORES DE CALIDAD DE SOFTWARE VERIFICABILIDAD Es la facilidad de verificación de corrección de un software. Que tan sencillo es la realización de pruebas que garanticen la funcionalidad del sistema. La prueba exhaustiva de un software es un concepto imposible de ejecutar debido al carácter infinito de flujos de ejecución del sistema. Sin embargo la Ing. de software plantea estrategias generales para garantizar un alto grado de corrección. FACTORES DE CALIDAD DE SOFTWARE COMPATIBILIDAD Es la facilidad combinar diferentes elementos software con el fin de ejecutar una labor en conjunto. La mayoría de los sistemas son abiertos (interactúan con otros sistemas), y el dinamismo inherente a la realidad hace muy probable que los sistemas software tengan que intercambiar información entre si. Esto hace que la compatibilidad sea un factor muy serio al momento de modelar el sistema. FACTORES DE CALIDAD DE SOFTWARE CASO AMR Empresa Matriz de American Airlines, implementa un sistema global de reservas, hoteles alquiler de automóviles, etc... Inversión de 125’000.000 us $ 4 años 200 programadores 47.000 páginas de especificación desarrollo distribuido IMOSIBLE DE INTEGRAR, PROYECTO FALLIDO, PERDIDAS POR 165’000.000 us $ FACTORES DE CALIDAD DE SOFTWARE EXTENSIBILIDAD * Es la facilidad de adaptar los productos software a los cambios de su especificación. “E n el principio c reo Dios los cielos y la tierra. Y la tierra estaba desordenada y vacía” Gn: 1:2 La segunda ley de la termodinámica nos muestra como la naturaleza tiene una
tendencia natural al desorden (entropía) El dinamismo es un factor inherente al universo FACTORES DE CALIDAD DE SOFTWARE REUTILIZACIÓN: Es la capacidad de los productos software para funcionar como bloques básicos de la construcción de diferentes aplicaciones El objetivo general de la reutilización es adaptar la industria del software al modelo de otras industria s (como la electrónica ) , donde la producción se basa en un conjunto de elementos discretos preexistentes con una función genérica (circuitos integrados, resistencias, transformadores), que se ensamblan para dar origen a un nuevo producto. La reutilización es uno de los aspectos más importantes de la producción de software
Conclusión Es una necesidad de a ver elaborado este ensayo basado en la ingeniería del software y de los usuarios que el software, desarrollado cumpla con todas las dimensiones de la calidad. La calidad no es casual, sino resultado de las actividades y decisiones que se realizan para asegurarla. Las organizaciones deben invertir en actividades que permitan asegurar la calidad, el beneficio de hacerlo es significativamente mayor que no hacerlo por eso en este sencillo ensayo nos dimos cuentas la importa de la calidad de software y cuáles son los factores que interviene en él, con las características con la que cuenta etc.
Fuentes de consultas: http://www.paginaspersonales.unam.mx/files/69/Publica_20110622215614.pdf http://www.lcc.uma.es/~av/Publicaciones/02/CalidadDSBC.pdf http://www.csi-csif.es/andalucia/modules/mod_ense/revista/pdf/Carlos_Caballero.pdf http://www.uv.mx/gestion/proyectos/documents/KARLAALEJANDRAJIMENEZMARTINEZ.pdf