PDF de programación - El Problema de Hacer Software Reflexiones y Profesión

Imágen de pdf El Problema de Hacer Software Reflexiones y Profesión

El Problema de Hacer Software Reflexiones y Profesióngráfica de visualizaciones

Publicado el 14 de Enero del 2017
755 visualizaciones desde el 14 de Enero del 2017
403,2 KB
17 paginas
Creado hace 14a (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
  • Links de descarga
http://lwp-l.com/pdf1064

Comentarios de: El Problema de Hacer Software Reflexiones y Profesión (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad