sintesis

¿Por qué?

  • …​ donde existen seres vivos que tienen sentidos, entre otros:

sentidos

  • capacidad de percibir estímulos físicos externos e internos mediante ciertos órganos que los transmiten al sistema nervioso

    • vista, oido, tacto, comunicación efectiva, eficaz y eficiente

    • olfato y gusto

    • …​

  • Señales físicas son ondas que varían su frecuencia y amplitud y descomponiéndose en combinaciones de armónicos:

    • distintas combinaciones de valores de colores, rojo, verde y azul, dependiendo de la frecuencia de onda lumínica o

    • distintas combinaciones de valores de sonidos, formando los fonemas de las palabras, a, ae, e, i, o, u, …​, chasquidos, …​, dependiendo del idioma

doppler

amanecerAtardecer

luz

diagramaLuz

armonicos

onda

Valores y Unidades

Física, Sistema Internacional de Unidades Otras áreas, Sistema Económico, Sistema Educativo, …​
  • Unidades Básicas:

    • Longitud: metro

    • Sustancia: mol

    • Masa: kilogramo

    • Tiempo: segundo

    • Temperatura: kelvin

    • Luminosidad: candela

    • Eléctricidad: amperio

  • Unidades Básicas:

    • Música: pulso

    • Educación: asignatura, crédito, …​

    • Economía: …​, real, peseta, euro, …​

    • Informática: bit

    • …​

cocinero

  • Unidades Derivadas, Compuestos:

    • Fuerza: Newton (masa * longitud / tiempo ^ 2)

    • Color: RGB, HSL, …​

    • …​

  • Unidades Derivadas, Compuestos:

    • Música: compás, …​

    • Matemática: número complejo, coordenada, vector, …​ par ordenado!!!

    • Informática: byte

    • …​

  • Múltiplos, nombres particulares, …​:

    • Tiempo: año, mes, semana, …​

    • Longitud: hectarea, picosegundo, …​, año-luz, …​

    • …​

  • Múltiplos, nombres particulares, …​:

    • Música: do, re, mi, …​, salsa, bals, trap, …​

    • Matemática: pi, e, i, phi, …​, constante de avogadro, …​

    • Color: rojo (618-780 nm), verde (497-570 nm), azul (427-476 nm), …​

    • Eduación: graduado, …​

    • Informática: kilobyte, …​, petabyte, …​

    • …​

Objetos y Clases

  • Clases: tipos de objetos con las mismas propiedades y comportamiento

    • Se relacionan con otras clases por:

      • Clasificación: transmisión de propiedades y comportamiento desde otra clase por herencia

      • Colaboración:

        • Uso, efímera pública o privada

        • Asociación, duradera y pública

        • Composición, duradera y privada

  • Objetos: ejemplares de clases con estado definido por los valores de sus propiedades mediante su comportamiento y colaborando con otros objetos transformando el estado de sus valores

Unresolved directive in 1-por/1-objetosClases/0-index.adoc - include::diagramaUml.adoc[]

  • …​ en el espacio absoluto y tiempo absoluto hay materia / espíritus

diagramaUniversoAntiguo
  • …​ en el espacio / tiempo relativos hay onda / particula,

diagramaUniverso

Procesos y Algoritmos

Algoritmo Proceso
  • conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que permite, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo otras tareas o actividades

  • rutina, procedimiento, método, …​ "función"

  • p.e. receta de cocina, instrucciones para la matricula, …​

  • Cualquier actividad, o conjunto de actividades, que utiliza recursos para transformar elementos de entrada en resultados

  • ejecución de rutina, procedimiento, método, …​

  • p.e. cocinar según la receta, matricularse según las instrucciones, …​

