Modularidad: Tipos abstractos de datos Programación Orientada a Objetos Tema 2: Modularidad

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Modularidad: Tipos abstractos de datos Programación Orientada a Objetos Tema 2: Modularidad"

Transcripción

1 TEMA 2 1 Modularidad: Tipos abstractos de datos

2 CONTENIDOS 2 1. Abstracción 2. Tipos de datos 3. Tipos abstractos de datos 4. Modularidad 5. Reutilización 6. Paradigmas y lenguajes 7. Diseño estructurado vs. OO

3 Abstracción 3 Supresión intencionada, u ocultamiento, de algunos detalles de un proceso o artefacto, con el objeto de destacar de manera más clara otros aspectos, detalles o estructuras. Capacidad de centrarse en las características esenciales de las distintas partes de un sistema, ignorando sus propiedades accidentales. Permite dividir la información en componentes aislados que posteriormente se ensamblan para construir el todo. Limitación de la capacidad humana para operar la complejidad: Ordenando el caos: divide et impera. En SW: Abstracción Modularidad

4 Abstracción 4 Castaño Olmo Abedul Pino Chopo Haya Abeto Arbol - altura - tipo de madera - tipo de hoja - tipo de fruto Persona DNI Nombre Edad calcularedad()

5 Abstracción 5 Abstracción aplicada: Diferentes niveles: Nos centramos en los elementos más grandes e importantes. Progresivamente: Tratamos volúmenes de información menores que revelen más detalles. Diferentes tipos: Funcional o procedural, de Datos.

6 Abstracción 6 Encapsulación: Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen su estructura y su comportamiento [Booch 96]

7 Tipos de Datos 7 Un tipo de dato es un conjunto de valores y un conjunto de operaciones definidas por sus valores. Tipo de dato = Representación + Operaciones. Ejemplos: Tipo de datos entero, operaciones de +,-,*,/. Tipo cadena, operaciones de concatenación, subcadena, etc.

8 Tipos Abstractos de Datos 8 Los TADs permiten ampliar los tipos de datos definidos por el lenguaje de programación. Un tipo de dato definido por el programador se denomina TAD. Un TAD es un tipo de datos que consta de datos y operaciones que se pueden realizar sobre esos datos. Los TADs ocultan la implementación de las operaciones definidas por el usuario asociadas con el tipo de datos. La ocultación de información de un TAD significa que poseen interfaces públicos (operaciones que se pueden realizar), sin embargo, las implementaciones de esos interfaces son privados.

9 Tipos Abstractos de Datos 9 Un TAD consta de : TIPO: tipo (=cjto de objetos) que se está especificando FUNCIONES: signatura (tipo de los argumentos y resultado) AXIOMAS: definición implícita del valor de la función INVARIANTES: condición booleana que debe mantenerse con exactitud PRECONDICIONES POSTCONDICIONES

10 Tipos Abstractos de Datos 10 Ejemplo TAD Pila TIPO Pila[X] FUNCIONES poner: Pila[X] x X Pila[X] vacia: Pila[X] Boolean item: Pila[X] X new: Pila[X] AXIOMAS Para x: T, s: Pila[T]; item(poner(s,x)) = x vacia(new) not vacia(poner(s,x)) PRECONDICIONES item (s:pila[t]) requiere not vacia(s)

11 Modularidad 11 Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados [Booch 96] Alta cohesión: Un módulo con responsabilidades altamente relacionadas y que no hace una gran cantidad de trabajo. Bajo acoplamiento: Un módulo que no depende de demasiados otros módulos. Favorece: Comprensión modular: Es posible entender un módulo sin conocer los otros. Continuidad modular: Un cambio en la especificación afecta sólo a un módulo o a unos pocos. Protección modular: El efecto de una situación anormal producida en un módulo afecta sólo a éste o a unos pocos. Los módulos se comunican mediante interfaces bien definidas.

12 Modularidad 12 Programa modular: formado por un conjunto de módulos. Módulo: unidad básica de descomposición de un sistema software. Los módulos deben ser lo más independientes posibles. Un método de construcción de software es modular si ayuda a producir sistemas software a partir de elementos autónomos interconectados por una estructura simple y coherente. La programación modular trata de descomponer un programa en un pequeño número de abstracciones coherentes que pertenecen al dominio del problema y cuya complejidad interna esta oculta por el interfaz.

13 Modularidad 13 Un módulo se estructura mediante una interfaz y una implementación. Esta compuesto por un conjunto de operaciones y atributos. Interfaz Primitivas de acceso Sección Privada Atributos Operaciones

14 Modularidad 14 Reglas para obtener módulos: Unidades modulares: El lenguaje debe proporcionar estructuras modulares con las cuales se puedan describir las diferentes unidades. POO Clases. Ocultación de información: Todos los módulos deben seguir el principio de ocultación de información. Una abstracción de datos puede verse como que tiene dos caras: Interfaz: operaciones que definen el comportamiento (cliente) Implementación (programador)

15 Modularidad 15 Principio abierto-cerrado: Un módulo se considera a la vez cerrado (terminado, útil o activo) y abierto (cambios y modificaciones). No debe afectar a los demás módulos. Un módulo está abierto si está disponible para ampliarlo. Un módulo está cerrado si está disponible para su uso. Los dos objetivos son incompatibles con las técnicas tradicionales: o está abierto no se puede utilizar todavía. o se cierra cualquier cambio provoca cambios en cadena.

16 Modularidad 16 EJEMPLO: Módulo que define cuentas bancarias Representación NombreCli:String Codigo:String Saldo:Entero Interfaz reintegro() ingreso() versaldo() Un modulo incluye una estructura de datos junto con un conjunto de operaciones para manipularla. Operaciones reintegro() ingreso() versaldo() calculaintereses() NO SI

17 Reutilización 17 Por qué el software no es como el hardware (catálogos de dispositivos que se combinan)? Por qué cada nuevo proyecto software arranca de la nada? Creciente importancia de los componentes en la industria del software: (COM, JavaBeans, ). Internet favorece la reutilización. La tecnología OO hará realidad en un futuro cercano el sueño de una industria basada en componentes.

18 Reutilización 18 Beneficios esperados de la reutilización: CONSUMIR elementos reutilizables: Oportunidad (se reduce el tiempo de desarrollo). => Mejora la productividad. Disminuye el esfuerzo del mantenimiento. Aumenta fiabilidad. Aumenta eficiencia. PRODUCIR elementos reutilizables: Inversión: preservar la experiencia de los mejores desarrolladores. Si un elemento software se utilizará en muchos proyectos es rentable invertir en mejorar su calidad. Consumir antes de producir

19 Reutilización 19 Qué debemos reutilizar? PERSONAL: La experiencia previa ayuda en el nuevo desarrollo. DISEÑO: Difícil garantizar compatibilidad diseño-implementación. Seguir un enfoque donde la diferencia entre módulo diseño y módulo de implementación desaparece. Necesidad de generalidad en los componentes. PATRONES DE DISEÑO: Ideas aplicables a toda una gama de dominios. Un patrón propone una solución para un problema de diseño.

20 Reutilización 20 Por qué no es común la reutilización? Naturaleza repetitiva de la programación (ordenar, buscar, recorrer,...) Cuántas veces en los últimos 6 meses has escrito código para buscar un elemento en una colección? Obstáculos: Síndrome N.I.H. (Not Invented Here): Reacción cautelosa frente a componentes nuevos. Coste adicional de aprendizaje. Económicos: Se centran en los costes a corto plazo. Estrategias de las compañías software: Y si el cliente no vuelve a necesitarnos?. Dificultades técnicas: Diseñar código reutilizable es difícil. Hacemos las mismas cosas pero no de la misma forma. Difícil captura de las similitudes. Permitir adaptación. La noción correcta de módulo debe reconciliar: abierto - cerrado reutilización - extensibilidad

21 Paradigmas - Lenguajes 21 A lo largo del tiempo se han utilizado diferentes maneras de construir sistemas (paradigmas) persiguiendo parecidos objetivos. Paradigma de Construcción de un Sistema: Colección de conceptos que guían el proceso de construcción de un sistema, determinando su estructura. Estos conceptos controlan la forma en que pensamos y formulamos los sistemas. Un lenguaje de programación refleja un paradigma: PARADIGMA Imperativo Funcional Lógico Orientado a Objetos LENGUAJE COBOL, Pascal, C Lisp, Miranda, Haskel Prolog Smalltalk, Eiffel, C++, Java ELEMENTOS Algoritmos Funciones-Reglas If-Then Predicados-Reglas If-Then Clases y Objetos

22 Paradigmas - Lenguajes 22 La abstracción es la clave para diseñar buen software. Los lenguajes de programación de alto nivel permiten al programador abstraerse de la arquitectura de la máquina donde se ejecuta el software (de propósito general). Mecanismos para diseñar programas modulares: Procedimientos o funciones Módulos Tipos abstractos de datos (TADS) Objetos

23 Diseño estructurado vs. OO 23 Qué criterio usamos para encontrar los módulos? Acciones/ Funciones Objetos/ Datos Las tres fuerzas de la computación Procesadores A) Unidades de descomposición funcional Enfoque tradicional B) Basándose en los principales tipos de datos Enfoque OO

24 Diseño estructurado vs. OO 24 Descomposición funcional: Respuesta tradicional a la cuestión de modularización Responde a los requisitos de modularidad? Abstracción funcional de más alto nivel E A Secuencia B C D Bucle F G Condicional H Refinamientos sucesivos

25 EXTENSIBILIDAD Diseño estructurado vs. OO 25 Inconvenientes de la descomposición funcional: Función principal: Cima del sistema El programa principal es una propiedad volátil Sistemas reales no tienen cima Mejor la visión de un conjunto de servicios Centrado en la interfaz Primera pregunta: Que hará el sistema? La arquitectura del software debe basarse en propiedades más profundas. Ordenación temporal prematura

26 REUTILIZACIÓN Diseño estructurado vs. OO 26 Inconvenientes de la descomposición funcional: Se desarrollan elementos software para satisfacer necesidades específicas de otro elemento del nivel superior. Cultura del proyecto actual Las estructuras de datos son descuidadas. Funciones y datos deben jugar un papel complementario. Cuando un sistema evoluciona los datos son más estables que los procesos.

27 Diseño estructurado vs. OO 27 Ventajas de la descomposición funcional: Disciplina de pensamiento lógica y bien organizada. Técnica simple, fácil de aplicar. Útil para pequeños programas y algoritmos individuales. Buena para documentar diseños (describir algoritmos). Promueve el desarrollo ordenado de sistemas Adecuada para dominar la complejidad

28 Diseño estructurado vs. OO 28 En la programación tradicional tenemos por un lado los datos y por otro las operaciones sobre esos datos, pero son entidades independientes. operaciones datos

29 Diseño estructurado vs. OO 29 En la programación OO agrupamos (encapsulamos) conjuntos de datos relacionados entre sí y operaciones sobre esos datos en entidades que llamamos objetos. Ciertas operaciones son accesibles desde el exterior y constituyen servicios que el objeto ofrece a otros objetos Objeto Los datos normalmente están ocultos y únicamente son accesibles dentro del propio objeto Algunas operaciones están también ocultas, y representan servicios de utilidad dentro del propio objeto

30 Diseño estructurado vs. OO 30 Con la orientación a objetos, construimos pequeños modelos software de la realidad y simulamos ésta. Un sistema O.O. es un conjunto de objetos que interactúan entre sí enviándose mensajes mediante los cuáles se solicitan servicios unos a otros.

31 Diseño estructurado vs. OO 31 Las abstracciones funcionales son más volátiles que las de datos. Esa es una de las ventajas de la OO.

32 Orientación a Objetos 32 Desarrollo de software orientado a objetos : Definición Método de desarrollo de software que basa la arquitectura del sistema en módulos deducidos de los tipos de objetos que se manipulan (en lugar de basarse en la función o funciones a las que el sistema está destinado a asegurar). Hay que centrar la atención no sobre lo que HACE el sistema, sino principalmente sobre lo que ES el sistema, en términos de datos, de componentes, en término de manejo de entidades, de reacción a las solicitudes.

Tipos Abstractos de Datos (TAD) Lección 1

Tipos Abstractos de Datos (TAD) Lección 1 Tipos Abstractos de Datos (TAD) Lección 1 Esquema Paradigmas de programación Definición de TAD Programación con TAD Ventajas de la programación con TAD Lectura recomendada: secciones 1.1 y 1.2 del libro

Más detalles

Programación Orientada a Objetos. Conceptos Básicos

Programación Orientada a Objetos. Conceptos Básicos Programación Orientada a Objetos Conceptos Básicos Programación Orientada a Objetos Paradigma de programación Un programa orientado a objetos está organizado como un conjunto de agentes en interacción

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos Teoría: Begoña Moros Valle Prácticas: Marcos Menárguez Tortosa Contenido Presentación contenido teórico Presentación contenido práctico Introducción a la Programación Orientada

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Programación Orientada a Objetos Algoritmos y Programación II Junio, 2004 Las tecnologías de objetos hoy

Más detalles

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO.

CAPÍTULO 2: CARACTERÍSTICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS. ABSTRACCIÓN. ENCAPSULAMIENTO. PRINCIPIO DE OCULTACIÓN. HERENCIA. POLIMORFISMO. 1 UNIDAD 1: ORIENTACIÓN A OBJETOS. CAPÍTULO 1: INTRODUCCIÓN. HISTORIA. ESPÍRITU DEL PARADIGMA ORIENTADO A OBJETOS. CONCEPTOS BÁSICOS: OBJETO, ATRIBUTO, MÉTODO, MIEMBRO, MENSAJE, CLASE, EVENTO. CAPÍTULO

Más detalles

obtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo.

obtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo. (a) definición (b) elementos y notación (c) modelo de computación (d) ejecución de un sistema (e) exportación selectiva Clases Programación Orientada a Objetos DCIC UNS 2002 47 La POO es un nuevo paradigma

Más detalles

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas ADyA Hay para todos los gustos Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Híbridos (Lisp, Visual

Más detalles

Introducción a la Programación en C

Introducción a la Programación en C Christopher Expósito-Izquierdo [email protected] Airam Expósito-Márquez [email protected] Israel López-Plata [email protected] Belén Melián-Batista [email protected] José Marcos Moreno-Vega [email protected]

Más detalles

Evolución de la Programación Orientada a Objetos

Evolución de la Programación Orientada a Objetos Evolución de la Programación Orientada a Objetos Dr. Luis Gerardo de la Fraga Departamento de Computación Cinvestav Correo-e: [email protected] 7 de diciembre de 2006 Dr. Luis Gerardo de la Fraga Cinvestav

Más detalles

Modelo de Casos de Uso

Modelo de Casos de Uso Modelo de Casos de Uso Artefactos UML Josep Vilalta Marzo Rev.- 3.1 2007 VICO OPEN MODELING, S.L. www.vico.org 1 Diagramas UML 2.0 Diagrama estructura comportamiento Paquetes Clases Objetos Casos de Uso

Más detalles

TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS

TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS Cristina Cachero Pedro J. Ponce de León (1 Sesión) Versión 0.6 Depto. Lenguajes y Sistemas Informáticos Indice El progreso de la abstracción Definición

Más detalles

Tema 2. Diseño Modular.

Tema 2. Diseño Modular. Tema 2. Diseño Modular. E.U. Politécnica Curso 2004-2005 Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga José Luis Leiva Olivencia. Despacho: I-326D (Edificio E.U.P)/ 3.2.41

Más detalles

PROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017

PROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017 PROGRAMACION II Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017 ABSTRACCIÓN: Proceso mental e intelectual que ignora selectivamente partes

Más detalles

Unidad I: Introducción a las estructuras de datos

Unidad I: Introducción a las estructuras de datos Unidad I: Introducción a las estructuras de datos 1.1 Tipos de datos abstractos (TDA) Los tipos de datos abstractos (TDA) encapsulan datos y funciones que trabajan con estos datos. Los datos no son visibles

Más detalles

Intuitivamente es el proceso que se trata de formular y evaluar una solución para un problema dado

Intuitivamente es el proceso que se trata de formular y evaluar una solución para un problema dado Unidad I Conceptos y principios del diseño (fcc) 1.1 El diseño del software e Ingeniería del software Concepto de diseño.- Proceso de aplicar distintas técnicas y principios con el propósito de definir

Más detalles

1. Computadores y programación

1. Computadores y programación 1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la

Más detalles

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje. Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No

Más detalles

Tipo de Datos Abstractos y Programación Orientada a Objetos

Tipo de Datos Abstractos y Programación Orientada a Objetos Tipo de Datos Abstractos y Programación Orientada a Objetos DISEÑO Y PARADIGMAS DE LENGUAJES ING. EN INFORMÁTICA/ING. EN COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA UNIVERSIDAD NACIONAL DE SAN LUIS ARGENTINA

Más detalles

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS

INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo

Más detalles

Diseño Estructurado. Diseños eran los antes. Lic. Ariel Trellini 28/07/2015

Diseño Estructurado. Diseños eran los antes. Lic. Ariel Trellini 28/07/2015 Lic. Ariel Trellini Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Diseños eran los antes Arquitectura y Diseño de Sistemas 2 1 Historia Desde fines de los 60s emergieron

Más detalles

Ingeniería del Software 2

Ingeniería del Software 2 Análisis de requisitos es la 1ª fase técnica del proceso de ing. del SW Éxito -> Comprensión total de los requisitos Análisis de requisitos -> Tarea de descubrimiento, refinamiento, modelado y especificación

Más detalles

Introducción a la programación: Contenido. Introducción

Introducción a la programación: Contenido. Introducción Introducción a la programación: Contenido Introducción a la programación:... 1 Introducción... 1 1. Procesamiento automatizado de información... 1 2. Concepto de algoritmo.... 2 3. Lenguajes de programación....

Más detalles

Conceptos de Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación

Más detalles

Ingeniería del Software Orientada a Objetos. Unidad 5: Conceptos del Paradigma Orientado a Objetos

Ingeniería del Software Orientada a Objetos. Unidad 5: Conceptos del Paradigma Orientado a Objetos Ingeniería del Software Orientada a Objetos Unidad 5: Conceptos del Paradigma Orientado a Objetos Por qué la Orientación a Objetos? Proximidad de los conceptos de modelado respecto de las entidades del

Más detalles

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones Introducción Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?

Más detalles

Introducción y conceptos de POO

Introducción y conceptos de POO Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?

Más detalles

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES Carrera: Tecnicatura universitaria en programación de sistemas Materia: Programación III Curso: 2 año Curso lectivo:

Más detalles

Evolución del software y su situación actual

Evolución del software y su situación actual Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su

Más detalles

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos Ficha Técnica Titulación: Grado en Ingeniería Informática Plan BOE: BOE número 108 de 6 de mayo de 2015 Asignatura: Módulo: Programación y Estructura de Datos Curso: 1º Créditos ECTS: 6 Tipo de asignatura:

Más detalles

Principios de diseño de lenguajes

Principios de diseño de lenguajes Capítulo 1 Principios de diseño de lenguajes Objetivo El alumno describirá los procedimientos y gramáticas empleadas en el diseño de los lenguajes de programación. Figura 1.1: Preguntas incómodas 1.1.

Más detalles

Tema 4 Introducción a la Orientación a Objetos. Ingeniería del Software I

Tema 4 Introducción a la Orientación a Objetos. Ingeniería del Software I Tema 4 Introducción a la Orientación a Objetos Ingeniería del Software I [email protected] Definición: Orientación a Objetos Paradigma de computación Define y organiza el software basándose en entidades

Más detalles

CONCEPTOS BÁSICOS. Prof. Ing. M.Sc. Fulbia Torres

CONCEPTOS BÁSICOS. Prof. Ing. M.Sc. Fulbia Torres CONCEPTOS BÁSICOS ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD I CONCEPTOS BÁSICOS Datos. Información. Estructuras de Datos. Operaciones sobre una estructura. Perspectivas o niveles de datos. Implementación

Más detalles

Lenguajes de Cuarta Generación

Lenguajes de Cuarta Generación Lenguajes de Cuarta Generación Diana Marcela SánchezS http://www.csi.map.es/csi/metrica3/index.html www.csi.map.es/csi/metrica3/ /metrica3/index.htmlindex.html Que es un programa? La unión de una secuencia

Más detalles

Desarrollo Orientado a Objetos

Desarrollo Orientado a Objetos Desarrollo Orientado a Objetos 1 Sesión No. 2 Nombre: Introducción al desarrollo orientado a objetos. Parte II. Contextualización Dentro del desarrollo orientado a objetos se cuenta con varios elementos

Más detalles

Computadora y Sistema Operativo

Computadora y Sistema Operativo Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona

Más detalles

Programación y Algoritmia

Programación y Algoritmia Programación y Algoritmia Un enfoque práctico y didáctico para el diseño de algoritmos 3 Acciones y Funciones Lic. Oscar Ricardo Bruno, MDU Contenido Acciones y Funciones 3 Introducción 3 Modularizacion

Más detalles

UNIDAD NO. 01 CONCEPTOS INFORMÁTICOS BÁSICOS

UNIDAD NO. 01 CONCEPTOS INFORMÁTICOS BÁSICOS UNIDAD NO. 01 CONCEPTOS INFORMÁTICOS BÁSICOS Objetivo general de la unidad: Explicar conceptos básicos computacionales partiendo del concepto general de sistema. 1.1 CONCEPTO DE DATO E INFORMACIÓN Dato:

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.)

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.) INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.) PRESENTACION: Lic. Jaquelina Jallés Comisión 1: Lunes 8-10 OBJETIVOS: Martes 10-12 Jueves 8-12 A) Desarrollar el pensamiento lógico y estructurado

Más detalles

ARQUITECTURAS DE SOFTWARE

ARQUITECTURAS DE SOFTWARE ARQUITECTURAS DE SOFTWARE 1. DEFINICIÓN: La arquitectura de software de un programa o de un sistema computacional está definida por la estructura, comprendida por los elementos de software, las propiedades

Más detalles

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR Tema 1. Programación de un computador TEMA 1. CIÓN DE UN COMPUTADOR 1. CONCEPTO DE 2. LENGUAJES DE CIÓN 2.1. LENGUAJE MÁQUINA 2.2. LENGUAJE ENSAMBLADOR 2.3. LENGUAJE DE ALTO NIVEL 3. ALGORITMOS. REPRESENTACIÓN

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos Instituto de Computación Primavera 2013 Índice I 1 2 Fundamentos de OO Java 3 Introducción Información y significado Tipos de datos abstractos ADT Implementación 4 Índice

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA 1. INTRODUCCIÓN A LA PROGRAMACIÓN 1.1. Datos, algoritmos y programas 1.1.1. Definición de algoritmo 1.1.2. Datos 1.1.3. Características de un programa 1.2. Paradigmas de programación 1.2.1. Programación

Más detalles

Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO

Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS Cristina Cachero Pedro J. Ponce de León (1 Sesión) Versión 0.7 POO Indice El progreso de la abstracción Definición

Más detalles

Introducción a OOP. Programación Orientada a Objeto

Introducción a OOP. Programación Orientada a Objeto Introducción a OOP Programación Orientada a Objeto Evolución Programación no Estructurada, Programación procedimental, Programación modular y Programación orientada a objetos. Programación no Estructurada

Más detalles

MODELOS COMUNES PARA DESARROLLO DE SOFTWARE MODELO LINEAL SECUENCIAL

MODELOS COMUNES PARA DESARROLLO DE SOFTWARE MODELO LINEAL SECUENCIAL MODELOS COMUNES PARA DESARROLLO DE SOFTWARE MODELO LINEAL SECUENCIAL Requerimientos del sistema de información son predecibles. Requiere almacenamiento de datos en archivos y BD. Sirve para modelar sistema

Más detalles

Programación de Ordenadores

Programación de Ordenadores Programación de Ordenadores Ingeniería Química David Pelta Depto de Ciencias de la Computación e I.A. Universidad de Granada Índice Resolución de Problemas con Ordenadores Algoritmo Metodología de la programación

Más detalles

2.12 Control estadístico vs métricas.

2.12 Control estadístico vs métricas. 2.12 Control estadístico vs métricas. PRODUCIR UN SISTEMAS, APLICACIÓN O PRODUCTO DE ALTA CALIDAD Para lograr este objetivo se deben emplear métodos efectivos junto con herramientas modernas dentro del

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

PATRONES DE DISEÑO FRAMEWORKS

PATRONES DE DISEÑO FRAMEWORKS PATRONES DE FRAMEWORKS Definiciones Finalidades Características Diseño de software basado en patrones Descripción Utilización de los patrones en el diseño Clasificación FRAMEWORKS Basado en la reutilización

Más detalles

LÓGICA DE PROGRAMACIÓN

LÓGICA DE PROGRAMACIÓN LÓGICA DE PROGRAMACIÓN Lógica de la Programación Lenguajes de Programación Ing CIP. Mike Joseph Palacios Juárez Clasificación del Software Sistemas Operativos 1. Multitarea 2. Multiusuario 3. Multiproceso

Más detalles

INTRODUCCION AL DISEÑO EDUCATIVO Andrea Paola Leal Rivero. La Academia al servicio de la Vida

INTRODUCCION AL DISEÑO EDUCATIVO Andrea Paola Leal Rivero. La Academia al servicio de la Vida Andrea Paola Leal Rivero La Academia al servicio de la Vida INTRODUCCION El diseño de Software juega un papel importante en el desarrollo de software lo cual permite producir varios modelos del sistema

Más detalles

Programación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez

Programación Orientada a Objetos. Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez Programación Orientada a Objetos Integrantes: Santiago Hernández Bolívar Edwin Alexander Bohórquez Tabla de Contenido Historia. Filosofía del paradigma. Conceptos claves. Ventajas y desventajas. Lenguajes

Más detalles

METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS

METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS !387" APÉNDICE A, APARTADO 1 METODOLOGÍAS PARA EL DESARROLLO DE SISTEMAS DOCUMENTACIÓN 1. La necesidad de los diagramas Los diagramas o representaciones gráficas representan una parte fundamental en el

Más detalles

Algoritmos y Programación I. Curso Prof. Arturo Servetto

Algoritmos y Programación I. Curso Prof. Arturo Servetto 75.40 95.14 Algoritmos y Programación I Curso Prof. Arturo Servetto Propósitos del Curso Presentar al alumno un panorama general de la Informática a partir del concepto de algoritmo, que le sirva como

Más detalles

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos Introducción a la Orientación a Objetos Fernando Bellas Permuy Departamento de Tecnologías de la Información y las Comunicaciones (TIC) Universidad de A Coruña http://www.tic.udc.es/~fbellas [email protected]

Más detalles

Metodologías para Sistemas Multi-agente

Metodologías para Sistemas Multi-agente Metodologías para Sistemas Multi-agente Curso Doctorado Sistemas Multi-agente Índice Conceptos. Introducción Metodologías BDI GAIA AUML Message Conclusiones 1 Conceptos. Introducción Modelar sistemas reales

Más detalles

ARQUITECTURAS. Carlos Reveco D. IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI.

ARQUITECTURAS. Carlos Reveco D. IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI. ARQUITECTURAS 1 IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI Carlos Reveco D. [email protected] Arquitectura de una aplicación 2 Arquitectura: desarrolla un plan general del

Más detalles

Estructura de Datos y de la Información. Tema 1: Introducción a los tipos abstractos de datos

Estructura de Datos y de la Información. Tema 1: Introducción a los tipos abstractos de datos Estructura de Datos y de la Información Tema 1: Introducción a los tipos abstractos de datos Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos Clases, herencia y contención Programación Avanzada 7 de agosto de 2017 Contenido Introducción Contenido Introducción Introducción al DOO Contenido Introducción Introducción

