Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
AUTO-ORGANIZACIÓN Samuel Sanz Guzmán.
Advertisements

Asking Questions: Interrogative Words Español 1 Unidad 2 Etapa 2.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
Programación Orientada a Objetos
4.1 Continuidad en un punto 4.2 Tipos de discontinuidades 4.3 Continuidad en intervalos.
Notes #18 Numbers 31 and higher Standard 1.2
Informatic Topics M. Sc. Juan Carlos Olivares Rojas February, 2009.
Competitividad de Chile José Joaquín Brunner Agosto 2005 SESIÓN II.
Contribuciones a Lenguajes de Modelado Educativo
GRAMÁTICA DE CAPÍTULO 6 OBJECT (PREDICATE) PRONOUNS.
Tecnología y Estructura de Costos. Technologies u A technology is a process by which inputs are converted to an output. u E.g. labor, a computer, a projector,
HACER In Time Expressions.
Adverbs are words that describe how, when, and where actions take place. They can modify verbs, adjectives, and even other adverbs. In previous lessons,
©2008 The McGraw-Hill Companies, Inc. All rights reserved. Digital Electronics Principles & Applications Seventh Edition Chapter 2 Numbers We Use in Digital.
10.4 Adverbs ANTE TODO  Adverbs are words that describe how, when, and where actions take place.  They can modify verbs, adjectives, and even other adverbs.
¿New media? Lev Manovich It is responsible for one of the works of reference for the interpretation of the new media. “The language of new media (2001)”
3 rd Grade 2 nd Six Weeks Science Unit 2, Lesson 5 CScope Vocabulary Words
Verbs with Reflexive Pronouns Exprésate 2 Capítulo 1 Gramática 1.
1.1-1  You will now learn the imperfect, which describes past activities in a different way.
It´s a Semantic content of a clause That means that any proposition (deep structure/meaning) can be expressed in different forms. Focus on Semantics.
Introducción a la Orientación a Objetos Principios de la Tecnología de Objetos.
Conferencia 3: Paradigmas de la Orientación a Objetos Tema 1:Principios de la Tecnología de Objetos.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Orientada
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO ESCUELA SUPERIOR DE ZIMAPÁN
Polimorfismo subtipado
Notes #8 The past perfect indicative (el pretérito pluscuamperfecto del indicativo) is used to talk about what someone had done or what had occurred before.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO ESCUELA SUPERIOR DE ZIMAPÁN
CONJUGATIONS TOP 10 IRREGULAR VERBS.
Ingeniero en Computación José Alfredo Cobián Campos
PROGRAMACION ESTRUCTURADA.
Curs de Postgrau Visual Basic .NET: Introducció
LOS COMPARATIVOS.
ANTE TODO Adverbs are words that describe how, when, and where actions take place. They can modify verbs, adjectives, and even other adverbs. In previous.
Cuando yo era niña, yo tenía miedo de las inyecciones.
First Grade Dual High Frequency Words
Neutron Radiography. Outline Introduction Radiography principle Instrumentation Conclusions.
Ingeniería de Software
METODOLOGIA DEL DESARROLLO DE SISTEMAS
INTRODUCCIÓN A JAVA.
Origen de Java.
Direct Object & Direct Object Pronouns
LENGUAJES DE PROGRAMACIÓN I
Características Generales y Entornos de Desarrollo
You will now learn the imperfect, which describes past activities in a different way. Copyright © 2008 Vista Higher Learning. All rights reserved.
Integration Services.
Si (If) clauses describe a condition or event upon which another condition or event depends. Sentences with si clauses consist of a si clause and a main.
The verbs tener (to have) and venir (to come) are among the most frequently used in Spanish. Because most of their forms are irregular, you will have.
Direct objects and direct object pronouns
©2014 by Vista Higher Learning, Inc. All rights reserved The verb ir (to go) is irregular in the present tense. Note that, except for the yo form.
Hace = For/Since.
ANTE TODO Adverbs are words that describe how, when, and where actions take place. They can modify verbs, adjectives, and even other adverbs. In previous.
Asking Questions P. 184 Realidades 1.
Vámonos Translate the following sentences. Write them in English & Spanish. NO PHONES TODAY OR I WILL ADD DUOLINGO POINTS. Los hombres son inteligentes.
“Conceptos Básicos de Java”
Introduction to CAN. What is CAN and what are some of its features? Serial communication Multi-Master Protocol Compact –Twisted Pair Bus line 1 Megabit.
Spanish has two verbs that mean to know: saber and conocer
The verbs tener (to have) and venir (to come) are among the most frequently used in Spanish. Because most of their forms are irregular, you will have.
Development of the concert programme
Juliana Carmona Esteban Cano
Metas: 1) I can listen to and give simple directions on how to get to places. 2) I can use direct object pronouns to refer to people who are receiving.
Focus on Grammar 5 Part I, Unit 2 By Ruth Luman, Gabriele Steiner, and BJ Wells Copyright © Pearson Education, Inc. All rights reserved. 1 Isabel.
Programación Orientada a Objetos
Programación Orientada a Objetos
Programación Orientada a Objetos
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
Interacción de la radiación con la materia
Interacción de la radiación con la materia
Globalization Politics and the preservation of nation state.
Transcripción de la presentación:

Programación Orientada a Objetos Fast Track to Java Unit 1: Overview and Positioning Programación Orientada a Objetos Unidad 1 Introducción Universidad de Chile Departamento de Ciencias de la Computación Profesor: Nelson Baloian nbaloian@dcc.uchile.cl

Temario Crisis del software Descomposición, abstracción, generalización Reusabilidad Mantenibilidad Programación Orientada a Objetos

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Crisis del Software A fines de los años ‘60 se comenzó a hablar de “Crisis del Software”: Dificultad para construir sistemas grandes confiables, de forma controlada -> “Programming in the Large” Bajo nivel de reutilización de código Alto costo de mantenimiento

Enfrentando la Complejidad Fast Track to Java Unit 1: Overview and Positioning Enfrentando la Complejidad Grady Booch propone 3 técnicas para enfrentar la complejidad inherente al software (Grady Booch, Object-Oriented Analysis and Design with Applications, 1994): Descomposición Abstracción Generalización

Unit 1: Overview and Positioning Curso de Java Visión Global Fast Track to Java Unit 1: Overview and Positioning 1. Descomposición En Diseño Orientado a Objetos (OOD) se utiliza descomposición en clases y objetos 5

Unit 1: Overview and Positioning Curso de Java Visión Global Fast Track to Java Unit 1: Overview and Positioning 2. Abstracción Ignorar los detalles no esenciales de un objeto, manteniendo un modelo simplificado 6

Unit 1: Overview and Positioning Curso de Java Visión Global Fast Track to Java Unit 1: Overview and Positioning 3. Generalización Clasificación de los objetos en grupos de abstracciones relacionadas, explicitando el hecho de que comparten ciertas propiedades 7

Dificultad en la Reutilización Curso de Java Visión Global Fast Track to Java Unit 1: Overview and Positioning Dificultad en la Reutilización Dificultad para construir software reutilizable Dificultad para socializar el software construido 8

Dificultad en la Reutilización Fast Track to Java Unit 1: Overview and Positioning Dificultad en la Reutilización // ¿Pertenece el elemento e al contenedor c? boolean busca(CONTENEDOR c, ELEMENTO e) { POSICION pos = POSICION_INICIAL(c, e); while (POSICION_VALIDA(c, pos)) { if (ENCONTRADO(c, pos, e)) return true; else pos = POSICION_SIGUIENTE(c, pos, e); } return false; En el ejemplo anterior, el código en mayúsculas es difícil de generalizar en un lenguaje como C

