Proceso crucial de representar la información en términos de su interfaz con el usuario
Encapsulamiento y
ocultación de datos
Objeto
Manipulación: Datos + Funciones
Funciones miembro o métodos
Se comunica por medio de mensajes
Permite una modificación
Los elementos dato = atributos/variables de instancia (Un objeto específico)
No necesariamente algo concreto o tangible puede ser totalmente abstracto describiendo un proceso
Instancia = Describe un objeto en la práctica múltiples de objetos
TAD (tipos de datos abstractos): Clases
Empaqueta diferentes propiedades o restricciones
Clase = Es la implementación de un tipo abstracto de dato de atributos (Datos) y operaciones (Comportamiento)
Se puede manipular con operaciones definidas = interpretado como el envío de un mensaje
Polimorfismo
Es una operación que tiene el mismo nombre en diferentes clases, pero ejecuta de diferentes formas cada clase
La sobrecarga es una derivación de operadores y funciones
Herencia
El concepto clase se divide a su vez en subclases
Estas tienden a organizarse en jerarquías denominadas generalización (es-un)
Reusabilidad o
reutalización de código
Proporciona una ampliación o extensión a la idea de reusabilidad añadiéndole nuevas caraterísticas
Reutilización de código: Mejora la productividad, reduce el código, y soporta el concepto de abstracción de funcionalidad común
Escribir el código correspondiente a una cola de prioridades
La biblioteca estándar de plantillas TL incorpora un contenedor prioty-queue (cola de prioridad)
Reescritura de código reusable: Diseña de modo que pueda reutilizar sus clases, sus algoritmos y sus estructuras de datos.
Programación estructurada
Conceptos fundamentales
Sentencia = instrucción
Secuenciales
If, then, case
Repetitivas
for, while y do-while
Lista = Conjunto
Modulo = Agrupación
Funciones = Componentes agrupados
Compuesto
Datos = Información que se utiliza y procesa
Algoritmos = métodos que se utilizan
Limitaciones
Datos globales = pueden ser accedido por cualquier función
Datos locales = Se utiliza exclusivamente por la función
Modelado de objetos
Objeto (Unidad)
Atributos = características (datos)
Comportamiento = acción determinada (funciones)
Etapas necesarias para modelar un sistema
1. Identificación de los objetos del problema
2. Agrupamiento en clases (tipos de objetos) de los objetos con características y comportamiento comunes
3. Identificación de los datos y operaciones de cada una de las clases
4. Identificación de las relaciones existentes entre las diferentes clases del modelo
Modelado e identificación de objetos
Estado = Conjunto de valores de todos los atributos de un objeto
Estos valores han de cumplir siempre las restricciones = invariantes
Comportamiento = Conjunto de operaciones que se pueden realizar sobre un objeto
Modificación
Estas operaciones se realizan tras la recepción de un mensaje o estímulo externo
Las interacciones se representan mediante diagramas de objetos
Identidad = Posee identidad de manera implícita
Modelado de aplicaciones: UML
Se utiliza en las fases de análisis y diseño con el fin de gestionar la complejidad para simplificar
El bloque básico es un diagrama
Con propósitos específicos (diagramas de tiempo)
Algunos con usos más genéricos (diagramas de clases)
Notación: un medio de expresar el modelo/ un meta-modelo
Lenguaje de modelado
Sintaxis: Cómo se utilizan los símbolos para representar elementos y cómo se combinan
Semántica: Explican lo que significa cada símbolo y cómo se deben interpretar
Pragmática: Definen las intenciones de los símbolos a través del propósito y comprensión
Características
Estructura estática: Describe los tipos de objetos más importantes para modelar el sistema
Comportamiento dinámico: Describe los ciclos de vida y cómo interactúan entre sí para conseguir la funcionalidad
Ventajas
Es un lenguaje formal, conciso, comprensible, completo, escalable, es un estándar y está construido sobre la filosofía de "lecciones aprendidas".
Diseño de software con UML
Diagramas estructurales
Diagramas de clases, estructuras, componentes, estructuras compuestas, despliegue, objetos.
Diagramas de comportamientos
Diagramas de actividad, comunicación, interacción, secuencia, máquinas de estado, tiempo, caso de uso.
Convenciones de código
Clases de interfaces: La primera letra debe ser mayúscula, las clases deben ser sustantivas y las interfaces adjetivos
Los métodos: Tienen la primera letra en minúscula, y la siguiente palabra empieza en mayúscula, deben denotar una acción
Las variables: Tienen la primera letra en minúscula, y la siguiente palabra empieza en mayúscula, deben denotar un sustantivo
Constantes: Debe ser totalmente en mayúsculas y separadas por línea al piso
Historia
Primera Etapa. Lenguajes Ensambladores. La unidad de programación es la instrucción, compuesta de un
operador y los operandos.
Segunda Etapa. Lenguajes de Programación: Fortran, Algol, Cobol. Los objetos y operaciones del
mundo real se podían modelar mediante datos y estructuras de control separadamente.
Tercera Etapa. Se introducen en esta etapa los conceptos de abstracción y ocultación de la
información. Programación Orientada a objetos.
Cuarta Etapa. En estos lenguajes, la abstracción de datos tiene una gran importancia y los problemas del
mundo real se representan mediante objetos de datos a los cuales se les añade el correspondiente conjunto
de operaciones asociados a ellos.