Más detalles

Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs.

Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs. Tipos Abstractos de Datos (TAD) Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs. Abstracción: Concepto Simplificación

Más detalles

octubre de 2007 Arquitectura de Software

octubre de 2007 Arquitectura de Software octubre de 2007 Arquitectura de Software Seis mejores Prácticas Desarrollo Iterativo Administrar Requerimientos Usar Arquitecturas basadas en Componentes Modelado Visual (UML) Verificar Continuamente la

Más detalles

PLANIFICACIÓN PROGRAMACION II

PLANIFICACIÓN PROGRAMACION II PLANIFICACIÓN PROGRAMACION II 1) FUNDAMENTACIÓN DE LA MATERIA DENTRO DEL PLAN DE ESTUDIOS. El fundamento de la cátedra de Programación II I dentro del segundo semestre de la carrera tiene como objeto continuar

Más detalles

Acción que el procesador puede ejecutar sin necesidad de información suplementaria

Acción que el procesador puede ejecutar sin necesidad de información suplementaria TEMA 5: Algoritmos y programas Fundamentos de Informática (Ingeniería Técnica Industrial) Escuela Universitaria Politécnica Índice de contenidos 1. 2. 3. 4. Introducción. Conceptos básicos Representación

Más detalles

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software Ingeniería del Software Ingeniería del Software de Gestión Tema 3 Metodologías de Desarrollo de Software Félix Óscar García Rubio Crescencio Bravo Santos Índice 1. Definiciones 2. Objetivos 3. Conceptos

Más detalles

Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca

Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Aplicación de la Inducción Matemática Programación Funcional Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Motivación Programación Imperativa Declarativa Procedimental Ejemplo:

Más detalles

CLASE 3: UML DIAGRAMAS CASOS DE USO. Universidad Simón Bolívar. Ingeniería de Software. Prof. Ivette Martínez

CLASE 3: UML DIAGRAMAS CASOS DE USO. Universidad Simón Bolívar. Ingeniería de Software. Prof. Ivette Martínez CLASE 3: UML DIAGRAMAS CASOS DE USO Universidad Simón Bolívar. Ingeniería de Software. Prof. Ivette Martínez UML UML es un lenguaje para especificar, visualizar, construir y documentar los artefactos de

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS SEBASTIÁN DAVID MORENO BERNAL CRISTIAN CAMILO ORJUELA VELANDIA LENGUAJES DE PROGRAMACIÓN 24/04/2017 1. Introducción 2. Historia 3. Filosofía del paradigma 4. Conceptos

Más detalles

Fundamentos de programación JAVA

Fundamentos de programación JAVA Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:

Más detalles

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar

Más detalles

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA Modalidad de realización del curso: Titulación: Online Diploma acreditativo con las horas del curso OBJETIVOS CONTENIDOS UNIDAD DIDÁCTICA 1. INTRODUCCIÓN A

Más detalles

Programación Orientada a Objetos y Patrón MVC en PHP5. Pablo Ramirez A.

Programación Orientada a Objetos y Patrón MVC en PHP5. Pablo Ramirez A. Presentación: (Arquitecto de Software) Pregrado: Técnico Superior en Informática (CUAM) 2000 Ingeniero en Sistemas (UBA) 2009 Ingeniería en Informática (IUTOMS) (Cursando) Postgrado: Especialista en Gerencia

Más detalles

Guía para la documentación de proyectos de software

Guía para la documentación de proyectos de software Estructura y contenido Guía para la documentación de proyectos de software Organización de Computadoras Universidad Nacional del Sur 2017 1. Definiciones y especificación de requerimientos Los requerimientos/requisitos

Más detalles

ASIGNATURA: ESTRUCTURA DE DATOS II

ASIGNATURA: ESTRUCTURA DE DATOS II ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato

Más detalles

La Orientación a Objetos. Diseño de Software Avanzado Departamento de Informática

La Orientación a Objetos. Diseño de Software Avanzado Departamento de Informática La Orientación a Objetos Métodos Estructurados y Métodos Orientados a Objetos Métodos estructurados Origen en la programación estructurada (secuencia, ramificación, iteración, función). Pensar en términos

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

Más detalles