SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
Análisis y Diseño
      de Software



Pensamiento de la semana
Depuración

     Departamento de Ingeniería de Sistemas Telemáticos
                                 http://moodle.dit.upm.es
Depuración
“Es una tarea dolorosa
mirar a tus propios problemas y
   saber
que tú mismo y nadie más los ha
   provocado”




Sófocles
Ayax



                              Programador Pragmático - Depuración   2
El origen moderno del término “Bug”




              9/9/1945 Grace Murray Hopper,
              Madre de COBOL
               Programador Pragmático - Depuración   3
Psicología de la Depuración (I)
● Lamentablemente,       cometemos errores y hay fallos (bugs)
● Los
    ordenadores aún hacen lo que les decimos que
 hagan y no lo que queremos que hagan
● No
   hay software perfecto: la depuración nos llevará la
 mayor parte del tiempo
● Actitud     de depuración:
  –    Reto
  –    No busques culpables
  –    Arregla el problema
  –    Cualquier fallo es tu problema


                                Programador Pragmático - Depuración   4
Psicología de la Depuración (II)
●Primera regla: Don’t Panic
●No les des vueltas
  –   pero si funcionaba hace un rato y no he
      cambiado nada...
  –   tendría que ir...
●Busca la causa, no te quedes en los
 síntomas


                        Programador Pragmático - Depuración   5
Por dónde empezar

●Antes   de buscar el fallo
  –   Comprueba que todo está compilado
  –   Comprueba que no hay avisos (warnings) al
      compilar
●Reproduce   el fallo para tener todos los
 datos del problema




                       Programador Pragmático - Depuración   6
Estrategias de depuración I

●Visualizar    qué está pasando
  –   Emplea una herramienta de depuración
  –   Establece paradas (“breakpoints”) y ejecuta
      paso a paso
  –   Visualiza valores de las variables
●Emplear     trazas
  –   Las trazas permiten ver qué pasa antes y
      después
  –   Ajusta los niveles de detalle de las trazas
                         Programador Pragmático - Depuración   7
Estrategias de depuración I

●Explica  el problema a otra persona (o al
 patito“rubber ducking”)
  –   Al “verbalizar”, ves qué asunciones no son
      ciertas
●Proceso     de Eliminación
  –   Antes de pensar que el fallo puede estar en
      algoexterno (una biblioteca que usas, SO, ...),
  –   asegúrate que tu código no tiene fallos “El
      Select no tiene bugs”

                        Programador Pragmático - Depuración   8
La sorpresa
●Si encuentras que el fallo es
 inesperado
  –   Arréglalo
  –   Determina por qué no fue capturado
      antes
       •   ¿Pocas pruebas unitarias?
       •   ¿Falta de comprobación de parámetros?
       •   ¿Hay más código que puede tener el mismo
           fallo?
       •   ¿Hay pocas trazas en el código?

                           Programador Pragmático - Depuración   9

Contenu connexe

Tendances (11)

Excepciones en Java
Excepciones en JavaExcepciones en Java
Excepciones en Java
 
1 conceptos algoritmos
1 conceptos algoritmos1 conceptos algoritmos
1 conceptos algoritmos
 
Unidad 1 el pseudocodigo
Unidad 1 el pseudocodigoUnidad 1 el pseudocodigo
Unidad 1 el pseudocodigo
 
Octavo
OctavoOctavo
Octavo
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores en java
 
Clase 1
Clase 1Clase 1
Clase 1
 
TRABAJO DE LA SEGUNDA EVALUACIÓN -VIDEO1
TRABAJO DE LA SEGUNDA EVALUACIÓN -VIDEO1TRABAJO DE LA SEGUNDA EVALUACIÓN -VIDEO1
TRABAJO DE LA SEGUNDA EVALUACIÓN -VIDEO1
 
Manejo de Excepciones
Manejo de ExcepcionesManejo de Excepciones
Manejo de Excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 

Similaire à Depuracion

Modulo 4 Mantenimiento de equipo de computo
Modulo 4 Mantenimiento de equipo de computoModulo 4 Mantenimiento de equipo de computo
Modulo 4 Mantenimiento de equipo de computo
Brian Ivan Perez Zamora
 
Integrantes kevin barahona
Integrantes kevin barahonaIntegrantes kevin barahona
Integrantes kevin barahona
08011997
 
Consejos y técnicas a la hora de programar - 1998
Consejos y técnicas a la hora de programar - 1998Consejos y técnicas a la hora de programar - 1998
Consejos y técnicas a la hora de programar - 1998
Luis Eduardo Pelaez Valencia
 
Mantenimiento lógico del computador
Mantenimiento lógico del computadorMantenimiento lógico del computador
Mantenimiento lógico del computador
lisethbarraza
 
C:\Fakepath\Algoritmos2
C:\Fakepath\Algoritmos2C:\Fakepath\Algoritmos2
C:\Fakepath\Algoritmos2
activat
 

Similaire à Depuracion (20)

Tarea 02
Tarea 02Tarea 02
Tarea 02
 
Bugs patches, trabajando con la comunidad de Drupal
Bugs patches, trabajando con la comunidad de DrupalBugs patches, trabajando con la comunidad de Drupal
Bugs patches, trabajando con la comunidad de Drupal
 
