Escolar Documentos
Profissional Documentos
Cultura Documentos
Alejandro Domnguez / Jorge Kashiwamoto / Enrique Torres (Versin 4.0) Curso impartido en la Fundacin Arturo Rosenblueth y en UNITEC de 1998-2010
Objetivos generales
Proporcionar el conocimiento de los principios inherentes en el anlisis y diseo orientado a objetos Introducir el Lenguaje Unificado de Modelado (Unified Modeling Language: UML), el cual es el lenguaje estndar para el anlisis y diseo orientado a objetos Utilizar UML para modelar un caso prctico de sistemas
Booch, G., J. Rumbaugh y I. Jacobson. The unified modeling language user guide. AddisonWesley, 1999. Fowler, M. Y K. Scott. UML gota a gota. Pearson, 1999. Oestereich, B. Developing software with UML. Addison-Wesley, 1999.
7
http://www.rational.com
8
Booch, G., J. Rumbaugh y I. Jacobson. El Proceso Unificado de Desarrollo de Software. Addison-Wesley, 1999.
Diagramas de clase
Diagramas de secuencia Diagramas de estado
10
Alejandro Domnguez
11
Panormica general
Complejidad de los sistemas de software
12
Los sistemas
Un sistema es:
Un grupo conexo y organizado de objetos Un todo compuesto de partes organizadas acorde a algn esquema o plan
Caractersticas propias
Propiedades emergentes
13
Sistemas complejos
La complejidad de un sistema es una propiedad inherente, no accidental La interconexin de los sistemas es una fuente potencial para inconsistencias e incongruencias
14
Sujeto a cambios
La no existencia de leyes fundamentales para explicar los fenmenos y enfoques Existencia del Lmite de Miller
El ser humano slo puede manejar, procesar o mantener la pista de aproximadamente 7 objetos, entidades o conceptos a la vez
15
2 atributo
Los subsistemas se han definido arbitrariamente
3er atributo
El acoplamiento entre componentes del mismo subsistema es fuerte y el acoplamiento entre componentes de diferentes subsistemas es dbil
18
5 atributo
No siempre evolucionaron de sistemas simples a sistemas complejos
19
Tratamiento de la complejidad
Principios que permitirn el tratamiento de la complejidad:
Abstraccin
Ignorar los detalles no esenciales y construir un modelo ideal y generalizado
Jerarqua
Clasificar en grupos de abstracciones relacionadas para poder distinguir explcitamente las propiedades comunes y distintas
Descomposicin
Orientada a procesos Orientada a objetos
20
Descomposicin
La mejor tcnica conocida desde tiempos inmemoriales para enfrentar la complejidad es: divide et
impera
Se aplica para descomponer un problema en pequeos pasos o procesos La unidad fundamental de este tipo de descomposicin es el subproceso
El proceso resultante toma la forma de un rbol en el que cada subproceso realiza su trabajo, llamando a otro subproceso
22
Descomposicin OP vs OO
Cul es la forma correcta de descomponer un sistema complejo, OP u OO?
Las dos formas son importantes
La OP muestra el orden de los eventos La OO enfatiza las entidades que causan la accin
No es recomendable descomponer un sistema complejo de ambas formas simultneamente debido a que se incrementa la complejidad
24
25
Alejandro Domnguez
26
Panormica general
La vida media de las tecnologas de IS Aspectos histricos de la orientacin a objetos(OO)
La OO en lo 1990s
Lo que se ha aprendido de la OO
27
15 aos de fama
La experiencia nos dice que las tecnologas de ingeniera de software (IS) ms populares tienen el siguiente comportamiento:
Toman algn tiempo en llegar a ser populares Tienen un periodo de florecimiento de 15 aos
1966:
Se introduce al mercado Simula, el primer lenguaje de programacin OO
Finales de 1960s:
Alan Kay trabaja en la mquina denominada FLEX, la precursora de Dynabook, la Xerox Star, y la Apple Macintosh
30
1972:
Se desarrolla la primera versin de Smalltalk
1980:
Grady Booch introduce el diseo orientado objetos Se introducen las primeras versiones de hardware OO
31
1986:
Se introducen las primeras versiones de anlisis OO y de anlisis de requerimientos OO
1988:
anlisis del dominio OO aparece en la literatura
32
Finales de 1980s:
Aparece un gran nmero de lenguajes de programacin OO; incluyendo: C++, Eiffel, CLOS, etc.
33
No orientado a objetos
Orientado a objetos
Fortran
LISP
Cobol
PL/1
Simula
1970
Prolog
Loops
1980
Smalltalk-80
Ada
Object Pascal C ++
Objective C Eiffel
CLOS
1990
Ada 9
34
Existen muchos enfoques de desarrollo de software OO: Booch, Rumbaugh, Coad, WirfsBrock, Berard, Fusion, Shlaer-Mellor, ...
Alrededor de 30 enfoques son populares
36
1990
OOSE Jacobsen
OBA Gibson/Goldb.
OOA Coad/Yourdon
OOSE 94
1995
OMT 94
Fusion Coleman
OODA Martin/Odell
1997
38
La tecnologa OO es vasta
Ms amplia que lo indicado en los lenguajes de programacin OO
40
42
Panormica general
La orientacin a objetos Objetos y abstraccin Clasificacin y clases Caractersticas de los Objetos Relaciones Agregacin Modularidad
Encapsulamiento
Generalizacin y especializacin Polimorfismo
Qu es la Orientacin a Objetos?
46
Paradigma
PARADIGMA Procedural Funcional Restricciones Objetos ASPECTOS ESENCIALES QUE MODELA Algoritmos Metas u objetivos en un clculo de predicado Relaciones invariantes Clases y objetos
47
Planteamiento ms claro
Determinados problemas
Derivados de la OO
Tecnologas Metodologas Programacin Lenguajes Bases de Datos Etc.
49
Motivaciones de la OO
Tratar o abordar dominios de problemas ms amplios y complejos
Mejorar la interaccin entre los usuarios y los analistas. Incrementar la programacin consistencia entre anlisis, diseo y
Representar explcitamente los aspectos comunes dentro de una clase o familia de entidades.
Orientacin a Objetos
El software se organiza como una coleccin de objetos discretos que contienen tanto estructuras de datos como comportamiento
Rumbaugh
51
Herencia
Polimorfismo
52
Definicin de objeto
Un objeto es:
Diccionario Larousse: Objeto (del bajo latn objectum < lat.)
Cosa material y concreta, por lo regular de dimensiones reducidas Trmino con lo que se denota aquello sobre lo que recae la accin expresada por el verbo
The 3 amigos:
Una manifestacin concreta de una abstraccin Una entidad con una frontera e identidad bien definidas que encapsula estado y comportamiento Una instancia de una clase
53
OBJETO
Es una entidad que retiene una cierta informacin abstracta y sabe como realizar ciertas operaciones sobre esta informacin
Wirfs-Brock
OBJETO =
ATRIBUTOS + COMPORTAMIENTO
Entidad discreta con lmites e identidad bien delimitadas que encapsula el estado y el comportamiento. Instancia de una clase.
UML
54
Ejemplos de objetos
En una empresa procesadora de alimentos
Objetos pasivos:
Un saco de lentejas Un paquete de caf Factura 895 enviada a alguna empresa
Agentes humanos
Zoila Baca del Corral (Secretaria ejecutiva) Armando B. Roncas (Guardia de seguridad)
Objetos estructurales
Departamento de ventas
Objetos activos:
Camioneta placas 1234AB La mquina de fax de la empresa
55
Abstraccin
La abstraccin surge desde un reconocimiento de similaridades entre ciertos objetos, situaciones o procesos en el mundo real, y la decisin de concentrar la atencin sobre estas similaridades e ignorar por el momento las diferencias.[Hoare] La abstraccin es una descripcin simplificada, o especificacin, de un sistema que enfatiza algunos de los detalles o propiedades del sistema mientras suprime otras. Una buena abstraccin es una que enfatiza detalles que son significativos al lector o usuario y suprime detalles que son, al menos por el momento, inmateriales o que distraen la atencin. [Shaw]
56
Abstraccin
Un concepto califica como una abstraccin slo si este puede ser descrito, comprendido y analizado independientemente del mecanismo que eventualmente ser usado para realizar ste. [Berzins, Gray y Naumann]
Una abstraccin denota las caractersticas esenciales de un objeto que distinguen a ste de todos los otros tipos de objetos y de esta forma proporciona lmites conceptuales definidos sucintamente, relativos a la perspectiva del observador. [Booch]
57
Abstraccin
Abstraccin es el principio de ignorar aquellos aspectos de un sujeto que no son relevantes al propsito actual, con el objetivo de concentrar la atencin completamente en aquellos que lo son. [Oxford University] La abstraccin de datos es el principio de definir un tipo de dato en trminos de las operaciones que se aplican a objetos de este tipo, con la restriccin de que los valores de tales objetos pueden ser modificados y observados slo mediante el uso de estas operaciones. [Oxford University]
58
60
Clasificacin
Los objetos con iguales estructuras y comportamiento (operaciones) se agrupan para formar una clase que los describe.
En este sentido el concepto de clase nos permite dividir y clasificar los objetos de nuestro problema. Se dice que la clase en tanto describe funciona como el tipo y el objeto en tanto es descrito y puede tener una existencia concreta, como la instancia o variable del tipo.
CLASES
61
Dificultades de la clasificacin
62
CLASE
Es una coleccin de objetos los cuales comparten las mismas caractersticas y comportamientos.
Wirfs-Brock
Descriptor para un conjunto de objetos que comparten los mismos atributos, operaciones, mtodos, relaciones y comportamiento. Concepto del sistema modelado.
UML
63
Representacin de clase
64
Su interfaz es el medio de comunicacin con el exterior, donde se describe la forma en que deben ser invocada cada una de las operaciones, mientras que su implementacin consiste en la representacin interna que tengan cada uno de los atributos, as como la forma concreta en que cada una de las operaciones acta sobre dichos atributos. La implementacin es una parte oculta al usuario del ADT, un mismo ADT puede tener varias implementaciones pero una nica interface.
65
2
66
67
Caractersticas de un objeto
Abstraccin / Clasificacin Modularidad Extensibilidad Persistencia Concurrencia Estado Comportamiento
68
Encapsulamiento
Herencia
Polimorifismo
Identidad Reusabilidad
Identidad
69
Estado
Una condicin o situacin durante la vida de un objeto que satisface alguna condicin, lleva a cabo alguna actividad, o espera algn evento
Transicin
Cambio de estado.
Evento
Un suceso u ocurrencia de un fenmeno que lleva a una transicin.
70
Comportamiento
Los efectos observables de un evento, incluyendo sus resultados
71
Comportamiento: Implantacin
Operacin
Es una funcin de transformacin sobre los atributos del objeto (no necesariamente cambindolos). Los tipos ms comunes de operacin sobre un objeto son: Modificacin,
Seleccin, Iteracin.
Mtodo
Es la implementacin especfica de una operacin. Algunos especialistas utilizan los trminos Operacin y Mtodo de manera intercambiable.
72
73
Identidad
Propiedad que permite distinguirlo de todos los dems objetos existentes
74
Identidad
Los datos estn cuantificados en entidades discretas y distinguibles, con fronteras bien definidas, denominadas objetos.
Cada objeto tendr una existencia propia, independientemente del valor de sus atributos. No es diferenciar los objetos por su nombre, sino ellos mismos, por el hecho de existir. Todo objeto contiene una referencia a si mismo. Ejemplo
clasedefinida a,b a <> b
75
76
Ejemplo: un circulo
Nombre: circulo Atributos: radio (radio:r) y posicin del centro (centro:(a,b)) Operaciones: desplegar, remover, reposicionar, modificar tamao Restricciones: el radio debe ser positivo
79
Modularidad
"La accin de particionar un programa en componentes individuales puede reducir su complejidad en algn grado...".[Myers] "La modularizacin consiste en el hecho de dividir un programa en mdulos los cuales puedan ser compilados separadamente, pero stos tienen conexiones con otros mdulos". [Liskov] "Las conexiones entre los mdulos son las asunciones que los mdulos hacen acerca de cada otro". [Parnas] " Modularidad es la propiedad de un sistema que ha sido descompuesto en un conjunto de mdulos acoplados coherentemente y libremente". [Booch] "La meta global de la descomposicin en mdulos es la reduccin del costo del software al permitir que los mdulos sean diseados y revisados independientemente... La estructura de un mdulo debe ser lo suficientemente simple de forma tal que sta pueda ser comprendida completamente; debe ser posible cambiar la implementacin de unos mdulos sin la necesidad de conocer de la implementacin de otros mdulos y sin afectar su comportamiento".
80
Modularidad
Principio de programacin que nos permite precisar las interfaces con distintas decisiones de diseo. Los mdulos son una forma de organizar y especializar el trabajo de programacin.
Deben ir en un mismo mdulo todas aquellas herramientas que tengan una unidad conceptual y de vocabulario, aquellas que se refieran al tratamiento de un mismo aspecto.
En la medida en que cada uno de estos aspectos este bien distinguido y generalizado en un mdulo mayor ser la utilidad y rango de aplicacin de ste. Esta forma de pensar nos permite hacer diseos ms amplios y especializados que rebasan las necesidades de nuestra aplicacin y nos permiten obtener herramientas ms duraderas. Se debe buscar completitud.
81
Encapsulamiento
La abstraccin y el encapsulamiento son conceptos complementarios: la abstraccin focaliza sobre la visin externa de un objeto y el encapsulamientotambin conocido como ocultamiento de informacin impide que los clientes vean la visin interna del objeto, donde el comportamiento de la abstraccin es implementado. De esta manera, el encapsulamiento proporciona barreras explcitas entre diferentes abstracciones. "Para trabajar la abstraccin, la implementacin debe ser encapsulada". [Liskov] En la prctica, esto significa que cada clase debe tener dos partes: una interfaz y una implementacin. La interfaz de una clase captura slo su visin externa, encerrando nuestra abstraccin del comportamiento comn de todas las instancias de la clase. La implementacin de una clase comprende la representacin de la abstraccin as como los mecanismos que alcanzan el comportamiento deseado.
82
Encapsulamiento
"El encapsulamiento es el proceso de ocultamiento de todos los detalles de un objeto que no contribuyen a sus caractersticas esenciales". [Booch] En la prctica, uno oculta la representacin de un objeto as como la implementacin de sus mtodos. "El encapsulamiento (ocultamiento de informacin) es un principio usado cuando se desarrolla la estructura global de un programa, donde cada componente de un programa debe encapsular u ocultar una nica decisin de diseo...La interfaz de cada mdulo es definida en forma tal que revele tan poco como sea posible acerca de su funcionamiento interno. [Oxford University] Esto ayuda a un trabajo eficiente de los programadores de manera que tengan que invertir pocos esfuerzos a la hora de hacer cambios o modificaciones.
83
Encapsulamiento (Resumen)
La abstraccin y el encapsulamiento son conceptos complementarios
La abstraccin se centra en el comportamiento observable de un objeto El encapsulamiento se centra en el origen de dicho comportamiento
El encapsulamiento
Se logra a travs del ocultamiento de la informacin que no contribuye a sus caractersticas esenciales de un objeto
84
Ejemplo de encapsulamiento
85
Permisos de Acceso
Publico: Los atributos y operaciones declarados pblicos (interfaz de la clase) sern del acceso de cualquier funcin, ya sea sta una operacin en una clase derivada o en cualquier otra clase cliente de los servicios de la clase. Protegido: Los atributos y operaciones declarados protegidos (implementacin de la clase) sern del acceso de cualquier funcin que sea una operacin en una clase derivada. Privado: Los atributos y operaciones declarados privados (implementacin de la clase) sern del acceso slo de las funciones de la propia clase.
86
Permisos de Acceso
Tipos de Clientes
Operaciones en otras clases que invocan operaciones sobre los objetos de la clase (simples clientes)
mantener el encapsulamiento Los usuarios no deben tener otra visin de la clase que no sea la que puede tener a travs de su interface
87
Permisos de Acceso
Causas
Importancia de la Redefinicin
Eficiencia
88
Ejemplo
Circulo
Privado: Xcoor, Ycoor Protegido: radio Publico: leer_coor() mostrar() ocultar() esta_oculto() trasladar() Circulo expandible
89
Relacin
Conexin entre cosas
Utilizadas en el modelado OO
Se trazan como rutas con diferentes tipos de lnea para distinguir diferentes clases de relaciones.
91
92
Dependencia
La conexin slo se refiere a otro objeto
La conexin se lleva a cabo a travs del paso de mensajes Un mensaje consiste de 3 partes
Un objeto receptor Una operacin que el receptor sabe como ejecutar Un conjunto ordenado de parmetros que esta operacin requiere para llevar a cabo su funcin
Parte opcional; si la operacin no necesita informacin adicional para hacer su trabajo, no existen parmetros
93
Dependencia: ejemplos
Empleado
Atributos Nombre: Tecla Puesto: Bibliotecaria Edad: 40 Salario: 3000.00 Relaciones con Usuarios Jefe Libros Operaciones Prestar libros Reasignar colocaciones Estar de mal humor Solicitar aumento de salario
Reasignar colocacin
Dependencia: Modelado
Se traza como una lnea punteada dirigida. Utilice las dependencias cuando se desea mostrar que un objeto usa a otro. Frecuentemente se utilizar cuando una clase utliza a otro como argumento de la firma de una operacin. La dependencia puede tener nombre cuando se requiera calidad por la cantidad de referencias.
96
Ejemplo de Dependiencia
97
Estereotipos de Dependencia
bind
El origen instanca la plantilla destino utilizando los parmetros actuales
derive
El orrigen puede ser calculado a partir del destino
friend
Especifica que el orgien se le otroga una visibilidad especial dentro del destino
instanceOf
Especifica que el objeto orgien es una instancia del clasficador destino
98
Estereotipos de Dependencia
instantiate
El origen crea instancias del destino
powertype
El destino es powertype del origen Powertype es un clasificador cuyos objetos son hijos de un padre dado.
refine
Especifica que el orgien es un grado ms fino de abstraccin que el destino
99
es-un-tipo-de
Los hijos pueden ser utilizados dondequiera que el padre aparece.
Herencia
Polimorfismo
Adornments
Nombre Rol Multiplicidad Agregacin
102
Asociacin: Nombre
Describe la naturaleza y direccin de la relacin
TrabajaPara
Persona
Empresa
103
Asociacin: Rol
Faceta de la clase en una relacin dada
104
Asociacin: Multiplicidad
Cantidad de objetos a ser conectados a travs de una instancia de la asociacin
Persona
1..*
+Empleador
*
+Empleado
Empresa
105
Asociacin: Agregacin
Relacin estructural entre puntos
Las dos clases estn al mismo nivel, no hay una clase ms importante que otra. Todo/Partes o Contenedor/Contenido
Tiene
Empresa
1 *
Departamento
106
Asociacin: Agregacin
Agregacin
Crea objetos compuestos a partir de objetos simples Es la composicin de un objeto como un conjunto de partes Granja
Uvalda Ubre
Lety Leche
Paty Pastura
107
Composicin: Es aquella que posee (contiene) a sus partes (fuerte dependencia de propiedad)
Un auto contiene motor, llantas, puertas, ... Un avin contiene motor, asientos, bodega, baos, ... Nota: Si falta alguna de sus partes se afecta el todo (las partes viven el el todo)
108
Taxonoma y generalizacin
Taxonoma (del griego taxis, ordenacin + nomos, ley)
1 Disciplina que estudia los principios, mtodos y fines de clasificacin 2 Clasificacin de cualquier cosa segn unos mtodos establecidos Cuenta
Una generalizacin es una relacin taxonmica entre un elemento ms general y uno ms especfico
Cuenta corriente
Cuenta de inters
Cuenta de depsito
109
Generalizacin y especializacin
Generalizacin implica generalizacin-especializacin de la clase base a la clase derivada
Donde existe una clase general y diferentes clases especializacin
Empleado
es un hereda de
Director Conductor La clase general se llama Administrativo de camiones superclase y las clases especializacin se llaman subclases
110
Generalizacin y herencia
La generalizacin cuando se manifiesta en un lenguaje de programacin se le conoce como herencia La herencia es una relacin entre diferentes clases, las cuales comparten caractersticas comunes
111
Herencia: Definicin
Es un mecanismo para compartir atributos operaciones comunes entre clases, mediante una relacin jerrquica y transitiva, donde una clase hereda de otra sus atributos y operaciones y aade otros nuevos que van a ser exclusivos para ella y sus posibles descendientes, o sea clases que se formen de ella a su vez.
112
Herencia: Definicin
Es el mecanismo por el cual elementos ms especficos incorporan estructura y comportamiento definidos por elementos ms generales.
UML
113
Herencia: Ejemplo
114
Herencia: Ejemplo
Clase: Acadmico
Atributos Direccin Edad Nombre Operaciones Solicitar libros Realizar reportes Hacer abstracciones Desarrollar investigaciones
Estudiante
Atributos Sexo Aos de estudio Programa acadmico
Operaciones Asistir a clases Entregar tareas Hacer tesis
Profesor
Atributos Sexo Especialidad Grado acadmico
Operaciones Impartir clase Generar notas de clase Asignar calificaciones
115
Generalizacin y herencia
Una superclase hereda a una subclase y una subclase es heredada por una superclase
Se heredan los atributos, las operaciones y todas las asociaciones
116
Slo se utiliza para heredar de ella y para describir atributos y comportamientos comunes de otras clases
Vehculo (clase abstracta)
Automvil
Automvil deportivo Automvil A Automvil familiar Automvil B Automvil turismo Automvil C Avin militar
Instancias u objetos
Propiedades de la herencia
Permite reutilizacin
Los componentes pueden reutilizarse
Enfoque de reutilizacin bottom-up
Herencia: Ejemplo
120
Polimorfismo
Una misma operacin puede tener comportamientos diferentes segn el objeto que la ejecuta.
Es decir, el mismo mensaje puede tener respuestas diferentes por parte de objetos diferentes.
Sin embargo el sentido de la operacin sigue siendo el mismo para las dos clases.
Luego en este sentido los objetos de ambas clases se dicen polimrficos entre s.
Ejemplo
CalculaArea(int lado) CalculaArea(int largo, int ancho)
121
Polimorfismo
El comportamiento del sistema se define por el comportamiento dinmico de las instancias de las clases Segn Jacobson
Polimorfismo significa que el originador del mensaje no necesita conocer a la instancia de la clase que lo recibe. La instancia receptora puede pertenecer a una clase arbitraria
122
Polimorfismo
El polimorfismo permite que diferentes instancias de diferentes clases estn asociadas Una instancia receptora interpreta las operaciones de acuerdo a la clase a la que pertenece Ejemplo:
El mensaje dibujar se puede interpretar de diferentes formas por las instancias de una clase
123
Principio de Subclasificacin
Liskov
Este principio establece que toda clase B descendiente de una clase A, no importa a que nivel, puede verse haciendo abstraccin como una clase A. O sea, los objetos de la clase B, son tambin objetos de la clase A, pero no a la inversa. Luego cualquier operacin que espere un objeto de la clase A, puede recibir un objeto de la clase B, en tanto los objetos de la clase B saben hacer todas las operaciones que hacen los de la clase A.
125
Principio de Abierto/Cerrado
La mxima utilidad del polimorfismo es la redefinicin de operaciones de las clases bases en las clases derivadas. Cerrado = el software ya elaborado no sufrir modificaciones directas
Reusabilidad
Reusabilidad y Extensibilidad
Aplicacin de la Herencia
126
Implicaciones
La aplicacin ms importante de la herencia es
la simplificacin conceptual del problema al reducir el nmero de caractersticas independientes, y mecanismo para formar complejas estructuras de datos por niveles de construccin desde ms abstractos hasta ms concretos.
El que una clase comparta atributos y operaciones de otra significa tener en cuenta consideraciones como
el encapsulamiento y
el mantenimiento de la consistencia de la clase en las clases derivadas.
127
Ejemplo
Pingino
129
Ejemplo
Rectngulo Ancho Largo Crear( a,l ) Trasladarse() Mostrarse() Ocultarse() Rel_Aspecto( a,l )
Cuadrado
130
Herencia: Consistencia
La herencia un mecanismo controlado de redefinicin.
En ocasiones tambin es necesario contar con herramientas (algunos lenguajes las tienen) para lograr herencias que controlen la redefinicin no slo en interfaz sino tambin en implementacin. la clase base se puede adjudicar el derecho de permitir la redefinicin de sus operaciones imponiendo ciertas condiciones a la nueva implementacin que mantengan la consistencia de la clase. Por ejemplo, que despus de la operacin se mantenga una cierta relacin entre los valores de los atributos.
131
Herencia Simple
La clase se define o deriva a partir de una nica clase base
Animal
Mamfero
Hombre
132
Herencia mltiple
Es una forma de herencia en donde una clase hereda la estructura y comportamiento de dos Director clase base Existen varias superclases para una subclase Permite estructuras de clase ms complejas, pero es menos fcil de comprender
Empleado
es un
Administrativo
Empleado eventual
es un
Conductor de camiones
Empleado de bodega
Empleado de oficina
Todologo
133
A
(A) (A)
(A)
? ?
(A)
134
Persistencia
Un objeto en software ocupa alguna cantidad de espacio y existe para una cantidad particular de tiempo. Existe un espectro de existencia de objetos que va desde objetos transitorios que aparecen dentro de la evaluacin de una expresin, hasta objetos en una base de datos que sobreviven a la ejecucin de un programa. [Atkinson]
Este espectro de persistencia de objetos abarca, entre otras, las siguientes:
Resultados transientes en la evaluacin de una expresin Variables locales en activaciones de procedimientos Variables propias [como en Algol 60] y variables globales
Persistencia
Los lenguajes tradicionales de programacin usualmente direccionan solo los tres primeros tipos de objetos persistentes, la persistencia de los ltimos tres tipos es tpicamente del dominio de la tecnologa de bases de datos. La persistencia es la propiedad de un objeto a travs de la cual su existencia trasciende en el tiempo (el objeto contina existiendo despus de que su creador deja de existir) y/o en el espacio (la localizacin del objeto se mueve de la direccin en la cual ste fue creado). [Booch]
136
Conclusiones: Caractersticas de la OO
Reduce la brecha semntica entre la realidad y los modelos
Conclusiones: Debilidades de la OO
Reutilizacin a gran escala an no se lleva a cabo Existen pocas bibliotecas reutilizables La administracin de las bibliotecas reutilizables es un problema debido a su falta de estandarizacin Se requiere un entrenamiento fuerte del personal antes de que se pueda implantar
138
Basados en clases
basados en objetos + abstraccin de conjunto
Orientados a objetos
basados en clases + herencia +autorrecursin
139
Alejandro Domnguez
140
Panormica general
Surgimiento y desarrollo de UML
Surgimiento de UML
UML (Unified Modeling Language: lenguaje unificado de modelado)
Es el sucesor de los diferentes modelos para llevar a cabo anlisis y diseo orientados a objetos (ADOO) Naci como una unificacin de los modelos de Booch, Rumbaugh (OMT) y Jacobson (The 3 amigos) Es el lenguaje de modelado estndar aprobado por la OMG en 1997
142
Desarrollo de UML
Ada/Booch Booch 91 Booch OOSE Jacobsen RDD Wirfs-Brock OBA Gibson/Goldb.
1990
OOSA Shalaer/Mellor
OOA Coad/Yourdon
OOSE 94
1995
OMT 94
Fusion Coleman
OODA Martin/Odell
Harel
Cartas de estado UM 0.8 OOPSLA 95 Booch/Rumbaugh SOMA Graham UML 0.9 MOSES Henderson-Sellers
The 3 amigos
1997
UML 1.0 Team Fusion The 3 amigos Notacin Coleman et al. UML 1.1
RD Shalaer/Mellor
143
144
Caractersticas de UML
UML es un lenguaje para
Visualizar
Es un lenguaje grfico con una semntica bien definida
Especificar
Permite construir modelos precisos, no ambiguos, y completos
Construir
UML no es un lenguaje de programacin visual, pero los modelos creados con l pueden conectarse directamente a una gran variedad de stos
Documentar
Permite expresar, a cualquier nivel de detalle, la arquitectura, los requerimientos, y las pruebas de un sistema
145
146
Relaciones
Unen o ligan las cosas
Diagramas
Agrupan las colecciones de cosas
147
De comportamiento
Son la parte dinmica de los modelos de UML
Interaccin entre objetos (mensajes y secuencias de accin) y mquinas de estado
De agrupamiento
Son las partes organizacionales en los modelos de UML
Paquetes (mecanismos de propsito general para organizar elementos en grupos)
De notacin
Son las partes que explican los modelos en UML
Notas
148
Asociacin
Es una relacin estructural que describe un conjunto de ligas (conexiones entre objetos)
Generalizacin
Es una relacin de especializacin/generalizacin en la cual los elementos hijo se sustituyen por elementos padre
Realizacin
Es una relacin semntica entre clasificadores (especifica un contrato que otro clasificador asegura llevar a cabo)
149
Diagramas de colaboracin
Diagramas de estado Diagramas de actividad Diagramas de componentes Diagramas de implantacin
150
152
PRUEBA
153
Modelo de anlisis
Modelo de implementacin
PRUEBA
Modelo de prueba
154
Modelo de anlisis
Modelo diseo
Diagrama de secuencias Estados de las Diagrama de estado operaciones Definicin de la interfaz 2 Definicin Diagrama de la 155 de clases interfaz 1
Alejandro Domnguez
156
Panormica general
Proporcionar las bases del modelo de casos de uso (use cases):
Actores Casos de uso
157
Modelo diseo
Diagrama de secuencias Estados de las Diagrama de estado operaciones Definicin de la interfaz 2 Definicin Diagrama de la 158 de clases interfaz 1
159
Diseo
Mapea los requerimientos en una aplicacin de software
160
Estructurar la informacin de tal forma que pueda ser utilizada ms tarde en el anlisis y diseo
Descubrir, con ayuda de expertos, las reglas de negocio crticas Enfocarse en el qu y no en el cmo
161
162
163
PROCESOS Derivar posibles actores y casos de uso Discriminar sobre posibles caso de uso Identificar asociaciones entre casos de uso OUTPUTS 1 modelo de casos de uso
164
Actores
Un actor
Es alguien o algo externo al sistema
Personas, software, hardware, almacenes de datos, o redes
No sigue acciones precisas Representa cualquier cosa fuera del sistema y que interactuar con l
Puede ser humano o un mquina
Actores primarios
Son aquellos para los cuales se especifica y se construye
Son activos Inician su actividad con el sistema
Usuario de computadoras con la computadora Usuario del telfono con el telfono Cobrador con el sistema de cobranza Interanuta con el visualizador web
167
Actores secundarios
Supervisan, ayudan y mantienen al sistema
Son pasivos: no inician ninguna actividad con el sistema
Slo existen para que los actores primarios puedan utilizar el sistema
Siempre disponibles cuando el sistema necesita de su ayuda
169
173
Mas de un escenario se puede generar de un simple caso de uso si una o ms reglas para ligar a las acciones no estn en secuencia estricta
174
Escenarios
Caso de uso
175
Ejemplo de escenario 2
Mara teclea la cuenta 23457 Mara teclea su NIP 75432 Mara su balance promedio entre 1/1/1995 - 30/12/99 El sistema proporciona el balance promedio
Ejemplo de escenario 3
Pedro teclea la cuenta 23456 Pedro teclea su NIP 65432 Pedro su balance promedio entre30/11/1999 - 30/12/99 El sistema proporciona el balance promedio
176
Existen cuando
Todo funciona bien No existen bugs No existen errores
Secundarios
Describen las excepciones encontradas en un flujo normal (flujos alternativos)
Existen cuando
Una accin debe tomarse en algn punto Algo es errneo en algn punto Algn comportamiento que puede pasar en algn momento
177
Prctica
Tabla de Actores
Nombre del Actor Tipo
Primario Secundario Ambos
Descripcin
180
Del vendedor - elaborar orden, obtener estado de orden, regresar producto, cancelar orden, registrar observaciones
A la mensajera - enviar paquetes listos para envo
Prctica
Relacin de Actores con Casos de Uso
Actor Direccin Casos de Uso
182
183
Cada caso de uso en el modelo debe ser numerado, de otra forma el sistema no ser funcionalmente completo
184
185
187
Inversionista
188
Actor secundario
Sistema bancario
Transferir dinero Inversionista
189
190
Include
Cuando un caso de uso incorpora el comportamiento de otro caso de uso en un lugar especfico del primero Verificar balance Validar cuenta <<include>> Prestar efectivo <<extend>> Verificar cantidad prestada
191
192
Diagrama de la asociacin
extend
Depositar efectivo
193
Diagrama de la asociacin
include
Capturar transacciones
<<extend>>
<<extend>> <<include>
Depositar efectivo
Generar anotacin
195
Herencia entre actores significa que un actor cumple el mismo papel que otro actor y puede jugar papeles adicionales
Persona moral
Otro banco
197
Depositar efectivo
Obtener comisin
Otro banco
198
199
200
Ejemplo: el problema
Definir el modelo de casos de uso para un sistema de biblioteca:
Mostrar las relaciones include y extend entre los casos de uso y los casos de uso abstractos Incluir al menos 3 casos de uso:
Caso de uso para la bsqueda de libros Caso de uso para el prstamo de libros Caso de uso para el regreso de libros
201
Bibliotecario - persona que da soporte al sistema y auxilia al usuario en los servicios de prstamo
Casos de uso
Del usuario - buscar por autor, buscar por ttulo, buscar por clave, buscar por autor-ttulo, reservar libro Del bibliotecario - prestar libro Al bibliotecario - regresar libro
202
Autenticar usuario
Usuario
Buscar por autor
Buscar libro
<<extend>> <<extend>>
Regresar libro
<<extend>>
Bibliotecario
Prestar libro
203
<<extend>>
Alejandro Domnguez
204
Panormica general
Desarrollar las descripciones de casos de uso
Describir los principios de los diagramas de clase Construccin de diagramas de clase a partir del modelo de casos de uso Introducir nuevos tipos de objetos
205
El modelo de anlisis
Modelo de requerimientos
Diagrama de clases (primera versin)
Modelo de casos de uso Casos de uso Casos de uso (+ descripciones) Secuencia de las operaciones
Modelo de anlisis
diseo
Diagrama de secuencia Estados de las Diagrama de estado operaciones DIAGRAMA Definicin de la interfaz 2 Definicin de la206 DE CLASES interfaz 1
OUTPUTS 1 modelo de casos de uso Descripciones del caso de uso Descripciones de la interfaz del usuario
207
Formato bsico
Cada elipse puede incluir condicionales, ramificaciones, y ciclos The rational unified process tiene un formato bsico para describir los casos de uso
Pre-condiciones
Estado del sistema antes que el caso de uso ocurra
Post-condiciones
Estado del sistema despus de que el caso de uso ha ocurrido exitosamente
209
210
Excepciones y situaciones de error que pueden ocurrir en el contexto del caso de uso
No son errores tcnico, sino errores relativos al dominio
Prdida de derechos de acceso, imposibilidad de llenados de formas, etc.
211
Autenticar usuario
Usuario
Buscar por autor
Buscar libro
<<extend>> <<extend>>
Regresar libro
<<extend>>
Bibliotecario
Prestar libro
212
<<extend>>
213
Flujo de eventos:
1. Si el sistema no tiene informacin para autenticar al usuario, entonces do extend autenticar usuario 2. Si el usuario conoce datos del libro y desea reservarlo, entonces introduce datos al sistema y presiona el botn reservar, de otra forma el sistema le informa que el libro no est disponible
214
215
Interfaces
Pueden ser definidas por actores, casos de uso, o ambos Dice lo que se espera que la entidad haga No es parte de los actores o casos de uso
Es una descripcin de cmo interactuar con el actor o caso de uso
216
Ejemplo: Interfaces para el caso de uso buscar por ttulo Buscar por ttulo ( ) Introducir palabras clave (Palabras Clave) Regresar ttulos con palabras clave Presionar buscar libro( )
217
Efectuar pedido
Cliente
Indican quin usa la interfaz
Interfaz para ordenar pedidos
Cancelar pedido
Vendedor
218
OK
Cancelar
219
Notacin
Rectngulo = pantalla
Seala que otra pantalla ser invocada
Cada rectngulo y circulo contienen ttulo y el nmero o nombre del caso de uso
Flecha unidireccional = flujo entre interfaces Flecha bidireccional = cancelar 220 y regresar
CAMPO 2
CAMPO 3
OK
Cancelar
Confirmacin
221
223
FASES DE PRODUCCIN
224
FASES DE PRODUCCIN
225
226
227
Clases en UML
Existen dos notaciones posibles:
Nombre de la clase
Polgono
centro: punto vrtices: lista de puntos color del borde: color color de relleno: color despliegue (on: superficie) rotar (ngulo: entero) borrar ( ) destruir ( ) seleccionar (p: punto): boolean)
Nombre de la clase
Polgono
228
Objetos en en UML
Existen dos notaciones posibles:
Nombre del objeto Triangulo1: Polgono
centro = (0,0) vrtices = (0,0), (4,0), (4,3) color del borde: negro color de relleno: blanco despliegue (on: superficie) rotar (ngulo: entero) borrar ( ) destruir ( ) seleccionar (p: punto): boolean)
Triangulo1: Polgono
229
Generalizacin en UML
Superclase
Personal
Bibliotecario
Subclase
Instructor
Subclase Manejador
Investigador
Subclase
Manejador de teclado
Manejador de mouse
Manejador de joystick
230
todo
partes
todo
partes
es capital de
Asociacin simple
/es yerno de
Asociacin derivada Joven nombre es novio de
Joven nombre
Joven nombre
232
Asociaciones (3)
empresa persona trabaja para nombre nombre empleado #IMSS domicilio empleador Roles Muchos Exactamente uno Cero o ms Uno o ms Cero o uno Rango especificado
1
0.. 1.. 0..1 2..4, 7
233
autorizar en >
Estacin de trabajo
1 1
Nombre atributos
operaciones
Atributo
Operacin
Directorio
234
Estereotipos
Se utilizan para especificar la semntica de elementos ya definidos en UML Son elementos generalizables (se pueden especializar o generalizar) Se pueden especificar en una clase delante del nombre de la clase
3 estereotipos importantes
Clases interfaz
Para todo lo relacionado las interfaces del sistema
Clases entidad
Para informacin persistente y el comportamiento acoplado a ella
Clases control
Para funcionalidad no necesariamente atada a otras clases
236
<<entidad>> Botella
<<entidad>> Caja
238
239
producir una vista del caso de uso, i.e., un diagrama de clases para cada caso de uso
producir un nico diagrama de clases para todos los casos de uso240
241
Paquetes (1)
Son consecuencia del gran nmero de clases existentes en un sistema Son necesarios para:
Proporcionar funcionalidad opcional Minimizar los efectos del cambio
Deben poseer
Acoplamiento interno fuerte Acoplamiento externo dbil
242
Paquetes (2)
Pueden
Contener paquetes anidados con paquetes de servicio como partes atmicas Tener clases individuales fuera de ellos Ser el resultado de problemas organizacionales o administrativos
243
Ejemplo de paquetes
<<subsystem>> Editor Controler
Diagram elements
Domain elements
Graphics core
WindowsCore Motif
Windowing system
MotifCore
Microsoft Windows244
Modelo de anlisis
ETAPAS DE PRODUCCIN
245
Alejandro Domnguez
246
Panormica general
Definir la relacin entre el anlisis y el diseo
El modelo de diseo I
Modelo de requerimientos
Diagrama de clases (primera versin) Modelo de casos de uso Casos de uso Casos de uso (+ descripciones) Secuencia de las operaciones
Modelo de anlisis
diseo
Diagrama de secuencia Estados de las Diagrama de estado operaciones DIAGRAMA Definicin de la interfaz 2 Definicin de la DE CLASES interfaz248 1
OUTPUTS
PROCESOS
Identificar el ambiente de implementacin Modelar el diseo inicial del diagrama de clases Disear el control de flujo Definir la clase interfaz Modelar diagramas de estados Finalizar el diseo del diagrama de clases Diagramas de secuencia (un diagrama por caso de uso) Diagramas de estado (un diagrama por clase) Modelo de diseo completo (diagramas de clase) 249
El ambiente de implementacin
Factores que intervienen
Sistema operativo Lenguaje de programacin Sistema de administracin de la interfaz de usuario Administrados de bases de datos Bibliotecas reutilizables
ANLISIS
DISEO AMBIENTE DE IMPLEMENTACIN
Procesos de desarrollo
251
Diagramas de secuencia
De todas la tcnicas de modelado de UML, esta es probablemente la ms compleja Son tiles para decidir y modelar cmo el sistema llevar a cabo lo que se describi en el modelo de casos de uso Ayudan a asignar responsabilidades a las clases y objetos Ayudan para que se pueda comprender en un programa OO el flujo de control (secuencia) general de los objetos
254
255
256
crear
A f( )
B crear g( )
Mensajes: Lneas horizontales etiquetadas con el nombre del mensaje y sus valores del argumento Tiempo de activacin del objeto: Rectngulos delgados Destruccin de objetos: Denotado por X
h( )
destruir
257
Clase 3: objeto
Clase 4: objeto
Hacer esto
258
259
Clase 3: objeto
Clase 4: objeto
Hacer esto
260
Obtener telfono
261
Marcador
Display: DisplayMarcador
:Altavoz
BotnPresionado( )
Dgito( ) DespliegueDgito(cdigo )
EmitirTono( cdigo)
262
263
:Conexin
Fin( )
264
:despachador
Verificar NIP ( )
:retirador
:cuenta
Dar dinero
265
266
Panormica general
Definir el concepto de Evento, Actividad y Estado
El modelo de diseo I
Modelo de requerimientos
Diagrama de clases (primera versin) Modelo de casos de uso Casos de uso Casos de uso (+ descripciones) Secuencia de las operaciones
Modelo de anlisis
diseo
Diagrama de secuencia Estados de las Diagrama de estado operaciones DIAGRAMA Definicin de la interfaz 2 Definicin de la DE CLASES interfaz268 1
Interaccin
Comportamiento de una sociedad de objetos
Mquina de Estados
Comportamiento de un objeto
269
Mquina de Estados
Secuencia de estados del tiempo de vida de un objeto, suscitados por Eventos
Seales Operaciones Dependiendo del Estado Actual del Objeto Ejecucin de una Actividad
Ocurrencia de un Evento
270
Evento
Especificacin de una ocurrencia significativa que tiene una ubicacin en el tiempo y el espacio Ocurrencia de un estmulo que dispara la transicin de un estado
271
Actividad
Ejecucin no-atmica dentro de una maquina de estados Produce
Cambio de Estado Regresa un valor Dependiendo del Estado Actual del Objeto Ocurrencia de un Evento Ejecucin de una Actividad Cambio de Estado del Objeto
272
Estado
Condicin o situacin de un objeto durante su tiempo de vida, en la cual
Satisface una condicin Realiza alguna actividad
Transicin
Relacin de cambio entre 2 estados
Adeudo
Pagar
Pagado
Transicin
274
275
Adaptable
Entendible
276
Representacin de un Estado
ESTADOS NOMBRE ESTADO FINAL
envo Solicitado
Entregado
Partes de un Estado
Nombre
Acciones de Entrada/Salida
Transiciones internas
Subestados
Eventos Diferidos
Actividad
Condicin de transicin
Guard Condition
Autoriza(PrdCve) [cobroValido] Pagado Entregado envo / m.AgregaEnvo ACCIN GUARD CONDITION DISPARADOR DE EVENTO CON PARAMETROS
280
Subestados secuenciales
TRANSICION DE/A ESTADO COMPUESTO insertarTarjeta Validando ESTADO COMPUESTO SUBESTADO SECUENCIAL Activo
Desocupado
cancelar mantener
Seleccionando
[continuar] Procesando
[no continuar]
Mantenimiento
TRANSICION DE SUBESTADO
Imprimiendo
281
Subestados histricos
ESTADO INICIAL PARA LA PRIMERA ENTRADA Respaldando Comando
Acumulado
consulta
ESTADO HISTRICO SHALLOW
Copiado
Borrado
282
Subestados concurrentes
SUBESTADOS CONCURRENTES FORK mantener Desocupado JOIN
ESTADO COMPUESTO
284
Panormica general
Comprender la utilizacin de los diagramas de colaboracin:
Fundamentos
Relacin con Diagramas de Secuencia Elementos Flujos de Control Usos
Diagrama de colaboracin
Tipo de diagrama de interaccin
Ligas
Mensajes
287
Elementos
objeto
c:Cliente liga o enlace <<local>> 1: <<crea>> 2: ponAcciones(a,d,o) estereotipo 3: <<destruye>> de ruta mensaje :Transaccin {transient} objeto <<global>> p:ODBCProxy
289
290
Flujos
Flujo Secuencial de Control Flujos Complejos
Iteracin
Precediendo con
* *[ i := 1..n]
Salto
[condicin_booleana] Ramas con la misma numeracin
Equivalencia semntica
Los diagramas de colaboracin y de secuencia tienen equivalencia semntica. Aunque no necesariamente explcitamente visualicen la misma informacin.
292
293
Pasos
1. Establecer el contexto
(sistema, subsistema, operacin, clase, escenario de caso de uso, colaboracin)
294
Pasos
3. Establecer los valores iniciales de cada uno de estos objetos
(valores, estados, roles, instanciacin mltiple become, copy -)
Pasos
5. Iniciar el trazo de mensajes
5.1 Comenzar con el mensaje que inicia la interaccin 5.2 Aadir mensajes subsecuentes 5.3 Aplicar la secuencia de numeracin
6. Si es necesario, aplicar restricciones de tiempo o espacio. 7. Un control ms formal implica precondiciones y postcondciones para cada mensaje.
296
Otros consejos
Usualmente los diagramas de secuencia muestran un flujo de control Tpicamente, se tienen varios diagramas de interaccin
Primarios
Rutas alternativas
297
2: agregarEstudiante(s)
r:RegistrarAgente
1: <<crear>> 3: registrar() 3.1: obtenItinerario()
:Escuela
<<local>>
{self}
c1:Curso
c2:Curso
{association}
298
{association}
300
Panormica general
Comprender la utilizacin de los diagramas de Actividad:
Fundamentos
Relacin con Diagramas de Secuencia Elementos Flujos de Control Usos
Diagrama de actividad
Muestra el Flujo de Actividad a Actividad
Actividad
Ejecucin no atmica dentro de una mquina de estados. Las actividades resultan en una Accin (clculos atmicos ejecutables):
Cambio de Estado
Regreso de un Valor
304
Acciones
Agrupan a
La llamada a otra operacin Enviar una seal Crear o destruir objetos
Clculos puros
V.g.: Evaluar una expresin
305
Ejemplo
estado inicial
Seleccionar Lugar Comisionar Arquitecto Desarrollar un Plan
estado de accin
salto secuencial
[else] Elaborar Construccin
fork concurrente
Hacer Negociaciones()
join concurrente
Finalizar Construccin
:Escrituras
[Completo]
estado final
flujo de objeto
306
Estados Accin
Representan una accin
307
Estados Accin
expresin
Autorizar Plan
accin sencilla
i := Sqrt(j) + 1
308
Estados Actividad
Pueden descomponerse
Su actividad est respresentada por otros diagramas de actividad No son atmicos, pueden interrumpirse Se considera que toma algn tiempo en ejecutarse Un Estado Accin es un subcaso del Estado Actividad
309
Estados Actividad
Estado Actividad =
+ Estados Accin + Estados Actividad
Partes
Accin de Entrada Accin de Salida Especificaciones de Submquina
310
Estados Actividad
Hacer construccin
entry/Bloquea()
Procesar Factura(f)
Accin de Entrada
Submquina
311
Transiciones
Es el paso de un estado accin o actividad a otro, una vez que ste se ha completado. Se representan con lneas con puntas de flecha dirigidas
Saltos
Especificacin de rutas alternativas basadas en expresiones Booleanas. Se representa con un rombo a partir del cual, se tienen ms de una transicin alternativa especificadas con Guard Conditions entre corchetes. Se usa la palabra reservada else Pueden modelarse iteraciones.
313
Fork / Join
Modelar actividades concurrentes
Pueden anidarse
Se representan con lneas horizontales a partir de las cuales salen las transiciones iniciales o llegan las finales de los estados concurrentes.
314
Swimlanes
Grupos o particiones de estados de actividad segn la organizacin de negocio responsable.
Modelar flujos de trabajo de Procesos de Negocio.
Se representan con rectngulos etiquetados con la unidad organizacional dentro de los cuales se agrupan los estados.
315
Flujos de Objeto
Modela los objetos (particulamente con estado) que pasan de un estado a otro. Se representa como se hace convencionalmente en UML y se une con lneas rayadas dirigidas entre los estados.
316
Flujos de Trabajo
5. Para acciones o conjunto de acciones complicadas, se colapsan en estados Actividad. 6. Trazar las transiciones, comenzar con las secuenciales, saltos y concurrentes en este orden. 7. Se grafican los objetos importantes con sus valores o estados.
318
Ejemplo
Cliente
Solicita Devolucin Dar Folio Enviar Artculo
Ventas
Contabilidad
Almacn
Recibir Artculo
i:Artculo
[Regresado]
i:Artculo
[Disponible]
319
Panormica general
Comprender la utilizacin de los diagramas de componentes:
Fundamentos
Relacin con Clases Relacin con Interfaces Reemplazo Binario Tipos
Ejemplos
322
Diagrama de Componentes
Modelado de Aspectos Fsicos del Sistema
Diagrama de Componentes
Involucra el modelado de cosas fsicas que residen en un NODO
Ejecutables Bibliotecas
Tablas
Archivos Documentos
324
Diagrama de Componentes
Definicin
Visualiza
Un conjunto de componentes y Sus relaciones
Grficamente es un conjunto de
Vrtices Arcos
325
Componente
Parte fsica y reemplazable de un sistema que conforma la realizacin de un conjunto de interfaces
kernel32.dll
326
Nombre de un componente
Interfaz (Servicios)
FraudAgent.dll Realizes FraudAgent FraudPolicy FraudSearch
agent.java
system::dialog.dll
{versin=2.1.75}
Componentes y Clases
Semejanzas
Nombre Realizan un conjunto de interfaces Participan en relaciones de
Dependencia Generalizacin y Asociacin
Anidarse
Tienen instancias
Participan en interacciones
328
Componentes y Clases
Representacin fsica Empaquetamiento fsico Operaciones a travs de interfaces Representacin lgica Nivel de abstraccin Acceso a atributos y operaciones
329
Componentes y Clases
Diferencias
Residen en un nodo Implementacin fsica de un conjunto de elementos lgicos (clases y colaboraciones) Servicios disponibles solo por interfaces
330
FraudAgent.dll
COMPONENTES
FraudAgent
PatternSearch
FraudPolicy
CLASES
331
Componentes e Interfaces
Interfaz
Coleccin de Operaciones que utilizada para especificar un servicio de una clase o componente. Son el pegamento entre los diferentes componentes (se requiere infraestructura basada en componentes del sistema operativo)
COM+ CORBA Enterprise Java Beans
332
Componentes e Interfaces
Descomposicin de la Implementacin Fsica
333
FORMA ICNICA
image.java
ImageObserver
component.java
FORMA EXPANDIDA
<<interface>> ImageObserver abort: int {final static} error: int {final static}
imageUpdate():Boolean
334
image.java
component.java
Reemplazo binario
Partes reemplazables binarias en el Sistema Operativo No implican reconstruccin o recompilacin inmediata
335
Reemplazo binario
Un componente es
Fsico Reemplazable
Sustituible Mismas Interfaces
Tipos de Componentes
De Implantacin
Necesarios y suficientes para generar sistemas ejecutables
.EXE .DLL o equivalente Tablas, Pginas Web dinmicas, modelos de objetos, otros ejecutables, etc.
Productos de Trabajo
Fuentes Archivos de Datos
De Ejecucin
Aquellos que slo existen en el ambiente de ejecucin
Objeto COM+ instanciado
337
Elementos Estndares
Ejecutable (Executable) Biblioteca (Library)
Esttica o Dinmica
render.dll raytrce.dll
wrfrme.dll
339
animator.exe
{versin=5.0.1}
animator.ini
wrfrme.dll
340
Modelado de APIs
animator.exe
{versin=5.0.1} IScripts
IRendering
IApplication
IModels
341
render.cpp
{versin=5.3.7}
rengine.h
{versin=4.6}
poly.h
{versin=4.1}
colortab.h
{versin=4.1}
342
Panormica general
Comprender la utilizacin de los diagramas de Deployment:
Fundamentos Nodos
Relacin con componentes Paquetes
Conexiones Atributos
Usos
344
Diagramas de Deployment
Modelado de los Aspectos Fsicos del Sistema Junto con el de componentes son los 2 diagramas en este nivel
Muestra la configuracin de los nodos de procesamiento en tiempo de ejecucin y los componentes residentes en ellos
345
Diagramas de Deployment
Modela una vista de implantacin esttica
346
Diagramas de Deployment
Visualiza el aspecto esttico de los nodos fsicos y sus relaciones; as como los detalles de su Modem bank construccin
Internet
Nodos
<<processor>> caching server <<processor>> caching server
Nodos
Conexin
<<network>> local network
<<processor>> server
<<processor>> server
<<processor>> server
347
Relaciones de
Dependencia Asociacin
348
Nodo
Elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional
mi_server
Nombre
349
Nombres de Nodo
Nombres extendidos
ventas
Nombres simples
mi_server
Package
server::backup {remoteAdministrationOnly}
350
Participar en interacciones
351
352
pos.exe
contacts.exe
353
Nodos y Paquetes
Los nodos pueden ser agrupados en paquetes
Servidores
server_1
server_backup
354
Conexiones
Asociaciones entre nodos
cajero
Conexin
<<10-T Ethernet>>
server
RAID Array
consola
<<RS-232>>
355
tributos y adornments
:cajero Deploys user.exe
<<10-T Ethernet>>
s : server processorSpeed = 300 MHz memory = 128 Mb Deploys dbadmin.exe tktmstr.exe :RAID Array
<<RS-232>>
356
Usos comunes
Modelado de
Sistemas Embebidos Sistemas Cliente / Servidor Sistemas Distribuidos
357
Panormica general
Conocer la existencia de una propuesta de proceso unificado de desarrollo Conocer la arquitectura del proceso de desarrollo Apreciar la importancia, ventajas y desventajas de este tipo de proceso de desarrollo
359
Metodologa
LENGUAJE
V.g.: UML
PROCESO
V.g.: Rational Unified Process
HERRAMIENTA
V.g.: Rose
360
PROCESO
Elementos de Proyecto
Fases Etapas Mtodos Tcnicas y Prcticas
Que las personas realizan para desarrollar y mantener software con sus artefactos asociados
361
RUP
Rational Unified Process
Proceso unificado de desarrollo de software
Caractersticas
Proceso de Desarrollo de Software Dirigido por Casos de Uso Centrado en la Arquitectura Iterativo e Incremental
362
Iterativo e Incremental
Inception
Elaboration
Transition
Construction
363
364
RUP
365
Trabajadores (Workers)
Personas que participan en el proceso
Worker
366
Trabajadores (2)
1. Analista de Sistemas 2. Especificador de Casos de Uso
3. Arquitecto
4. Ingeniero de Casos de Uso 5. Ingeniero de Componentes 6. Integrador de Sistemas 7. Diseador de Pruebas 8. Ingeniero de Pruebas de Integracin 9. Ingeniero de Pruebas del Sistema
367
Analista de Sistemas
Responsable del conjunto de requisitos modelados en los casos de uso
Requisitos funcionales y no funcionales
Delimitar el sistema
Diseador de Interfaces
Disear las interfaces de usuario
Aspecto visual
370
Arquitecto
Requerimientos
Describir la arquitectura y prioridades del modelo de casos de uso
Anlisis
Garantizar la integridad del modelo de anlisis
Arquitecto
Flujos de Trabajo Diseo Garantizar la integridad de los modelos de Requerimientos diseo y despliegue Anlisis Implantacin Diseo Garantizar la integridad del modelo de Implantacin implantacin
Asignar componentes a nodos
371
372
Ingeniero de Componentes
Anlisis
Definir y mantener las responsabilidades, atributos, relaciones y requisitos especiales de una o varias clases del anlisis
Diseo
Ingeniero de Componentes
Definir y mantener las operaciones, mtodos, atributos, relaciones y requisitos de implantacin de una o ms clases del diseo
Flujos de Trabajo Implantacin Definir y mantener el cdigo fuente de uno o Anlisis varios componentes Diseo Pruebas Implantacin Desarrollar componentes de prueba que Pruebas
373
Integrador de Sistemas
Planificar la secuencia de construcciones necesarias en cada iteracin Integrador de Sistemas Flujos de Trabajo Implantacin
374
Diseador de Pruebas
Garantizar la integridad del modelo de pruebas Planear las pruebas Diseador de Pruebas Flujos de Trabajo Pruebas
Establecer objetivos de prueba apropiados
375
Ventajas de un Proceso
Process Know-How Toma de Decisiones Estadarizacin Calidad y Mejores prcticas Mantenimiento Control de Complejidad Control de Proyecto
Reduccin de Costos
378
Ventajas de RUP
Aplicacin de Principios de Ingeniera
Desarrollo
Iteratividad Orientado a Requerimientos Basado en Arquitectura
Retroalimentacin
Prototipado
Definicin de Producto
379
Desventajas de RUP
Solamente es un Proceso No tiene Soporte Multiproyecto Influencia de los Fabricantes de Herramientas Carencias en:
Mtrica Reuso Control de Personal
Control de Pruebas
380