Programacion orientada a objetos primera entrega
I. Desarrollo de Software Orientado a Objetos
1. El desarrollo del software
2. Modularidad
3. Conceptos fundamentales de POO
4. Modelado de objetos: Relaciones
Tema 1: El Desarrollo
del Software
La Programación Orientada a Objetos (en adelante POO), surge a partir de la llamada crisis del software.[pic]
La causa, parece ser la complejidad inherente al propio software:
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
unida al ciclo de vidadel software en cascada:
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
Existían barreras para pasar de un escalón a otro, además hay que dar más importancia a la fase de mantenimiento:
REUTILIZACIÓN DEL CÓDIGO EXISTENTE
Calidad del software: Factores
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.
En resumidas cuentas:
Programaciónmediante abstracción
Abstracción del mundo real.
Abstracción de la máquina.
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 |Módulos |TADs |Objetos |
| datos globales | parte visible| exportar tipos | compartición de código |
|datos locales |parte oculta |proporcionar operaciones tipo |reutilización |
| | |proteger datos | |
| ||ocultar implementación | |
| | |ejemplares múltiples | |
Características del modelo objeto
1. Modularización: descomponer la aplicación en partes más pequeñas.
2. Abstracción.
3. Encapsulación: ocultación de información.
4. Jerarquización:relaciones de herencia o generalización (es_un) y relaciones de contenido o agregación (tiene_un).
5. 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.
Características deseables en el modelo objeto
6. Concurrencia.
7. Persistencia: un objeto puede seguirexistiendo tras desaparecer su antecesor.
8. Genericidad (unidades genéricas de programación).
9. Manejo de excepciones.
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 compiladosseparadamente 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. Facilitar la...
Regístrate para leer el documento completo.