SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
No hay bala de plata: esencia y accidentes de la Ingeniería de Software M.C. Ricardo Quintero (iscrquinter@acm.org) 1ra Etapa de Capacitación Nacional
Reflexiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
El  disfrute  del oficio Lo  divertido  de  hacer  cosas... El  placer  de que las  cosas que hacemos sean útiles a otras personas La  fascinación  de  diseñar complejos  rompecabezas... La  diversión  que conlleva el  siempre aprender ... El  disfrute  de trabajar con algo tan  maleable : el pensamiento (como los poetas)...
El  disfrute  del oficio ,[object Object]
Las  desgracias  del oficio Debe   realizarse perfecto Dependemos   de  otros Otra persona  nos  asigna  los objetivos, recursos y la información necesaria Diseñar   conceptos  es divertido, pero  construirlos es el trabajo real Usualmente el  producto  que se está construyendo se nos vuelve  obsoleto  antes de  terminarlo
A pesar de todo ... ,[object Object]
La leyenda del “Hombre-lobo” De todos los monstruos que tenemos como parte del folclore  de nuestras pesadillas, ninguno es más terrorífico que el  Hombre-lobo , porque se transforma –inesperadamente- de lo  familiar  a lo  horrorífico  ...
La leyenda del “Hombre-lobo” Para el  Hombre-lobo  buscamos una  bala de plata  que pueda -mágicamente- destruirlo ...o al menos “mandarlo a descansar”
Los proyectos de software tienen algo del “Hombre-lobo”... Al principio son  inocentes  y hasta parecen  factibles  (y hasta  fáciles ) ... Entregas  fuera de tiempo  ... Presupuestos  incorrectos  ... y  productos inútiles Pero son capaces de  convertirse  en  Caracterizados por ...
Ley de Brooks - 1986 ,[object Object],Frederick P. Brooks ganador del premio A. M. Turing (ACM) en 1999  (El Premio Nobel de la Computación)
Las Dificultades pueden ser Esenciales o Accidentales ,[object Object],[object Object],[object Object],[object Object]
Pero muchas de las dificultades accidentales ya han sido resueltas, por ejemplo... Mucha de la ganancia lograda en productividad de software ha sido consecuencia de eliminar estas barreras artificiales que hacen que las tareas accidentales sean “inordinariamente” difíciles  La dificultad de programar por el  bajo nivel  de abstracción de los lenguajes ... Facilitar el  acceso  al poder de cómputo ... El  uso de múltiples herramientas : ambientes integrados de desarrollo ...
¿Cuánto del esfuerzo realizado por los ingenieros de software es hacia lo accidental y no hacia lo esencial? ,[object Object]
¿Cuál es la esencia del software? El software es una  construcción de   conceptos  interrelacionados: Esta  esencia es abstracta , en el sentido de que la construcción conceptual es la misma  bajo muchas representaciones diferentes . No obstante es altamente  precisa  y  ricamente detallada . Conjuntos de datos Relaciones entre datos Algoritmos Invocación de funciones
¿Cuál es la esencia del software? ,[object Object],Si esto es verdad, construir software  siempre será difícil . De forma inherente  la bala de plata no existe  ... Consideremos entonces las  propiedades inherentes de esta esencia irreducible  de los sistemas de software:  complejidad ,  conformidad ,  maleabilidad  e  invisibilidad
El software es  complejo ,[object Object],[object Object],[object Object],[object Object]
Por esta  complejidad  se han generado muchos de los problemas del desarrollo de software Dificultad de comunicación  entre los miembros del equipo... Dificultad de enumerar (mucho menos entender)  todos los posibles estados de un programa (y de ahí viene la falta de confiabilidad)... Dificultad de invocar  funciones complejas, lo cual hace a los programas difíciles de utilizar
Por esta  complejidad  se han generado muchos de los problemas del desarrollo de software Dificultades de  gestión del proyecto
Por esta  complejidad  se han generado muchos de los problemas del desarrollo de software Estas dificultades en la gestión de proyectos conllevan al problema de  Integridad Conceptual La  Integridad Conceptual  es la consideración más importante en el diseño de sistemas.  Es mejor tener un sistema que omita ciertas características fantásticas y mejoras, pero que refleje un conjunto de ideas de diseño coherente y no un conjunto de ideas brillantes independientes y no coordinadas Muchas catedrales Europeas muestran diferencias en los planes y el estilo arquitectónico entre partes construidas por diferentes generaciones y diferentes constructores. Los últimos intentaron mejorar los diseños de los primeros por moda o gusto personal ...
Conformidad No solamente la gente que desarrolla software se enfrenta a la complejidad.  Los físicos, por ejemplo se tienen que enfrentar con objetos terriblemente complejos , aún en las partículas fundamentales... Sin embargo, los físicos fundamentan su labor en una fe firme de que existen  principios unificadores  que deben encontrarse en cualquier área de su estudio “ Deben existir explicaciones sencillas de la naturaleza, porque Dios no es caprichoso o arbitrario ...”
Conformidad Muchas de las veces los  sistemas de software  llegan  después  que los  sistemas de negocios  (estos ya existen). A diferencia de la naturaleza, estos sistemas fueron creados por  humanos ... Mucha de la  complejidad  que debe enfrentar el ingeniero de software es  arbitraria, forzada sin ritmo y razón  por las instituciones humanas y los sistemas a los cuales  las interfaces de la aplicación debe conformarse “ Como el sistema  suele ser el último que llega , a él le toca conformarse. Además siempre es visto como  lo más fácil de conformar  (sic) ...”
Maleabilidad  Los  cambios  en edificios, automóviles y hardware de computadoras ocurren pero  no con la misma frecuencia que el software... Esto es porque el software encierra  funcionalidad  y esta es la parte más  sujeta a la presión del cambio . A su vez esta funcionalidad está hecha del material más altamente  maleable : el  pensamiento “ Los edificios también se pueden cambiar, pero los  costos son altos  y eso impide el cambio frecuente..”
Maleabilidad  Todo software exitoso tiene  cambios  en dos aspectos principales ... Conforme el software resulta útil, los usuarios intentan  usarlo en nuevos casos en la frontera del dominio  (o más allá) inventan  nuevos usos  para él ... El software exitoso  sobrevive más allá de la vida normal del hardware
Invisibilidad El software es  invisible  y  no visualizable... Las  abstracciones geométricas  son poderosas para capturar realidades geométricas, pero  la realidad del software es que no está incrustado en el espacio
Invisibilidad La realidad es que los  aspectos estructurales  son ... Muy complejos ... Ocultos ... Y poseen solamente una vista externa de entrada/salida
¿Hay alguna esperanza? Comparemos con la  medicina Se  dejó a un lado  las soluciones simples y creencias falsas para curar las  enfermedades... Para aplicar un  esfuerzo persistente  que  lentamente logre  erradicar las enfermedades
¿Hay alguna esperanza? Y comparemos con la  química Se  dejó a un lado  la  alquimia  ... ¿Podremos aprender algo de estas disciplinas? Para  invertir muchos años  en la comprensión del átomo y después aprender a sintetizar el oro...
¡ Sí ! ,[object Object],¡Este se parece a mi!
¿Qué podemos hacer para tratar de atacar la esencia? Ningún monto de actividad que se dedique a la  expresión de las construcciones conceptuales de las tareas   puede darnos grandes ganancias en productividad  Se debe entonces considerar atacar la  esencia del software , en pocas palabras “ la formulación de las complejas estructuras conceptuales ”
¿Qué podemos intentar para tratar de atacar la esencia? Comprar ,  no construir (reutilizar)... Refinamiento  de requisitos y  prototipado  rápido ... Desarrollo incremental  (grow don’t build)... Más  entrenamiento  en SE y  nutrirse  de los grandes
Algunas referencias ,[object Object],[object Object],[object Object]
 

