Tecnologas de la Informacin y las Comunicaciones HERRAMIENTAS PARA LA IMPLEMENTACIN Y VERIFICACIN Ingeniera en Sistemas y Tecnologas de la Informacin Prof. Erika Meja Objetivos de la Asignatura Aplicar los conceptos relacionados con la fase de implementacin del ciclo de vida del desarrollo de software desde una perspectiva orientada a objetos mediante la implementacin de distintos artefactos de las fases de anlisis y diseo en sistemas de mediana complejidad. Aplicar eficientemente las herramientas para implementacin y creacin de aplicaciones basadas en modelos orientados a objetos, que permita al estudiante mayor productividad y eficiencia en el desarrollo de sistemas. Analizar los conceptos relacionados con la ingeniera de pruebas desde el punto de vista del modelado orientado a objetos a travs de la identificacin de defectos en los productos de software obtenidos en la fase de implementacin para la correccin de los mismos. Aplicar eficientemente las herramientas de automatizacin de pruebas para la realizacin de pruebas de unidad, de integracin y de sistemas en la construccin de software con alto grado de calidad y confiabilidad. CONTRATO DIDCTICO Durante las clases presenciales los/las alumnos(as) debern cumplir con las siguientes normas: La asistencia y la puntualidad son obligatorios. Todo estudiante con 20% de inasistencias no justificadas perder su derecho a calificacin. El (la) estudiante debe ser participativo: en clases, sesiones de consultas y /o actividades programadas por el docente y la coordinacin. Las evaluaciones deben hacerse en el tiempo establecido y las asignaciones entregadas en tiempo y forma, segn lo acordado entre los estudiantes y el profesor. El estudiante debe conocer y respetar el reglamento de la universidad y el reglamento de los laboratorios de software para lograr el ambiente de trabajo necesario para el desarrollo de las clases. El estudiante debe garantizar el buen estado de cualquier medio de almacenamiento para la entrega de asignaciones, exmenes o trabajo de curso. No se permite el fraude acadmico en asignaciones, en exmenes o en el trabajo de curso. Durante las clases presenciales, los/las Docentes debern cumplir con las siguientes normas: Asistir a clases puntualmente todos los das asignados para el curso. Desarrollar los temas planteados en el Syllabus. Retroalimentar al estudiante sobre su aprendizaje. Entregar calificaciones a ms tardar 8 das despus de realizada una evaluacin. Proporcionar un material de lectura apropiado. Brindar una hora de consulta semanal Contenido Unidad I: Herramientas Back CASE Unidad II: Verificacin y Validacin del Software Unidad III: Herramientas para Pruebas del Software Unidad IV: Herramientas para el Mantenimiento de Sistemas Unidad I: Herramientas Back CASE Contenido 1. Conceptos bsicos Ingeniera de software. Ingeniera de software asistida por computadora. Ciclo de vida del desarrollo de software. Cualidades del software de calidad. Verificacin, validacin, correccin y pruebas. Control de versiones. Mantenimiento de sistemas. Ingeniera del Software La ingeniera es el estudio y la aplicacin de las distintas ramas de la tecnologa. Esto quiere decir que, a travs de tcnicas, diseos y modelos, y con el conocimiento proveniente de las ciencias, la ingeniera puede resolver problemas y satisfacer necesidades humanas. El software de computadora es el producto que los ingenieros de software construyen y despus mantienen a largo plazo. El software se forma con: 1. Las instrucciones (programas de computadora) que al ejecutarse proporcionan las caractersticas, funciones y el grado de desempeo deseado. 2. Las estructuras de datos que permiten que los programas manipulen informacin de manera adecuada. 3. Los documentos que describen la operacin y uso de los programas. [Pressman, 2010]. La Ingeniera de Software es una disciplina que integra el proceso, los mtodos, y las herramientas para el desarrollo de software de computadora. [Pressman, 2005]. La Ingeniera de Software Asistida por Computador (Computer Aided Software Engineering - CASE) es un conjunto de herramientas de programacin que utilizan una interfaz comn para disear, desarrollar y depurar software. Por lo tanto, un entorno CASE consta de herramientas que proveen un modelo visual de una aplicacin, herramientas que crean un cdigo a travs de interfaces visuales y finalmente un depurador para probar el cdigo final. 9 de 15 El objetivo principal de la herramienta CASE es automatizar los aspectos clave del proceso de desarrollo de sistemas desde su inicio hasta el final. Las consecuencias de esta automatizacin se observan en el aumento de productividad por parte de los desarrolladores de sistemas, en la mejora en la comunicacin necesaria (imprescindible) entre usuarios y especialistas en informtica, en el sostenimiento de una disciplina (estandarizacin) en las actividades de un proyecto, en las facilidades que brindan para el mantenimiento del sistema (ajustes). Sesin Terica #1 La Ingeniera del Software Asistida por Computadora (CASE) puede ser tan simple como una herramienta que permite desarrollar una actividad especfica, o tan compleja como un "entorno" que integre distintas herramientas para gestin de bases de datos, hardware, redes, sistemas operativos, estndares y muchos otros componentes. Bloques que Componen el CASE 11 de 15 Cada bloque constituye la base del siguiente, con las herramientas situadas en la cima de la pila. Marco de integracin: Es un conjunto de programas especializados que permiten a cada herramienta CASE comunicarse con las dems. Servicios de portabilidad: Este conjunto constituye un puente entre las herramientas CASE, su marco de integracin y la arquitectura de entorno. De esta forma permiten que las herramientas CASE y su marco de integracin puedan migrar a travs de diferentes plataformas de hardware y sistemas operativos sin problemas de adaptacin. Sistema operativo: Gestiona el hardware, la red y las herramientas; mantiene el entorno unido. Plataforma hardware/red: Son las estaciones de trabajo individuales interconectadas mediante la red para que los ingenieros del software puedan comunicarse de forma efectiva. Arquitectura de entorno: Es la base del CASE, en este bloque se construyen los entornos de la ingeniera del software, engloba los sistemas de software y hardware. Adems, considera los patrones del trabajo humano que se aplican durante el proceso de ingeniera del software. Bloques que Componen el CASE 12 de 15 Clasificacin de las Herramientas CASE Las herramientas CASE se clasifican en CASE de nivel superior (Upper CASE o Front CASE), CASE de nivel inferior (Lower CASE o Back CASE) y CASE Integrado. Esta clasificacin se corresponde con las etapas de la metodologa de ciclo de vida para el desarrollo de sistemas, que son cubiertas por las herramientas. Sesin Terica #1 Las CASE de nivel superior auxilian a los desarrolladores en las etapas tempranas de la metodologa, es decir, en planificacin, anlisis y diseo; pueden ejecutarse en mquinas independientes de la mquina en que se vaya a ejecutar la aplicacin. Describen aspectos bsicos de un sistema y producen la integracin de funciones y relaciones (especificacin sobre requerimientos del usuario, entradas, salidas y expectativas de funcionamiento). Las de nivel inferior son utilizadas por programadores para la elaboracin de programas de computacin, es decir, para generar los cdigos fuente (etapas ingeniera de software y prueba). Es obvio que estas ltimas se apoyan en el resultado obtenido por las de nivel superior, para el mismo sistema. Toda informacin generada por estos medios queda almacenada en un depsito CASE que contiene diagramas, registros, diseos de pantalla, diseo de informes, diccionario de datos y lgica del proceso. CASE integrado se aplica a aquellas herramientas que apoyan actividades que tienen lugar a lo largo de todo el ciclo de vida, se incluyen actividades como la gestin de proyectos y la estimacin. Ciclo de vida del desarrollo de software Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definicin de los requisitos hasta la finalizacin de su uso. ISO 12207-1 Ciclo de vida del desarrollo de software 16 de 15 Qu es la calidad del software? Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas (IEEE 729-83). Conjunto de propiedades y de caractersticas de un conjunto o servicio, que le confieren aptitud para satisfacer unas necesidades explcitas o implcitas (ISO 8402:1984). Calidad del Software 17 de 15 Cualidades del Software (Subcaractersticas) (idoneidad) Las pruebas de software (en ingls software testing) son las investigaciones empricas y tcnicas cuyo objetivo es proporcionar informacin objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. Son una actividad ms en el proceso de control de calidad. Las pruebas son bsicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del tipo de pruebas, estas actividades podrn ser implementadas en cualquier momento de dicho proceso de desarrollo. Pruebas del Software 20 de 15 Una actividad en la cual un sistema o uno de sus componentes se ejecuta en circunstancias previamente especificadas, los resultados se observan y registran y se realiza una evaluacin de algn aspecto. Pruebas (test) Son el proceso de revisin que el sistema de software producido cumple con las especificaciones y que cumple su cometido. La validacin es el proceso de comprobar lo que se ha especificado, si es lo que el usuario realmente quera. Se trata de evaluar el sistema o parte de ste durante o al final del desarrollo de software para determinar si satisface los requisitos iniciales. Es esto lo que el cliente quiere? Debe haber concordancia con : la especificacin de requisitos. La satisfaccin de necesidades del cliente. Validacin Proceso a travs del cual se analiza y revisa que el software satisfaga los objetivos propuestos al inicio del desarrollo. El producto se esta construyendo en forma correcta ?. El proceso de desarrollo debe estar conforme con sus estndares o prcticas de desarrollo. Verificacin Pruebas de software Permite revelar la presencia de errores, no su ausencia. Una prueba exitosa consiste en detectar sntomas de la presencia de uno o ms errores. Antes de hacer la correccin de un error, verificar: La causa del error se repite en otra parte del programa? . Cul es el siguiente error que podra introducirse con la correccin que est a punto de realizarse? . Qu debi hacerse para evitar este error desde el principio?. Correccin de Errores 23 de 15 Mantenimiento Existen 3 tipos de mantenimiento: 1. Correctivo Es cuando se debe corregir errores de funcionamiento del sistema, o cuando aparecen situaciones que no se tuvieron en cuenta o se mal interpretaron en el levantamiento de requisitos. Ejemplos: totaliza mal un listado, no filtra un informe por zona, no redondea un total. 2. Adaptativo Cuando el objetivo es adaptar el sistema o partes de l a nuevas situaciones que generan nuevos requerimientos, por la dinmica evolucin de las empresas y los negocios. Ejemplos: se comienza a consignar mercadera, se abre un punto de venta, se vende en el interior, se aplica un nuevo impuesto, se define una nueva poltica de descuentos. 3. Perfectivo Cuando el sistema est estable y es utilizado por la empresa en su plenitud, pueden surgir requerimientos de perfeccionamiento en algunas de sus funciones, mejorar el rendimiento, reducir los procesos o aumentar su complejidad por razones de seguridad, etc. Ejemplos: envo de respaldos de punto de venta a casa central por mail, agregar seguridad por opciones de men. Actividad en Clase 1. Elabora un mapa conceptual del Ciclo de Vida del Desarrollo de Software (Incluye modelos como: cascada, prototipo, espiral, etc.) 2. Utilizando diferentes fuentes de informacin (Libros, Internet, videos, etc. ), investigar acerca de las herramientas CASE: Concepto y origen Clasificacin segn la fase del Ciclo de Vida del Desarrollo del Software que apoya (Ejemplifica cada tipo) Ventajas y Desventajas Proporciona ejemplos de herramientas segn su clasificacin. Menciona al menos, 3 caractersticas de cada una.