Download - Clase de UML
-
8/14/2019 Clase de UML
1/173
Introduccin almodelado
Metodologas, UML ypatrones de diseo
Fuente: Ricardo Borillo [email protected]
-
8/14/2019 Clase de UML
2/173
ndice Conceptos Lenguajes de modelado: UML Metologas:
Metologas clsicas: RUP, Mtrica, MSF Metologas giles: eXtreme Programming
Patrones de diseo de sofwareArquitecturas dirigidas por modelos (MDA) Herramientas de modelado
-
8/14/2019 Clase de UML
3/173
-
8/14/2019 Clase de UML
4/173
Componentes bsicos RUP. Tcnicas y su aplicacin a la gestin
de proyectos software orientados a objeto.
XP. Gestin gil de proyectos y grupos dedesarrollo.
UML. Diagramas, elementos notacionales
y semntica de los modelos generados.
-
8/14/2019 Clase de UML
5/173
Modelado con UML
-
8/14/2019 Clase de UML
6/173
Qu es UML? El UML modela sistema mediante el uso de
objetos que forman parte de l as como, las
relaciones estticas o dinmicas que existenentre ellos.
UML puede ser utilizado por cualquiermetodologa de anlisis y diseo orientada por
objetos para expresar los diseos.
-
8/14/2019 Clase de UML
7/173
Qu es UML?
UML es un Lenguaje de Modelado Unificado
basado en una notacin grfica la cual permite:especificar, construir, visualizar y documentarlos objetos de un sistema programado.
Este lenguaje es el resultado de la unificacin
de los mtodos de modelado orientados aobjetos de Booch, Rumbaugh (OMT: ObjectModeling Technique) y Jacobson (OOSE:Object-Oriented Sotfware Engineering).
-
8/14/2019 Clase de UML
8/173
UML UML es un lenguaje de modelado que sirve para
visualizar, especificar , construir y documentar
un sistema software.Lenguaje de modelado:
Lenguaje cuyo vocabulario y reglas se centran en la
representacin conceptual y fsica de un sistema
(Booch, Jacobson y Rumbaugh).
-
8/14/2019 Clase de UML
9/173
UML para visualizar
Smbolos con semntica bien definida.
UML transciende al lenguaje deprogramacin.
Modelo explcito, que facilita la comunicacin.
-
8/14/2019 Clase de UML
10/173
UML para especificar Especificar es equivalente a construir modelos
que cumplan las condiciones de no ambigedad
y completitud. UML cubre la especificacin del anlisis, diseo
e implementacin de un sistema software.
-
8/14/2019 Clase de UML
11/173
UML para construir Es posible
hacercorrespondercon loslenguajes de
programacin(Java, C#,B.Datos, etc.).
Modelo
UML
Ingeniera Directa
Ingeniera Inversa
CDIGO
-
8/14/2019 Clase de UML
12/173
UML para documentar UML cubre la documentacin de un sistema:
Requisitos
Arquitectura Diseo
Cdigo fuente
Planificacin
Pruebas Prototipos
Versiones
-
8/14/2019 Clase de UML
13/173
UML aglutina enfoques OO
UML
Rumbaugh
Jacobson
Meyer
Harel
Wirfs-BrockFusion
Embly
Gamma et. al.
Shlaer-Mellor
Odell
Booch
Pre- and Post-conditions
State Charts
Responsabilities
Operation descriptions,message numbering
Singleton classes
Frameworks, patterns,notes
Object life cycles
-
8/14/2019 Clase de UML
14/173
Historia de UML
Nov 97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2001 UML 2.0
Revisiones menores
-
8/14/2019 Clase de UML
15/173
Actualizaciones de UML UML 1.3 es una versin madura de UML a la que se
le han aadido una serie de pequeas revisiones, lascuales corrigen o mejoran la especificacin base
(UML 1.2). UML 1.4 incorpora ciertas modificaciones sobre el
estndar en base a los comentarios recogidos de losusuarios finales y de los fabricantes de softwarecompatible con UML.
UML 2.0 promete la puesta a punto del estndar parapoder integrarse con el desarrollo basado encomponentes que demanda el mercado.
-
8/14/2019 Clase de UML
16/173
UML 2.0 Arquitectura: refinamiento del ncleo del estndar para
que est en consonancia con el resto de estndares delmercado.
Personalizacin: mejora de los mecanismos deextensibilidad y personalizacin. Componentes: mejor soporte para el desarrollo basado
en componentes (CORBA, EJB, COM+). Mecanismos generales: nuevos mecanimos para el
control de las versiones dentro del modelo, as como elintercambio de los metadatos del mismo con XMI (XMLMetadad Interchange).
-
8/14/2019 Clase de UML
17/173
Un proceso de desarrollo de software debe ofrecer unconjunto de modelos que permitan expresar el producto
desde cada una de las perspectivas de inters El cdigo fuente del sistema es el modelo ms detallado
del sistema (y adems es ejecutable). Sin embargo, serequieren otros modelos ...
Cada modelo es completo desde su punto de vista delsistema, sin embargo, existen relaciones de trazabilidadentre los diferentes modelos
Modelos y Diagramas
-
8/14/2019 Clase de UML
18/173
Modelos y Diagramas
Modelo: captura una vista de un sistema del mundo
real. Es una abstraccin de dicho sistema,considerando un cierto propsito.
Diagrama: representacin grfica de una coleccin de
elementos de modelado, a menudo dibujada como ungrafo con vrtices conectados por arcos.
-
8/14/2019 Clase de UML
19/173
Vista de Diseo
Vista deProcesos
Vista deDespliegue
Vista deImplementacin
Vista de losCasos de Uso
Organizacin de Modelos
-
8/14/2019 Clase de UML
20/173
Diagramas de UML
Use CaseDiagramsUse Case
DiagramsDiagramas deCasos de Uso
Scenario
Diagrams
Scenario
DiagramsDiagramas deColaboracin
State
Diagrams
State
DiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribucin
StateDiagrams
StateDiagrams
Diagramas deObjetos
ScenarioDiagrams
ScenarioDiagrams
Diagramas deEstados
Use CaseDiagrams
Use CaseDiagrams
Diagramas deSecuencia
StateDiagrams
State
Diagrams
Diagramas de
Clases
Diagramas de
Actividad
Modelo
-
8/14/2019 Clase de UML
21/173
Mecanismos comunes en UML
Especificaciones. Es ms que un lenguaje
grfico (semntica detrs de la notacin).Adornos. Detalles sobre un clase, nivel de
acceso de sus mtodos, notas.Divisiones Comunes: Clase/Objecto o
Interfaz/Implementacin.Extensibilidad. Estereotipos, valores
etiquetados o restricciones.
-
8/14/2019 Clase de UML
22/173
Mecanismos comunes en UML
-
8/14/2019 Clase de UML
23/173
-
8/14/2019 Clase de UML
24/173
Casos de Usos Un diagrama de Casos de Uso muestra la
distintas operaciones que se esperan de una
aplicacin o sistema y cmo se relaciona con suentorno (usuario u otras aplicaciones).
Es una herramienta esencial para la captura derequerimientos y para la planificacin y controlde un proyecto interactivo.
-
8/14/2019 Clase de UML
25/173
Casos de Usos Los casos de Uso Se representa en el diagrama
por una elipse que denota un requerimiento
solucionando por el sistema. Cada caso de uso de uso es una operacin
completa desarrollada por los actores y por elsistema en un dilogo.
El conjunto de casos de uso representa latotalidad de operaciones desarrolladas por elsistema.
-
8/14/2019 Clase de UML
26/173
Casos de Usos
-
8/14/2019 Clase de UML
27/173
Casos de Usos Actor: Es un usuario del sistema, que necesita
o usa alguno de los casos de uso. Un usuario
puede jugar ms de un rol. Un solo actor puedeactuar en muchos casos de uso;recprocamente, un caso de uso puede tenervarios actores. Los actores no necesitan ser
humanos pueden ser sistemas externos quenecesitan alguna informacin del sistema actual.
-
8/14/2019 Clase de UML
28/173
Casos de Usos Tambin se puede encontrar tres tipos de
relaciones, como son:
Comunica (comunicates) Entre un actor y uncaso de uso, denota la participacin del actor
en el caso de uso determinado.
-
8/14/2019 Clase de UML
29/173
Casos de Usos Usa (uses): Relacin entre dos casos de
uso, denota la inclusin del
comportamiento de un escenario en otro.Se utiliza cuando se repite un caso de usoen dos o ms casos de uso separados.
Frecuentemente no hay actor asociadocon el caso de uso comn.
-
8/14/2019 Clase de UML
30/173
Casos de Usos Extiende (extends): Relacin entre dos
casos, denota cuando un caso de uso es
una especializacin de otro. Se usacuando se describe una variacin sobre elnormal comportamiento.
-
8/14/2019 Clase de UML
31/173
Casos de Usos Tcnicas comunes de modelado:
Modelado del contexto del sistema (utilidad
similar a los DFD). Modelado de los requisitos de un sistema.
Modelado del proceso de test y estrs del
sistema.
-
8/14/2019 Clase de UML
32/173
Diagrama de Clases
-
8/14/2019 Clase de UML
33/173
Conceptos bsicos orientacin a
objetos Clase Objeto
Herencia Interfaz Polimorfismo de clases Clases y atributos estticos Clases y atributos finales Clases y mtodos abstractos
-
8/14/2019 Clase de UML
34/173
Diagrama de clases Un diagrama de clases o estructura esttica
muestra el conjunto de clases y objeto
importantes que forman parte de un sistema,junto con las relaciones existentes entre clasesy objetos. Muestra de una manera esttica laestructura de informacin del sistema y lavisibilidad que tiene cada una de las clases,
dada por sus relaciones con los dems en elmodelo.
-
8/14/2019 Clase de UML
35/173
-
8/14/2019 Clase de UML
36/173
Diagrama de clases Clase: representa un conjunto de entidades que
tienen en comn propiedades, operaciones,
relaciones y semntica. Una clase es un constructor que define laestructura y comportamiento de una coleccinde objeto denominados instancia de la clase.
En UML la clase est representada por unrectngulo con tres divisiones internas, son loselementos fundamentales del diagrama.
-
8/14/2019 Clase de UML
37/173
Diagrama de clases Atributo: Representa una propiedad de una
entidad. Cada atributo de un objeto tiene unvalor que pertenece a un dominio de valoresdeterminado.
Las sintaxis de una atributo es: Visibilidad : tipo = valor {
propiedades} Donde visibilidad es uno de los siguientes:
+ pblico. # protegido.
- privado.
-
8/14/2019 Clase de UML
38/173
Diagrama de clases Operacin: El conjunto de operaciones que
describen el comportamiento de los objetos de
una clase. La sintaxis de una operacin en UMLes:
Visibilidad nombre (lista de parmetros): tipoque retorna { propiedades}
-
8/14/2019 Clase de UML
39/173
Diagrama de clases
Nombredela clase
Atributos
Mtodos
-
8/14/2019 Clase de UML
40/173
Diagrama de clases
Responsabilidades:Contrato u obligacin de
una clase, asignada en el momento del diseo. Clase Producto:
Registrar el cdigo de la publicacin.
Mantener estructura del producto plantilla.
-
8/14/2019 Clase de UML
41/173
Diagrama de clases
Tcnicasde modelado:
Modelado del vocabulario de un sistema apartir de las descripciones funcionales.
Modelado de la distribucin deresponsabilidades en un sistema.
Modelado de cosas que no son software(hardware, personas, etc).
Modelado de tipos primitivos.
-
8/14/2019 Clase de UML
42/173
Diagrama de clases Objeto: es una instancia de una clase. Se
caracteriza por tener una identidad nica, unestado definido por un conjunto de valores de
atributos y un comportamiento representado porsus operaciones y mtodos.
Asociacin (rol, multiplicidad, calificador):
representan las relaciones entre instancias declase. Una asociacin es una lnea que une doso ms clases.
-
8/14/2019 Clase de UML
43/173
Diagrama de clases
Nombre: Identifica la asociacin entre los
objetos, caracterizndola. Rol: Identificado como un nombre a los finales
de la lnea, describe la semntica de la relacinen el sentido indicado. Cada asociacin tiene
dos roles; cada rol es una direccin en laasociacin. El rol puede estar representado enel nombre de la clase.
-
8/14/2019 Clase de UML
44/173
Diagrama de clases
Multiplicidad: Describe la cardinalidad de larelacin, es decir, cuanto objetos de esa clase
pueden participar en la relacin dada. Tipos:
-
8/14/2019 Clase de UML
45/173
Diagrama de clases
Dependencia: Es una relacin donde existen
entidades independientes y otras dependientes,lo que implica que cambiar el elementoindependiente puede requerir cambios en losdependientes. Se representa con una lnea
punteada direccional, indicando el sentido de ladependencia.
-
8/14/2019 Clase de UML
46/173
Diagrama de clases
-
8/14/2019 Clase de UML
47/173
Diagrama de clases Los tipos de asociaciones entre clases
presentes en un diagrama esttico son: Asociacin binaria. Asociacin n-aria.
Composicin.
Generalizacin. Refinamiento.
-
8/14/2019 Clase de UML
48/173
Diagrama de clases Asociacin Binaria: Representa una relacin
sencilla entre dos clases, no muy fuerte (es
decir, no se exige dependencia existencial niencapsulamiento). Se indica como una lneaslida que une dos clases.
Asociacin n-aria: Es una asociacin entre tres
o ms clases. Se representa como un diamantedel cual salen lneas de asociacin a las clases.
-
8/14/2019 Clase de UML
49/173
Diagrama de clases
-
8/14/2019 Clase de UML
50/173
Diagrama de clases Composicin: Es una asociacin fuerte
que implica:
Dependencia existencial. El elementodependiente desaparece al destruirse el quelo contiene y, si es de cardinalidad 1, escreado al mismo tiempo.
Hay una pertenencia fuerte. Se puede decirque el objeto contenido es parte constitutiva yvital del que lo contiene.
-
8/14/2019 Clase de UML
51/173
-
8/14/2019 Clase de UML
52/173
Diagrama de clases
-
8/14/2019 Clase de UML
53/173
Diagrama de clases Agregacin: Relaciona una clase ya
ensamblada con una clase componente.
Es tambin una relacin de composicinmenos fuerte (no se exige dependenciaexistencial) y se denota por un rombo sin
rellenar en un o de los extremos.
-
8/14/2019 Clase de UML
54/173
Diagrama de clases
-
8/14/2019 Clase de UML
55/173
-
8/14/2019 Clase de UML
56/173
Diagrama de clases
-
8/14/2019 Clase de UML
57/173
Diagrama de clases Refinamiento: Es una relacin que
representa la especificacin completa de
algo que ya ha sido especificado concierto nivel de detalle. Por ejemplo, unaclase del diseo es un refinamiento de
una clase de anlisis.
-
8/14/2019 Clase de UML
58/173
Diagrama de clases
-
8/14/2019 Clase de UML
59/173
Diagrama de clases
Tcnicasde modelado:
Modelado de dependencias simples. Modelado de herencia simple.
Modelado de relaciones estructurales(composiciones y agregaciones).
Modelado de comentarios.
-
8/14/2019 Clase de UML
60/173
Diagrama de clases
-
8/14/2019 Clase de UML
61/173
Diagrama de
Interaccin
-
8/14/2019 Clase de UML
62/173
Diagrama de interaccin Estos son modelos que describen como
los grupos de objetos que colaboran en
algunos ambientes. Por lo general, undiagrama de interaccin captura elcomportamiento de un nico caso de uso.
Hay dos tipos de diagramas de
interaccin: diagramasdesecuencia ydiagramasdecolaboracin.
-
8/14/2019 Clase de UML
63/173
Diagrama de interaccin Un diagrama de secuencia muestra la
interaccin de un conjunto de objetos de una
aplicacin a travs del tiempo. Esta descripcines importante porque puede dar detalle a loscasos de uso, aclarndolos al nivel de mensajesde los objetos existentes, como tambin
muestra el uso de los mensajes de las clasesdiseadas en el contexto de una operacin.
-
8/14/2019 Clase de UML
64/173
Diagrama de interaccin Elementos bsicos del diagrama de
interaccin: Objetos o actores para cada entidad. Enlaces entre los objetos.
Procedimientos a invocar entre los objetos.
Mensajes entre los objetos.
-
8/14/2019 Clase de UML
65/173
-
8/14/2019 Clase de UML
66/173
Diagrama de interaccin
-
8/14/2019 Clase de UML
67/173
Diagrama de interaccin Diagramas de Colaboracin:
Es una forma de representar interaccin entre losobjetos, es decir, las relaciones entre ellos y la
secuencia de los mensajes de las iteraciones queestn indicadas por un nmero A diferencia de losdiagramas de secuencia, pueden mostrar el contextode la operacin (cules objetos son atributos, culestemporales, etc) y ciclos en la ejecucin. Muestra
como varios objetos colaboran en un solo caso deuso.
-
8/14/2019 Clase de UML
68/173
Diagrama de interaccin
-
8/14/2019 Clase de UML
69/173
Diagrama de interaccin Tcnicasde modelado:
Modelado dinmico del sistema. Implementacin de un caso de uso en
concreto para cada diagrama.
Modelado del flujo de control por ordenacin
temporal (secuencia). Modelado del flujo de control por organizacin
(colaboracin).
-
8/14/2019 Clase de UML
70/173
Diagrama de
Estados
-
8/14/2019 Clase de UML
71/173
-
8/14/2019 Clase de UML
72/173
Diagrama de estados Estado: Identifica un perodo de tiempo del
objeto (no instantneo) en el cual el objeto esta
esperando alguna operacin, tiene cierto estadocaracterstico o puede recibir cierto tipo deestmulos.
-
8/14/2019 Clase de UML
73/173
Diagrama de estados Partes que componen un estado:
Nombre
Acciones de entrada y de salida. Transiciones internas.
Subestados.
Eventos diferidos.
-
8/14/2019 Clase de UML
74/173
Diagrama de estados
Eventos: Es una ocurrencia que puede causarla transicin de un estado a otro de un objeto.Esta, puede ser una:
Condicin que toma el de verdadero o falso. Recepcin de una seal de otro objeto en el modelo. Recepcin de un mensaje. Paso de cierto perodo de tiempo, despus de entrar
al estado o de cierta hora y fecha particular.
-
8/14/2019 Clase de UML
75/173
Diagrama de estados
Transicin: Es una relacin entre estados deun fuente a un destino.
Partes que componen una transicin: Estado de origen.
Evento de disparo.
Condicin de guarda.
Accin. Estado de destino.
-
8/14/2019 Clase de UML
76/173
Diagrama de estados
Otros elementos: Subestados. Secuenciales o no, resultan en una
nueva mquina de estados. Estados de historia.
Estados de historia. Permiten a un conjunto deestados o subestados de un objeto, recordar elestado que estaba activo en su ltima ejecucin. Sino existe historia, se comenzara por el estado inicial.
Subestados concurrentes.
-
8/14/2019 Clase de UML
77/173
Diagrama de estados
-
8/14/2019 Clase de UML
78/173
Diagrama de estados
Tcnicasde modelado:
Modelado de la vida de un objeto. Este tipode diagramas se asocian directamente auna clase.
-
8/14/2019 Clase de UML
79/173
Diagrama de
Actividades
-
8/14/2019 Clase de UML
80/173
Diagrama de Actividades
Un diagrama de actividades es un caso especialde un diagrama de estados en el cual casi todoslos estados son estados de accin (identificanque accin se ejecuta al esta en l ) y casi todaslas transiciones son enviadas al terminar laaccin ejecutada en el estado anterior.
Generalmente modelan los pasos de un
algoritmo y puede dar detalle a un caso de uso,un objeto o un mensaje en un objeto.
-
8/14/2019 Clase de UML
81/173
-
8/14/2019 Clase de UML
82/173
Diagrama de Actividades
Estado de Accin: representa un estadocon accin interna, con lo menos una
transicin que indica la culminacin de laaccin (por medio de un evento implcito). Permite modular un paso dentro del
algoritmo. Se representan por un rectngulocon bordes redondeados.
-
8/14/2019 Clase de UML
83/173
Diagrama de Actividades
EstadodeActividad:Estado msgeneral que permite su descomposicin
en otro diagrama de actividades interno,de nivel ms bajo. Su representacin, en cuanto a la notacin,
es la misma que el de Accin.
-
8/14/2019 Clase de UML
84/173
Diagrama de Actividades
Casosespeciales:
Estado inicial. Representa el punto de
entrada del diagrama de actividades. Estado final. Su existencia depende de si el
diagrama es cclico.
tem de decisin. Representado con unrombo, permite tomar bifurcacionescondicionales.
-
8/14/2019 Clase de UML
85/173
-
8/14/2019 Clase de UML
86/173
Diagrama de Actividades
Transicin:Es la relacin entre dosestados y se encuentran unidos por
flechas; indicando que un objeto que esten el primer estado realizar una accinespecificada y entrar en el segundoestado cuando un evento implcito ocurray unas condiciones especificas seansatisfechas.
-
8/14/2019 Clase de UML
87/173
Diagrama de Actividades
Tiposdetransiciones:
Bifurcaciones condicionales. Permiten tomar
distintos caminos dentro del diagrama enfuncin de una condicin o guarda.
Divisin y unin. Permiten representar elparalelismo en la ejecucin de actividades.
-
8/14/2019 Clase de UML
88/173
Diagrama de Actividades
-
8/14/2019 Clase de UML
89/173
Diagrama de interaccin
Tcnicasde modelado:
Modelado de un flujo de trabajo o Workflow. Usointensivo de estados de actividad, swim lanes ybifurcaciones condicionales.
Modelado de una operacin concreta que resultamuy complicada. Uso intensivo de transiciones
(simples o paralelas) y de estados de accin.
-
8/14/2019 Clase de UML
90/173
Diagrama de
Componentes
-
8/14/2019 Clase de UML
91/173
Diagrama de componentes
Los diagramas de componentes
describen los elementos fsicosreemplazables del sistema y susrelaciones
Muestran las opciones de realizacinincluyendo cdigo fuente, binario yejecutable
-
8/14/2019 Clase de UML
92/173
Diagrama de componentes
Los componentes representan todos los tipos
de elementos software que entran en lafabricacin de aplicaciones informticas.Pueden ser simples archivos, libreras,bibliotecas cargadas dinmicamente, etc.
Las relaciones de dependencia se utilizan enlos diagramas de componentes para indicarque un componente utiliza los serviciosofrecidos por otro componente
-
8/14/2019 Clase de UML
93/173
Diagrama de componentes
-
8/14/2019 Clase de UML
94/173
Diagrama de componentes
Tcnicasde modelado:
Modelado de ejecutables y bibliotecas. Modelado de tablas, archivos y documentos.
Modelado y diseo de un API.
Modelado del cdigo fuente.
Planificacin de versiones ejecutables para suimplementacin con Nant.
-
8/14/2019 Clase de UML
95/173
Diagrama de
Despliegue
-
8/14/2019 Clase de UML
96/173
-
8/14/2019 Clase de UML
97/173
La vista de despliegue representa la disposicin de lasinstancias de componentes de ejecucin en instancias denodos conectados por enlaces de comunicacin.
Un nodo es un recurso de ejecucin tal como Dispositivos Procesadores Memoria
Los nodos se interconectan mediante soportesbidireccionales que pueden a su vez estereotiparse.
Diagrama de despliegue
-
8/14/2019 Clase de UML
98/173
-
8/14/2019 Clase de UML
99/173
-
8/14/2019 Clase de UML
100/173
Diagrama de despliegue
-
8/14/2019 Clase de UML
101/173
Diagrama de despliegue
Tcnicasde modelado:
Modelado de procesadores y dispositivos. Modelado de distribucin de componentes.
-
8/14/2019 Clase de UML
102/173
RUP: El Proceso
Unificado de Rational
-
8/14/2019 Clase de UML
103/173
Proceso Unificado de Rational
Orgenes Modelo original Objectory definido por Ivan
Jacobson (1987) Rational Software compra la empresa de
Objectory (1995)
Surge la primera versin de UML (1997)
Se publica la primera versin del ProcesoUnificado de Rational - RUP (junio 1998)
-
8/14/2019 Clase de UML
104/173
Casos de uso Dirigido por casos de uso
Se centra en la funcionalidad que el sistema debe poseer
para satisfacer las necesidades de un usuario (persona,sistema externo, dispositivo) que interactua con l
Casos de uso como el hilo conductor que orienta lasactividades de desarrollo
Casos de Uso
Anlisis
Recopilar,
Clarificar y
Validar los
requerimientos
Diseo
Realizar los
casos de uso
Pruebas
Verificar que se
satisfacen los
casos de uso
-
8/14/2019 Clase de UML
105/173
-
8/14/2019 Clase de UML
106/173
Modelo que implementa
Iterativo e incremental Descomposicin de un proyecto grande en mini-proyectos Cada mini-proyecto es una iteracin Las iteraciones deben estar controladas Cada iteracin trata un conjunto de casos de uso
Ventajas del enfoque iterativo Deteccin temprana de riesgos Administracin adecuada del cambio Mayor grado de reutilizacin Mayor experiencia para el grupo de desarrollo
-
8/14/2019 Clase de UML
107/173
EstructuraDinmica
Ciclo: cada ciclo una nueva versin del producto
Fase: Etapas de un ciclo que finalizan en un HITO
Iteracin: Proceso de ingeniera sobre unafuncionalidad limitada del sistema
Esttica - Flujos de trabajo Artefactos Actividades
Roles
-
8/14/2019 Clase de UML
108/173
Estructura
Roles QUIN?
Actividades CMO? Artefactos QU?
Flujo de Trabajo CUNDO?realiza
responsable dediseador diseo de casode uso
diagrama de
secuencia
-
8/14/2019 Clase de UML
109/173
Roles
Definicin del comportamiento yresponsabilidades de los participantes
Propietario de una serie de artefactos
Recurso Rol Actividad Artefacto
Diseador Diseo de Objetos DC
Analista Definicin de CU DCUDominio
Diseador Diseo de CU DS
Funcional
Patricia
JuanMnica
Pedro
-
8/14/2019 Clase de UML
110/173
Actividades
Unidad de trabajo que puede ejecutar un individuo en unrol especfico
Tiene un propsito claro y se expresa en trminos de
actualizar artefactos La granularidad de la actividad es generalmente de
horas o pocos das Ejemplos de actividades
Planear una iteracin (administrador del proyecto) Encontrar caso de uso y actores (analista del dominio) Revisin del diseo (probador)
-
8/14/2019 Clase de UML
111/173
Artefactos
Pieza de informacin producida, modificada yutilizada en un proceso
Productos tangibles del proyecto Utilizados por los roles como entrada para larealizacin de sus actividades Resultado de las actividades realizadas por los
roles
Metamodelo: Clase rol tiene como mtodos lasactividades y como parmetros los artefactos
-
8/14/2019 Clase de UML
112/173
Flujos de trabajo
Forma de describir significativamente la
secuenciencias de actividades que producenresultados y las interacciones entre cargos
En trminos de UML se puede utilizar:diagrama de actividades, de secuencia, decolaboracin
En RUP hay nueve tipos de flujos de trabajo De ingeniera
Negocio, Requerimiento, Anlisis, Diseo, Pruebas,Liberacin
De soporte
-
8/14/2019 Clase de UML
113/173
Dimensin dinmica
Concepcin Elaboracin Construccin Transicin
ciclofase
Iter. 1 Iter. 2 Iter. 3 Iter. 4 Iter. 5 Iter. 6
hito 1 hito 2 hito 3 hito 4
Hito: punto en el tiempo en donde se evaluan objetivos
logrados y se pueden tomardecisiones crticas
-
8/14/2019 Clase de UML
114/173
Desarrollo iterativo
Ciclo de
desarrollo 1
Ciclo de
desarrollo 2
Ciclo de
desarrollo n
Perfeccionar
el plan
Sincronizar
Artefactos
Anlisis Diseo Construccin Pruebas
Construccin
-
8/14/2019 Clase de UML
115/173
Fase de concepcin
Objetivo: definir la razn de ser y el alcance delproyecto. Estudio de oportunidad. Visin = QU + PARA QU + CUNTO
Actividades Especificacin de los criterios de xito del proyecto Definicin de los requerimientos Estimacin de los recursos necesarios Cronograma inicial de fases
Artefactos Documento de definicin del proyecto
-
8/14/2019 Clase de UML
116/173
Fase de elaboracin
Objetivo: establecer un plan de proyecto y unaarquitectura correcta del sistema
Actividades Anlisis del dominio del problema Definicin de la arquitectura bsica Anlisis de riesgos Planificacin del proyecto
Artefactos Modelo del dominio Modelo de procesos Modelo funcional de alto nivel Arquitectura bsica
-
8/14/2019 Clase de UML
117/173
-
8/14/2019 Clase de UML
118/173
XP: eXtreme
Programming
-
8/14/2019 Clase de UML
119/173
eXtreme Programming Es una metodologa gil
Diseada para entornos dinmicos
Pensada para equipos pequeos (hasta10 programadores)
Orientada fuertemente hacia lacodificacin
nfasis en la comunicacin informal,verbal
-
8/14/2019 Clase de UML
120/173
Valores que fomenta XP Comunicacin
Simplicidad
Retroalimentacin
Coraje
-
8/14/2019 Clase de UML
121/173
Roles
Programador(Programmer) Responsable de decisiones
tcnicas Responsable de construir el
sistema
Sin distincin entre analistas,diseadores o codificadores
En XP, los programadoresdisean, programan y realizanlas pruebas
Jefe de Proyecto(Manager)
Organiza y gua lasreuniones
Asegura condicionesadecuadas para elproyecto
Cliente (Customer) Es parte del equipo Determina qu construir
y cundo Establece las pruebas
funcionales
-
8/14/2019 Clase de UML
122/173
Roles Entrenador(Coach)
Responsable del proceso
Tiende a estar en unsegundo plano a medidaque el equipo madura
Encargado de
Pruebas (T
ester) Ayuda al cliente con
las pruebasfuncionales
Se asegura de quelas pruebasfuncionales sesuperan
Rastreador(Tracker)
-
8/14/2019 Clase de UML
123/173
Captura de requisitos HistoriasdelUsuario(User-Stories)
Establecen los requisitos del cliente
Trozos de funcionalidad que aportan valor
Se les asignan tareas de programacin conun n de horas de desarrollo
Las establece el cliente Son la base para las pruebas funcionales
-
8/14/2019 Clase de UML
124/173
Planificacin Planificacin por entregas (releases)
Se priorizan aquellas user-stories que el clienteselecciona porque son ms importantes para elnegocio
Entregas:
Son lo ms pequeas posibles Se dividen en iteraciones (iteracin = 2 o 3
semanas)
Estn compuestas por historias
A cada ro ramador se le asi na una tarea de
-
8/14/2019 Clase de UML
125/173
Programacin
La programacin de tareas se realiza porparejas
La pareja disea, prueba, implementa eintegra el cdigo de la tarea
Cdigo dirigido por las pruebas Cdigo modular, intentando refactorizar
siempre que se pueda
-
8/14/2019 Clase de UML
126/173
-
8/14/2019 Clase de UML
127/173
Prcticas El juego de la
planificacin
Entregas pequeas
Metfora
Diseo simple
Pruebas Refactoring
Programacin enparejas
Propiedad colectiva
Integracin contnua
Semana de 40 horas
Cliente in situ
Estndares deprogramacin
-
8/14/2019 Clase de UML
128/173
El juego de la planificacin
Decisiones de negocio (cliente): Alcance Cundo debe estar listo el producto para
que sea valioso en produccin? Prioridad Prioriza la incorporacin de las user-
stories
Composicin deentregas Qu se necesita para
que el negocio sea mejor antes de tener el sw? Fechasdeentrega Fechas cuando el software
funcionando causara una gran diferencia
-
8/14/2019 Clase de UML
129/173
El juego de la planificacin
Decisiones tcnicas (programadores y otros): Estimaciones Cunto tiempo tardar en
implementarse una user-story? Consecuencias Tener en cuenta las
consecuencias tcnicas de determinadas decisionesde negocio
Proceso Organizacin del proceso y el equipo Planificacin detallada Dentro de una entrega,
qu
user-stories se realizan primero. Intentar trasladar los
segmentos de desarrollo ms arriesgados al
-
8/14/2019 Clase de UML
130/173
Cada entrega es lo ms corta posible: Contenga requisitos ms valiosos del sistema
(bsicos)
Reducen el riesgo mayor retroalimentacin desde elcliente, y ms frecuente
Minimizar el n de user-stories que componenuna entrega No realizar user-stories a medias
Entregas pequeas
-
8/14/2019 Clase de UML
131/173
Se diseala cosa ms simple que puedafuncionar
Uso de tarjetas CRC
Diseo de software correcto, es aquel que: Supera todas las pruebas
No tiene lgica duplicada Pone de manifiesto las intenciones importantes de
los programadores
Tiene el mnimo nmero de clases y mtodos
Diseo simple
-
8/14/2019 Clase de UML
132/173
Las pruebas unitarias se escriben ANTES que elcdigo
Pruebas automatizadas Permiten el desarrollo de proyectos de forma
rpida y segura Pruebas unitarias programadores
Pruebas funcionales
cliente Resultado Un programa cada vez ms seguro
Pruebas
-
8/14/2019 Clase de UML
133/173
NUnit
Framework para pruebas unitarias
Escritura de pruebas
Ejecucin de pruebas Hacer un Assert de los resultados
Mostrar los fallos o xitos
Mantener un cdigo que pase los tests
http://nunit.org/
-
8/14/2019 Clase de UML
134/173
Ejemplo de un test en NUnit
-
8/14/2019 Clase de UML
135/173
it j i d l t t
-
8/14/2019 Clase de UML
136/173
xito en ejecucin de los tests
-
8/14/2019 Clase de UML
137/173
Refactorizacin = Mejora del cdigo
Intentar eliminar complejidad
Cdigo duplicado Refactorizacin
Se plantea su aplicacin despus deimplementar cada user-story
Refactoring
-
8/14/2019 Clase de UML
138/173
C# Refactoring
Herramientas integradas con Visual Studio
Simplifican la refactorizacin del cdigo Mtricas para el anlisis del cdigo
http://www.xtreme-simplicity.net/
-
8/14/2019 Clase de UML
139/173
Integracin con Visual Studio
-
8/14/2019 Clase de UML
140/173
Mtricas de anlisis del cdigo
-
8/14/2019 Clase de UML
141/173
-
8/14/2019 Clase de UML
142/173
Toda el cdigo se escribe en parejas
Se produce cdigo de mayor calidad
Extiende el conocimiento
Se realiza el trabajo de 1 persona en casi la
mitad del tiempo y mejor (cuestionable)
Programacin en parejas
-
8/14/2019 Clase de UML
143/173
Cualquiera puede modificar el cdigo encualquier momento Se evitan cuellos de
botella en la codificacin
Todos asume las responsabilidades sobre elconjunto del sistema
Todos conocen algo sobre todas las partes yconocen muy bien aqullas en las que trabajan
Propiedad colectiva
-
8/14/2019 Clase de UML
144/173
El cdigo se integra y se prueba despus depocas horas
Existe una ordenador dedicado para laintegracin
Cada pareja integra su cdigo en dichoordenador
Integracin contnua
-
8/14/2019 Clase de UML
145/173
Cliente real = Aquel que usar el sistemacuando est en produccin
El cliente real debe estar con el equipo detrabajo: Responder preguntas
Resolver disputas Establecer prioridades Discutir mejoras
Cliente in situ
-
8/14/2019 Clase de UML
146/173
-
8/14/2019 Clase de UML
147/173
Patrones de diseo
software
Definicin
-
8/14/2019 Clase de UML
148/173
Definicin
Cada patrn describe un problema que
ocurre una y otra vez en nuestro ambiente,y luego describe el ncleo de la solucin aese problema, de tal manera que puedesusar esa solucin un milln de veces ms,
sin hacer jams la misma cosa dos veces(ChristopherAlexander)
Son soluciones reutilizables a problemasrecurrentes que encontramos durante el
Ventajas que ofrece el uso de
-
8/14/2019 Clase de UML
149/173
Ventajas que ofrece el uso de
patrones Disear cdigo orientado a objetos es
costoso, y disear cdigo orientado objetos
reutilizable an lo es ms Los patrones permiten a losprogramadores reconocer un problema einmediatamente determinar la solucin sintener que pararse a analizar el problema
primero Permiten trabajar a un nivel de abstraccin
mayor Aumentan la productividad, la reutilizacin
del cdigo y su consistencia
Ventajas que ofrece el uso de
-
8/14/2019 Clase de UML
150/173
j q
patrones Capturan la experiencia en diseo. Los
patrones se crean a partir de ejemplos
prcticos de diseo Utilizar patrones de diseo es reutilizar la
experiencia adquirida diseando
Estudiar los patrones existentes es unamanera de aprender cmo los expertosdisean sistemas
Los patrones definen un conjunto de trminos
Componentes que constituyen un
-
8/14/2019 Clase de UML
151/173
Componentes que constituyen un
patrn Nombre
Resumen o esencia de la solucin
Contexto al que se aplica
Razones para utlizar o no el patrn
Consideraciones de implementacin
Consecuencias e implicaciones de su uso Ejemplo de uso (Test Case)
Patrones relacionados
-
8/14/2019 Clase de UML
152/173
-
8/14/2019 Clase de UML
153/173
Clasificacin de los patrones Fundamentales De creacin De particin Estructurales De comportamiento De concurrencia
Fundamentales
-
8/14/2019 Clase de UML
154/173
Fundamentales
Son los patrones ms bsicos yfundamentales:
Muchos del resto de patrones utiliza al menosuno de ellos
Son tan bsicos que muchas veces no semencionan dndolos por supuestos
-
8/14/2019 Clase de UML
155/173
Delegate Interface Abstract superclass Interface + abstract class Immutable
Proxy
Fundamentales
-
8/14/2019 Clase de UML
156/173
Provee de una gua de cmo crear objetoscuando su creacin precisa de la toma dedecisiones: Las decisiones normalmente involucran la
determinacin de forma dinmica de qu claseinstanciar o a qu objeto delegar la responsabilidad
Estos patrones nos ayudan a estructurar y
encapsular las decisiones
De creacin
De creacin
-
8/14/2019 Clase de UML
157/173
De creacin
Factory Builder Prototype Singleton Object pool
De particin
-
8/14/2019 Clase de UML
158/173
De particin
Siguen el paradigma de divide yvencers
Nos proporcionan la gua de cmoparticionar las clases e interfaces para llegara un buen diseo
De particin
-
8/14/2019 Clase de UML
159/173
De particin
Filter
Composite
Read-only interface
Estructurales
-
8/14/2019 Clase de UML
160/173
Estructurales
Describen las formas ms comunes enlas que diferentes tipos de objetos pueden
organizarse para trabajar conjuntamente
Estructurales
-
8/14/2019 Clase de UML
161/173
Estructurales
Adapter Iterator Bridge Faade Flyweight
Dynamic linkage Virtual proxy Decorator Cache management
D i
-
8/14/2019 Clase de UML
162/173
De comportamiento
Patrones utilizados para organizar,gestionar y combinar comportamiento
D i
-
8/14/2019 Clase de UML
163/173
De comportamiento
Chain of responsibility
Command
Little language Mediator
Snapshot
Observer
State Null object
Strategy
Template method
Visitor
D i
-
8/14/2019 Clase de UML
164/173
De concurrencia
Patrones para la coordinacin deoperaciones concurrentes y que permiten
solucionar dos problemas principalmente: Recursos compartidos
Secuenciacin de operaciones
D i
-
8/14/2019 Clase de UML
165/173
De concurrencia
Single threaded execution
Lock object
Guarded suspension Balking
Scheduler
Read/Write lock
Producer-consumer
Two-phase termination
Double buffering
Asynchronous processing
Future
-
8/14/2019 Clase de UML
166/173
Arquitecturas dirigidas
por modelos (MDA)
-
8/14/2019 Clase de UML
167/173
PIM, PSM y transformaciones enMDA
-
8/14/2019 Clase de UML
168/173
MDA
Reglas de transformacin
Modelo especfico(PSM)
Modelo independiente de la plataforma(PIM)
Modelo especfico(PSM)
-
8/14/2019 Clase de UML
169/173
-
8/14/2019 Clase de UML
170/173
Herramientas de
apoyo al modelado
Herramientas de apoyo ald l d
-
8/14/2019 Clase de UML
171/173
Herramientas comerciales generales: Borland Together IBM Rational Suite
Herramientas libres o con versiones bsicasgratuitas: Argo UML Poseidon
Umbrello Eclipse UML2 Eclipse Omondo
Integracin con los IDEs existentes
modelado
Ayuda a la generacin de
-
8/14/2019 Clase de UML
172/173
Herramientas con soporte de ingenierainversa
Herramientas de generacin en un solo sentido Herramientas de soporte MDA:
Together AndroMDA
cdigo
-
8/14/2019 Clase de UML
173/173