Diagrama de Actividad Diagrama de Estados
  • Grafo:

    • Nodos:

      • Acciones, es un elemento con nombre que representa un solo paso atómico (unidad) dentro de la actividad, es decir, que no se descompone más dentro de la actividad.

      • Disyunciones, conidición (guarda) evaluada en tiempo de ejecución para determinar el enlace que se puede atravesar

      • Conjunciones, para la unión de enlaces y continuar por un camino común

    • Enlaces: control de flujo de ejecución de las acciones y evaluación de las condiciones

  • Imperative Grid

  • Grafo:

    • Nodos:

      • Estados, que no tiene sub-estados (unidad)

      • Disyunciones con condiciones, conidición (guarda) evaluada en tiempo de ejecución para determinar el enlace que se puede atravesar

      • Conjunciones, para la unión de enlaces y continuar por un camino común

    • Enlaces: control de flujo de transición de estados por la ejecución de las acciones de las transiciónes y evaluación de las condiciones

diagramaActividad
diagramaEstados

¿Qué?

Patrón
modelo que sirve de muestra para sacar otra cosa igual
— Real Academia Española
Modelo es una abstracción semánticamente cerrada de un sistema, simplificación completa y auto-consistente de la realidad
— Grady Booch
Unified Model Language
La abstracción es el proceso mental de extracción de las características esenciales de algo, ignorando los detalles superfluos
— Grady Booch
Analisis y Diseño Orientado a Objetos

Reusabilidad

Comercio de Artesanía e Industria Matemática Física

patronRopa

pitagoras

tiroParabolico

Literatura, Cine

sherlocHolmes

house

Igualdad

Ente, entidad Identidad Identificador
  • Lo que es, existe o puede existir

  • Lo que constituye la esencia o la forma de una cosa

  • Entidad, colectividad considerada como unidad

  • Cualidad de idéntico

  • Conjunto de rasgos propios de un individuo o de una colectividad que los caracterizan frente a los demás

  • Conciencia que una persona o colectividad tiene de ser ella misma y distinta a las demás

  • Igualdad algebraica que se verifica siempre, cualquiera que sea el valor de sus variables

  • que recupera cierta identidad mediante nombres propios y/o varios apodos, ordinales, …​ (claves e indexaciones)

  • tú,

  • el cepillo de dientes del vecino,

  • consumo,

  • …​

  • yo desde que nací,

  • el camino de Santiago de Compostela,

  • el pueblo hitita hasta que lo exterminaron,

  • …​

  • el cholo, el chungo, el chachi, …​

  • tu decimorcuarto año, …​

  • …​

diagramaIdentidad
Igual: = vs == y === Contexto
  • Que tiene las mismas características que otra persona o cosa en algún aspecto o en todos

  • Del mismo valor y aprecio

  • De la misma clase o condición

  • Constante, no variable

  • De la misma manera

  • Precisión

    • Individual: nacimiento a las 23 de agosto de 1998 …​ a las 21:00 …​ salieron los pies!!!

    • Colectiva: estadísticas, media y desviación típica, la normal, resume multitud de datos en 2 datos!!! …​ sin precisión absoluta pero tengo 2 datos representativos de otros miles de datos calculables!!!

Modelo del Dominio

  • Describe los conceptos más importantes (tipos de objetos) del contexto como objetos del dominio y los enlaces de éstos a otros

    • Objetos de negocio que representan cosas que son manipuladas en un negocio

    • Objetos del mundo real y conceptos que un sistema necesita hacer un seguimiento

    • Eventos que ocurrirán o han ocurrido

  • En talleres/reuniones por parte de:

    • analistas del dominio,

    • expertos del dominio y

    • personas con habilidad de modelar

  • Una explicación de lo relevante del sistema universitario que no menciona un arañazo de la puerta de entrada o las mitocondrias del profesor de Programación, incluyendo aspectos irrelevantes para el concepto desde el contexto que se quiere entablar una comunicación

  • Nunca refiere al software: menú, ventana, …​, validador, persistencia, …​!!!

game-ticTacToe

game-mastermind

game-draughts

¿Para qué?

  • desde el presente,

  • estudiar el pasado, para

  • predecir/imaginar el futuro

pasadoFuturo

chisteInefectivo

Beneficios
  • El glosario ayuda a usuarios, clientes, desarrolladores y otros implicados a usar un vocabulario común

    • Identificar y nombrar estos objetos nos ayuda a desarrollar un glosario de términos que permitirán a cada uno que trabaje en el sistema a comunicarse mejor

    • Donde la confusión abunda, la ingeniería es difícil si no imposible. Y para construir un Sistema software de cualquier tamaño, los ingenieros actuales deben “mezclar” el lenguaje de todos los participantes de un forma consistente

  • Comprender los problemas actuales de la organización destino e identificar mejoras potenciales

  • Comprender la estructura y dinámica de la organización en la que el sistema se desarrollará (la organización destino)

  • Asegurar que clientes, usuarios finales y desarrolladores tienen una comprensión común de la organización destino

  • Comprender el contexto del sistema con un conocimiento crucial en la identificación de casos de uso

    • Obtener los requisitos del sistema para apoyar a la organización de destino

    • Sugerir clases internas para el desarrollo del Sistema durante el análisis

Aplicación: números naturales Aplicación: sexo
  • la unidad

  • los primos, divisibles únicamente por la unidad y sí mismos

  • los compuestos, restantes

objetosPrimo
diagramaSexo
clasesPrimo

¿Cómo?

Tipos de Patrones

Recurrente Iterativo Recursivo
  • se repite eventualmente, el final de una iteración NO conecta directamente con el principio de la siguiente iteración

  • se repite, el final de una iteración conecta directamente con el principio de la siguiente iteración

  • se repite en sí mismo, autosemejanza, autosimilitud, …​ recorres la misma estructura en su análisis y en su síntesis, cuando amplias el foco o cuando reduces el foco

  • la lluvia, una buena conversación, un mapache,…​

  • consecución de dias y noches, diástole y sístole, los dedos de la mano, …​

  • el bote de una pelota es una "Y" desde el punto álgido hasta el siguiente y un bote menor

carpetasRecurrentes

carpetasIterativas

carpetasRecursiva

diagramaRecurrente
diagramaIterativo
diagramaRecursivo

Patrones Iterativos

Agricultura Industria Sociedad

vendimia

cadenaMontaje

cola

Patrones Recursivos

recursion

recursionUnPaso

botePelota

Recursividad en la Naturaleza

  • Brecoli

  • Arbol

  • Hoja

  • Rayos

brecoliTronco

arbol

hoja

rayos

  • Pulmones

  • Vasos sanguineos

  • Riñones

  • Red neuronal

pulmones

vasosSanguineos

riñones

redNeuronal

  • Caracola

  • Nubes

  • Brecoli

  • Copos de nieve

caracola

nubes

brecoli

copoNieve

Recursividad cotidiana

Llegas de viaje deseando celebrar una fiesta teniendo que avisar a todos tus amigos, cientos, para jugar en la sala de fiestas "Nosva mosapar tirel…​" para divertidísimas gymkanas que tienes que contratar!!!

  • Tú, el fiestero

    • ¿quiénes son tus ancestros?

      • el conjunto de tus 2 progenitores unido a los ancestros de tus progenitores

tu

  • Avisas a todos tus amigos

    • ¿llamas directamente a 100 personas?

      • Llamo a un amigo "representante" de cada "parcela" de mi vida, le informo y que llame a los de su parcela

amigos

  • Listado con 20000 negocios en orden alfabético

    • ¿Buscas página por página?

      • Miras en la mitad y buscas en el listado anterior o posterior a la página central

guiaTelefonica
  • Anuncios en el listado de salas de fiestas

    • Describe la imagen!!!

      • Un señora …​ con un bote con la misma imagen

anuncio

  • Los baños de la sala de fiestas con espejos enfrentados

    • ¿qué imágen hay en el espejo de enfrente?

  • La imagen del espejo de enfrente es mi parte frontal y la imagen del reflejo del espejo de atrás y

  • La imagen del espejo de atrás es mi parte trasera y la imagen del refeljo del espejo de enfrente

espejosEnfrentados

  • El juego consiste en ordenar una pila de 800 papeletas con distintas cantidades entre los 8 miembros de cada equipo

    • ¿Cómo lo ordenas la pila de tarjetas?

      • aparto la cima enfrente y dos pilas con menores a la izquierda y mayores a la derecha, ordeno ambas y apilo la de la izquierda, la cima y la derecha

papeletas

Recursividad en el Arte

  • Pintura

    • Katsushika Hokusai

      • La gran ola de Kanagawa

  • Escultura

  • Arquitectura

