• No se han encontrado resultados

PresPaperAView.pdf

N/A
N/A
Protected

Academic year: 2020

Share "PresPaperAView.pdf"

Copied!
16
0
0

Texto completo

(1)

Hoy presentamos. . .

A View of 20th and 21st Century

Software Engineering

por Barry Boehm1, presentado en la ACM ICSE 2006

Daniela Blanco, Diego de Estrada, Matías Marino y Laura Pérez Vultaggio

21 de Octubre, 2010

1Nacido en 1937 en los EEUU, se doctoró en Matemáticas en la UCLA en

(2)

En la primera clase. . .

Santiago nos lo dejó picando:

!" #$%&%'()*&+,&*-'+./012&3*&+,&425*20*)6,&3*&7'89:,)*

4=">?@"->A0(%)+%&"%&+&("&+"B?&+%)"C?&"D)"B0+=%(?BB-E+" '&"=01%2)(&"B)>F-E"'($=%-B)>&+%&"&+"D)="GD%->)=" 'HB)')=I

-HIHD%RHKPHQORV³(VFXFKDPHDWHQWDPHQWH

&=%0@"A),)+'0"J;;"'ED)(&="A0("K0()"A0("&=%)" B0>A?%)'0()"@":"'ED)(&="A0("K0()"A0("L0=9")=."C?&"

HVSHURTXHDFW~HVGHDFXHUGRDHVR´

#)')"HA0B)"'&ME"A(-+B-A-0="1?+')>&+%)D&= N&("70&K>I"³$9LHZRIWKDQGVW&HQWXU\

6RIWZDUH(QJLQHHULQJ´9"*#/4":;;JO"

6+)"L-=-E+"P&,&D-)+)"'&"D)"*+,&+-&(.)"'&"/01%2)(&I" %&=-=9")+%.%&=-=9"=.+%&=-=

(3)

El idealismo dialéctico

En 1808, Hegel presentó la hipótesis de que el incremento en el entendimiento humano sigue un camino:

1 Tesis explicación de por qué suceden ciertas cosas. 2 Antítesis la tesis falla en algunas circunstancias

importantes; aquí hay una mejor explicación.

3 Síntesis la antítesis rechaza demasiado de la tesis original;

aquí hay un híbrido que captura lo mejor de ambos y evita sus defectos.

(4)

Perspectiva hegeliana de la evolución

Tesis

Síntesis

(5)

1950s: hacer software como si fuera hardware

Los programadores eran ingenieros y matemáticos.

Tenían buenas prácticas, como razonar antes de programar. Usaban procesos secuenciales de desarrollo, como con el hardware.

(6)

1960s: software y hardware son muy distintos

El SW es mucho más barato de replicar que el HW. También es fácil de modificar, hay lenguajes de alto nivel: surgeCode and fix.

Estimar la confiabilidad y hacer mantenimiento de SW es muy distinto a HW: se hacen las conferencias NATO para sentar las bases en 1968 y 1969.

Especificar SW es muy difícil, dijo Winston Royce: “Para un dispositivo de HW de $5 millones, una especificación de 30 páginas provee un nivel de detalle adecuado para controlarlo. Para $5 millones de SW, una especificación de 1500 páginas sería necesaria para lograr un control comparable.”

La demanda de programadores sobrepasa a la disponibilidad de ingenieros: Code and fixse vuelve ubicuo; código

espagueti; nace la cultura hacker con loscowboy programmers

(7)

1970s: modelo Waterfall y Programación estructurada

Surge la Programación estructurada; principios de

modularización de Constantine (acoplamiento y cohesión), Parnas (information hiding) y Liskov (TADs).

Síntesis de los paradigmas de 50s y 60s: modelo Waterfall de Royce. Fue malinterpretado como puramente secuencial, incluso por el gobierno al estandarizarlo.

Esto favoreció el enfoque cuantitativo para estimar

confiabilidad, calidad, costos y tiempo, e identificar módulos problemáticos.

(8)

1980s: aumentar productividad y escalabilidad

Surgen entornos de desarrollo integrados y herramientas CASE (Ingeniería de SW asistida por computadora). El DoD crea el programa STARS: énfasis en generar código automáticamente desde especificaciones formales y acelerar la transición tecnológica (los conceptos tardaban en promedio

18 añosen llegar a la práctica).

“No silver bullet”pone en perspectiva las ideas de

productividad de la época (sistemas expertos, lenguajes de muy alto nivel, programación visual). Propone diseñar bien, prototipar rápido y desarrollar evolutivamente.

El camino es evitar trabajo reutilizando código: la POO lo hace posible, facilitando el mantenimiento de código (que ocupaba entre 50 y 75 % de las agendas).

