PDF de programación - Metodología de la programación orientada a objetos con C++

Imágen de pdf Metodología de la programación orientada a objetos con C++

Metodología de la programación orientada a objetos con C++gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 31 de Enero del 2018)
2.140 visualizaciones desde el 31 de Enero del 2018
445,0 KB
49 paginas
Creado hace 20a (29/07/2003)
Metodología de la Programación:

Programación Orientada a Objetos


I. Desarrollo de Software Orientado a Objetos















1. El desarrollo del software
2. Modularidad
3. Conceptos fundamentales de POO
4. Lenguajes de POO
5. Modelado de objetos: Relaciones

II. POO con C++

6. Clases y objetos
7. Clases abstractas y herencia
8. Polimorfismo
9. Genericidad
10. Excepciones

III. Diseño y Reutilización Orientado a Objetos

11. Reutilización de software con C++
12. Diseño orientado a objetos

IV. El lenguaje C++

13. Sintaxis del lenguaje
14. De C a C++
15. Construcción de programas en C++
16. Puesta a punto de programas. Errores típicos de programación

Tema 1: El Desarrollo

del Software


La Programación Orientada a Objetos (en adelante POO), surge a partir de la llamada crisis del
software.

1968

caro
poco fiable
escaso




Complejidad del dominio del problema
• Interacción usuario-desarrollador
• Cambios requisitos durante desarrollo
Dificultad en el proceso de desarrollo
• Los programadores hacen partes distintas que han de ser compatibles
Flexibilidad que se requiere al software

La causa, parece ser la complejidad inherente al propio software:
i


i

i

unida al ciclo de vida del software en cascada:
Análisis




Existían barreras para pasar de un escalón a otro, además hay que dar más importancia a la fase
de mantenimiento:

Implementación
Pruebas




Diseño




Mantenimiento

REUTILIZACIÓN DEL CÓDIGO EXISTENTE



-2-

Eficiencia: buen uso de los recursos.
Transportabilidad: entre plataformas distintas.
Verificabilidad: facilidad de comprobar el software.
Integridad: protección de sus componentes.
Facilidad de uso.
Corrección: hacer lo que se pide sin fallos.
Robustez: salvar situaciones anormales.
Extensibilidad: capacidad de cambio o evolución.
Reutilización: ahorro de trabajo.
Compatibilidad: facilidad de combinar subprogramas.


Calidad del software: Factores

i
i
i
i
i
i
i
i
i
i

En resumidas cuentas:

Programación mediante abstracción




Abstracción es la capacidad de aislar y encapsular la información del diseño y la ejecución.

Evolución de la abstracción:

Procedimientos aMódulos
• datos globales
• datos locales

aTADs
• exportar tipos
• proporcionar

Abstracción del mundo real.
Abstracción de la máquina.

• parte visible
• parte oculta

aObjetos
• compartición de

código

operaciones tipo

• reutilización

• proteger datos
• ocultar

implementación

• ejemplares

múltiples



-3-


Características del modelo objeto

1. Modularización: descomponer la aplicación en partes más pequeñas.
2.
3.
4.

Abstracción.
Encapsulación: ocultación de información.
Jerarquización: relaciones de herencia o generalización (es_un) y relaciones de contenido
o agregación (tiene_un).
Polimorfismo: capacidad de referirse a objetos de clases distintas en una jerarquía
utilizando el mismo elemento de programa para realizar la misma operación, pero de
formas distintas.

5.


Características deseables en el modelo objeto

6.
7.
8.
9. Manejo de excepciones.

Concurrencia.
Persistencia: un objeto puede seguir existiendo tras desaparecer su antecesor.
Genericidad (unidades genéricas de programación).



-4-

Tema 2: Modularidad


Modularización

Descomponer un programa en un número pequeño de abstracciones coherentes que pertenecen
al dominio del problema y enmascaran la complejidad interna.

Según Liskov, modularizar es dividir un programa en módulos que pueden ser compilados
separadamente pero existiendo conexiones entre los módulos.

Parnas dice además que deben (las conexiones) seguir el criterio de ocultación.

Booch piensa que la modularización deber ser propiedad de un sistema que ha sido
descompuesto en un conjunto de módulos cohesivos y débilmente acoplados.

Acoplamiento
Es la interacción entre módulos, sus propiedades deberían ser:
1.
2.

Cohesión
Es la interacción interna de un módulo: todos los elementos de un módulo han de tener relación.


Facilitar la sustitución de un módulo realizando pocos cambios en los otros.
Facilitar el seguimiento y aislamiento de un error (módulo defectuoso).



-5-



Tema 3: Conceptos

fundamentales de POO


Definición de Booch

La POO es el método de implementación en el que los programas se organizan como
colecciones cooperativas de objetos, cada uno de los cuales representa un ejemplar de una clase
y cuyas clases son miembros de una jerarquía de clases unidas mediante relaciones de herencia.

Conclusiones

i
i
i
i

Objeto

Entidad que contiene los atributos que describen el estado de un objeto del mundo real y las
acciones que se asocian con el objeto del mundo real.
Un objeto es designado con un nombre o un identificador.

