PDF de programación - La incertidumbre como herramienta en la ingeniería de software

Imágen de pdf La incertidumbre como herramienta en la ingeniería de software

La incertidumbre como herramienta en la ingeniería de softwaregráfica de visualizaciones

Publicado el 25 de Marzo del 2019
712 visualizaciones desde el 25 de Marzo del 2019
859,2 KB
6 paginas
Creado hace 17a (18/01/2007)
1

La incertidumbre como herramienta en la

ingeniería de software

Nelson Medinilla e Inmaculada Gutiérrez


Abstract-- Uncertainty can be harmful in some cases and
beneficial in other cases. At the beginning, the software universe
only appreciates the beneficial side of uncertainty, although it
took advantage of it. Software is practically useless without
uncertainty. Nowadays, uncertainty is more used as a tool but
this is not recognized and it causes several problems. In that
sense, this work proves uncertainty can be used as a tool in
order: 1) to simplify descriptive and uncertainty complexity; it
means, to reduce development and maintenance effort. 2) To
analyse and forecast key properties of software engineering
components. 3) To appreciate relations between
these
components and the harmonic place corresponding to each of
them. In short, this work proves uncertainty dimension is a basic
element in the current theoretical framework of software
engineering.


Palabras clave—Ambigüedad, complejidad, diseño software,

incertidumbre, ingeniería de software, metodologías, objetos.

I. NOMENCLATURA

Incertidumbre es una palabra de amplio contenido
semántico: problemático, cuestionable, vago, no definido o
determinado, dudoso, no
sujeto a
oportunidad o cambio, no estable, variable, no confiable.
Todos estos significados se pueden agrupar en dos categorías:
vaguedad (imprecisión) y ambigüedad.

seguro, ambiguo,

En general, vaguedad se asocia con la dificultad de hacer
distinciones agudas o precisas en el mundo; esto es, algún
dominio de interés es vago si no puede ser delimitado por
fronteras precisas. Ambigüedad se asocia con relaciones de
uno a muchos; esto es, con situaciones donde la elección entre
dos o más alternativas se deja sin especificar. Las definiciones
de incertidumbre, vaguedad y ambigüedad han sido tomadas
del trabajo de Klir [1].

la complejidad descriptiva

complejidad:
(cantidad de
información para describir el sistema [1]). Es una dimensión
útil, pero su luz es insuficiente para iluminar el universo
software. Esta penumbra provoca visiones complicadas y
contradictorias de los recursos software, de las técnicas de
diseño, de las metodologías; dificulta ver las relaciones entre
todos ellos y el lugar armónico que le corresponde a cada uno
en el universo software. Se confunden los objetos con el
estructurado, el Proceso Unificado con la Cascada. Se cree
que la modularidad, la cohesión, el acoplamiento y la
privacidad de las variables son guías del buen diseño, cuando
realmente dicen poco o nada; se cree que copiar la realidad
dentro del software es otra guía del buen diseño cuando, en
muchos casos, produce consecuencias negativas como la
reducción drástica de la facilidad de modificación y de
evolución. La escasa luz de la complejidad descriptiva
muestra a las metodologías y a las técnicas de diseño como
recetas aisladas que dicen representar la mejor práctica,
inventada por un gurú o un grupo, mientras otro gurú o grupo
dice lo contrario porque también defiende su mejor práctica.

Aunque parezca paradójico, la solución a estos problemas,
la visión armónica del universo software, aparece cuando se
añade la luz de la incertidumbre, un elemento considerado
fuente de oscuridad, pero que los humanos han usado como
solución desde tiempos inmemoriales. Fig. 1.



complejidad por
incertidumbre

universo software

II. INTRODUCCIÓN

E

s imposible observar una circunferencia completa en un
espacio de una dimensión y también es imposible lograr la
coincidencia de un guante derecho con otro izquierdo en un
espacio de dos dimensiones. De modo semejante, es imposible
resolver innumerables problemas en el universo software
tradicional porque sólo contempla una dimensión de



Nelson Medinilla pertenece a la Facultad de Informática de la Universidad

Politécnica de Madrid, Madrid 28660, España (e-mail: [email protected]).

Inmaculada Gutiérrez colabora en la Facultad de Informática de la
Universidad Politécnica de Madrid, Madrid 28660, España (e-mail:
[email protected]).

complejidad
descriptiva



Fig. 1. Ampliación del universo software con la dimensión incertidumbre

La complejidad de incertidumbre (cantidad de información
necesaria para resolver cualquier incertidumbre asociada con
el sistema [1]) agrega otra dimensión al universo software.
Fig. 1. Al ampliar las dimensiones del espacio aparecen partes
ocultas de los problemas y aparecen también soluciones
nuevas, como sucede en los casos geométricos descritos al
inicio. La circunferencia sólo muestra uno o dos puntos en una
dimensión y aparece completa en dos dimensiones.