Modulo 4 Mantenimiento de equipo de computo
Modulo 4 Mantenimiento de equipo de computoModulo 4 Mantenimiento de equipo de computo
Modulo 4 Mantenimiento de equipo de computo
 
Guía básica de optimización del pc
Guía básica de optimización del pc Guía básica de optimización del pc
Guía básica de optimización del pc
 
Optimizar el rendimiento de windows
Optimizar el rendimiento de windowsOptimizar el rendimiento de windows
Optimizar el rendimiento de windows
 
Exposicion unidad-iii
Exposicion unidad-iiiExposicion unidad-iii
Exposicion unidad-iii
 
Estructuras_F_CAT
Estructuras_F_CATEstructuras_F_CAT
Estructuras_F_CAT
 
Integrantes kevin barahona
Integrantes kevin barahonaIntegrantes kevin barahona
Integrantes kevin barahona
 
Prueba de sistema
Prueba de sistemaPrueba de sistema
Prueba de sistema
 
Prueba de sistema
Prueba de sistemaPrueba de sistema
Prueba de sistema
 
Fundamentos de diagnostico de una computadora _ Esteban Paredes
Fundamentos de diagnostico de una computadora _ Esteban Paredes Fundamentos de diagnostico de una computadora _ Esteban Paredes
Fundamentos de diagnostico de una computadora _ Esteban Paredes
 
Manual de procedimientos
Manual de procedimientosManual de procedimientos
Manual de procedimientos
 
Sesion 01 _version_finalok__31124____37877__
Sesion 01 _version_finalok__31124____37877__Sesion 01 _version_finalok__31124____37877__
Sesion 01 _version_finalok__31124____37877__
 
Consejos y técnicas a la hora de programar - 1998
Consejos y técnicas a la hora de programar - 1998Consejos y técnicas a la hora de programar - 1998
Consejos y técnicas a la hora de programar - 1998
 
Mantenimiento lógico del computador
Mantenimiento lógico del computadorMantenimiento lógico del computador
Mantenimiento lógico del computador
 
Jugando con javascript
Jugando con javascriptJugando con javascript
Jugando con javascript
 
INF2_P1_EXC2_Josue Ramon Rodriguez Gil 1,A
INF2_P1_EXC2_Josue Ramon Rodriguez Gil 1,AINF2_P1_EXC2_Josue Ramon Rodriguez Gil 1,A
INF2_P1_EXC2_Josue Ramon Rodriguez Gil 1,A
 
Algoritmos2
Algoritmos2Algoritmos2
Algoritmos2
 
C:\Fakepath\Algoritmos2
C:\Fakepath\Algoritmos2C:\Fakepath\Algoritmos2
C:\Fakepath\Algoritmos2
 
ALGORITMO
ALGORITMOALGORITMO
ALGORITMO
 

Plus de Carlos A. Iglesias

Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
Carlos A. Iglesias
 

Plus de Carlos A. Iglesias (20)

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
 
Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Depuracion

  • 1. Análisis y Diseño de Software Pensamiento de la semana Depuración Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  • 2. Depuración “Es una tarea dolorosa mirar a tus propios problemas y saber que tú mismo y nadie más los ha provocado” Sófocles Ayax Programador Pragmático - Depuración 2
  • 3. El origen moderno del término “Bug” 9/9/1945 Grace Murray Hopper, Madre de COBOL Programador Pragmático - Depuración 3
  • 4. Psicología de la Depuración (I) ● Lamentablemente, cometemos errores y hay fallos (bugs) ● Los ordenadores aún hacen lo que les decimos que hagan y no lo que queremos que hagan ● No hay software perfecto: la depuración nos llevará la mayor parte del tiempo ● Actitud de depuración: – Reto – No busques culpables – Arregla el problema – Cualquier fallo es tu problema Programador Pragmático - Depuración 4
  • 5. Psicología de la Depuración (II) ●Primera regla: Don’t Panic ●No les des vueltas – pero si funcionaba hace un rato y no he cambiado nada... – tendría que ir... ●Busca la causa, no te quedes en los síntomas Programador Pragmático - Depuración 5
  • 6. Por dónde empezar ●Antes de buscar el fallo – Comprueba que todo está compilado – Comprueba que no hay avisos (warnings) al compilar ●Reproduce el fallo para tener todos los datos del problema Programador Pragmático - Depuración 6
  • 7. Estrategias de depuración I ●Visualizar qué está pasando – Emplea una herramienta de depuración – Establece paradas (“breakpoints”) y ejecuta paso a paso – Visualiza valores de las variables ●Emplear trazas – Las trazas permiten ver qué pasa antes y después – Ajusta los niveles de detalle de las trazas Programador Pragmático - Depuración 7
  • 8. Estrategias de depuración I ●Explica el problema a otra persona (o al patito“rubber ducking”) – Al “verbalizar”, ves qué asunciones no son ciertas ●Proceso de Eliminación – Antes de pensar que el fallo puede estar en algoexterno (una biblioteca que usas, SO, ...), – asegúrate que tu código no tiene fallos “El Select no tiene bugs” Programador Pragmático - Depuración 8
  • 9. La sorpresa ●Si encuentras que el fallo es inesperado – Arréglalo – Determina por qué no fue capturado antes • ¿Pocas pruebas unitarias? • ¿Falta de comprobación de parámetros? • ¿Hay más código que puede tener el mismo fallo? • ¿Hay pocas trazas en el código? Programador Pragmático - Depuración 9