La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez Universidad Politécnica de Madrid Sextas Jornadas Iberoamericanas.

Presentaciones similares


Presentación del tema: "La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez Universidad Politécnica de Madrid Sextas Jornadas Iberoamericanas."— Transcripción de la presentación:

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

2 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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, …. Estándar IEEE 830 Consideraciones iniciales

3 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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. …

4 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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) … 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).

5 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez […] 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] El universo es uno, infinito e inmóvil [Bruno, siglo XIV] Aquiles parte en busca de algo permanente e inmutable [Homero, siglo -VIII] Precedentes del modelo (concepto) temprano de la ingeniería de software

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

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

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

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

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

11 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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? ¿……?

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

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

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

15 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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. Términos

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

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

18 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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

19 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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 S PE (CLASIFICACIÓN DE LEHMAN) Incertidumbre en el problema y en la solución

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

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

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

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

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

25 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez modelos diseño 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 soluciones software basadas en la admisión de incertidumbre

26 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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)

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

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

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

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

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

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

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

34 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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* cantidad próximo paso autoriza (v) Cuenta* Relación ambigua Relaciones unívocas Ambigüedad en el diseño

35 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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

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

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

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

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

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

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

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

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

44 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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

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

46 La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez 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.

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

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


Descargar ppt "La incertidumbre como herramienta en la ingeniería de software Nelson Medinilla Martínez Universidad Politécnica de Madrid Sextas Jornadas Iberoamericanas."

Presentaciones similares


Anuncios Google