Weitere ähnliche Inhalte

Andere mochten auch

Misiones en Honduras Mayo 2012
Misiones en Honduras Mayo 2012Misiones en Honduras Mayo 2012
Misiones en Honduras Mayo 2012Ricardo Quintero
 
Ejercicio de máquina de turing
Ejercicio de máquina de turingEjercicio de máquina de turing
Ejercicio de máquina de turingJonathan Bastidas
 
8 test cases a partir de use cases
8 test cases a partir de use cases8 test cases a partir de use cases
8 test cases a partir de use casesRicardo Quintero
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingJonathan Bastidas
 
Omg Fundamental Certification 4
Omg Fundamental Certification 4Omg Fundamental Certification 4
Omg Fundamental Certification 4Ricardo Quintero
 
¿Puede pensar una máquina?
¿Puede pensar una máquina?¿Puede pensar una máquina?
¿Puede pensar una máquina?silviabailen
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesRosviannis Barreiro
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De TuringRicardo Quintero
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.Emmanuel Colon
 

Andere mochten auch (12)

01 fundamentos de ir
01 fundamentos de ir01 fundamentos de ir
01 fundamentos de ir
 
Misiones en Honduras Mayo 2012
Misiones en Honduras Mayo 2012Misiones en Honduras Mayo 2012
Misiones en Honduras Mayo 2012
 
Ejercicio de máquina de turing
Ejercicio de máquina de turingEjercicio de máquina de turing
Ejercicio de máquina de turing
 
8 test cases a partir de use cases
8 test cases a partir de use cases8 test cases a partir de use cases
8 test cases a partir de use cases
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turing
 
Evaluación
EvaluaciónEvaluación
Evaluación
 
Omg Fundamental Certification 4
Omg Fundamental Certification 4Omg Fundamental Certification 4
Omg Fundamental Certification 4
 
¿Puede pensar una máquina?
¿Puede pensar una máquina?¿Puede pensar una máquina?
¿Puede pensar una máquina?
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y Aplicaciones
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
 

Ähnlich wie No Silver Bullet

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para DummiesSorey García
 
Introducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a ObjetosIntroducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a Objetosedwinlemmon
 
Taller ingenieria de software
Taller ingenieria de softwareTaller ingenieria de software
Taller ingenieria de softwareAvanet
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para DummiesSorey García
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Arquitecturas que crecen y arquitecturas que no
Arquitecturas que crecen y arquitecturas que noArquitecturas que crecen y arquitecturas que no
Arquitecturas que crecen y arquitecturas que noAgustin Ramos
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity frameworkCein
 
Interaccion Humano Computador
Interaccion Humano ComputadorInteraccion Humano Computador
Interaccion Humano ComputadorTm-CS
 
Introducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareIntroducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareJose Diaz Silva
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Ingenieria inversa del software (i)
Ingenieria inversa del software (i)Ingenieria inversa del software (i)
Ingenieria inversa del software (i)UnPocoDeTodoPeru
 

Ähnlich wie No Silver Bullet (20)

Ingenieria De Software Para Dummies
Ingenieria De Software Para DummiesIngenieria De Software Para Dummies
Ingenieria De Software Para Dummies
 
Intruducción de la Ingeniería de Software
Intruducción de la Ingeniería de SoftwareIntruducción de la Ingeniería de Software
Intruducción de la Ingeniería de Software
 
Introducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a ObjetosIntroducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a Objetos
 
Ivar Jacobson
Ivar JacobsonIvar Jacobson
Ivar Jacobson
 
Taller ingenieria de software
Taller ingenieria de softwareTaller ingenieria de software
Taller ingenieria de software
 
Sistemas
SistemasSistemas
Sistemas
 
Arquitectura De Software Para Dummies
Arquitectura De Software Para DummiesArquitectura De Software Para Dummies
Arquitectura De Software Para Dummies
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Arquitecturas que crecen y arquitecturas que no
Arquitecturas que crecen y arquitecturas que noArquitecturas que crecen y arquitecturas que no
Arquitecturas que crecen y arquitecturas que no
 
Ado.net entity framework
Ado.net entity frameworkAdo.net entity framework
Ado.net entity framework
 
Interaccion Humano Computador
Interaccion Humano ComputadorInteraccion Humano Computador
Interaccion Humano Computador
 
Introducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareIntroducción a la ingenieria del Software
Introducción a la ingenieria del Software
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Ingenieria inversa del software (i)
Ingenieria inversa del software (i)Ingenieria inversa del software (i)
Ingenieria inversa del software (i)
 

Mehr von Ricardo Quintero

Mehr von Ricardo Quintero (16)

Reseña histórica 1942 2012
Reseña histórica 1942 2012Reseña histórica 1942 2012
Reseña histórica 1942 2012
 
01 conceptos de diseño
01 conceptos de diseño01 conceptos de diseño
01 conceptos de diseño
 
03 administracion de requisitos
03 administracion de requisitos03 administracion de requisitos
03 administracion de requisitos
 
02 desarrollo de requisitos
02 desarrollo de requisitos02 desarrollo de requisitos
02 desarrollo de requisitos
 
Manual 02
Manual 02Manual 02
Manual 02
 
Manual01
Manual01Manual01
Manual01
 
Ai 00 Plan De Estudios
Ai 00 Plan De EstudiosAi 00 Plan De Estudios
Ai 00 Plan De Estudios
 
Mente De CampeóN.
Mente De CampeóN.Mente De CampeóN.
Mente De CampeóN.
 
Calendario Arranque
Calendario ArranqueCalendario Arranque
Calendario Arranque
 
Mex Graf
Mex GrafMex Graf
Mex Graf
 
Ministerio de Servicio
Ministerio de ServicioMinisterio de Servicio
Ministerio de Servicio
 
La OracióN De Jabes Vision
La OracióN De Jabes  VisionLa OracióN De Jabes  Vision
La OracióN De Jabes Vision
 
Uml Omg Fundamental Certification 5
Uml Omg Fundamental Certification 5Uml Omg Fundamental Certification 5
Uml Omg Fundamental Certification 5
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1
 
Uml Omg Fundamental Certification 3
Uml Omg Fundamental Certification 3Uml Omg Fundamental Certification 3
Uml Omg Fundamental Certification 3
 
Uml Omg Fundamental Certification 2
Uml Omg Fundamental Certification 2Uml Omg Fundamental Certification 2
Uml Omg Fundamental Certification 2
 

Kürzlich hochgeladen

Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 

Kürzlich hochgeladen (20)

Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 

No Silver Bullet

  • 1. No hay bala de plata: esencia y accidentes de la Ingeniería de Software M.C. Ricardo Quintero (iscrquinter@acm.org) 1ra Etapa de Capacitación Nacional
  • 2.
  • 3. El disfrute del oficio Lo divertido de hacer cosas... El placer de que las cosas que hacemos sean útiles a otras personas La fascinación de diseñar complejos rompecabezas... La diversión que conlleva el siempre aprender ... El disfrute de trabajar con algo tan maleable : el pensamiento (como los poetas)...
  • 4.
  • 5. Las desgracias del oficio Debe realizarse perfecto Dependemos de otros Otra persona nos asigna los objetivos, recursos y la información necesaria Diseñar conceptos es divertido, pero construirlos es el trabajo real Usualmente el producto que se está construyendo se nos vuelve obsoleto antes de terminarlo
  • 6.
  • 7. La leyenda del “Hombre-lobo” De todos los monstruos que tenemos como parte del folclore de nuestras pesadillas, ninguno es más terrorífico que el Hombre-lobo , porque se transforma –inesperadamente- de lo familiar a lo horrorífico ...
  • 8. La leyenda del “Hombre-lobo” Para el Hombre-lobo buscamos una bala de plata que pueda -mágicamente- destruirlo ...o al menos “mandarlo a descansar”
  • 9. Los proyectos de software tienen algo del “Hombre-lobo”... Al principio son inocentes y hasta parecen factibles (y hasta fáciles ) ... Entregas fuera de tiempo ... Presupuestos incorrectos ... y productos inútiles Pero son capaces de convertirse en Caracterizados por ...
  • 10.
  • 11.
  • 12. Pero muchas de las dificultades accidentales ya han sido resueltas, por ejemplo... Mucha de la ganancia lograda en productividad de software ha sido consecuencia de eliminar estas barreras artificiales que hacen que las tareas accidentales sean “inordinariamente” difíciles La dificultad de programar por el bajo nivel de abstracción de los lenguajes ... Facilitar el acceso al poder de cómputo ... El uso de múltiples herramientas : ambientes integrados de desarrollo ...
  • 13.
  • 14. ¿Cuál es la esencia del software? El software es una construcción de conceptos interrelacionados: Esta esencia es abstracta , en el sentido de que la construcción conceptual es la misma bajo muchas representaciones diferentes . No obstante es altamente precisa y ricamente detallada . Conjuntos de datos Relaciones entre datos Algoritmos Invocación de funciones
  • 15.
  • 16.
  • 17. Por esta complejidad se han generado muchos de los problemas del desarrollo de software Dificultad de comunicación entre los miembros del equipo... Dificultad de enumerar (mucho menos entender) todos los posibles estados de un programa (y de ahí viene la falta de confiabilidad)... Dificultad de invocar funciones complejas, lo cual hace a los programas difíciles de utilizar
  • 18. Por esta complejidad se han generado muchos de los problemas del desarrollo de software Dificultades de gestión del proyecto
  • 19. Por esta complejidad se han generado muchos de los problemas del desarrollo de software Estas dificultades en la gestión de proyectos conllevan al problema de Integridad Conceptual La Integridad Conceptual es la consideración más importante en el diseño de sistemas. Es mejor tener un sistema que omita ciertas características fantásticas y mejoras, pero que refleje un conjunto de ideas de diseño coherente y no un conjunto de ideas brillantes independientes y no coordinadas Muchas catedrales Europeas muestran diferencias en los planes y el estilo arquitectónico entre partes construidas por diferentes generaciones y diferentes constructores. Los últimos intentaron mejorar los diseños de los primeros por moda o gusto personal ...
  • 20. Conformidad No solamente la gente que desarrolla software se enfrenta a la complejidad. Los físicos, por ejemplo se tienen que enfrentar con objetos terriblemente complejos , aún en las partículas fundamentales... Sin embargo, los físicos fundamentan su labor en una fe firme de que existen principios unificadores que deben encontrarse en cualquier área de su estudio “ Deben existir explicaciones sencillas de la naturaleza, porque Dios no es caprichoso o arbitrario ...”
  • 21. Conformidad Muchas de las veces los sistemas de software llegan después que los sistemas de negocios (estos ya existen). A diferencia de la naturaleza, estos sistemas fueron creados por humanos ... Mucha de la complejidad que debe enfrentar el ingeniero de software es arbitraria, forzada sin ritmo y razón por las instituciones humanas y los sistemas a los cuales las interfaces de la aplicación debe conformarse “ Como el sistema suele ser el último que llega , a él le toca conformarse. Además siempre es visto como lo más fácil de conformar (sic) ...”
  • 22. Maleabilidad Los cambios en edificios, automóviles y hardware de computadoras ocurren pero no con la misma frecuencia que el software... Esto es porque el software encierra funcionalidad y esta es la parte más sujeta a la presión del cambio . A su vez esta funcionalidad está hecha del material más altamente maleable : el pensamiento “ Los edificios también se pueden cambiar, pero los costos son altos y eso impide el cambio frecuente..”
  • 23. Maleabilidad Todo software exitoso tiene cambios en dos aspectos principales ... Conforme el software resulta útil, los usuarios intentan usarlo en nuevos casos en la frontera del dominio (o más allá) inventan nuevos usos para él ... El software exitoso sobrevive más allá de la vida normal del hardware
  • 24. Invisibilidad El software es invisible y no visualizable... Las abstracciones geométricas son poderosas para capturar realidades geométricas, pero la realidad del software es que no está incrustado en el espacio
  • 25. Invisibilidad La realidad es que los aspectos estructurales son ... Muy complejos ... Ocultos ... Y poseen solamente una vista externa de entrada/salida
  • 26. ¿Hay alguna esperanza? Comparemos con la medicina Se dejó a un lado las soluciones simples y creencias falsas para curar las enfermedades... Para aplicar un esfuerzo persistente que lentamente logre erradicar las enfermedades
  • 27. ¿Hay alguna esperanza? Y comparemos con la química Se dejó a un lado la alquimia ... ¿Podremos aprender algo de estas disciplinas? Para invertir muchos años en la comprensión del átomo y después aprender a sintetizar el oro...
  • 28.
  • 29. ¿Qué podemos hacer para tratar de atacar la esencia? Ningún monto de actividad que se dedique a la expresión de las construcciones conceptuales de las tareas puede darnos grandes ganancias en productividad Se debe entonces considerar atacar la esencia del software , en pocas palabras “ la formulación de las complejas estructuras conceptuales ”
  • 30. ¿Qué podemos intentar para tratar de atacar la esencia? Comprar , no construir (reutilizar)... Refinamiento de requisitos y prototipado rápido ... Desarrollo incremental (grow don’t build)... Más entrenamiento en SE y nutrirse de los grandes
  • 31.
  • 32.