Documentos de Académico
Documentos de Profesional
Documentos de Cultura
❑Bibliografía:
• 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/)
2
Contenidos
❑ Objetos
▪ Introducción
▪ Objeto
▪ Clase
▪ Relaciones entre clases
▪ Jerarquías de clases
▪ Polimorfismo
❑UML
▪ Introducción a UML
▪ Tipos de Diagramas
▪ Arquitectura del Software
3
Introducción OO
❑Á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 4
Introducción OO
PROGRAMAS DATOS
D.F.D. Mod. E/R
S. Información
❑La Orientación a Objetos
▪ ...es un paradigma unificador
5
Objeto: Concepto
6
Objeto: estado de un objeto
❑Contiene los valores de sus atributos (variables) cuya información cualifica al objeto.
❑Existe un rango de valores para los atributos
❑El estado en un instante dado corresponde a una selección de valores de entre todos
los posibles en cada atributo.
Automóvil
Automóvil
50 litros
Verde Recorrido de
150 Km.
120 CV
Automóvil
Mensaje
Segundo
Primer Objeto
Objeto
8
Objeto: identidad
9
Objeto: Encapsulamiento
Públicos
Atributos
Privados
Representación privada
(cómo)
Métodos Privados
Públicos
11
Relaciones entre clases
❑Los enlaces particulares que relacionan los objetos pueden verse de manera abstracta
en el mundo de las clases:
▪ A cada familia de enlaces entre objetos corresponde una relación entre las clases de estos
mismos objetos
12
Relaciones entre clases
❑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
enlaces y se diferencian por e1
Pepe: Estudiante
Sara: Estudiante
Pepe: Estudiante
e1
Asignatura Estudiante
asociación
13
Relaciones entre clases
❑La Asociación:
Trabaja en >
Persona Compañía
< Emplea a
Persona Compañía
Trabaja en >
Persona Compañía
1..* 1
Alumnos Asignaturas
1..* 1..*
14
Relaciones entre clases
❑La Agregación:
▪ Es una forma particular de asociación, 1
pero con acoplamiento fuerte y Agregado componentes
asimétrico *
* *
Equipo Persona
15
Relaciones entre clases
❑La Agregación:
Coche
marca:String
modelo:String Rueda
cilindrada:entero anchura:entero
diámetro:entero
r1, r2, r3, r4:
inflar()
desinflar()
16
Relaciones entre clases
❑La Composición:
• En una composición el “todo” es
dueño de las “partes”.
*
• Las partes viven dentro del
Texto
*
Menu
17
Las jerarquías de clases
18
Las jerarquías de clases
20
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
❑Dos formas de polimorfismo
▪ De subclases
▪ De sobrecarga
Ejemplo
21
Polimorfismo
❑Objetos vs Estructurado
public class Zoo {
Animal[] animales;
public void DarSomnifero (Animal a) {
a.dormir;
}
} public class Animal {
abstract void Dormir () {
}
}
public class Leon extends public class Tigre extends public class Oso extends
Animal { Animal { Animal {
public void Dormir () { public void Dormir () { public void Dormir () {
// dormir sobre el vientre // dormir sobre la espalda // dormir en un árbol
} } }
} } }
22
Polimorfismo
Procedure DormirLeon
Begin
// Dormir sobre el vientre
End Procedure
Procedure DormirOso
Begin
// Dormir en un árbol Procedure DarSomnifero
End Procedure Begin
Select Case TipoAnimal:
Procedure DormirTigre Leon: DormirLeon;
Begin Tigre: DormirTigre;
// Dormir sobre la espalda Oso: DormirOso;
End Procedure End Case
End Procedure
23
Introducción a UML
24
Introducción a UML
❑Lenguaje muy expresivo que cubre las distintas vistas necesarias para el desarrollo de
sistemas
❑Aprender a aplicar UML de modo eficaz comienza por crear un modelo conceptual de
lenguaje, lo cual requiere aprender tres elementos:
25
Introducción a UML
❑Lenguaje para:
▪ Visualizar
▪ Especificar
▪ Construir y
▪ Documentar
26
Introducción a UML
27
Arquitectura de un Sistema Software
28
Introducción a UML
• no ambigüedad
• completitud
29
Introducción a UML
❑Es posible hacer corresponder con los lenguajes de programación (Java, C++, B.Datos,
etc.).
Ingeniería Directa
Modelo
CÓDIGO
UML
Ingeniería Inversa
30
Introducción a UML
31
Tipos de Diagramas
❑Diagrama de Clases:
▪ Muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones.
▪ Cubren la vista de diseño estática de un sistema.
33
Tipos de Diagramas
❑Diagrama de Objetos:
▪ Muestra un conjunto de objetos y sus relaciones.
▪ Representan instantáneas de instancias de los elementos encontrados en los diagramas de
clases.
❑Diagrama de Secuencia:
▪ Es un diagrama de interacción que resalta
la ordenación temporal de los mensajes.
❑Diagrama de Comunicación:
▪ Es un diagrama de interacción que resalta la organización estructural de los objetos que
envían y reciben mensajes.
34
Tipos de Diagramas
❑Diagrama de Componentes:
▪ Muestran la organización y las dependencias entre un
conjunto de componentes.
▪ Cubren la vista de implementación
estática de un sistema.
❑Diagramas de Despliegue:
▪ Muestra la configuración de nodosde procesamiento en
tiempo de ejecución y los componentes que residen en
ellos.
▪ Cubren la vista de despliegue estática de una
arquitectura.
36