(9)

1990s: procesos concurrentes y usabilidad

POO se fortalece con patrones de diseño, arquitecturas y sus lenguajes de descripción, y UML.

Usabilidad de software, investigación seria en Interacción persona-computador.

El mercado se vuelve muy competitivo: necesario disminuir el

time to market.

Productos interactivos con el usuario: requerimientos no preespecificables (“No sé cómo lo quiero, pero lo sabré cuando lo vea”).

Por los dos últimos ítems se abandona el modelo Waterfall secuencial: surgen procesos de desarrollo concurrentes, incrementales y evolutivos.

(10)

2000s: agilidad y valor

El ritmo de cambio se acelera, hay frustración con la documentación pesada (ejemplo: una organización presentó 99 carpetas para unaevaluación CMM).

Surgen los métodos ágiles (Agile Manifestoen 2001): sirven para proyectos chicos con requerimientos cambiantes y personal muy capacitado.

Resultan ideales para reaccionar ante los cambios de tendencias (usuarios cambian prioridades según pirámide de Maslow).

Hacen énfasis en usabilidad y valor agregado vs. featuresy precio. Deseo: adaptar la tecnología a las personas y no al revés.

(11)

2000s: agilidad y valor (2)

La dependencia en el SW se vuelve crítica: los clientes

presionan por mayor calidad y garantías, pero no hay reacción. Para Boehm, esto va a seguir así hasta quehaya una

catástrofe inducida por SW similar en impacto al 11/9, que según predice será antes de 2025.

Algo de progreso en SW confiable: Hoare con los productos de Microsoft, Scherlis con la concurrencia en Java, otros en model-checking, etc.

Disponibilidad de sistemas y componentes COTS (SW comercial, listo para usar). Permiten desarrollar productos complejos en poco tiempo, pero difíciles de integrar. La curva de productividad anual del SW tan buena como la del HW: se mide en LOCS (contar líneas de código en servicio) en vez de SLOC (contar nuevas líneas de código).

(12)

Futuro

Los sistemas se basan cada vez más en SW, pero los fallos provienen de la Ingeniería en Sistemas: se buscaintegrarla

con la Ingeniería del SW. MDD es un paso en ese sentido. Conectividad global posibilita externalización y desarrollo rápido en tres turnos de 8hs: desafíos para sincronizar, gestionar, crear confianza y valores compartidos. Infraestructura basada en estándares, proveedores competidores trabajando juntos para hacer “sistemas de sistemas” sin precedentes.

(13)

Qué aprendimos

De cada década obtenemos tres consejos para el futuro, dos aprendidos del éxito y uno del mal ejemplo.

1950s

No ignorar a las ciencias. Pensar en las consecuencias antes de hacer algo.

• Evitar usar un proceso secuencial riguroso.

1960s

Incentivar el pensamiento lateral (divertirse

prototipando).

Respetar las diferencias del software con el hardware.

(14)

Qué aprendimos (2)

1970s

Eliminar errores temprano. Determinar el propósito del sistema.

• Evitar el desarrollotop-down

y el reduccionismo.

1990s

El tiempo es dinero. Hacer software útil para la gente.

• Ser rápido, pero no apurarse.

1980s

Hay muchas maneras de incrementar la productividad. Lo que es bueno para los productos es bueno para el proceso (incluye arquitectura, reusabilidad, adaptabilidad).

(15)

Qué aprendimos (3)

2000s

Si el cambio es rápido hay que saber adaptarse. Considerar y satisfacer las proposiciones de valor de todos los stakeholders.

• Evitar enamorarse de slogans (siempre tienen excepciones).

2010s

Mantener la mirada en lo que está a tu alcance. Tener una estrategia de salida (control de proyectos).

(16)

Conclusiones

El análisis está muy centrado en los EEUU y en su experiencia personal (aunque del conjunto de análisis realizables por cada humano X, tomar X=Boehm posiblemente maximiza la exactitud de la historia.)

Algunos creíamos que “al fin y al cabo, todo es sobre programar” y que la Ingeniería del SW sólo toma conceptos previos y los hace conocidos, sin generar ideas útiles por sí misma. Ahora por lo menos no nos animamos a decirlo. Es importante para la disciplina el llevar el registro de su propia historia, para repetir los aciertos y no caer en los mismos errores.

Antes el SW se utilizaba en ámbitos gubernamentales y académicos. Ahora está inmerso en la lógica del mercado, con reglas variables por las tendencias humanas.

Referencias

Documento similar

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

Darwin argumentó que la selección natural debía ser interpretada para- lelamente con la selección sexual, la cual, para autores como Nicholas Wade, es una forma de selección

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo