TEMA 2: DESARROLLO DEL SOFTWARE



Documentos relacionados
Estructuras de Control - Diagrama de Flujo

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

2 EL DOCUMENTO DE ESPECIFICACIONES

Proceso de desarrollo del software modelo en cascada

Plan de estudios ISTQB: Nivel Fundamentos

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Estructuras de Control - Diagrama de Flujo

EL PROCESO DE DISEÑO DEL SOFTWARE

construcción de programas Prof. Eliana Guzmán U.

Sistemas de Información Administrativo - Universidad Diego Portales. Cátedra : Sistemas de Información Administrativa S.I.A.

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

1. Descripción y objetivos

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software

SISTEMAS DE INFORMACIÓN III TEORÍA

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Ingeniería del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba

Fundamentos de la Programación

11/01/2011. Sugerencias al escribir. Usos de un Manual de Usuario. Usos de un Manual de Usuario. Usos de un Manual de Usuario

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Ciclo de vida del software

BLOQUE I Los Proyectos de Ingeniería y el Ciclo de los Proyectos Clase nº: 2 Asignatura Troncal (4º Curso. 2ª Semestre)

Introducción a la Computación

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

SCRAE Web: Sistema de Corrección y Revisión Automática de Exámenes a través de la WEB

Describir una metodología sistemática de análisis de los procesos organizacionales y cómo estos pueden ser apoyados por las TI.

forma de entrenar a la nuerona en su aprendizaje.

Ciclo de vida y Requerimientos de software. Laboratorio de Programación

Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008)

Interacción Persona - Ordenador

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Metodologías de diseño de hardware

Introducción a la Computación TFA

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

DIAGRAMAS DE GANTT DIAGRAMAS DE FLUJO Y PSEUDOCODIGOS COMO HERRAMIENTAS PARA LA PROGRAMACION DE JUEGOS PEDAGOGICOS ERIKA VANNESSA MARTINEZ SUAZA

Procesadores de lenguaje Tema 5 Comprobación de tipos

DOCUMENTACIÓN DE LAS PRUEBAS DE INTEGRACIÓN

Metodología y Tecnología de la Programación Tipo Obligatoria Impartición Anual Créditos ECTS 12,5 Curso 1º Código 42506

PRU. Fundamento Institucional. Objetivos. Alcance

6.4 ESTRATEGIAS DE PRUEBA

Cómo mejorar la calidad del software a través de una gestión adecuada de la productividad de las pruebas

Desarrollar el concepto del producto. Asignar requisitos de hardware y software N

El Proceso Unificado de Desarrollo de Software

Gestión y Desarrollo de Requisitos en Proyectos Software

Ciclo de vida del Software

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

rg.o El l c i c c i l c o l o de d vi v d i a d a cm a l@ rza e de d u n u n si s s i t s e t ma m a de d in i f n or o ma m c a i c ó i n ó b

Soporte lógico de computadoras

Gestión de Proyectos Informáticos

SISTEMAS DE INFORMACIÓN I TEORÍA

Introducción a la Programación 11 O. Humberto Cervantes Maceda

PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE

Empresa Financiera Herramientas de SW Servicios

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Tema 4: Estructuras de Control Estructura y Contenidos

INGENIERÍA DEL SOFTWARE

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Ejemplo Ciclos de vida

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

P.S.P. Programa Educativo. Tecnologías de la Información y Comunicación. Alumno. José Alfredo Ramírez Jaguey

Análisis y Diseño de Aplicaciones

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

PROCEDIMIENTO GERENCIA DE PROYECTO

Procedimiento de Sistemas de Información

Estructuras de Sistemas Operativos

SSTQB. Nivel Fundamentos. Examen ejemplo. Programa de estudios 2010

Algoritmos y Diagramas de Flujo 2

Introducción al Proceso de Pruebas.

El Software. Es lo que se conoce como el ciclo de vida del software.

implantación Fig. 1. Ciclo de vida tradicional

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

! Una variable declarada con final no puede volver a ser reinicializada. numero = 2;! ! Para definir constantes

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Business Process Management(BPM)

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Diseño orientado al flujo de datos

Resolución de problemas en paralelo

Tema 1: Computadores y Programas

Metodologías de Desarrollo de Sistemas de Información

Estándar de Ingeniería de Software de la European Space Agency (ESA)

Sentencias o instrucciones en Visual BASIC

El Ciclo de Vida del Desarrollo de Aplicaciones

GUÍA DOCENTE. Curso Ingeniería Informática en Sistemas de Información Doble Grado: Mantenimiento de Bases de Datos Módulo: Módulo 6

Software de Simulación aplicado a entornos de e-learning

Preliminares. Tipos de variables y Expresiones

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

EASY Software & Innovation

Aseguramiento que el software crítico se construye fiable y seguro

Comunicación con la Computadora

GUÍA DOCENTE 1. DESCRIPCIÓN DE LA ASIGNATURA. Ingeniería Informática en Sistemas de Información Fundamentos de Programación Módulo: Modulo 1

en Dirección Estratégica

Diseño de algoritmos

DCU Diagramas de casos de uso

ITBA - UPM MAGISTER EN INGENIERIA DEL SOFTWARE ANTEPROYECTO DE TESIS

Transcripción:

TEMA 2: DESARROLLO DEL SOFTWARE EDI I Curso 2007/08 Escuela Politécnica Superior Universidad Autónoma de Madrid TEMA 2: DESARROLLO DEL SOFTWARE 2.1. Ciclo de vida del Software 2.2. Corrección de errores de programación 2.3. Algoritmos

Componentes de una aplicación Informática Hardware (Hw): Estático Independiente de la aplicación Software (Sw): Dinámico, cambiante Específico del problema que resuelve la aplicación Componentes de una aplicación Informática Sw más necesario, más complejo y más trabajoso que el Hw más caro Desarrollo de Sw requiere ECI: Esfuerzo Creatividad Ingenio Metodología de producción de Sw: Ingeniería del Software

Ciclo de Vida del SW Es la base de la Ingeniería del Sofware Actividades sobre el Sw desde su concepción hasta su muerte. Fases: 1. Análisis 2. Diseño 3. Desarrollo (implementación) 4. Pruebas y validación 5. Mantenimiento Ciclo vida SW: Fase 1 Análisis Qué hace la aplicación Tareas a realizar: 1. Descripción general completa del problema a resolver 2. Especificación funcional: qué tiene que hacer la aplicación 3. Análisis de requisitos: condiciones informáticas bajo las que debe funcionar la aplicación 4. Especificación de E/S: qué recibe y qué devuelve la aplicación 5. Criterios de validación: especificar cómo se va a comprobar que la aplicación funciona (que cumple requisitos y especificaciones)

Ciclo vida SW: Fase 1 Análisis 6. Análisis de factibilidad: ver si es posible realizar la aplicación. Resultados de la fase de análisis: 1. Conocimiento profundo del problema (por parte de los informáticos) 2. Documento con: Especificación de requisitos (valor informático + contractual) Protomanual de usuario Primeras estimaciones del coste de la aplicación Ciclo vida SW: Fase 2 Diseño Cómo se va a hacer la aplicación ANÁLISIS DISEÑO Descripción funcional Tareas Datos Algoritmos Tipos y estructuras de datos Diseño informático Cliente Analista Programador Analista: Buen programador Conocimientos sólidos Capacidad de: análisis, síntesis, organización y comunicación (verbal y escrita)

Ciclo vida SW: Fase 2 Diseño Enfoque modular: TOP-DOWN Jerarquía de: 1. Grandes módulos, semi-independientes, intercomunicados 2. Submódulos N. Funciones elementales Ciclo vida SW: Fase 2 Diseño Resultados de la fase de diseño: 1. Estructuración de la aplicación según la jerarquía de módulos 2. Documento de diseño con info sobre: 1. Organización de los procesos 2. Datos y sus estructuras de datos 3. E/S generales y de cada submódulo 4. Intercomunicación (a niveles corrrespondientes) 3. Estimaciones económicas finales

Ciclo vida SW: Fase 3 Desarrollo Tareas: programación de la aplicación pruebas de módulos individuales pruebas de intercomunicación Módulo de desarrollo + pruebas = espiral creciente de alcance funcional y complejidad Ciclo vida SW: Fase 3 Desarrollo Resultados del desarrollo: 1. Código de la aplicación 2. Documentación de la aplicación 3. Código del Sw de pruebas: genera datos de pruebas, simula entornos de ejecución, etc. 4. Datos de pruebas 5. Documentación de las pruebas

Ciclo vida SW: Fase 3 Desarrollo Propiedades del código: 1. Legible: bien estructurado, tanto conceptualmente (funcionalmente) como visualmente 2. Correcto: siempre y frente a cualquier entrada 3. Comprensible: bien documentado Ciclo vida SW: Fase 3 Desarrollo Tipos de código: Académico: Programas pequeños Poco críticos Profesional: Programas grandes Críticos (no pueden fallar) Análisis y diseño individual Poco uso (programador y profesor) Requiere ECI Análisis y diseño en grupo Uso intenso, por terceros Requiere ECI + metodología + buenos hábitos +

Ciclo vida SW: Fase 4 Validación Validación: certificación de que el Sw. Cumple los requisitos y especificaciones establecidas en fase 1 (análisis) Objetivos: Validar el Sw Detectar/corregir errores finos (los gruesos se detectan en la fase 3) Estrategía BOTTOM-UP: funciones individuales => jerarquía de módulos => aplicación completa (Más detalles después) Ciclo vida SW: Fase 5 Mantenimiento Modificación de un producto Sw después de su entrega al cliente, para: corregir defectos adaptarlo a un cambio de entorno mejorar rendimiento Suele ser lo más costoso

Modelo ciclo vida SW en cascada Análisis Diseño Desarrollo Pruebas Mantenimiento Subidas de 1 escalón + o frecuentes, debidas a errores, inconsistencias, olvidos en fase anterior Subidas de 2 o más escalones deberían ser poco frecuentes. Suponen esfuerzo, tiempo y coste superiores (perdido) TEMA 2: DESARROLLO DEL SOFTWARE 2.1. Ciclo de vida del Software 2.2. Corrección de errores de programación Fuentes de errores Detección de errores. Tipos de pruebas Datos de prueba Excepciones 2.3. Algoritmos

Corrección de errores de programación Fuentes de errores: 1. Errores violentos Ej: divisiones por 0, punteros locos, etc. Detección fácil, reproducción + o - fácil, resolución fácil 2. Lógica inconsistente/errónea Resultados a veces correctos, a veces inconsistentes, a veces erróneos + complicados de detectar => + difíciles de reproducir => + difíciles de corregir 3. Especificación/diseño incorrectos Detección tardía Corrección casi imposible (falta de recursos, etc.) Corrección de errores de programación Detección de errores. Pruebas de 2 tipos: 1. Funcionales: pruebas de alto nivel El software se ve como una caja negra E SW S Tareas: 1. Definir el conjunto de entradas 2. Calcular (a mano) las salidas esperadas de cada entrada 3. Comprobar que el Sw hace lo mismo 2. Estructurales: pruebas de bajo nivel Se sigue de cerca la evolución de la ejecución (depuración, debugger)

Corrección de errores de programación Datos de prueba: Antes de probar, definir conjunto de datos de prueba. Tipos: 1. Datos normales 2. Datos extremos 3. Datos ilegales 3.1. Datos ilegales normales 3.2. Datos ilegales absurdos Corrección de errores de programación Datos de prueba: 1. Datos normales: Son legítimos y razonables Resultado: correcto Ej: float media (float t [], int dim) dim = 10000 t [i] = razonables dentro de floats, y que la suma no pase del tamaño de un float

Corrección de errores de programación Datos de prueba: 2. Datos extremos: Son normales, pero al límite de la procesabilidad Resultado: correcto ó mensaje de error Ej: float media (float t [], int dim) dim = INT_MAX t [i] = tales que la suma pasa del tamaño de un float (FLT_MAX) Corrección de errores de programación Datos de prueba: 3. Datos ilegales: Son NO procesables Tipos: 3.1. Ilegales normales : P.ej., el tipo se corresponde, pero se pasa del valor permitido. Ej: dim > INT_MAX, t[i] > FLT_MAX 3.2. Ilegales absurdos: Ni siquiera coincide el tipo de dato Ej: dim = hola Resultado: mensaje de error correspondiente

Corrección de errores de programación Nunca puede haber fallos/ cuelgues, programa debe responder siempre necesario capturar excepciones y gestionarlas adecuadamente Excepción: circunstancia excepcional que se produce durante la ejecución de un programa y que debe ser gestionada Capturar y gestionar excepciones código extra, costoso y caro (aprox. 50% código) TEMA 2: DESARROLLO DEL SOFTWARE 2.1. Ciclo de vida del Software 2.2. Corrección de errores de programación 2.3. Algoritmos Definición Elementos básicos Programación estructurada Pseudocódigo y diagrama de flujo

Algoritmos Algoritmo: conjunto de instrucciones simples, de ejecución finita, y que producen unos resultados concretos y correctos. Algoritmos Elementos básicos Elementos básicos de un algoritmo: 1. Secuencias (bloques secuenciales) 2. Selecciones 3. Repeticiones

Algoritmos Elementos básicos 1. Secuencias (bloques secuenciales): serie de sentencias simples de ejecución secuencial Flujo de ejecución Algoritmos Elementos básicos 2. Selecciones: Bloques secuenciales que se ejecutan o no dependiendo de una condición Varios bloques, sólo se ejecuta uno Ej. en C: if, switch,? Flujo de ejecución

Algoritmos Elementos básicos 3. Repeticiones: Bloques secuenciales que se ejecutan repetidamente mientras se cumpla una condición Ej. en C: for, while, do while,? SÍ NO... Algoritmos Prog. estructurada Programación estructurada: Sólo se usan estos 3 elementos (secuencias, selecciones, repeticiones), posiblemente anidados No se usa go to

Algoritmos Pseudocódigo Pseudocódigo: representación genérica (independiente del lenguaje) y concisa del funcionamiento de un algoritmo Algoritmos Pseudocódigo Pseudocódigo algoritmo de Euclides ent mcd (ent a, ent b) si b > a: intercambia (a, b); r = a mod b; mientras r > 0: a = b; b = r; r = a mod b; devolver b; Selección Repetición Secuencia

Algoritmos Diagrama de flujo Diagrama de flujo algoritmo de Euclides (inicio) b>a? SÍ NO intercambiar (a, b) r = a % b r>0? NO SÍ devolver b a=b; Algoritmos Pseudocódigo Observaciones: No se puede programar sin saber escribir pseudocódigo Notación pseudocódigo: libre pero cercana a lenguajes, no a lenguaje natural Elementos implícitos que no se especifican: punteros, declaración variables, etc. Seguir convenciones de legibilidad: sangrado de sentencias y bloques Importante: claridad, concreción de ideas