granOla

arbol

arquitectura

lasMilYUnaNoches

historiaInterminable

bach

Recursividad lúdica

Matrioskas Torres de Hanoi Winnie de Pooh

matrioska

torresHanoi

pooh

Recursividad en la Ciencia

Demostración
…​ 8 generaciones después del Siglo de los Genios:

300 AEC

Helade

Partenón

Inclina la cabeza …​ y flipa!!!

Helade

Falanges

Partenon

Suelo

  • ¿Cuál es la distancia del lado de la baldosa cuadrada que rellena exáctamente este área para permitir hacer "mil" geometrías? O sea, máximo común divisor, (gcd, greater commun divisor)

  • Sin metro, unidades, …​ una cuerda! Los codos, los pies no eran muy precisos

MaximoComunDivisorSinEuclides Euclides

  • Euclides

    • 325 AEC - 265 AEC

    • Alejandría

    • Matemático y geómetra griego, "el padre de la geometría"

  • Si el área tiene ambos lados iguales, la solución es la distancia de cualquier lado

  • Si no, la solción es la misma para un área restante de quitar un cuadrado de lado igual al lado más pequeño

MaximoComunDivisorConEuclides MaximoComunDivisorConEuclidesSolucion

  • Máximo común divisor

gcd(int a, int b){
    if (a == b)
        return a;
    else if (a>b)
        return gcd(a-b, b);
    else
        return gcd(a, b-a);
}
  • Demostración por Inducción

    • 1+2+3+…​+n = n(n+1)/2, anécdota de Euler

La inducción matemática demuestra que podemos subir tan alto como queramos en una escalera, si demostramos que podemos subir el primer peldaño (el "caso base") y que desde cada peldaño podemos subir al siguiente (el "paso" inductivo).

  • Caso base: se comprueba

  • 1·(1+1)/2 = 1·2/2 = 2/2 = 1

  • Cierto

  • Case general: se supone

  • Cierto

  • Caso inductivo: se demuestra

  • ( (n+1)·( (n+1) + 1) ) / 2 =

  • ( (n+1)·(n+2) ) / 2 =

  • ( n^2 + n + 2·n + 2 ) / 2 =

  • ( n·(n+1) + 2·(n+1) ) / 2 =

  • n·(n+1)/2 + (n+1) =

  • 1+2+3+…​+n + (n+1)

  • Cierto

Aritmética, Combinatoria, …​
  • Número natural: tiempo, secuencia, …​, Teoria de las Ideas Innatas de Kant

    • número natural es

      • 0 ó

      • sucesor de un número natural

  • Triangulo de Pascal esconde:

    • el número phi, aureo, de oro, …​

    • el número e

    • binomio de Newton, combinaciones

    • triangulo de Serpinski, pares e impares

    • …​

trianguloPascal

  • Variaciones con repetición: m^n

variacionesRepeticion

Teoría de Lenguajes
  • oraciones subordinadas con las misma estructura que la oración principal

    • El niño que está aplaudiendo esta llorando

Proponen la recursividad como la única capacidad estrictamente merecedora de la denominación “lenguaje”, de ahí el nombre que le otorgan: “Facultad del lenguaje en sentido estricto”. Ésta sería exclusiva de la especie humana y estaría presente sólo en el lenguaje.
— Hauser
Chomsky y Fitch
  • expresiones algebraicas es:

    • un valor

    • un operador sobre expresiones

analisisSintactico

diagramaSentencia

analsisExpresion

diagramaExpresion
Biología y Psicología
Biología Psicología
  • Celula genera dos células iguales a ella, se autorreplica, …​, se canibaliza, …​ El gen egoista de Richard Dawkins

  • Virus, igual …​ pero a costa de otros!!! No es igual!!!

  • la primera?!?! …​ Diseño Inteligente!!!

La facultad de pensar sobre el pensar constituye el atributo crítico que nos distingue de todas las demás especies
— Michael C. Corballis
The Recursive Mind: The Origins of Human Language Thought and Civilization. 2007

biologia

conciencia

Recursividad incómoda

Lógica Teología
  • Las paradojas se "contradicen" en sí mismas

paradoja

  • Los dioses se crearon a sí mismos

dioses

  • Uróboros, animal serpentiforme que engulle su propia cola y que forma un círculo con su cuerpo, simboliza el ciclo eterno de las cosas, también el esfuerzo eterno, la lucha eterna, la mejora continua, …​ o bien el esfuerzo inútil, ya que el ciclo vuelve a comenzar a pesar de las acciones para impedirlo …​ ansia viva?!?!

uroboros

  • Eric Rücker Eddison publicó en 1922 una novela de mucho éxito titulada La Serpiente Uróboros

    • El todo está en el uno y el uno en el todo

    • Igual arriba que abajo y abajo que arriba

Buda Confucio Socrates

Ámate a ti mismo y observa hoy, mañana y siempre

buda

Examinate a ti mismo

confucio

Conócete a tí mismo

socrates

Recursividad en la Informática
Disco duro, …​ GNU PHP Google
diagramaCarpetas

gnu

php

google

  • Árbol de directorios

    • una carpeta es una conjunto de ficheros y carpetas recursivas

  • Acrónimo recursivo

    • G NU’s N ot U nix

  • Acrónimo recursivo

    • P HP H ypertext P reprocessor

  • Búsqueda recursiva

    • Quizás quisite decir: recursividad

Teoremas de Incompletitud de Kurt Gödel Arquitectura Hardware de Von Neumman Marketing
  • Cualquier teoría aritmética recursiva que sea consistente es incompleta

    • Fundamentación de la mátemática

      • Máquina de Turing con autómatas

      • Cálculo Lambda con funciones

      • Lógica con hechos y reglas

  • Procesador, circuitos combinacionales

  • Memoria: circuitos secuenciales retroalimentado, biestable

marketing

godel

biestable

Patrones Sencillos

Linea Triángulo Círuclo

Dos puntos

Tres puntos

Un punto y una distancia

linea

triangulo

circulo

  • linea del tiempo,

  • linea de metro,

  • frontera natural o artificial (humana), nacional o local (mi cuarto),

  • linea de productos,

  • …​

  • molécula de agua, montañas, …​

  • pirámides, catedrales, …​

  • organizaciones sociales, política, económica, militar, eclesial, administrativa, …​

  • premios, ciencia, …​

  • …​

  • pompas de jabón, células, …​

  • remolinos de viento, torbellinos, …​

  • rotondas en carreteras, anfiteatros, …​

  • circulos viciosos y virtuosos, …​

  • …​

Interfaz Gráfica de Usuario

Linea Triángulo Círuclo

Formulario

Ventana con paneles

Mapa de Navegación

formulario

jerarquiaVentanas

ciclosVentana

Tipos de Datos

Linea Triángulo Círuclo

Clase, Estructura, Registro, Entidad, …​, secuencia de atributos, campos, …​ de distintos tipos, heterogéneos

Herencia, Uniones, …​, Composición, Agregación, …​,jerarquía

Ciclos de Dependencias, de Relaciones entre Clases, …​

abstract class Piece {

  private Color color;
  private Square square;

  public void set(Square square){
    this.square = square;
  }

  public abstract void move(Coordinate coordinate){
    ...
  }
  ...

}
class Draught extends Piece {

  @Override
  public void move(Coordinate coordinate){
    ...
  }
  ...

}
class Board {
  private Square[][] squares;

  public void move(Coordinate from, Coordinate to){
    ...
  }
  ...

}
class Square {

  private Coordinate coordinate;
  private Piece piece;

  public void put(Piece piece){
    this.piece = piece;
    piece.set(this);
  }
}
draught

Estructuras de Datos

Linea Triángulo Círuclo Derivados, Compuestos, …​

Secuencia, Lista, Flujo, …​

Árbol, Jerarquía, …​

Grafo

  • Tabla

    • Bidimensional

      • Secuenca de seceuncias de elementos

      • Árbol con dos niveles, por fila y columna

    • Tridimensional

      • Secuencia de secuencias de secuencias

      • Árbol con tres niveles, por alto, ancho y fondo

  • Jerarquía

    • Grafo dirigido acíclico

  • …​

secuencia

Sentencias de Control de Flujo de Ejecución

Linea Triángulo Círuclo

Sentencia Secuencial

Sentencia Alternativa

Sentencia Iterativa

{
 System.out.println("Title");
 System.out.println("=====");
 ...
}
if (x>0) {
  ...
} else {
  ...
}

switch (x){
  case 0:
    ...
    break;
}
while (x>0){
  ...
}

do {
  ...
} while(x>0);

for(int i=0; i<12; i++){
  ...
}
GrafoDeControlDeLaSentenciaCompuesta1
GrafoDeControlDeLaSentenciaIfElse3
GrafoDeControlDeLaSentenciaWhile4
GrafoDeControlDeLaSentenciadoWhile5
GrafoDeControlDeLaSentenciaIfThen2

Recursividad en Procesos

Linea Triángulo Círuclo

Recursividad Lineal

Recursividad Múltiple

Recursividad Mutua

int factorial(int num){
  if(num == 0){
    return 1;
  } else {
    return num * factorial(num-1);
  }
}

factorial(4)
return 4 * factorial(4-1);
return 4 * 3 * factorial(3-1);
return 4 * 3 * 2 * factorial(2-1);
return 4 * 3 * 2 * 1 * factorial(1-1);
return 4 * 3 * 2 * 1 * 1;
void quicksort(int datos[]){
  quicksort(datos, 0, datos.length);
}

void quicksort(int data[],
  int left, int right) {
  int pivot = data[izq];
  int i = left;
  int j = right;
  while(i < j) {
     while(data[i] <= pivot && i < j)
      i++;
     while(data[j] > pivot)
      j--;
     if (i < j) {
      int buffer = data[i];
      data[i] = data[j];
      data[j] = buffer;
     }
   }
   data[left] = data[j];
   data[j] = pivot;
   if (left < j-1)
    quicksort(data, left, j-1);
   if (j+1 < right)
    quicksort(data, j+1, right);
}
boolean isEven(int n){
  if (n==0)
    return true;
  else if (n==1)
    return false;
  else
    return isOdd(n-1);
}

boolean isOdd(int n){
  if (n==0)
    return false;
  else if (n==1)
    return true;
  else
    return isEven(n-1);
}

isOdd(4)
isEven(4-1)
isOdd(3-1)
isEven(2-1)
isOdd(1-1)
false

Recursividad en Datos

Linea Triángulo Círuclo

Lista, por composición

Árbol, por composición

Grafo, por composición

class List {
  private Node head;
  ...
}
class Node {
  private Element element;
  private Node next;
  ...
}
list
class Tree {
  private Node root;
  ...
}
class Node {
  private Element element;
  private Node[] childs;
  ...
}
tree
class Graph {
  private Node[] nodes;
  ...
}
class Node {
  private Element element;
  private Node[] nexts;
  ...
}
graph

Lista, por clasificación

Árbol, por clasificación

abstract class List {
  ...
}
class EmptyList extends List {
  ...
}
class NotEmptyList extends List {
  private Element element;
  private List tail;
  ...
}
listClasificacion
abstract class Tree {
  ...
}
class EmptyTree extends Tree  {
  ...
}
class NotEmptyTree extends Tree {
  private Element element;
  private Tree[] subtrees;
  ...
}
treeClasificacion

Metodologías de Desarrollo

Linea Triángulo Círuclo

Cascada

Crystal Clear

Iterativas

cascada

crystalClear

xp

Síntesis

sintesis

Bibliografía

Obra, Autor y Edición Portada Obra, Autor y Edición Portada
  • The Unified Modeling Language User Guide

    • Grady Booch

    • Pearson Education (US); Edición: 2 ed (28 de junio de 2005)

height32

  • Gödel, Escher, Bach: un Eterno y Grácil Bucle

    • Famoso libro conocido como GEB

    • Douglas R. Hofstadter, 1979

hofstadter

Ponente

  • Luis Fernández Muñoz

setillo

  • Doctor en Inteligencia Artificial por la UPM

  • Ingeniero en Informática por la UMA

  • Diplomado en Informática por la UPM

  • Profesor Titular de ETSISI de la UPM