Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UMAYOR 2010
ANÁLISIS Y DISEÑO
ORIENTADO A OBJETOS
Sistemas de Información
Clase 18
Ejemplo artefacto
___
___
___
Programa del curso
ANÁLISIS Y DISEÑO ORIENTADO A
OBJETOS (30%)
Introducción
Orientación a objetos
UML
Consideraciones previas
Diagramas de UML
Orientación a objetos
Como enfrentamos las cosas
cotidianas?, por ejemplo....
Como hacen las escaleras mecánicas
para funcionar?
• R1 Usan electricidad para...............
• R2 Que importa?, yo solo las uso
Como eres tu?
• Soy una persona ....
• Mira lo que hago y lo sabrás
Orientación a objetos
Un objeto es algo que:
• Se puede utilizar
• Esta formado de otros objetos
• Se puede reutilizar para formar nuevos
objetos
• Constituye una unidad en si mismo
Por que no utilizar estas propiedades
para agilizar el desarrollo de sistemas
de información?
Orientación a objetos
Como se define un auto?
Por el color, numero de puertas, etc.
Por ser algo que puede hacer cosas
como encenderse, apagarse, ser
conducido, llevar pasajeros y cosas,
consumir combustible, etc
Osea los objetos se definen por sus
características o atributos y por su
comportamiento o funciones
Orientación a objetos
Un sistema o software que facilite:
• Registrar los atributos de un objeto
• Manejar las cosas que es capaz de hacer
Aprovecha las características de los
objetos osea facilita reutilizar
componentes de software
Orientación a objetos
Principios a utilizar para el enfoque
orientado a objetos
• Abstracción
• Encapsulamiento
• Herencia
• Polimorfismo
• Asociación
• Agregación
Orientación a objetos
Abstracción: centrarse en los
elementos relevantes, abstraerse de
los que no son importantes y solo
llegar al nivel de detalle necesario para
la solución a desarrollar
Osea en una situación nos interesará
ciertos atributos y ciertos
comportamientos de un objeto, en
otros casos otras
Orientación a objetos
Encapsulamiento: ocultar las características
de los objetos que no son relevantes para el
exterior, es una manera de aislar, de auto
contener (no importa como es, sino como
interactúa)
Por ej. Interesa usar los controles de una
radio, no su electrónica
Esto implica entre otras cosas menos
errores en el software, porque se reducen
las modificaciones (cada modificación
implica riesgo de nuevos errores)
Orientación a objetos
Herencia: Esta relacionado con la
clasificación o jerarquía. Un objeto hereda
las características de las clases a las que
pertenece y le transmite sus características
a las clases que le pertenecen, por Ej.:
• Los electrodomésticos tienen enchufe,
interruptor, marca y modelo
• Un refrigerador es un electrodoméstico, un
microondas también.
• Entonces un refrigerador y también un
microondas tienen enchufe, interruptor marca y
modelo
Orientación a objetos
Polimorfismo: objetos diferentes (es decir
objetos de diferentes clases) pueden hacer
una misma operación, pero que puede tener
diferente significación en cada uno de ellos
Por ejemplo Abrir, se puede abrir una
puerta, una ventana, un libro, una bebida o
una lata de conservas, pero los métodos de
hacer eso son diferentes
Ejemplo 2: Enchufar una plancha, un
refrigerador o una radio, representan una
misma cosa o un mismo método
Orientación a objetos
Asociación: Se refiere a como se relacionan las
cosas
Por ejemplo cuando enciendo un datashow me
relaciono con ese objeto
Puedo realizar esta asociación de diferentes
maneras, por ej. con el control remoto, con los
botones o mediante un PC que lo comande, pero la
asociación es la misma, es encender
Con un objeto me puedo asociar de diferentes
maneras, por ej. encender, apagar, comprar, etc.
Con diferentes objetos me puedo relacionar de una
misma manera, por ejemplo puedo viajar en avión,
en auto, en bus, etc.
Orientación a objetos
Una característica de la asociación entre
objetos es la multiplicidad
La multiplicidad indica cuantos objetos se
asocian, por ejemplo la asociación entre
vehículo y ruedas puede ser:
• Uno a uno (el monociclo)
• Uno a dos (la bicicleta)
• Uno a tres (el triciclo)
• Uno a cuatro (como el auto o la camioneta)
• Uno a seis o a ocho o a diez , etc. (como en el
caso algunos camiones)
• Etc.
Orientación a objetos
Agregación Es la propiedad que tienen las
cosas de reunirse para formar otras cosas,
un objeto puede ser la agregación de varios
objetos, por ej. mi PC esta formado por:
• Un monitor
• Dos parlantes
• Un mouse
• Una pantalla
• Un teclado
• Una lógica o gabinete
Es decir mi PC es la agregación de esos
objetos
Orientación a objetos
Un tipo de agregación especial es la
composición, es cuando la agregación es
estrecha como por ejemplo
• Una camisa es la agregación de manga, cuello,
botones etc. El cuello de una camisa solo no
tiene utilidad alguna
• Un árbol es la agregación de ramas raíces y
hojas, una hoja sola no tiene la duración que en
el árbol
Es decir existen agregaciones que son algo
mas que juntar objetos, en ese caso se habla
de composición, un objeto esta compuesto
de otros
ANÁLISIS Y DISEÑO
ORIENTADO A OBJETOS
Sistemas de Información
Clase 23
Jorge Boncompte
UML Diagrama de objetos
También se puede representar de
manera detallada con el nombre,
atributos, comportamiento y objetivo o
razón de ser del objeto
Pedro Pérez
Rut=“1-9”
Estatura=“1,92”
Corre “rapido”
Sabe “mucho”
Deportista
destacado
UML Diagrama de objetos
Un diagrama de objetos puede
hacerse de forma
Resumida osea indicando solamente
el nombre de cada objeto
o detallada osea indicando sus
atributos, métodos e incluso su razón
de ser, su objetivo
UML Ejemplo Diagrama de objetos
Este Teclado
La Lógica
de este PC
Sistemas de Información
Clase 24
Alumno
Rut
Nombre
Sexo
F. nacimiento
Toma ramos
Realiza evaluaciones
Nota
UML Diagrama de clases
Alumno
Rut
Nombre
Sexo
Edad = F actual – F. nacimiento F. nacimiento
/edad
Toma ramos
Realiza evaluaciones
UML Diagrama de clases
Las clases se pueden representar de
manera abreviada (solo con su
nombre)
Esto es particularmente útil para
diagramas grandes o para ofrecer una
visión general
Alumno
UML Diagrama de clases
Un atributo puede representarse con
el nombre, tipo, su valor inicial, etc.
Los atributos pueden agruparse en
estereotipos Alumno
Rut
Numero:Int
DV Rut:Char
Nombre
Ap. Paterno:Char
Ap. Materno:Char
Nombres:Char
Sexo:Char
F. Nacimiento:Date =“01-01-1960”
Toma ramos
Realiza evaluaciones
UML Diagrama de clases
Los métodos representan un servicio
de la clase, un comportamiento común
de sus instancias, osea es una función
que le indica a los objetos de la clase
que hagan algo
Por ejemplo todos los alumnos toman
ramos, realizan evaluaciones, etc.
UML Diagrama de clases
Para cada método puede indicarse los
parámetros que utiliza entre ()
Los parámetros pueden incluir el tipo
de datos al que corresponden
Alumno
Rut
Numero:Int
DV Rut:Char
Nombre
Ap. Paterno:Char
Ap. Materno:Char
Nombres:Char
...
Toma ramos(ramo:Char)
Realiza evaluaciones(n:int)
UML Diagrama de clases
Se pueden omitir tributos o métodos,
lo cual se indica mediante puntos
suspensivos
Se puede documentar el objetivo o
responsabilidad de la clase mediante
una descripción Alumno
Rut
Numero:Int
DV Rut:Char
...
Toma ramos(ramo:Char)
...
Formarse como un profesional
UML Diagrama de clases
Los atributos y los métodos pueden
ser de tres tipos:
• Públicos será visible tanto dentro como
fuera de la clase
• Privados sólo será accesible desde
dentro de la clase
• Protegidos no será accesible desde fuera
de la clase, excepto por las subclases
Esto define el grado de comunicación
y visibilidad de ellos con el entorno
UML Diagrama de clases
Relaciones entre clases
• Dos o mas clases pueden estar asociadas
• Las asociaciones se representan
mediante una línea
Empresa Trabajador
Rut Rut
Razón social Nombre
Contrata Se emplea
Produce Trabaja
Vende
UML Diagrama de clases
Una asociación puede tener varias
características, por ejemplo:
• Nombre (por ej. Emplea)
• Multiplicidad (1 a 1, 3 a 9, 1 a n, etc.)
• Roles (por ej. Empleador, Contratado)
Empresa Trabajador
Rut Emplea 1* Rut
Razón social *
Nombre
Contrata Empleador Contratado Se emplea
Produce
Trabaja
Vende
UML Diagrama de clases
Empresa Trabajador
Rut Emplea 1,* Rut
Razón social *
Nombre
Contrata Empleador Contratado Se emplea
Produce
Trabaja
Vende
Empresa Trabajador
Emplea
Vendedor Cliente
Atiende
Profesor Alumno
Enseña
Velero
maneja
Bus
transporta
Pasajero Tren
transporta
transporta
Avión
Puede existir una asociación entre una clase y varias otras clases
UML Diagrama de clases
Existen asociaciones de una clase
consigo misma, por ejemplo
1 1 1
Sistemas de Información
Clase 25
Responsable programar
2,5 1 1 1 1
1 1 1 1,2 1 *
T.Sonido T.Red CD Disco Procesador Memoria
Diagrama de Contexto
PC
2,5 1 1 1 1
Conectado a
Parlante Gabinete Monitor Teclado Mouse
1
1 1 1 1,2 1 *
PC
Procesador Teclado numérico
Memoria
Registrar números
Encender
apagar
Caja Registradora
Marca Una interfaz también puede representarse
en forma abreviada mediante un circulo
Emitir boleta
UML Diagrama de clases
Si alguien quisiera hacer un sistema
para manejar los recursos humanos
en una empresa, lo mas probable es
que necesite manejar algunos de los
atributos y algunos de los
comportamientos mencionados en el
diagrama anterior
UML Diagrama de clases
Para representar un objeto (instancia)
de una clase
• Se antepone el nombre de la instancia
seguido de dos puntos “:”
• A cada atributo se le asigna el valor
correspondiente a la instancia
pedroPeres:Trabajador
Rut=1-9
F.nac=“01-01-1993”
UML Diagrama de clases
Una asociación entre dos instancias
de dos clases se llama Vinculo
Se Representa subrayando el nombre
del Vinculo juangomez:Trabajador
Rut=2-7
Emplea F.nac=“01-01-1961”
Imprentaelpapel:Empresa
Rut=50000001-9
R.social”revista el agro”
Emplea
pedroPeres:Trabajador
Rut=1-9
F.nac=“01-01-1993”
Dudas:
Para que se usan los diagramas de clase?
Como se representa una clase?
Que antecedentes se describen en una clase?
que maneras de representar una cae conoce Ud.?
Que símbolos se presentan en un diagrama de clases, que significan y como se
utilizan?
Que es un atributo de una clase, de 5 ejemplos
Que es un método, de 5 ejemplos
Que antecedentes describen un atribuyo de una clase
Que tipo de método y atributos conoce Ud., descríbalos
en un diagrama de clases, que es una relación
Que antecedentes definen una relación entre clases
de 5 ejemplos de una relación entre dos clases
de 5 ejemplos de una relación entre una clase y varias otras clases
de 5 ejemplos de una relación entre una clase y ella misma
de 5 ejemplos de una clase asociada a la relación entre clases
Que tipos de relación entre clases existen de 5 ejemplos de cada una?
ANÁLISIS Y DISEÑO
ORIENTADO A OBJETOS
Sistemas de Información
Clase 26
Conector
Componente
UML Diagrama de componentes
CONSOLA Servidor
WEB
Bi procesador Red Ethernet giga
3.8 Ghz
4 GB Ram
Windows 2003
IIS
Conector USB
Servidor de
TAPE
Datos
DLT Scsi
4 procesadores
360 GB
3.1 Ghz
4 GB Ram
Windows 2003
SQL Server
Dudas:
Que es un Nodo?
Para que se utiliza el diagrama de
despliegue/distribución
Que símbolos se utilizan en un diagrama de
despliegue/distribución
realice un diagramas de despliegue/distribución
para una situación reales que Ud. conozca
ANÁLISIS Y DISEÑO
ORIENTADO A OBJETOS
Sistemas de Información
Clase 27
Actividad
Condiciones
Decisión
Bifurcación
Inicio
termino
UML Diagrama de Actividades
Ejemplo
Falso
Verdadero
UML Diagrama de Actividades
Selección
bebida
Monedas = precio
Sistemas de Información
Clase 28
vender
Cobrar cuenta
UML Diagrama de Casos de Uso
Actor
Representa un conjunto coherente de
roles que juegan los usuarios
Pueden ser personas o sistemas
mecánicos
Se pueden definir categorías de
actores p ej.
• Cliente
Cliente corporativo
Cliente persona
UML Diagrama de Casos de Uso
Por ejemplo, diseñemos una tarjeta BIP
Como me relaciono con una tarjeta (cuales
son los casos de Uso)?
Primero tengo que comprarla, luego la uso
para pagar los pasajes y cuando se termina
la plata de la tarjeta la tengo que cargar para
seguir usándola, osea los casos de uso son:
• Comprar tarjeta
• Cargar dinero
• Pagar pasaje
UML Diagrama de Casos de Uso
Quienes participan (actores) en cada
uno de estos casos de uso?
• Comprar tarjeta Cliente, Vendedor
• Cargar dinero Cliente, Cajero
• Pagar pasajes Cliente, Lector de tarjeta
Por tanto los actores son:
• Cliente
• Vendedor
• Lector de tarjeta
• Cajero
UML Diagrama de Casos de Uso
Ejemplo de Diagrama de Casos de Uso para el sistema Usar Tarjeta BIP
Comprar tarjeta
Vendedor
Cargar dinero
cliente
cliente
Pagar pasaje
Lector de tarjeta
UML Diagrama de Casos de Uso
En este diagrama, los actores que activan
un caso de uso se ponen a la izquierda, en
cambio, los que se benefician del caso de
uso se ubican a la derecha
El nombre de un caso de uso debe ser
único y en general empiezan con un verbo
en infinitivo
El nombre de un caso de uso puede ser
simple o nombre de camino (incluir los
paquetes a los que pertenece)
UML Diagrama de Casos de Uso
Ejemplo de documentación simple de caso de uso
Un juego de dados, en que un jugador lanza dos
dados. Si el total obtenido es siete, el jugador
gana, de lo contrario pierde.
Caso de uso: Juega un juego.
Participantes (actores): Jugador.
Descripción: Este caso de uso comienza cuando
el jugador recoge y tira los dados. Si los puntos
suman siete, gana y en cambio pierde si suman
cualquier otro número.
UML Diagrama de Casos de Uso
Escenario
Es un conjunto de condiciones que
determinan la secuencia de realización de
un caso de uso, por ejemplo, Usar tarjeta
bip para pagar pasaje puede tener varios
escenarios por Ej.:
• Uso normal
• No tiene saldo
• La tarjeta esta dañada
• Etc.
La búsqueda de escenarios de un caso de
uso pueden generar nuevos caso de uso
UML Diagrama de Casos de Uso
Usar Tarjeta BIP
Comprar tarjeta
Vendedor
Cargar dinero
Reemplazar Tarjeta
cliente dañada cliente
Pagar pasaje
Lector de tarjeta
UML Diagrama de Casos de Uso
Los casos de uso pueden organizarse
agrupándolos en grupos llamados
paquetes
Por ej
• Paquete obtener tarjeta incluye casos de
uso comprar tarjeta, cargar tarjeta y
reemplazar tarjeta
• Paquete usar tarjeta puede incluir caso de
uso pagar pasaje
UML Diagrama de Casos de Uso
Ejemplo de análisis Maquina de Bebidas
P: Como me relaciono con una
maquina de bebidas?
R: Mediante Comprar bebida
Maquina de bebidas
Comprar Bebida
cliente
cliente
Comprar Bebida
cliente cliente
Reponer
Reponedor Reponedor
Retirar recaudación
Recaudador Recaudador
UML Diagrama de Casos de Uso
Y que pasa si:
• La maquina no tiene monedas para dar
vuelto?
• Si el cliente ingresa el dinero pero a pesar
de haber bebidas, no hay de la que
selecciona el cliente?
• Si el cliente ingresa el dinero y se
arrepiente de comprar?
Surgen nuevos escenarios y pueden
surgir nuevos casos de uso
ANÁLISIS Y DISEÑO
ORIENTADO A OBJETOS
Sistemas de Información
Clase 29
Enseñar
Evaluar
Sistemas de Información
Clase 30
Llenando
receptáculo
Lavando
Centrifugando
UML Diagrama de Estados
El Símbolo de estados puede dividirse
en 3 partes
• Nombre del estado
• Variables de estado
• Actividades que sucede cuando entra en
el estado, al salir del estado o mientras
permanece en el estado
Nombre
Variables de estado
Actividades
UML Diagrama de Estados
Ejemplo maquina de FAX
Envío de FAX
Encender PC
Iniciar
Lapso de tiempo
funcionar Invernar
Apagar
UML Diagrama de Estados
Un estado puede tener Sub Estados
• Secuenciales, como por ejemplo rendir
prueba tiene poner nombre, leyendo
preguntas, respondiendo
• Concurrentes como por ejemplo
despierto puede tener caminando y
mascando chicle a la vez
UML Diagrama de Estados
Este diagrama es útil porque
• Permite analizar los estados por los que
puede pasar un sistema
• Visualizar las alternativas de
funcionamiento de un sistema
• Buscar las diferentes condiciones de
excepción
• etc.
Dudas:
Que se representa en un Diagrama de Estados
Que es un Diagrama de Estados
Para que se usa el Diagrama de Estados
Que símbolos se utilizan en el Diagrama de
Estados?
Que antecedentes se registran en un estado
Que es un subestado
Que tipos de subestados existen?
Cual es la utilidad de los diagramas de estado?
Realice 5 diagramas de estado para situaciones
reales que Ud. Conozca
ANÁLISIS Y DISEÑO
ORIENTADO A OBJETOS
Sistemas de Información
Clase 31
Abastecer agua
Permanecer inmóvil
detener
girar
botar agua
detener
UML Diagrama de Secuencia
Los mensajes pueden ir de un objeto a
otro o de un objeto a si mismo
Los mensajes pueden ser
• Simples o que pasa el control de un
objeto a otro
• Sincrónicos que requiere respuesta antes
de que el objeto retome su trabajo
• Asincrónicos que no requiere respuesta
UML Diagrama de Secuencia
Existe una relación entre los casos de
uso y los diagramas de secuencia
Por ejemplo para “comprar una bebida
en una maquina”, puede hacerse un
diagrama de casos de uso y también
un diagrama de secuencia
Una manera de documentar un caso
de uso es su diagrama de secuencia
UML Diagrama de Secuencia
Ejemplo comprar bebida en una maquina
Comprar
una bebida en una
maquina
Cliente Cliente
UML Diagrama de Secuencia
Un diagrama de secuencia puede
hacerse para
• Un escenario de un caso de uso (que se
conoce como diagrama de instancia)
• Varios escenarios de el caso de uso (que
se conoce como diagrama genérico),
Para los diagramas genéricos se tiene
que representar el control del flujo de
secuencia asociado a las diferentes
condiciones de cada escenario
UML Diagrama de Secuencia
Para representar condiciones se
utiliza un si entre corchetes, por
ejemplo
• (si existe bebida solicitada)
• (Si monto monedas > Valor bebida)
Para representar la creación de
objetos se utiliza Crear entre corchete,
por ejemplo
• (Crear Venta)
Dudas:
que se representa en un Diagrama de Secuencia
Que es un Diagrama de Secuencia
Para que se usa el Diagrama de Secuencia
Que símbolos se utilizan en el Diagrama de Secuencia ?
Que antecedentes se registran en un diagrama de Secuencia
Como pueden ser los mensajes en un diagrama de
Secuencia?
Que relación existe entre un diagrama de secuencia y uno de
casos de uso?
Como se documentan los condiciones en un diagrama de
secuencia?
Cual es la utilidad de los diagramas de Secuencia ?
realice 5 diagramas de Secuencia para situaciones reales que
Ud. Conozca
UML
Diagramas de Estructura
• clases
• componentes
• objetos
• estructura compuesta
• despliegue
• paquetes
Diagramas de Comportamiento
• actividades
• casos de uso
• estados
Diagramas de Interacción
• secuencia
• colaboración
• tiempos
• vista de interacción
UML Diagrama de colaboración
Muestra los objetos, sus relaciones y
los mensajes que intercambian
Es similar al diagrama de secuencia,
pero esta centrado en el objetivo mas
que en como estos mensajes se
realizan en el tiempo
UML Diagrama de colaboración
Ejemplo diagrama de secuencia para una lavadora automática
Manguera
1 Abastecer
2 Detener
3 Botar agua
Tambor Drenaje
4 Detener
Cliente Puerta
1 Agregar(monedas,selección)
4 Despachar (selección)
(Bebida disponible)
3.2 devolver(cambio)
(monedas>precio) 2.1 verifica
(bebida no disponible) cambio (monedas, precio)
3.3 devolver(monedas, mensaje)
Monedero
Dispensador
(Monedas=precio) 2.2 Despachar (selección)
(Bebida disponible) 3.1 Despachar (selección)
UML Diagrama de colaboración
Los mensajes pueden ser de un objeto
a un grupo de objetos de una clase,
por ejemplo
Todos 1 dar tarea (tarea, fecha entrega))
profesor
Alumno
Alumno
Dudas:
Que se representa en un Diagrama de Colaboración
Que es un Diagrama de Colaboración
Para que se usa el Diagrama de Colaboración
Que símbolos se utilizan en el Diagrama de
Colaboración ?
Confecciones 5 diagramas de colaboración para
casos que Ud. conozca