Publicado el 14 de Enero del 2017
856 visualizaciones desde el 14 de Enero del 2017
403,2 KB
17 paginas
Creado hace 15a (24/09/2009)
El Problema de Hacer Software
Reflexiones y Profesión
Universidad de Cantabria
Facultad de Ciencias
Francisco Ruiz
Contenidos
• El Problema del Desarrollo de Software
Evolución Histórica
Nuevos Paradigmas
Naturaleza del Problema
• Contexto de la Ingeniería del Software
•
Perspectiva de Ingeniería
¿Por qué Ingeniería del Software?
Definición
Ingeniería del Software vs Informática
Currículos Internacionales
Mercado Profesional
Academia
• ¿Es Hacer Software una Profesión?
• Conclusiones
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
2
1
El Problema del Desarrollo de Software
El desarrollo de software es una rama de la ingeniería
muy reciente
El software está en todas partes
“Our civilization runs on software” (Bjarne Stroustrup)
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
3
El Problema del Desarrollo de Software
• Se habla de “crisis del software” desde los años 70
Da la casualidad que justo los que nos dedicamos a esto
somos los peores profesionales, los más “chapuceros”, en
todos los países, o
Es que nos enfrentamos a un problema difícil, especial y
distinto al que se enfrentaron antes otras ingenierías.
• A veces los éxitos se confunden con los fracasos
Si somos malos haciendo software, ¿por qué el software
es cada vez más frecuente en la vida de cualquier persona
y más importante para cualquier organización?
• En realidad, hemos seguido un proceso histórico
muy interesante.
Para entender donde estamos y hacia donde vamos
debemos comprender de donde venimos.
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
4
2
El Problema del Desarrollo de Software
Evolución Histórica
• A lo largo del tiempo hemos sido capaces de
resolver una gran cantidad de dificultades, en un
camino que siempre se ha caracterizado por:
Aprovechar el aumento de potencia y capacidad del
hardware para “hacer software m
y my máás lejos de las m
quinas”.
s lejos de las mááquinas
hacer software máás cerca de las personas
s cerca de las personas
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
5
El Problema del Desarrollo de Software
Evolución Histórica
•
•
• Fuimos capaces de trabajar de manera lógica y no
física.
Los enchufes en clavijas pasaron a ser 0’s y 1’s.
Inventamos lenguajes y traductores para poder
“representar” mejor los algoritmos como ideas.
El código máquina dejó de usarse para programar.
Ideamos lenguajes “cercanos” al idioma natural o a
los idiomas de las ciencias (matemáticas) para
mejorar nuestra capacidad de expresar.
COBOL se pareció al inglés lo máximo posible.
PROLOG se basaba en la lógica matemática.
• Descubrimos que teníamos que organizar bien el
flujo de ejecución del código.
Programación estructurada (PASCAL).
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
6
3
El Problema del Desarrollo de Software
Evolución Histórica
• Conforme el software se fue haciendo más
complejo tuvimos que enfrentarnos a nuevos retos:
Si tenemos mucho código mejor separarlo en varias
partes.
• Programación modular (MODULA 3).
Necesitábamos poder manejar informaciones complejas
de distinta naturaleza.
• Tipos abstractos de datos
• Sistemas de bases de datos.
En un software grande es un lío “organizar” las piezas de
código. Necesitamos un criterio para decidir qué piezas
tener y qué datos y código poner en cada una.
• Orientación a objetos.
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
7
El Problema del Desarrollo de Software
Evolución Histórica
• Pero seguimos teniendo otros retos pendientes:
Si hemos ido subiendo de nivel de abstracción en los lenguajes
de programación, ¿nos permite la tecnología actual dar otro salto
más?.
• Java es código fuente, y ¿UML no?.
• ¿Existe alguna manera de construir software más rápidamente y con
La integración sigue siendo un problema difícil.
menos errores?.
•
•
Integrar sistemas
Integrar tecnologías
clientes/usuarios.
Seguimos teniendo dificultades para entender bien a los
• Muchos proyectos técnicamente correctos fracasan (el software no
sirve a los supuestos destinatarios o no lo usan).
El software está en la red.
• El concepto clásico cerrado de “aplicación” software está
desapareciendo.
“Cloud computing”
•
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
8
4
El Problema del Desarrollo de Software
Evolución Histórica
• Para enfrentar estos retos surgen algunos nuevos
paradigmas y plataformas tecnológicas
que no son alternativos a los anteriores, sino
complementarios
• Desarrollo Dirigido por Modelos (MDD)
MDA – Model-Driven Architecture
• Orientación a Servicios (SOC)
SOA – Service-oriented Architecture
• Orientación a los Procesos de Negocio (BPM)
BPMS – Business Process Management Systems
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
9
El Problema del Desarrollo de Software
Nuevos paradigmas – desarrollo dirigido por modelos
MDD
MDA
Modelos son el
Los Modelos
artefacto central del
desarrollo en lugar
del código fuente
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
10
5
El Problema del Desarrollo de Software
El papel de los modelos
(from: Grady Booch: Strachey Lecture, “The Limits of Software”)
Code only
Code Viz.
M
C
C
RTE
M
C
Model-centric
Model only
M
M
C
“What’s a
Model?”
“The code is
the model”
“Manage
code and
model”
“The model is
the code”
“Let’s talk
UML”
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
11
El Problema del Desarrollo de Software
Nuevos paradigmas – orientación a servicios
Nuevo enfoque de interacción entre sistemas mediante
servicios
Validar tarjeta
Validar tarjeta
Reservar hotel
Reservar hotel
L
M
X
Servicio
Servicio
Servicio
Servicio
W
E
B
SOASOA
Service--oriented
oriented
Service
Architecture
Architecture
Proveedor
Proveedor
Clientes
Clientes
L
M
X
XML
XML
X
M
L
X
M
L
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
12
6
El Problema del Desarrollo de Software
Nuevos paradigmas – procesos de negocio
La perspectiva de
proceso es mas
proceso
general que la de
OO
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
13
El Problema del Desarrollo de Software
Nuevos paradigmas - integración
BPM + SOC + MDD
BPM + SOC + MDD
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
14
7
El Problema del Desarrollo de Software
Nuevos paradigmas - integración
BPM + SOC + MDD
BPM + SOC + MDD
Servicio 1
Servicio n
LA RED
Sistema
Legado 1
…
XML
Sistema
Legado n
XML
Sistema
Nuevo
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
15
El Problema del Desarrollo de Software
Naturaleza del Problema
• Booch, G. (2007).
The Promise, The Limits, The Beauty of Software.
Computer Science Teachers Association, ACM.
http://csta.acm.org/Resources/sub/Turing_Lecture.ppt
Software development has been, is, and will remain
fundamentally hard.
It is a tremendous privilege to be a software professional
It is also a tremendous responsibility
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
16
8
El Problema del Desarrollo de Software
Naturaleza del Problema
• Booch, G. (2007).
The Promise, The Limits, The Beauty of Software.
Computer Science Teachers Association, ACM.
http://csta.acm.org/Resources/sub/Turing_Lecture.ppt
Crear una apariencia de sencillez
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
17
Contexto de la Ingeniería del Software
Perspectiva de Ingeniería
Ingenio (DRAE)
desea.
Industria, maña y artificio de alguien para conseguir lo que
Máquina o artificio mecánico (ingenio de azúcar).
Ingeniería (DRAE)
Estudio y aplicación, por especialistas, de las diversas
ramas de la tecnología.
Ingeniero/a
Ingeniero/a
Persona que aplica los conocimientos de una o varias
ramas de la ciencia para resolver cierto tipo de necesidad
de la gente,
• Mediante el diseño, construcción u operación de algún tipo
de artefacto o sistema.
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
18
9
Contexto de la Ingeniería del Software
Perspectiva de Ingeniería
sistema
proceso
INGENIERO/A
palabras clave
proyecto
¿?usuario
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
19
Contexto de la Ingeniería del Software
Perspectiva de Ingeniería
• Cualquier ingeniería se caracteriza porque:
Se necesitan conocimientos avanzados para diseñar y
construir el tipo de sistemas que la caracteriza.
• Diferencia entre técnico e ingeniero.
Existen dos “momentos”:
• Primero, conocer el problema, y
• Sólo después, podemos diseñar y construir la solución.
Para conseguir buenos resultados (en calidad, tiempo y
costes) es necesario trabajar de forma organizada y
sistemática.
La creatividad es necesaria (diseño), pero no es suficiente,
• Diferencia entre artista e ingeniero.
Francisco Ruiz, Michael González. IS1-t1: El Problema de Hacer Software
20
10
Contexto de la Ingeniería del Software
Perspectiva de Ingeniería
El sentido común es muy importante.
Ley del Mínimo Esfuerzo
• Entre las opciones correctas elegir la más sencilla.
• Reutilización
– Del código, del resto de artefactos software y del conocimiento.
No inventar la rueda
• Emplear estándares.
Zapatero a tus zapa
Comentarios de: El Problema de Hacer Software Reflexiones y Profesión (0)
No hay comentarios