introduccion a poo en c#

34
Ing. Ricardo Trujillo PROGRAMACION ORIENTADA A OBJETOS 1

Upload: jafet-samayoa

Post on 18-Jan-2016

50 views

Category:

Documents


3 download

DESCRIPTION

es una pequeña base para usar c#

TRANSCRIPT

Page 1: Introduccion a Poo en C#

Ing. Ricardo Trujillo

PROGRAMACION ORIENTADA A OBJETOS

1

Page 2: Introduccion a Poo en C#

Ing. Ricardo Trujillo

HISTORIA

• A finales de los 60’s.

• Noruega.

• Simula 67 (clases y subclases).

• En los 70´s.

• Palo Alto (Xerox Park).

• SmallTalk

• Se le considera el lenguaje mas puro.

2

Page 3: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Con Simula y SmallTalk quedó demostrada el ahorro

de programación si las propiedades comunes a los objetos se programan una

sola vez.

3

Page 4: Introduccion a Poo en C#

Ing. Ricardo Trujillo

¿ Por qué tardó en llegar ?

• Debido a las plataformas de trabajo existentes para ambos lenguajes.

• Eran lenguajes conocidos sólo en las Universidades.

• Hasta 1980, se da a conocer SmallTalk.

• La gente consideró que era un sistema de ventanas y no apreció el paradigma.

4

Page 5: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Lenguaje C

• En los 80’s C se convierte en un lenguaje popular de desarrollo.

• Los Laboratorios Bell, ampliaron el lenguaje para que pudiera soportar el paradigma OO.

• Le llamó C++.

5

Page 6: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Cómo ganó la batalla de popularidad

• El paradigma OO, empezó a llamar la atención.

• La gente lo podía aprender en un lexico ya conocido la POO.

• No se invertía ezfuerzo en aprender nuevos entornos ni lenguajes.

6

Page 7: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Porqué es importante la Ingenieria de Software

• Representa una metodología de desarrollo creciente hacia un fin.

• La POO no necesita un conocimiento completo de las fases que anteceden a una de ellas.

• Existen metodologías como la de Booch o Cood-Jourdan, creadas para la POO.

7

Page 8: Introduccion a Poo en C#

Ing. Ricardo Trujillo

En nuestro caso usaremos los TAD

8

Page 9: Introduccion a Poo en C#

Ing. Ricardo Trujillo

El costo del Software

• Construcción. • Mantenimiento.

9

Analisis.Especificación.Diseño.

Corrección de errores.Cambios debido a revisiones.

Page 10: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Evolución de las topologías de los lenguajes

10

Page 11: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Primera generación y principios de la 2a. (1954-1958)

11

DATOS

SubProgramas

Page 12: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Características

• Los contenedores fisicos son SubProgramas.

• Datos globales.

• Los datos eran vistos por todos.

• Un error era desvastador.

• FORTRAN, ALGOL 58, COBOL, FLOWMATIC, IPL V.

12

Page 13: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Mediados de los 60’sfinales de la 2a. Y principios de la 3a.

13

DATOS

SubProgramas

funciones

Page 14: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Características

• El código finalmente fué reconocido como un punto intermedio entre el problema y la computadora. Y como consecuencia nace la abstraccion procedural.

• 1. Se desarrollaron mecanismos de paso de parámetros.

• 2. Se crearon los fundamentos de la programación estructurada.

• 3. Métodos de diseño para la construcción de grandes sistemas.

14

Page 15: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Se desarrollaron lenguajes que:

• Soportan el anidamiento de SubProgramas.

• Estructuras de Control.

• Variables locales y globales.

• FORTRAN II, ALGOL 60, COBOL Y LISP.

15

Page 16: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Finales de la tercera generación(1962-1970)

16

DATOS

SubProgramas

funciones

Page 17: Introduccion a Poo en C#

Ing. Ricardo Trujillo17

Características

Aparecieron los grandes proyectos.Necesidad de desarrollar partes de forma independiente.Aparece la compilación separada lógica.

Page 18: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Características de los lenguajes

• Soportaban estructura modular.

• Tenian pocas reglas.

18

+ Consistencia semántica, referente a las Interfaces del

módulo.

Pl/1, ALGOL 68, PASCAL, SIMULA

Page 19: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Topología de los lenguajes BO y OO

• Se utiliza la abstracción de datos para controlar la complejidad.

• El programa es representado por una colección de objetos y/o clases.

• No existen datos globales.

• Los datos y las operaciones son colocadas en bloques lógicos.

19

Page 20: Introduccion a Poo en C#

Ing. Ricardo Trujillo20

Datos

Métodos

Mensajes

Objetos

Page 21: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Conceptos de la POO

21

Page 22: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Definiciones de Objeto

22

+ Es un componente del mundo real, que se tranforma en el dominio del software.

+ Es un elemento, unidad o identidad (real o abstracta), que se tranforma en el dominio del software; con un papel bien definido en el dominio del problema.

Page 23: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Un objeto es una entidad que tiene: estado, comportamiento e identidad

23

1. Estado: son los valores de los atributos que identifican el estado del objeto.

2. Comportamiento: esta definido en base a sus operaciones.

3. Identidad: se determina, en base al estado de un objeto.

Page 24: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Anatomía de un Objeto

24

Objeto

Datos

Métodos

mensajes

Page 25: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Ciclo de vida del software

• Análisis Oreintado a Objetos (basada en TAD’S)

• Diseño Oreintado a Objetos (Rose)

• Programación Orientada a Objetos

25

Page 26: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Mecanismos Básicos

26

Objeto

Mensaje y Método

Clase y SubClase

Herencia

Page 27: Introduccion a Poo en C#

Ing. Ricardo Trujillo27

Clases: es una abstracción, donde se agrupan atributos comunes de diferentes elementos.

SubClase: es una abstracción que especializa a una Clase.

Page 28: Introduccion a Poo en C#

Ing. Ricardo Trujillo28

Lista

Cola Pila

Page 29: Introduccion a Poo en C#

Ing. Ricardo Trujillo29

Vehículo

Vehículo de Viento

Vehículo Motorizado

Vehículo de Tierra Vehículo de Agua Vehículo de aire

Page 30: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Herencia: es una relación entre clases donde una

comparte la estructura o el comportamiento definido en

otra(s) clase(s).

30

Page 31: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Herencia Sencilla

31

Lista

Pila

Cola

Page 32: Introduccion a Poo en C#

Ing. Ricardo Trujillo32

Conceptos Clave

Polimorfismo

Abstracción

Modularidad

Encapsulación

Persistencia

Page 33: Introduccion a Poo en C#

Ing. Ricardo Trujillo

Jerarquizacion (abstracción y por especializaación)

• De lo general a lo particular.

• Las características que forman parte de un concepto.

• Dentro de clase.

33

Abstracción Especialización

Page 34: Introduccion a Poo en C#

Ing. Ricardo Trujillo34

El Boing 747

Es un tipo-de

avión

Es un tipo- de

vehículo de aire

Es un tipo-de

vehículo motorizado

Es un tipo-de

vehículo

Es un tipo-de:

Todas las caracteristicas

que forman parte de