La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Nelson Medinilla Martínez Universidad Politécnica de Madrid

Presentaciones similares


Presentación del tema: "Nelson Medinilla Martínez Universidad Politécnica de Madrid"— Transcripción de la presentación:

1 Nelson Medinilla Martínez Universidad Politécnica de Madrid
Sextas Jornadas Iberoamericanas de Ingeniería de Software e Ingeniería del Conocimiento La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez Universidad Politécnica de Madrid

2 No ambiguos, incertidumbre nula Completos, ….
La incertidumbre como herramienta en la ingeniería de software Consideraciones iniciales Estándar IEEE 830 Lo ideal, aunque en la práctica no siempre es realizable, es que los requisitos posean las siguientes características: Correctos, No ambiguos, incertidumbre nula Completos, …. Nelson Medinilla Martínez

3 … Analogía militar. Estándar (deseado) IMMM 1
La incertidumbre como herramienta en la ingeniería de software Analogía militar. Estándar (deseado) IMMM 1 “Lo ideal, aunque en la práctica no siempre es realizable, es que el enemigo se coloque en fila india para eliminarlo de un solo disparo.” Nelson Medinilla Martínez

4 … Pero, (En fin, los Reyes Magos son los padres)
La incertidumbre como herramienta en la ingeniería de software Pero, generalmente el enemigo es reacio a cumplir ese estándar; los requisitos también. Tampoco es posible conocer el qué antes del cómo. Ni siquiera conviene eliminar la incertidumbre porque es parte de los procesos creativos, de lo nuevo; porque es una herramienta humana (y también divina). Ni la modularidad, la cohesión, el acoplamiento, la privacidad de los atributos, la copia de la realidad, divide y vencerás, son guías útiles de diseño para conseguir facilidad de modificación y evolución de los sistemas software. (En fin, los Reyes Magos son los padres) Nelson Medinilla Martínez

5 La incertidumbre como herramienta en la ingeniería de software
Aquiles parte en busca de algo permanente e inmutable [Homero, siglo -VIII] Precedentes del modelo (concepto) temprano de la ingeniería de software El universo es uno, infinito e inmóvil [Bruno, siglo XIV] “[…] no puede haber ninguna verdad, por lejos que se halle situada o por oculta que esté, que no se llegue a alcanzar o descubrir.” (a través del MÉTODO) [Descartes, siglo XVII] Nelson Medinilla Martínez

6 Consideraciones iniciales
La incertidumbre como herramienta en la ingeniería de software Consideraciones iniciales Desarrollo en cascada (exclusas) Análisis Diseño Implementación Pruebas Requisitos Primero qué, después cómo (corregir equivocaciones) Incertidumbre >0 Incertidumbre nula Nelson Medinilla Martínez

7 … El modelo ingeniería de software temprana Incertidumbre nula
La incertidumbre como herramienta en la ingeniería de software El modelo (sistema de ideas) Incertidumbre nula requisitos diseño métodos ingeniería de software temprana La premisa: Nelson Medinilla Martínez

8 Consecuencias universo visible soluciones problemas
La incertidumbre como herramienta en la ingeniería de software Consecuencias aspectos no visibles complejidad descriptiva universo visible problemas soluciones incertidumbre > 0 incertidumbre nula Nelson Medinilla Martínez

9 Consecuencias universo visible soluciones problemas
La incertidumbre como herramienta en la ingeniería de software Consecuencias Introducir incertidumbre soluciones cambios de requisitos problemas divide y vencerás sistemas conocidos y estables complejidad descriptiva universo visible Nelson Medinilla Martínez

10 La incertidumbre como herramienta en la ingeniería de software
Analogía geométrica Figuras n-dimensionales Espacio de representación unidimensional Nelson Medinilla Martínez

11 ¿……? Preguntas con respuestas en otra dimensión
La incertidumbre como herramienta en la ingeniería de software Preguntas con respuestas en otra dimensión ¿Qué es objetos y qué es estructurado? ¿Cuándo, cómo, por qué usar objetos en vez de estructurado? ¿En qué se diferencian las metodologías de desarrollo? ¿Cuándo, cómo, por qué, usar una metodología y no otra? ¿xP para estructurado? ¿Cómo interpretar una metodología? ¿P.U. es un ciclo de cascadas? ¿Por qué la modularidad, la cohesión, el acoplamiento, la privacidad de los atributos, copiar la realidad, son pobres guías de diseño? ¿Qué guías de diseño utilizar? ¿Qué cualidades debe tener un diseño software para facilitar la evolución? ¿Qué relaciones existen entre problemas y soluciones, objetos y estructurado, métodos de desarrollo técnicas de diseño? ¿……? Nelson Medinilla Martínez

12 ¿Por qué no puedo pedir esa muñeca, a los Reyes Magos, si es gratis?
La incertidumbre como herramienta en la ingeniería de software ¿Por qué no puedo pedir esa muñeca, a los Reyes Magos, si es gratis? Nelson Medinilla Martínez

13 Ampliación del espacio geométrico
La incertidumbre como herramienta en la ingeniería de software Ampliación del espacio geométrico Figura bidimensional R2 = (X – X0)2 + (y – y0)2 Espacio de representación bidimensional Nelson Medinilla Martínez

14 Ampliación del espacio software
La incertidumbre como herramienta en la ingeniería de software Ampliación del espacio software complejidad por incertidumbre universo software (cantidad de información necesaria para resolver la incertidumbre asociada con el sistema) complejidad descriptiva No ortogonalidad (cantidad de información para describir el sistema) Nelson Medinilla Martínez

15 Términos Incertidumbre Vaguedad Ambigüedad
La incertidumbre como herramienta en la ingeniería de software Términos Incertidumbre se asocia con problemático, cuestionable, vago, no definido o determinado, dudoso, no seguro, ambiguo, sujeto a oportunidad o cambio, no estable, variable, no confiable. Vaguedad se asocia con la dificultad de hacer distinciones agudas o precisas en el mundo; 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. Nelson Medinilla Martínez

16 ¿Dónde hay incertidumbre?
La incertidumbre como herramienta en la ingeniería de software ¿Dónde hay incertidumbre? Nelson Medinilla Martínez

17 mesa La incertidumbre como herramienta en la ingeniería de software
Hay incertidumbre en la solución, como recurso resolutivo mesa Nelson Medinilla Martínez

18 Una abstracción representa alternativas, expresa ambigüedad
La incertidumbre como herramienta en la ingeniería de software Una abstracción representa alternativas, expresa ambigüedad Una abstracción simplifica: 1)la complejidad descriptiva, porque permite omitir los detalles 2)la complejidad por incertidumbre porque la incertidumbre en los detalles, los cambios en los detalles, no se consideran Nelson Medinilla Martínez

19 NO se conoce la solución NO se conoce el problema,
La incertidumbre como herramienta en la ingeniería de software Incertidumbre en el problema y en la solución Se conoce el problema, se conoce la solución Se conoce el problema, NO se conoce la solución NO se conoce el problema, NO se conoce la solución P E S (CLASIFICACIÓN DE LEHMAN) Nelson Medinilla Martínez

20 R C tiempo T requisitos Incertidumbre
La incertidumbre como herramienta en la ingeniería de software Incertidumbre en los requisitos (deseos) requisitos R Incertidumbre C tiempo T Nelson Medinilla Martínez

21 consideraciones actuales
La incertidumbre como herramienta en la ingeniería de software consideraciones actuales Los cambios son inherentes al software La incertidumbre es inevitable en la ingeniería de software Nelson Medinilla Martínez

22 La incertidumbre está presente en la ingeniería de software:
La incertidumbre como herramienta en la ingeniería de software La incertidumbre está presente en la ingeniería de software: Como recurso resolutivo En los problemas En las soluciones, en el proceso creativo Nelson Medinilla Martínez

23 Divide y vencerás no funciona
La incertidumbre como herramienta en la ingeniería de software Condición: incertidumbre inevitable Consecuencias: Se pierde la aditividad Divide y vencerás no funciona Nelson Medinilla Martínez

24 Condición: incertidumbre inevitable
La incertidumbre como herramienta en la ingeniería de software Condición: incertidumbre inevitable Solución: admitir incertidumbre en la solución (ambigüedad o vaguedad) expresión de alternativas imprecisión Admitir incertidumbre en la solución es una técnica ancestral para enfrentar la complejidad descriptiva y la complejidad por incertidumbre Nelson Medinilla Martínez

25 diseño modelos métodos
La incertidumbre como herramienta en la ingeniería de software soluciones software basadas en la admisión de incertidumbre diseño modelos métodos máquinas abstractas principio de ocultación tipos abstractos principio de sustitución principio de abierto y cerrado principio de inversión de dependencias patrones de diseño desarrollo evolutivo desarrollo espiral desarrollo caos métodos ágiles variables alternativas rutinas entidad-relación objetos agentes Nelson Medinilla Martínez

26 ambigüedad en el modelo
La incertidumbre como herramienta en la ingeniería de software ambigüedad en el modelo variables tipos abstractos de datos rutinas alternativas recursión listas vectores simples objetos (cosas) clases clases abstractas interfaces ambigüedad (capacidad para expresar alternativas) Nelson Medinilla Martínez

27 ambigüedad en los modelos
La incertidumbre como herramienta en la ingeniería de software a n b s c h i p y m x COMPLEJIDAD modelos cosas interrelacionadas funciones y datos ambigüedad en los modelos F (x) Estructurado y objetos, la diferencia: capacidad para expresar ambigüedad Nelson Medinilla Martínez

28 inutilidad de la diferencia
La incertidumbre como herramienta en la ingeniería de software a n b s c h i p y m x modelos cosas interrelacionadas funciones y datos CONVERGENCIA DE MODELOS inutilidad de la diferencia objetos funciones y objetos datos Nelson Medinilla Martínez

29 Incertidumbre en el diseño
La incertidumbre como herramienta en la ingeniería de software Incertidumbre en el diseño F propiedades de las formas alotrópicas F F F F F Rigidez del triángulo F Plasticidad del cuadrado Nelson Medinilla Martínez

30 Formas alotrópicas del algoritmo
La incertidumbre como herramienta en la ingeniería de software C SCu SCa Si C < SCu Si C < SCa SCu <- Scu - C 1 2 3 Extracción* Caja* Cuenta* SCu <-Scu -C Extracción Cuenta Caja 4 6 5 SCu <- Scu -C estructura A estructura B estructura C Formas alotrópicas del algoritmo La misma cohesión y acoplamiento, modularidad, pero… Nelson Medinilla Martínez

31 Objetos La incertidumbre como herramienta en la ingeniería de software
:Extracción :Cuenta - saldo importe dato función de transformación saldo autoriza(i) i ni función, ni dato cosa Estructurado con ropaje de Objetos Objetos ¡¿privado saldo?! ¿copiar la realidad? Nelson Medinilla Martínez

32 No hay relación entre A y B
La incertidumbre como herramienta en la ingeniería de software Relación ambigua de A hacia B Para una A hay más de una B posible A B B’ A’ Relación unívoca Para cada B hay una A A B No hay relación entre A y B A no depende de B A depende fuertemente de B A depende débilmente de B Relaciones dirigidas entre elementos software Nelson Medinilla Martínez

33 Independencia Unicidad Ambigüedad Nula Poca Mucha
La incertidumbre como herramienta en la ingeniería de software Independencia Unicidad Ambigüedad Nula Poca Mucha dependencia cantidad de información Nelson Medinilla Martínez

34 Ambigüedad en el diseño
La incertidumbre como herramienta en la ingeniería de software Si cantidad < saldo Extracción Si no bloqueo saldo Cuenta bloqueo cantidad próximo paso leer saldo leer bloqueo leer otro dato otro dato Si otro dato autoriza (cantidad) Extracción* autoriza (v) Cuenta* Relación ambigua Relaciones unívocas Ambigüedad en el diseño Nelson Medinilla Martínez

