Contenido
2
1. 1 2. 3. 4. 4
La orientacin a objetos es una manera natural de p j pensar acerca del mundo real y de escribir programas de cmputo. El trmino orientado a objetos significa que se organiza un concepto como una coleccin de objetos discretos que incorporan tanto la estructura de datos (atributos) como el comportamiento (mtodos y mensajes). En cualquier parte del mundo real se pueden ver objetos: gente, animales, plantas, autos, aviones, edificios, computadoras, etc.
Alejandro Gomero Portilla
Orientacin a Objetos
Encapsu ulacin n Polimorfismo P Modula M aridad Abstra A accin
Herencia
Abstraccin
5
Los humanos pensamos en trminos de objetos. Poseemos la maravillosa habilidad de la abstraccin, que nos permite ver imgenes digitales de personas, aviones, rboles como objetos, en vez de verlos como puntos de colores individuales. Los h L humanos aprenden acerca de los objetos estudiando sus atributos y observando d d l bj t t di d t ib t b d su comportamiento. El diseo orientado a objetos modela el software en trminos similares a los que utilizan las personas para describir objetos del mundo real.
Abstraccin
6
La abstraccin se enfoca en las caractersticas esenciales de un objeto, relativas a la perspectiva del observador.
Encapsulacin p
7
Tambin llamado "ocultacin de la informacin", esto asegura que los objetos no ocultacin informacin , pueden cambiar el estado interno de otros objetos de maneras inesperadas. Solamente los propios mtodos internos del objeto pueden acceder a su estado. Cada tipo de objeto expone una interfaz a otros objetos que especifica cmo otros objetos p j pueden interactuar con l. Seguramente es posible conducir un auto con efectividad, sin necesidad de saber los detalles acerca de cmo funcionan internamente los motores, transmisin o , suspensin.
Encapsulacin p
8
Modularidad
9
Facturacin
Polimorfismo
10
La habilidad de ocultar diferentes implementaciones detrs de una Interfaz sencilla Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
Manufactura A
Manufactura B
Manufactura C
Herencia
11
Organiza y facilita el polimorfismo y la encapsulacin permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. i Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y las clases en rboles o enrejados que reflejan un comportamiento comn.
Herencia
12
Niveles de Abstraccin
Incremento de Abstraccin
Transporte
Vehculo
Camin
Personal
Volteo
Decremento de Abstraccin
Los elementos que estn al mismo nivel jerrquico, pueden estar al mismo nivel de abstraccin
Alejandro Gomero Portilla
Antecedentes de UML
13
UML se ha convertido en el estndar de facto de la industria, debido a que industria ha sido concebido por los autores de los tres mtodos ms usados de orientacin a objetos: G d B h I i i bj Grady Booch, Ivar J b Jacobson y Ji R b Jim Rumbaugh. h
Esta notacin ha sido ampliamente aceptada debido al prestigio de sus creadores y debido a que incorpora las principales ventajas de cada uno de los mtodos particulares en los que se basa: Booch, OMT y OOSE.
Porque Unificado ? q
14
Presentacin de UML
El Lenguaje de Modelado Unificado (Unified Modeling Language, UML ) es un lenguaje estndar para escribir planos de software. UML puede utilizarse para visualizar, especificar, construir y documentar los artefactos que forman un sistema software orientado a objetos. UML es apropiado para modelar desde sistemas de informacin en empresas hasta aplicaciones di ib id b d en el Web. h li i distribuidas basadas lW b UML es solo un lenguaje y por tanto es tan slo parte de una metodologa de desarrollo de software. UML es independiente del proceso, aunque para utilizarlo software proceso ptimamente se debera usar en un proceso dirigido por casos de uso, centrado en la arquitectura, iterativo e incremental.
15
Presentacin de UML
UML es un lenguaje
Su vocabulario y reglas se centran en la representacin conceptual y fsica de un sistema. Detrs de cada smbolo hay una semntica bien definida.
16
Vista Lgica
Analistas/ Diseadores Usuario Final funcionalidad
Vista de Implementacin
Programadores/ Admon. Proyecto
Vista de Procesos
Integradores de sistemas Desempeo Rendimiento
Vista de Deployment
Ingenieros de sistemas Topologa de sistemas Instalacin, Instalacin Comunicacin
Vistas de UML
18
Vista de implementacin
Comprende los componentes y archivos que se utilizan para ensamblar y hacer disponible el sistema fsico.
Vista de procesos
Comprende los hilos y procesos que forman los mecanismos de sincronizacin y concurrencia del sistema.
Casos de uso y actores Diagramas de casos de uso Interacciones Diagramas de secuencia Diagramas de colaboracin Diagramas de estados
Actor: Alguien o algo fuera del sistema que interacta con nuestro sistema
Actor
un resultado a un actor
Actor At
Representa el rol jugado por una persona, dispositivo de hardware u otro sistema al interactuar con nuestro sistema.
Caso de uso
Describe qu hace un sistema, pero no especifica cmo lo hace. El comportamiento de un caso de uso se especifica describiendo un flujo de eventos de forma textual.
Alejandro Gomero Portilla
Encontrar actores
22
Estudiante
Secretaria
Sistema de Registro
El estudiante nunca toca el sistema; la secretaria lo opera. di l i l i l O quizs si se est construyendo una aplicacin sobre Internet
Estudiante
Instancias de actores
23
Registro de cursos
Estudiante
Estudiante
Identificar Actores
25
Quin usar el sistema? Quin obtendr informacin de este sistema? Quin proveer informacin al sistema? Q f ? En que parte de la organizacin ser usado el sistema? Quin dar soporte y mantenimiento al sistema? Que otros sistemas necesitarn interactuar con el sistema?
Alejandro Gomero Portilla
Actor
Qu es un caso de Uso?
26
Un caso de Uso describe un conjunto de posibles ejecuciones del sistema: Un ejecucin especfica (instancia) de un caso de uso es un Escenario.
Secuencia de actividades atmicas, decisiones, y peticiones: Pueden ser ejecutadas completamente o no. Iniciadas por un actor
Los diagramas de casos de uso son importantes para modelar el comportamiento de un sistema, un subsistema o una clase. l Cada uno muestra un conjunto de casos de uso, actores y sus relaciones. Estos diagramas facilitan que los sistemas, subsistemas y E t di f ilit l it bit clases sean abordables y comprensibles.
Alejandro Gomero Portilla
Comunicacin-Asociacin
Comunicacin (Lnea o Flecha)
Es una asociacin entre un actor y un caso de uso que indica que interactan
Direccin
Actor 1
Caso de uso
Alejandro Gomero Portilla
Actor 2
Retiro de efectivo
Cliente Sistema Bancario
Transferir fondos
Depositar fondos p
Cajero Mantenimiento
Mantenimiento de ATM
Estudiante
Registro
Catalogo de cursos
Otro actor
Caso de Uso 3
Herencia
33
La L generalizacin entre casos d uso es como l generalizacin entre li i de la li i clases. El caso de uso hijo hereda el comportamiento y significado del caso de uso padre. padre El hijo puede aadir o redefinir el comportamiento del padre. Tanto el padre como el hijo pueden tener instancias concretas.
Herencia
34
Validar Usuario
Examinar Retina
Comprobar clave
Include
35
Se utiliza para factorizar el comportamiento de comn (extrayendo ese comportamiento de los casos de uso en que se incluye) Una relacin de inclusin entre casos de uso significa que un caso de uso base incorpora explcitamente el comportamiento de otro caso de uso en el lugar especificado del caso de uso base. El caso de uso uncluido nunca se encuentra aislado, sino que es instanciado slo como parte de un caso de uso base ms amplio que lo incluye Se usa para evitar describir el mismo flujo de eventos repetidas veces, poniendo el comportamiento comn en un caso d uso aparte. t i t de t
Alejandro Gomero Portilla
Include
36
<<include>>
Validar Cliente
Seguir Pedido
Extend
37
Significa que el caso de uso base incorpora implcitamente el comportamiento de otro caso de uso en el lugar especificado indirectamento por el caso de uso que extiende al base. El caso de uso base puede estar aislado pero, bajo ciertas condiciones, su comportamiento puede extenderse con el comportamiento de otro caso de uso. La extensin se puede ver como que el caso de uso que extiende incorpora su comportamiento p q q p p en el caso de uso base. Se utiliza para modelar la parte de un caso de uso que el usuario puede ver como comportamiento opcional del sistema.
Extend
38
Hacer Pedido
<<includ e>>
Seguir Pedido
<<include>>
<<extend>>
Escenarios
39
Registro de cursos
Catalogo de cursos
1. Acceder al sistema 2. Aprobar el acceso 3. Ingresar materia en busqueda ( b d (search) h) 4. Tomar la lista de cursos 5. Desplegar la lista de cursos 6. Seleccionar cursos 7. Confirmar disponibilidad 8. Desplegar horario final
1. Acceder al sistema 2. 2 Aprobar el acceso 3. Introducir materiaen busqueda 4. Tema no vlido 5. Reingresar tema 5 R i 6. Tomar la lista de cursos 7. Desplegar la lista de cursos 8. Seleccionar cursos 9. Confirmar disponibilidad 10.Desplegar horario final
Registro de cursos g
Catalogo de cursos
Desplegar la lista de cursos Seleccionar cursos Confirmar disponibilidad en cursos Desplegar el horario aprobado Transmitir peticin Regresar informacin del curso
Acceder
Este caso de uso inicia cuando un estudiante accede al Web Site. El sistema le solicita al estudiante usuario y contrasea
2.
3.
4.
Seleccionar Cursos
El estudiante selecciona 4 cursos elementales y dos alternos de la lista de cursos disponibles.
5.
Someter Horario
El estudiante indica que su horario esta completo. Para cada curso agregado al horario, el sistema verifica que el estudiante cumpla con los prerrequisitos necesarios
6.
Interacciones
42
Una interaccin es un comportamiento que comprende un p q p conjunto de mensajes intercambiados entre un conjunto de objetos dentro de un contexto para lograr un propsito.
Las interacciones se utilizan para modelar aspectos dinmicos de las colaboraciones, que representan sociedades de objetos colaboraciones que juegan roles especficos, y colaboran entre s.
Alejandro Gomero Portilla
Trminos y Conceptos p
43
Contexto: Una interaccin puede aparecer siempre que unos objetos estn enlazados a otros. Las interacciones aparecern en la colaboracin de objetos existentes en el contexto de un sistema. j
Objetos: Los objetos que participan en una interaccin son o bien elementos concretos o bien elementos prototpicos.
Como elemento concreto, un objeto representa algo del mundo real. Por concreto real ejemplo, p, es una instancia de la clase persona. Como elemento prototpico, p podra representar cualquier instancia de persona. p p , p p q p
Alejandro Gomero Portilla
Trminos y Conceptos p
44
Enlace: es una conexin semntica entre objetos. En general, es una instancia de una asociacin.
Secuenciacin: cuando un objeto enva un mensaje a otro, el objeto receptor puede, a su vez, enviar un mensaje otro objeto, etctera.
Alejandro Gomero Portilla
Creacin y Destruccin
45
La mayora de las veces los objetos que participan en una interaccin existen durante todo el tiempo que dura la interaccin, sin embargo alguna interacciones pueden llevar a la creacin y destruccin de objetos objetos.
new: Especifica que la instancia o el enlace se crea durante la ejecucin de la interaccin que lo contiene. contiene destroyed: Especifica que la instancia o el enlace se destruye antes de completarse la ejecucin de la interaccin. transient: Especifica que la instancia o el enlace se crea durante la ejecucin de la interaccin, p pero se destruye antes de completar su ejecucin. y p j
Diagramas de Interaccin g
46
Los diagramas de secuencia y colaboracin son diagramas que se utilizan para modelar los aspectos dinmicos de los sistemas.
Un diagrama de interaccin muestra una interaccin, que consiste en un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos.
Diagramas de Secuencia g
47
Un diagrama de secuencia es un diagrama de interaccin que destaca la g g q ordenacin temporal de los mensajes. Un diagrama de secuencia se forma colocando en primer lugar los objetos que participan en la interaccin en la parte superior del diagrama, a lo largo del eje X. Normalmente se coloca a la izquierda el objeto que inicia la interaccin, y los interaccin objetos subordinados a la derecha. Los mensajes que envan y reciben los objetos se colocan a lo largo del eje Y en Y, orden de sucesin en el tiempo, desde arriba hasta abajo.
Diagramas de secuencia g
48
c : Ciente
objetos
<<create>> {transient} : Transaccion new( )
p : p roxyODBC
establecerValores(d,3.4 ) establecerValores(a,"CO" )
tiempo
xito de stroy( )
: Forma de Login
: Controlador de Login
: Login
Los inte rl ocutores r y s pud en i ntercam bia r inform aci n d espus de co nectarse
Diagramas de Comunicacin g
52
Un diagrama d comunicacin es un di U di de i i diagrama d i t de interaccin que d t i destaca la organizacin estructural de los objetos que envan y reciben mensajes. Un diagrama de comunicacin se construye colocando en primer lugar los j que p p g objetos q participan en la comunicacin como nodos del grafo. Se representan los enlaces que conectan esos objetos como arcos del grafo. Los enlaces se adornan con los mensajes que envan y reciben los objetos.
Diagramas de comunicacin g
53
secuencias
1: new( ) 2: establecerAcciones(a,d o, ) 6: destroy( 6 d t () c : Ciente 5: xito : Transaccion
enlace mensaje
3: e stablece rValores(d,3.4 ) 4: establecerValores(a,"CO" )
objetos
p: p roxyODBC
: Login
: Cualquier usuario
8: conectar(r, s)
1 0: conectar(r)
5: new( )
7: new ( ) 8: registrarUsuario( )
: Registro
: Ci ente
Diagramas de Estado g
57
El comportamiento de un objeto individual puede ser modelado mediante una mquina de estados.
Una mquina de estados es un comportamiento que especifica q p q p las secuencias de estados por las que pasa un objeto durante su vida, en respuesta a eventos. vida eventos
Estado s ado
58
Un estado es una abstraccin de los valores y ligas de un objeto. Corresponden a verbos con el sufijo ando, endo, iendo (ing en ingls) ( p (Esperando, Marcando) o la duracin de alguna condicin , ) g (BajoCongelamiento, Habilitado). Un estado tiene duracin Un estado especifica la respuesta a los eventos de entrada la respuesta puede ser la invocacin de un comportamiento o un cambio de estado
Diagramas de Estado
59
Los nodos son estados y lneas son transiciones que estn etiquetadas por eventos Se debe Distinguir entre dos tipos de operaciones:
Actividad: Operacin que toma tiempo para ser completada
asociada con estados
Estado1
do/Activity entry /action exit/action
evento(attr) [condicin]/action
Estado2
Un diagrama de estados UML puede ser convertido a una mquina de estados finitos Estado - cuadro Transicin - lnea Evento etiqueta de transicin
Alejandro Gomero Portilla
Transiciones y Condiciones
61
Una transicin es un cambio instantneo de un estado a otro Se dice que la transicin lanza el cambio desde el estado fuente al estado objetivo. j Una transicin se lanza cuando ocurre un evento ( a menos que una condicin guardia l i di i di lo ignore). ) Un evento puede causar mltiples transiciones. Una condicin guardia es una expresin booleana que debe ser verdadera para que ocurra una transicin. (solo se verifica una vez)
Alejandro Gomero Portilla
Ocioso
Menu visible
boton izquierdo abajo / borrar menu pop-up cursor movido /
Reloj Digital j g
63
inc / hours:=hours+1
inc / minutes:=minutes+1
mode_button
mode_button
mode_button
[artculo vaco]
Selec. (art.)
[cambio<0]
[cambio>0]
colgar
Ociosa
colgar
descolgar
TiempoFuera TonoMarcar
digito(n) di i ( )
tiempofuera
Advirtiendo
tiempofuera
Marcando TonoOcupado
numeroOcupado troncalOcupado
Mensaje Grabado
enrutado
Sonando S d
mensajeDado
respuestasTelefonoLlamado
Conectado
telefonoLlamadoCuelga
Desconectado
Alejandro Gomero Portilla