Sin embargo, durante mucho tiempo, la ingeniería de



2

la

software ha considerado
incertidumbre perjudicial y
erradicable. Por tanto, ha ignorado que la usa constantemente
como recurso de simplificación, que es inherente al diseño y
además, ha deseado eliminarla aplicando métodos exactos y
completos sobre requisitos exactos y completos. Así, dada la
erradicabilidad de la incertidumbre y infalibilidad de los
métodos, si algo falla, la culpa es de los veleidosos clientes o
del uso inadecuado del método o que el tiempo fue
insuficiente [2]. Dicho en otras palabras, si la realidad no se
ajusta al modelo la culpa es de la realidad. Los trabajos
seminales de Dijkstra [3], Parnas [4], los tipos abstractos de
datos [5] y otros más, guardan graves cicatrices [6][7] de esa
guerra contra la incertidumbre porque proponían soluciones
que aprovechan la incertidumbre, aunque no lo supieran.
trabajos que aceptan

la
incertidumbre en la ingeniería de software como problema
inevitable, pero que no la utilizan como solución, ni dicen la
manera de hacerlo, por ejemplo [8][9]. Y hay muchos trabajos
que utilizan la incertidumbre como solución [3]-[5][10]-[14],
pero que no lo dicen o no lo saben y se enredan en
explicaciones con terminología inadecuada.

Actualmente, hay diversos

El presente trabajo revisa el universo software con la luz de
la dimensión de incertidumbre con el objetivo de demostrar la
utilidad de la incertidumbre como herramienta en la ingeniería
de software.

III. LA INCERTIDUMBRE COMO HERRAMIENTA

A. En las abstracciones

Es difícil determinar desde cuando los humanos utilizan la
incertidumbre a su favor, pero sin duda la usaron cuando
inventaron las abstracciones. Una abstracción es un recurso de
simplificación que expresa sólo lo esencial de algo y omite el
resto. Esta omisión introduce deliberadamente incertidumbre
que se manifiesta en forma de ambigüedad. Una abstracción
puede ser precisa respecto a la esencia que expresa, pero es
necesariamente ambigua respecto a las alternativas que
representa. Sin embargo, no se asocia abstracción con
ambigüedad a pesar de ser la ambigüedad el recurso principal
de la abstracción.

El software puede realizar una tarea en infinidad de
situaciones distintas, en infinidad de alternativas, gracias a la
capacidad de ambigüedad de las variables (abstracciones) y a
la capacidad de ambigüedad de las sentencias que formulan
alternativas.

La evolución del software está marcada por el aumento
sistemático de la capacidad para expresar ambigüedad, como
recurso para aumentar su capacidad de enfrentar problemas
complejos. Primero las variables simples, después los vectores
y tablas, más tarde las listas. En algún momento, aparecieron
las
la
complejidad, descriptiva y de incertidumbre, mediante las
abstracciones que representan sus cabeceras. Cuando el nivel
de ambigüedad fue insuficiente se inventaron los tipos
abstractos de datos para operar con los datos de forma
ambigua. Ninguna parte del sistema toca un tipo abstracto de

funciones y procedimientos para

simplificar

dato, salvo las funciones específicas destinadas a manejarlo.
También por los años sesenta, se inventaron los objetos, un
enfoque radicalmente distinto al estructurado, con una
capacidad de ambigüedad superior a todo el software
precedente. Por un lado, los objetos que expresan cosas que se
relacionan y por otro,
los mensajes que expresan
comunicaciones variables. Las clases, las clases abstractas, el
polimorfismo, etc. aumentan todavía más la capacidad de
ambigüedad y, consecuentemente, la capacidad para abordar
problemas más complejos en el sentido descriptivo y de
incertidumbre.

Los objetos y el estructurado son dos enfoques
absolutamente distintos, por la forma de pensar el software
(cosas en vez de funciones y datos), y por la capacidad de
expresar ambigüedad. Esta última cualidad es la promotora
principal de los objetos y también es la cualidad que permite
vestir de objetos a diseños estructurados, con la consiguiente
pérdida de las ventajas de los objetos y del estructurado. El
arraigo del pensamiento estructurado trata de sobrevivir en el
contexto de los objetos [21], y se aprovecha de la ambigüedad
potencial de los objetos para esconderse en los ropajes.

La evolución continua, los denominados agentes y la
llamada ingeniería conducida por modelos son líneas de
trabajo en la dirección de aumento de la ambigüedad
potencial.



B. E
  • Links de descarga
http://lwp-l.com/pdf15575

Comentarios de: La incertidumbre como herramienta en la ingeniería de software (1)

Imágen de perfil
26 de Marzo del 2019
estrellaestrellaestrellaestrellaestrella
Muy bueno, lo leeré.
Responder

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