UT03. DISEÑO ORIENTADO A OBJETOS.
ELABORACIÓN DE DIAGRAMAS
ESTRUCTURALES.
Entornos de Desarrollo
1DAW – C.I.F.P. Carlos III - Cartagena
Índice
1.- Introducción a la orientación a objetos
2.- Conceptos de orientación a objetos
2.1.- Ventajas de la orientación a objetos.
2.2.- Clases, atributos y métodos.
2.3.- Visibilidad
2.4.- Objetos. Instanciación.
3.- UML
3.1.- Tipos de diagramas UML.
3.2.- Herramientas para la elaboración de diagramas UML.
3.3.- Diagramas de clases.
3.4.- Relaciones entre clases.
3.5.- Paso de los requisitos de un sistema al diagrama de clases.
3.6.- Generación de código a partir del diagrama de clases.
3.7.- Generación de la documentación.
4.- Ingeniería inversa.
1. Introducción a la orientación a objetos
Introducción
Enfoque estructurado
• Proceso centrado en los procedimientos
• Se codifican mediante funciones que actúan sobre estructuras de datos
programación estructurada.
• Qué hay que hacer funcionalidad
Enfoque orientado a objetos
• Simula los elementos de la realidad asociada al problema de la forma más cercana
posible.
• Abstracción: permite representar elementos objeto
o Conjunto de atributos, datos.
o Conjunto de operaciones, comportamiento.
o Mensaje. Orden de ejecución de una operación determinada
• Aplicación orientada a objetos
o Conjunto de objetos que interaccionan a través de mensajes para producir resultados.
o Los objetos similares se abstraen en clases, se dice que un objeto es una instancia de una
clase.
Introducción
Ejecución de una aplicación OO
• Creación de objetos a medida que se necesitan
• Los mensajes se mueven de un objeto a otro (o del usuario a un objeto).
• Borrado de objetos cuando ya no se necesitan liberación de la memoria.
2. Conceptos de orientación a objetos
Conceptos de orientación a objetos
Objeto
• Unidad dentro de un programa de computadora que consta de un estado y de un
comportamiento, que a su vez constan de datos almacenados y de tareas
realizables durante el tiempo de ejecución. Un objeto puede ser creado
o Instanciando una clase (POO)
o Mediante escritura directa de código y al replicación (Programación basada en
prototipos)
• Es un elemento del programa que integra sus propios datos y su propio
funcionamiento (propiedades y métodos).
Clase
• Define el tipo de objeto, cómo funciona un determinado tipo de objeto.
Método
• Operación de un determinado objeto.
• Mensaje llamada a una operación de un objeto.
Conceptos de orientación a objetos
Abstracción. reunir varios elementos
• Captura características y comportamientos similares de un conjunto de objetos conjunto de
clases.
Encapsulación. agrupar todos los elementos en una clase
• Significa agrupar todos los elementos que pueden considerarse pertenecientes a una misma
entidad, al mismo nivel de abstracción cohesión de los componentes del sistema.
Modularidad hacer varias partes, dividir en clases
• Subdividir una aplicación en partes más pequeñas (módulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicación en sí y de las restantes partes.
• En POO, clase módulo más básico del sistema
Cohesión
• Alta cohesión cada módulo realiza una única tarea trabajando sobre una única estructura de
datos
Principio de ocultación
• Aísla las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder
a ellas. Reduce la propagación de efectos colaterales cuando se producen cambios.
Conceptos de OO. II
Polimorfismo
• Consiste en reunir bajo el mismo nombre comportamientos diferentes.
• La selección del comportamiento dependerá del objeto que lo ejecute
Herencia
• Relación que se establece entre objetos en los que unos utilizan las
propiedades y comportamientos de otros formando una jerarquía. Los
objetos heredan las propiedades y el comportamiento de todas las clases
a las que pertenecen.
Recolección de basura
• Destrucción automática de los objetos desvinculación de la memoria
asociada.
Ventajas
Desarrollo de software en
• menos tiempo
• con menos coste
• mayor calidad gracias a la reutilización código reusable en otras
aplicaciones.
Aumento de la calidad de los sistemas, haciéndolos más extensibles
facilidad para aumentar o modificar la funcionalidad de la aplicación.
Facilidad de modificación y mantenimiento por la modularidad y
encapsulación
Adaptación al entorno y el cambio con aplicaciones escalables
propiedad para ampliar un sistema sin rehacer su diseño y sin disminuir su
rendimiento
Clases, atributos y métodos
Los objetos de un sistema se abstraen en clases formada por un conjunto de
procedimientos y datos.
Propósito de la clase: definir abstracciones y favorecer la modularidad
Miembros:
• Nombre
• Atributos: conjunto de características asociadas a una clase. Definen
el estado del objeto. Se definen por su nombre y su tipo, que puede ser simple o
compuesto como otra clase.
• Protocolo: Operaciones (métodos, mensajes) que manipulan el estado.
o Un método es el procedimiento o función que se invoca para actuar sobre un objeto.
o Un mensaje es el resultado de cierta acción efectuada por un objeto. El conjunto de mensajes a
los cuales puede responder un objeto se le conoce como protocolo del objeto.
método utilizado muchas veces
cómo se diferecia cada método cuando lo llamamos? pues se
diferencian según el número de parámetros introducidos
Visibilidad
Principio de ocultación aísla el estado de manera que sólo se puede
cambiar mediante las operaciones definidas en una clase protege los
datos de modificaciones por alguien que no tenga derecho a acceder a
ellos las clases se dividan en dos partes:
• Interfaz: visión externa de una clase.
• Implementación: representación de la abstracción, y mecanismos que conducen
al comportamiento deseado.
Niveles de ocultación visibilidad define el tipo de acceso que se
permite a atributos.
• Público: Se pueden acceder desde cualquier clase y cualquier parte del
programa.
• Privado: Sólo se pueden acceder desde operaciones de la clase.
• Protegido: Sólo se pueden acceder desde operaciones de la clase o de clases
derivadas en cualquier nivel.
Visibilidad. II
Norma general
• Estado privado
• Operaciones del comportamiento públicas
• Operaciones auxiliares para definir el comportamiento
privadas/protegidas
Objetos. Instanciación
Clase abstracción
• Una clase es "un conjunto de objetos que comparten una estructura común y
un comportamiento común." (Booch)
Creación de objeto de clase instancia de clase.
Un objeto se define por:
• Su estado: definido por el conjunto de valores de atributos.
• Su comportamiento: definido por los métodos públicos de su clase.
• Su tiempo de vida: intervalo de tiempo a lo largo del programa en el que el
objeto existe, desde su creación (instanciación) hasta la destrucción del
objeto.
Clase abstracta: no puede se instanciada.
• Uso: definir métodos genéricos para sus clases derivadas