La unidad lógica de programación es el objeto.
Los objetos tienen relaciones.
Existen clases que agrupan conceptualmente los objetos.
Las clases pertenecen a una jerarquía (son las clases las que heredan y no los objetos).

OBJETO = DATOS + OPERACIONES

Los datos deberían estar ocultos en el objeto, y las operaciones serían el interface del objeto con
el exterior, pero estas operaciones están encapsuladas en "cajas negras".



-6-


Notación

Taylor



Yourdon/Coad



Booch


Nombre

Atributos

Métodos









-7-


Booch





Métodos y mensajes

Los objetos se comunican mediante llamadas a funciones_miembro o métodos: se dice entonces
que "un objeto envía un mensaje a otro objeto".
El mensaje es la acción realizada por un objeto mediante la cual se invoca un método.

Componentes del mensaje:
i
i
i

Resumiendo, mensaje es la activación de un objeto.
El conjunto de mensajes que puede recibir un objeto se conoce como protocolo de un objeto.

Nombre del receptor del mensaje
Método invocado
Información necesaria para la ejecución del método



-8-

Clases

Una clase es la descripción de un conjunto de objetos. Consta de métodos y datos que resumen
las características comunes de un conjunto de objetos.
Muestra el comportamiento general de un grupo de objetos.

DISTINTOS OBJETOS ¬ DISTINTAS CLASES

Un objeto se crea mediante el envío de un mensaje de construcción a la clase.
Análogamente para la destrucción del objeto, la clase recibe un mensaje de destrucción.

Un programa orientado a objetos se resume en 3 sucesos:
1.
2.

Creación de objetos cuando se necesitan, mediante un mensaje de construcción a la clase.
Intercambio de mensajes entre objetos o entre usuario de objeto y objeto (diferencia
fundamental entre lenguajes POO puros e híbridos).
Eliminar objetos cuando no se necesitan, mediante un mensaje de destrucción a la clase.

-9-

3.

Identificación de clases

Partiendo del enunciado de un problema:
1.





2.

Todos los nombres del enunciado son objetos a tener en cuenta.
i Cosas tangibles ("coche")
i Roles o papeles ("empleado")
i Organizaciones ("empresa")
i Incidentes o sucesos ("liquidación")
i Interacciones o relaciones ("pedido")
Los atributos son las características individuales de cada objeto, que serán extraídos de
los adjetivos y complementos del verbo que haya en el enunciado.
Los métodos serán los verbos del enunciado. Tipos de método:
i Constructor
i Destructor
i Modificadores del estado
i Selectores (obtienen el estado del objeto: "visualizar")
i Mezcladores (ej. "sumar 2 números complejos")
i Cálculos o procesamientos

3.









Herencia

Herencia es la capacidad de un objeto (clase) para utilizar las estructuras y los métodos
existentes en antepasados o ascendientes.
Es la reutilización de código desarrollado anteriormente.
Cuando usamos herencia decimos que hacemos programación por herencia: Definición de
nuevos tipos a partir de otros con los que comparten algún tipo de característica.

Tipos de herencia

Herencia simple: un tipo derivado se crea a partir de una única clase base.


Figura

Rectángulo

Triángulo





Herencia múltiple: una clase tienen más de una ascendiente inmediato.



Persona

Profesor

Investigador

Profesor
universitario





La herencia múltiple puede plantear 2 tipos de problema:
i

La herencia repetida: ej.: "profesor universitario hereda 2 veces los atributos
de persona"
Produce ambigüedad respecto a los atributos o los métodos. En la clase base
pueden haber atributos que se llamen igual.

i





-10-

Escala-
Resolución-

Sonido

Gráficos

-Escala
-Resolución

Multimedia





Sólo 2 lenguajes incorporan herencia múltiple: Eiffel y C++


Características de la herencia

i

Anulación o sustitución: cuando redefino un método heredado en la subclase, se dice que
estoy anulando o sustituyendo dicho método. Sería deseable una "herencia selectiva":
seleccionar lo que se requiere heredar es la mejor forma de anulación.
Sobrecarga: Propiedad que puede darse también sin herencia. Es designar varios
elementos (identificadores) con el mismo nombre. No es anulación.
Polimorfismo (sobrecarga con anulación) es la forma de invocar a distintos métodos
utilizando el mismo elemento de programa.

i

i


Polimorfismo

Polimorfismo es invocar métodos distintos con el mismo mensaje (ligadura en tiempo de
ejecución).
Para ello es necesaria una jerarquía de herencia: una clase base que contenga un método
polimórfico, que es redefinido en las clases derivadas (no anulado).
Se permite que los métodos de los hijos puedan ser invocados mediante un mensaje que se envía
al padre.
Este tipo de clase que se usa para implementar el polimorfismo se conoce como clase abstracta.



-11-

Objetos Compuestos

Los objetos pueden contener a su vez objetos de otras clases dentro de sí (esto es lo que da la
po
  • Links de descarga
http://lwp-l.com/pdf8547

Comentarios de: Metodología de la programación orientada a objetos con C++ (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad