Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivos
Recordar los conceptos básicos de la orientación a objetos
Aprender los conceptos básicos de UML como lenguaje de modelado.
Contenidos
1. Objetos
1.1. Introducción
1.2. Objeto
1.3. Clase
1.4. Relaciones entre clases
1.5. Jerarquías de clases
1.6. Polimorfismo
2. UML
2.1. Introducción a UML
2.2. Tipos de Diagramas
2.3. Arquitectura del Software
2
Introducción
Áreas de Aplicación:
Lenguajes de programación
Bases de datos
Reingeniería de procesos
CASE
Inteligencia artificial
Sistemas operativos
Interfaces de usuario
Hardware
Beneficios Potenciales:
Mejorar la calidad del software
Acortar los tiempos de desarrollo
Aumentar la productividad del programador
Incrementar la reutilización del software
3
Introducción (ii)
En el Diseño Estructurado
PROGRAMAS
DATOS
D.F.D.
Mod. E/R
S. Información
• La Orientación a Objetos
...es un paradigma unificador
4
Objeto: Concepto
5
Objeto: estado de un objeto
Contiene los valores de sus atributos (variables) cuya
información cualifica al objeto.
Automóvil
Automóvil
50 litros
Verde Recorrido de
150 Km.
120 CV
Automóvil
Mensaje
Segundo
Primer O bjeto
O bjeto
7
Objeto: identidad
Caracteriza la existencia de un objeto.
8
Objeto: Encapsulamiento
Públicos
Atributos
Privados
Representación privada
(cómo)
Métodos Privados
Públicos
9
Clase
La clase “Persona”
Atributos
› Nombre: string
› Fecha de nacimiento: fecha
› Color del pelo: (negro, blanco, pelirrojo, rubio)
Métodos
› Nacer
› Crecer
› Morir
Persona
10
Relaciones entre clases (i)
Los enlaces particulares que relacionan los objetos pueden verse
de manera abstracta en el mundo de las clases:
11
Relaciones entre clases (ii)
La Asociación:
Expresa una conexión semántica bidireccional entre clases.
Es una abstracción de los enlaces que existen entre los objetos
instancias de esas clases.
Se representan como los enlaces y se diferencian por el contexto
del diagrama. enlaces
Pepe: Estudiante
e1
e2
D.E. de Sistemas Antonio: Estudiante
e3
Sara: Estudiante
Pepe: Estudiante
e1
Asignatura Estudiante
asociación
12
Relaciones entre clases (iii)
Asociación:
Trabaja en >
Persona Compañía
< Emplea a
Persona Compañía
Trabaja en >
Persona Compañía
1..* 1
Alumnos Asignaturas
1..* 1..*
13
Relaciones entre clases (iv)
La Agregación: 1
Agregado componentes
Es una forma particular de
*
asociación pero con
acoplamiento fuerte y
1
asimétrico
coche motor
Una de las clases cumple 1
una función más
Flotas Barcos
*
importante que la otra.
Permite representar
*
asociaciones *
Coche
marca:String
modelo:String Rueda
cilindrada:entero anchura:entero
diámetro:entero
r1, r2, r3, r4:
inflar()
desinflar()
15
Relaciones entre clases (vi)
La Composición:
*
Texto
* Cuadro de
texto
Contiene
Ventana
*
Botón
*
M enu
16
Las jerarquías de clases (i)
Las jerarquías de clases o clasificaciones permiten gestionar la
complejidad ordenando los objetos dentro de árboles de clases
La Generalización:
› Consiste en factorizar los elementos comunes (atributos, operaciones y
restricciones) de un conjunto de clases en una clase más general llamada
superclase
17
Las jerarquías de clases (ii)
Las jerarquías de clases o clasificaciones permiten gestionar la
complejidad ordenando los objetos dentro de árboles de clases
La Especialización:
› Permite capturar particularidades de un conjunto de objetos no
discriminados por las clases ya identificadas. Las nuevas características se
representan por una nueva clase, subclase de una de las clases existentes.
Transmisión
Continua Discreta
18
Las jerarquías de clases (iii)
Herencia/Generalización/Especialización
Las subclases heredan las propiedades y métodos de las
superclases
Las subclases especializan a la superclase
La superclase es una definición generalista de las subclases
Subclase 1 Subclase 2
a1, a2, a3, a3, a7 a1, a2, a3, a4, a5
m1, m2, m3, m3, m5 m1, m2, m3, m3, m4
19
Polimorfismo
Capacidad de una operación de tener más de una interpretación
en más de una clase.
Facultad de un método de poder aplicarse a objetos de clases
diferentes
En OO se emplean dos formas de polimorfismo
De subclases
De sobrecarga Animal
Zoo
Vinculación dinámica,
retardada o postergada: León Tigre Oso
el sistema selecciona el
método más específico.
› Decidir si la acción es Dorir() Dormir()
Dormir()
válida. {Sobre el {Sobre la {En un árbol}
› Comprobación de vientre} espalda}
consistencia de tipos.
20
Introducción a UML
Lenguaje para:
Visualizar
Especificar
Construir y
Documentar
Introducción a UML
› no ambigüedad y
› completitud.
Es posible hacer
corresponder con
los lenguajes de Ingeniería Directa
programación
(Java, C++, Modelo
CÓDIGO
B.Datos, etc.). UML
Ingeniería Inversa
Introducción a UML
UML cubre la documentación de un sistema:
– Requisitos
– Arquitectura
– Diseño
– Código fuente
– Planificación
– Pruebas
– Prototipos
– Versiones
Introducción a UML
Estructurales De Comportamiento
(ESTÁTICA) (DINÁMICA)
Clases Casos de Uso
Objetos Estados
Componentes Actividades
Despliegue Interacción
Paquetes Secuencia
Estructura Compuesta Comunicación
Tiempos
Revisión de
Interacciones
Tipos de Diagramas
Diagramas de Despliegue:
Muestra la configuración de nodos
de procesamiento en tiempo de
ejecución y los componentes que
residen en ellos.
Cubren la vista de despliegue
estática de una arquitectura.
Tipos de Diagramas
Diagrama de Paquetes:
Muestran la descomposición del propio
modelo en unidades organizativas
(paquetes) y sus dependencias.
Sirven para simplificar los diagramas de
clases complejos, permitiendo el
agrupamiento de los clasificadores en
paquetes.
Diagramas de Revisión de
Interacciones:
Aportan una visión general del flujo
de control de las interacciones.
Híbrido entre diagrama de actividad
y diagrama de secuencia.
También se denominana «Visión
Global de Interacciones»
Arquitectura de un Sistema
La visualización, especificación, construcción y documentación
de un sistema con gran cantidad de software requiere que el
sistema sea visto desde varias perspectivas
Lecturas recomendadas
Schach, S.R. (2004) Classical and Object-Oriented Software Engineering. McGraw Hill
Pressman, R. S. (2005) Ingeniería del Software: Un enfoque práctico. McGraw-Hill. ISBN:
9789701054734
Sitio Web de OMG para UML, con información del estándar y otros recursos
(http://www.uml.org/)
Actividades recomendadas
Realizar un esquema con las características de las clases y relaciones en desarrollo OO.
Identificar los elementos de UML con los que modelar los conceptos y aspectos
semánticos sobre OO presentados en esta lección.
39