sintesis

¿Por qué?

curricula
  • ACM/IEEE-CS Joint Curriculum Task Force

    • Computing Curricula, 1991 (término inglés)

      • Diseño de Planes de Estudios Informáticos (término francés), …​ cibernética, autómatas, …​, TIC, …​!!!

        • Recurrent concepts

acm

ieee

¿Qué?

Conceptos Recurrentes

Concepto Recurrente Definición Ejemplos

Modelos conceptuales y formales

  • Diversas formas de formalizar, caracterizar, visualizar y pensar una idea o problema.

  • modelos formales en lógica,

  • teoría de conmutación y teoría de la computación,

  • paradigmas de lenguajes de programación basados ​​en modelos formales,

  • modelos conceptuales como tipos de datos abstractos y modelos de datos semánticos, y

  • lenguajes visuales utilizados para especificar y diseñar sistemas, como el flujo de datos y diagramas entidad-relación.

Niveles de abstracción

  • La naturaleza y el uso de la abstracción en la informática; el uso de la abstracción para gestionar la complejidad, estructurar sistemas, ocultar detalles y capturar patrones recurrentes; la capacidad de representar una entidad o sistema mediante abstracciones que tienen diferentes niveles de detalle y especificidad.

  • niveles de descripción de hardware,

  • niveles de especificidad dentro de una jerarquía de objetos,

  • la noción de genéricos en lenguajes de programación y

  • los niveles de detalle proporcionados en la solución de un problema a partir de especificaciones a través del código.

Asociación

  • Los procesos de hacer una abstracción más concreta al asociarle propiedades adicionales.

  • asociar (asignar) un proceso con un procesador,

  • asociar un tipo con un nombre de variable,

  • asociar un programa de objeto de biblioteca con una referencia simbólica a un subprograma,

  • instanciar en programación lógica,

  • asociar un método con un mensaje en un lenguaje orientado a objetos,

  • creando instancias concretas a partir de descripciones abstractas.

Complejidad

  • Los efectos del no lineal aumentan en complejidad a medida que aumenta el tamaño de un problema.

  • Este es un factor importante para distinguir y seleccionar métodos que se adapten a diferentes tamaños de datos, espacios de problemas y tamaños de programas.

  • En grandes proyectos de programación, es un factor que determina la organización de un equipo de implementación.

Ordenar en el espacio

  • Los conceptos de localidad y proximidad en la disciplina de la informática.

  • ubicación física, como en las redes o la memoria,

  • ubicación organizacional (por ejemplo, de procesadores, procesos, definiciones de tipo y operaciones asociadas) y

  • ubicación conceptual (por ejemplo, alcance, acoplamiento y cohesión del software).

Ordenar en el tiempo

  • El concepto de tiempo en el orden de los eventos.

  • parámetro en modelos formales (por ejemplo, en la lógica temporal),

  • sincronizar procesos que se extienden por el espacio,

  • ejecución de algoritmos.

Compromisos y consecuencias

  • El fenómeno de los compromisos en la informática y las consecuencias de dichos compromisos. Los efectos técnicos, económicos, culturales y de otro tipo de seleccionar una alternativa de diseño sobre otra. Los compromisos son un hecho fundamental de la vida en todos los niveles y en todas las áreas temáticas.

  • compromisos de espacio-tiempo en el estudio de algoritmos,

  • compromisos inherentes a objetivos de diseño en conflicto (por ejemplo, facilidad de uso versus integridad, flexibilidad versus simplicidad, bajo costo versus alta confiabilidad, etc.),

  • compromisos de diseño en hardware y

  • compromisos implícitas en los intentos de optimizar la potencia informática frente a una variedad de limitaciones.

Eficiencia

  • Medidas de costo en relación con recursos como espacio, tiempo, dinero y personas.

  • evaluación teórica de la complejidad espacial y temporal de un algoritmo,

  • la viabilidad, la eficiencia con la que se puede lograr un determinado resultado deseable (como la finalización de un proyecto o la fabricación de un componente) y

  • eficiencia de un determinado resultado

Reutilización

  • La capacidad de una técnica, concepto o sistemas en particular para responder de manera adecuada para ser reutilizada en un nuevo contexto o situación.

  • probabilidad, la reutilización de bibliotecas de software y componentes de hardware,

  • tecnologías que promueven la reutilización de componentes de software y

  • abstracciones de lenguaje que promueven el desarrollo de módulos de software reutilizables.

Coherencia e integridad (Eficacia)

  • Realizaciones concretas de los conceptos de coherencia e integridad en la informática, incluidos conceptos relacionados como corrección, solidez y fiabilidad.

  • Conjunto de axiomas que sirven como especificación formal,

  • la coherencia de la teoría con los hechos observados y

  • la coherencia interna de un lenguaje o diseño de interfaz,

  • Comportamiento del componente o del sistema con las especificaciones establecidas.

  • la adecuación de un conjunto dado de axiomas para capturar todos los comportamientos deseados,

  • la adecuación funcional de los sistemas de software y hardware, y

  • la capacidad de un sistema para comportarse bien en condiciones de error y situaciones imprevistas.

Seguridad

  • La capacidad de los sistemas de software y hardware para responder de manera adecuada y defenderse de solicitudes inapropiadas e imprevistas; la capacidad de una instalación de computadora para resistir eventos catastróficos (por ejemplo, desastres naturales e intentos de sabotaje).

  • verificación de tipos y otros conceptos en lenguajes de programación que brindan protección contra el uso indebido de objetos y funciones de datos,

  • cifrado de datos, otorgamiento y revocación de privilegios por parte de un sistema de administración de bases de datos,

  • características en las interfaces de usuario que minimizan los errores del usuario, medidas de seguridad física en la computadora

Evolución

  • El hecho del cambio y sus implicaciones. El impacto del cambio en todos los niveles y la resiliencia y adecuación de abstracciones, técnicas y sistemas frente al cambio.

  • modelos formales para representar aspectos de los sistemas que varían con el tiempo, y

  • capacidad de un diseño para resistir las demandas ambientales cambiantes y los requisitos,

  • herramientas e instalaciones cambiantes para la gestión de la configuración.

¿Para qué?

sintesis

¿Cómo?

Itinerario

desarrollo
  • 1. Patrones

    • Modelos

    • Abstracción

    • Reusabilidad

  • Valores

  • Recursividad

  • UML

  • 2. Concocimiento

    • Orden

    • Enlace

    • Eficacia

    • Seguridad

    • Evolución

  • Lenguajes formales

  • Modelo Orientado a Objetos

  • PlantUML

  • 3. Complejidad

    • Complejidad

    • Compromisos

    • Eficiencia

  • Jerarquía

  • Modularidad

  • XML, JSON, YAML

  • 4. Software

    • Paradigmas del Software

    • Crisis del Software

  • XPath, XML Schema

  • 5. Disciplinas del Software

    • Programación y Diseño/Análisis

    • Requisitos, Pruebas, Gestión, Despliegue, Entrega

  • SVG

  • 6. Aplicaciones del Software

    • Evolución del Software

    • Internet vs World Wide Web

  • HTML y CSS

  • 7. Desarrollo del Software

    • Procesos en Cascada vs Iterativa

    • Procesos Pesados vs Ágiles

  • React y Spring

Sintesis

sintesis

sintesis

Bibliografía

Obra, Autor y Edición Portada Obra, Autor y Edición Portada

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