35 Ambigüedad en soluciones de diseño software
La incertidumbre como herramienta en la ingeniería de software Ambigüedad en soluciones de diseño software Capas de máquinas abstractas Principio de ocultación Principio de sustitución Polimorfismo Principio de abierto y cerrado Principio de inversión de dependencias Delegar Patrón acción Patrón adaptador Patrón cadena de responsabilidades Patrón composición Patrón estado Patrón observador Nelson Medinilla Martínez

36 La incertidumbre como herramienta en la ingeniería de software
Patrón Modelo Vista Controlador Nelson Medinilla Martínez

37 La incertidumbre como herramienta en la ingeniería de software
imprimir leer A El origen: leer e imprimir NO se comportan como abstracciones; se mezclan con el contenido de A Nelson Medinilla Martínez

38 La incertidumbre como herramienta en la ingeniería de software
imprimir A leer leer e imprimir se comportan como abstracciones, pero A depende de ambas Nelson Medinilla Martínez

39 La incertidumbre como herramienta en la ingeniería de software
imprimir A leer Cambio de dependencias Nelson Medinilla Martínez

40 La incertidumbre como herramienta en la ingeniería de software
imprimir A leer A necesita imprimir y avisa Nelson Medinilla Martínez

41 La incertidumbre como herramienta en la ingeniería de software
imprimir A leer A necesita imprimir y leer, y avisa Nelson Medinilla Martínez

42 La incertidumbre como herramienta en la ingeniería de software
imprimir A leer A necesita imprimir y leer, y avisa. Además, se advierte de algo en la lectura Nelson Medinilla Martínez

43 La incertidumbre como herramienta en la ingeniería de software
(imprimir) vista A observador (leer) controlador El patrón Nelson Medinilla Martínez

44 Incertidumbre en los métodos de desarrollo
La incertidumbre como herramienta en la ingeniería de software COMPLEJIDAD dividir admitir incertidumbre Incertidumbre en los métodos de desarrollo Análisis Diseño Implementación Pruebas Requisitos Método lineal Se conoce el fin (Cascada) Método iterativo NO se conoce el fin, pero se conoce su proximidad (Espiral) Método exploratorio NO se conoce el fin, NI se conoce su proximidad (Caos) métodos Nelson Medinilla Martínez

45 La incertidumbre como herramienta en la ingeniería de software
RUP Nelson Medinilla Martínez

46 Manifiesto para el Desarrollo de Software Ágil
La incertidumbre como herramienta en la ingeniería de software Manifiesto para el Desarrollo de Software Ágil “Estamos descubriendo mejores maneras de desarrollar Software haciéndolo y ayudando a otros a hacerlo. A través de este trabajo hemos llegado a valorar: Los individuos y las interacciones sobre los procesos y las herramientas. Software operativo sobre documentos detallados. Colaboración del cliente sobre la negociación de contratos. Responder a los cambios sobre seguir un plan.” Nelson Medinilla Martínez

47 … (estructurado) (objetos, …) Modelos software funciones y datos
La incertidumbre como herramienta en la ingeniería de software (estructurado) (objetos, …) Modelos software funciones y datos cosas interrelacionadas (NO se conoce el fin; NO se conoce su proximidad) (NO se conoce el fin, pero se conoce su proximidad) (Se conoce el fin) Métodos de desarrollo arbórea lineal cíclica (Se conoce el problema y se conoce la solución) (Se conoce el problema, pero NO se conoce la solución) (NO se conoce el problema y NO se conoce la solución) Condiciones S P E incertidumbre Nelson Medinilla Martínez

48 … incertidumbre Elementos constructivos cosas interrelacionadas
La incertidumbre como herramienta en la ingeniería de software Elementos constructivos cosas interrelacionadas funciones y datos métodos lineal cíclico arbóreo Sistemas S P E incertidumbre Nelson Medinilla Martínez


Descargar ppt "Nelson Medinilla Martínez Universidad Politécnica de Madrid"

Presentaciones similares


Anuncios Google