Dificultad en el Mantenimiento Fast Track to Java Unit 1: Overview and Positioning Dificultad en el Mantenimiento Costos de modificación de software (ref: Bertrand Meyer, Object-Oriented Software Construction, 1988) La modularidad es el elemento clave para aumentar la reusabilidad y la mantenibilidad

OOP Object-oriented programming has roots that can be traced to the 1960s. The technology focuses on data rather than processes, with programs composed of self-sufficient modules ("classes"), each instance of which ("objects") contains all the information needed to manipulate its own data structure ("members"). This is in contrast to the existing modular programming which had been dominant for many years that focused on the function of a module, rather than specifically the data. Object-oriented programming (OOP) is a programming paradigm that uses "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. An object is a discrete bundle of functions and procedures, often relating to a particular real-world concept such as a bank account holder or hockey player. Other pieces of software can access the object only by calling its functions and procedures that have been allowed to be called by outsiders. An object-oriented program may thus be viewed as a collection of interacting objects, as opposed to the conventional model, in which a program is seen as a list of tasks to perform. In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent 'machine' with a distinct role or responsibility. The actions (or "methods") on these objects are closely associated with the object. Wikipedia

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning OOP Herramientas de la Programación Orientada a Objetos Clases: información y comportamiento Encapsulación: ocultamiento de la implementación Herencia: creación de clases a partir de clases existentes Polimorfismo: diferentes clases pueden verse a través de interfaces comunes Principales lenguajes OO: 1967: Simula 1969: Smalltalk 1983: C++ 1995: Java 2000: C#, VB.NET

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Simula Simula I (1964) y Simula 67 (1967), desarrollados en el Centro de Computación de Noruega por Ole-Johan Dahl y Kristen Nygaard, son los dos primeros lenguajes orientados a objetos Influenciado por Algol 60 Simula 67 introdujo los principales conceptos de OOP: clases, objetos, encapsulación, herencia simple, overriding de métodos, y garbage collection

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Smalltalk Smalltalk (1969) fue desarrollado en Xerox PARC por Alan Kay, Dan Ingalls y Adele Goldberg Influenciado por Simula y Lisp Lenguaje orientado a objetos puro Soporta clases, metaclases, encapsulación, herencia simple, polimorfismo, garbage collection En Smalltalk, todo es un objeto, y cada objeto pertenece a una clase

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning C++ C++ (1983) fue desarrollado en Bell Laboratories por Bjarne Stroustrup Influenciado por C y Simula Lenguaje orientado a objetos híbrido, compatible con C Soporta clases, encapsulación, sobrecarga de funciones y operadores, herencia múltiple, polimorfismo, clases/funciones parametrizadas (genéricas)

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning Java Java (1995) fue desarrollado en Sun Microsystems por James Gosling, Bill Joy y Guy Steele Influenciado por C++ Soporta clases, encapsulación, herencia simple, polimorfismo, interfaces, garbage collection

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning El Lenguaje Java Independiente de la plataforma Seguro Simple Robusto Orientado a Objetos Distribuido Multi-threaded Ref: http://java.sun.com/docs/overviews/java/java-overview-1.html

El Modelo Java Al compilar un programa Java, se genera un código de máquina intermedio definido por Sun, que recibe el nombre de bytecode

El Modelo Java El código bytecode es portable entre diferentes plataformas

Unit 1: Overview and Positioning Fast Track to Java Unit 1: Overview and Positioning C# C# (2000) fue creado en Microsoft por Anders Hejlsberg Influenciado por Java (objetos manejados mediante referencias, herencia simple e interfaces, garbage collection) y C++ (sobrecarga de operadores) Novedades: propiedades, delegados, eventos Permite crear código intermedio que corre en el Common Language Runtime (CLR), en .NET

Resumen El objetivo de la OOP es aumentar la modularidad del código, mejorando su reusabilidad y mantenibilidad Principales técnicas de OOP: descomposición, abstracción y generalización Lenguages orientados a objetos: Simula 67 Smalltalk C++ Java C#