Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEsther Ávila Belmonte Modificado hace 7 años
1
1 Repaso de UML Análisis y Diseño de Sistemas de Información II Enero de 2004
2
2 Objetivo Al finalizar el repaso los participantes recordarán el uso de todos los diagramas de UML para realizar modelos visuales orientados a objetos para generar proyectos de software de mayor calidad.
3
3 Contenidos del Taller 1. Introducción 2. Diagrama de Actividades 3. Modelo de Casos de Uso 4. El Modelo Conceptual y el Análisis de Sustantivos 5. Diagramas de Interacción 6. Diagrama de Clases 7. Diagrama de Estados 8. Modelo de Componentes 9. Modelo de Distribución
4
4 Introducción
5
Qué Necesita el Usuario
6
6 Qué Pidió el Usuario
7
7 Cómo lo Vio el Analista
8
8 Cómo se Diseñó
9
9 Cómo lo Escribió el Programador
10
10 Cómo Funciona el Sistema (en ocasiones...)
11
11 La Moraleja La moraleja de la historia Comunicación Efectiva comunicación multi- disciplinaria La Torre de Babel Cada participante maneja su propio lenguaje
12
12 El Proceso de Desarrollo “Escribir código es sólo una parte del total de esfuerzo de desarrollo”
13
13 Análisis Orientado a Objetos con UML
14
14 Diagramas de Actividad Modelado de Negocios y Comportamiento de Casos de Uso
15
15 Objetivo El alumno aprenderá a describir un proceso utilizando los diagramas de actividad Entenderá los elementos que conforman un diagrama de actividad Aprenderá a describir escenarios y procesos utilizando diagramas de actividad
16
16 Utilidad Modelar el flujo de trabajo de un proceso de negocio Modelar información de codificación específica (Operación de una Clase) Modelar la secuencia de actividades dentro de un proceso
17
17 Propósito Entender la estructura y dinámica de una organización Asegurar que los clientes, usuarios finales y desarrolladores tienen un entendimiento común de la organización Determinar requerimientos sobre el sistema que den soporte a la organización
18
18 Elementos Estados y Actividades Transición de Estados Sincronizaciones Decisiones Carriles Objetos y Flujos de Objetos
19
19 Estados y Actividades Estado Inicial Muestra el principio de un flujo de trabajo Actividad Representa el desarrollo de una tarea dentro del flujo de trabajo Estado Final Muestra el término de un flujo de trabajo en un diagrama de actividad Estado Inicial Actividad Estado Final
20
20 Transición Paso de una actividad a otra al ser completada Estado Inicial Estado Final Actividad 1Actividad 2
21
21 Sincronizaciones Ver un flujo de trabajo simultaneo Definen bifurcaciones y uniones Se representan mediante barras horizontales o verticales
22
22 Decisiones Lugar específico donde el flujo de trabajo puede ramificarse según una condición de guarda Pueden existir más de dos transacciones salientes, aunque la mayoría de las decisiones tendrán sólo dos
23
23 Carriles Útiles para modelar flujos de trabajo de negocio Similares a un objeto Indican responsable de ejecutar una actividad específica
24
24 Objetos y Flujos de Objetos Objeto Representan algo tangible Diagramar relaciones de entrada y salida entre actividades Flujo de Objeto Representa la relación entre una actividad y el objeto que la crea (como una salida) o usa (como una entrada)
25
25 Diagrama de Actividad
26
26 Ejercicio Modele un diagrama de actividad para el caso de estudio
27
27 Conclusiones El diagrama de actividades se utiliza para mostrar la secuencia de pasos en un proceso, en un caso de uso o en una operación Puede utilizarse para analizar y modelar procesos de negocio Permite mostrar los cambios de estados al entrar o salir de una actividad
28
28 El Modelo Conceptual y el Análisis de Sustantivos El Análisis del Dominio
29
29 Objetivos El alumno aprender á a identificar los conceptos del negocio y los datos que los definen. Aprender á a desarrollar un modelo conceptual para representar gr á ficamente los conceptos importantes de un dominio.
30
30 Modelo Conceptual Es la representaci ó n de conceptos en el dominio de un problema. Muestra los conceptos relevantes en el dominio de un problema. La identificaci ó n de los conceptos del negocio es la base para el desarrollo orientado a objetos. Su prop ó sito en esta fase consiste en clarificar el dominio o las reglas del negocio.
31
31 Elementos del Modelo Conceptual Los elementos que se muestran en un modelo conceptual son: Conceptos Atributos Asociaciones entre conceptos El artefacto que se utiliza en UML para representar el modelo conceptual es el diagrama de clases
32
32 Representación del Mundo Real Una característica básica de un modelo conceptual es que es una representación de cosas del mundo real, NO de elementos de software BaseDeDatosDeVenta Venta Fecha Total Venta Fecha Total Imprimir ( )
33
33 Concepto Es cualquier cosa, idea u objeto del mundo real PersonaEmpresa
34
34 Atributos de Conceptos Son los datos simples que representan las caracter í sticas de un concepto (objeto) Persona Nombre Edad Empresa Razón Social RFC
35
35 ¿Atributo o Concepto? Un error bastante común en los modelos conceptuales consiste en presentar los conceptos como atributos de otros conceptos. Si no pensamos en un atributo como algo simple, tal como un texto o un número, entonces lo más probable es que se trate de un concepto. Ante la duda es mejor ponerlo como concepto, en lugar de atributo. Dirección Calle Colonia Empresa Razón Social RFC
36
36 Llaves Foráneas como Atributos Los atributos no deberían de ser usados para relacionar conceptos en el modelo conceptual ¿¿¿Llaves Foráneas??? !! NO !! Tarjeta Clave NumeroCuenta Cuenta Numero Tarjeta Clave 11 Pertenece Tarjeta
37
37 Asociaciones entre Conceptos Muestran la relaci ó n l ó gica o f í sica que existe en el mundo real entre dos conceptos. Se puede nombrar a las asociaciones para clarificar el modelo Persona Nombre Edad Empresa Razón Social Dirección Emplea-a
38
38 Multiplicidad Describe cu á ntas instancias de un concepto (objeto) existen con respecto a otro objeto en una asociaci ó n en un momento dado. Persona Nombre Edad Empresa Razón Social Dirección Emplea-a1..*1
39
39 Multiplicidades ¿Cuántas instancias participan en la relación? exactamente 1 exactamente 3 desde 1 hasta 5 exactamente 3, 5 ó 10 cero o más 1 o más Concepto 1 3 1..5 Concepto 3,5,10 Concepto n * 1..*
40
40 Identificaci ó n de Conceptos Se obtienen a partir de casos de uso y documentos con informaci ó n del problema Puede utilizarse la t é cnica de an á lisis de casos de uso. Es mejor sobre especificar un modelo conceptual con conceptos muy granulares a que falten conceptos.
41
41 Análisis de Casos de Uso Es el proceso de examinar los casos de uso para descubrir objetos y clases para el sistema a desarrollar Selecciona un caso de uso Identificación de conceptos 1. Sacar una lista de los sustantivos 2. Clasificar los sustantivos en objetos, actores, clases, atributos o ninguno 3. Seleccionar conceptos o clases candidatos 4. Para los objetos abstraer sus clases correspondientes Representar los conceptos y atributos en un diagrama de clases
42
42 Lectura del Modelo Conceptual Una regla no escrita es que el modelo se lee de arriba hacia abajo y de izquierda a derecha Aerolínea PersonaVueloAvión 1 Emplea 1..* 1* Asignada-a *1 Asignado-a 1* Supervisa El nombre de la asociación comienza con mayúscula y si arma una frase se separa con guión
43
43 Glosario de T é rminos El glosario de t é rminos es un artefacto de RUP que sirve para especificar el significado de los t é rminos manejados en el proyecto Incluye la definici ó n de los conceptos y atributos Es un diccionario de t é rminos donde se describe de forma breve los t é rminos o conceptos manejados en el negocio. Es necesario para que tanto usuarios como desarrolladores manejen la misma terminolog í a.
44
44 Glosario de T é rminos ConceptoDefinición Empresa Entidad constituida legalmente que se crea para comercializar productos o servicios Empleado Persona que ofrece sus servicios a una empresa a cambio de una retribución económica Dirección Ubicación de la empresa, que consta de Colonia, Calle, Delegación y Ciudad
45
45 Descripci ó n de Actores Como parte del glosario de t é rminos se tiene que describir de forma breve a los actores. ConceptoDefinición Administrador Usuario del sistema que mantiene los catálogos de la empresa Gerente de Recursos Humanos Persona que dirige el área de RH y que está autorizada para realizar movimientos críticos del área en la empresa, tales como la generación de la nómina
46
46 Ejemplo Desarrollar el modelo conceptual del caso de estudio.
47
47 Conclusiones Un concepto es cualquier cosa idea u objeto El modelo conceptual es la representación de los conceptos del mundo real relevantes en el dominio Un concepto modelado para el sistema debe representar información útil dentro del contexto analizado Los atributos son los datos simples que describen al concepto Dos conceptos están asociados cuando existe una relación entre ellos en el contexto analizado
48
48 Conclusiones La multiplicidad entre dos conceptos indica el número de repeticiones de un concepto en relación al otro El análisis de sustantivos es la técnica utilizada para identificar posible conceptos del dominio a partir de los sustantivos identificados en los casos de uso y otros documentos El glosario de términos es el artefacto donde se describe y estandariza el significado de la terminología o conceptos del sistema a desarrollar
49
49 El Modelo de Casos de Uso El Eje de la Calidad
50
50 Objetivos El alumno aprenderá a describir el comportamiento general de un sistema por medio de casos de uso Entenderá qué es un actor y cómo representar su interacción con el sistema Comprenderá las formas de granularizar los casos de uso Conocerá los mecanismos de extensión de UML en los diagramas de casos de uso
51
51 Diagrama de Casos de Uso Muestra el Comportamiento del Sistema Muestra el Alcance del Sistema Interacciones con entidades externas Mantenimiento ATM Operador ATM Conducir Transacciones Bancarias Correr Reportes ClienteSist.Bancario
52
52 Elementos del Diagrama de Casos de Uso Actor Caso de Uso Asociación
53
53 Actor Actores No son parte del sistema, representan roles que un usuario puede jugar Intercambian información con el sistema Puede ser un recipiente pasivo de información Puede representar un humano, una máquina u otro sistema Se nombran generalmente con sustantivos en singular Cliente, vendedor, administrador, alumno, Sistema de nómina, etc.
54
54 Carlos saca dinero de su cuenta y le da mantenimiento al sistema 1 2 3 4 5 6 7 8 9 * 0 # Inserta tarjeta Operador Cliente Carlos como cliente Carlos como Operador Un Usuario/Dos Actores
55
55 Carlos saca dinero de su cuenta y Roberto saca de la suya 1 2 3 4 5 6 7 8 9 * 0 # Inserta tarjeta Cliente Carlos como cliente Dos Usuarios/Un Actor Roberto como cliente
56
56 Caso de Uso Casos de Uso Un caso de uso modela el diálogo entre los actores y el sistema Un caso de uso es iniciado por un actor al invocar cierta funcionalidad en el sistema Un caso de uso es un flujo de eventos completo y con significado para el usuario Un caso de uso debe proporcionar valor real al usuario Al unir todos los casos de uso se tienen todas las formas posibles de usar el sistema Se nombran generalmente con un verbo en infinitivo: Realizar venta, Cotizar seguro, Generar nómina, etc.
57
57 Mantenimiento ATM Operador ATM Conducir Transacciones Bancarias Correr Reportes ClienteSist. Bancario Cajero Automático
58
58 Granularidad de los Casos de Uso ¿Realizar Ventas es demasiado genérico? ¿Es suficientemente claro para los stakeholders? Realizar Venta Vendedor Aplicar Descuento Autorizar Crédito ?????
59
59 Estereotipos Mecanismos para extender el significado de los elementos de UML Algunos existentes en UML El desarrollador puede crear nuevos Se escribe entre “ > ” y se coloca junto al elemento de UML a extender >
60
60 Estereotipos para Casos de Uso Dentro de la especificaci ó n de UML el modelo de casos de uso incluye estereotipos para especificar con mayor claridad la relaci ó n entre los casos de uso >
61
61 Relaci ó n Include Indica que un caso de uso incluye dentro de su funcionalidad a otro caso de uso ¿ Es suficientemente obvio si el caso de uso Realizar Venta incluye la Autorizaci ó n de Cr é ditos o es necesario hacerlo expl í cito? Realizar Venta Vendedor Autorizar Crédito >
62
62 Caso de Uso Base e Inclu í do El Caso de Uso inclu í do forma parte del caso de uso base Realizar Venta Vendedor Caso de Uso Base Caso de Uso Incluído Autorizar Crédito >
63
63 Relaci ó n Extend Cuando un caso de uso extiende a otro caso de uso, significa que le agrega pasos o actividades adicionales, pero el caso de uso base est á completo a ú n si no existiera el que lo extiende Realizar Venta Vendedor Aplicar descuento >
64
64 Paquetes Los paquetes sirven para agrupar de una manera l ó gica elementos de UML y reducir la complejidad Casos de uso Clases Componentes
65
65 Paquetes de Casos de Uso NóminaAdministración Un paquete de casos de uso representa agrupación lógica de funcionalidad. Ejemplo: módulos, subsistemas, sistemas.
66
66 Ejercicio Desarrollar un diagrama de casos de uso con todos sus elementos para el caso de estudio. Actores Casos de uso Relaciones entre actores y casos de uso Relaciones > y > entre casos de uso
67
67 Conclusiones El diagrama de casos de uso muestra el comportamiento del sistema y las interacciones con las entidades externas Los tipos de relaciones entre casos de uso están definidos por los estereotipos extends e includes Un actor es una entidad externa que interactúa con el sistema Un caso de uso es un conjunto de interacciones entre el sistema y uno o más actores Los casos de uso se pueden agrupar en paquetes para reducir la complejidad y organizarlos en subsistemas y módulos
68
68 Documentación de Casos de Uso Flujos de Eventos y Glosario de Términos
69
69 Objetivos El alumno aprender á a documentar los requerimientos del sistema mediante el uso de flujos de eventos y escenarios Entender á la estructura de un flujo de eventos Comprender á la ventaja de los flujos de eventos sobre el enfoque basado en listas de requerimientos Comprender á el uso que tiene este artefacto para mejorar la comunicaci ó n entre las partes involucradas en el proyecto
70
70 Documentación de los Casos de Uso Los casos de uso se documentan con: Una breve descripción El propósito del caso de uso en unas cuantas líneas El flujo detallado de los eventos Descripción detallada de eventos Terminología y redacción simple orientada al negocio/usuario
71
71 Estructura de los Flujos de Eventos Las secciones que forman el flujo de eventos de un caso de uso: Precondiciones Flujo Principal Flujos Alternos Flujos Excepcionales Postcondiciones
72
72 Precondiciones Es el estado en que se encuentra el sistema antes de iniciar el caso de uso, y que es necesario para poder llevarlo a cabo exitosamente Generalmente son aspectos que no van a ser validados durante el caso de uso, sino que se dan por ciertos Ejemplo: Precondiciones para Retirar Efectivo: Que el cajero cuente con efectivo Que el cliente haya accesado a su cuenta Que haya conecci ó n con el sistema bancario central
73
73 Contenido del Flujo de Eventos Describe sólo los eventos que ocurren dentro del caso de uso y no lo que pasa en otros casos de uso Evita terminología vaga como por ejemplo, “información” y “etc.” El flujo de eventos debe describir: Cómo y cuándo comienza y termina el caso de uso Cuándo interactúa el sistema con el actor en el caso de uso Qué información es intercambiada entre un actor y el sistema No describir los detalles de la interface de usuario El flujo básico de eventos Cualquier flujo alterno
74
74 Cada caso de uso –Tiene un flujo primario, normal de transacciones, pasos o interacciones (el happy path) –Puede tener varios flujos alternos –Normalmente tiene flujos excepcionales de eventos para el caso de situaciones erróneas Tipos de Secuencias o Flujos Flujo principal Flujos excepcionales Flujos alternos
75
75 Post Condiciones Es el estado en el que debe quedar el sistema despu é s de haber llevado a cabo exitosamente un caso de uso En Retiro de Efectivo: La cuenta del cliente queda reducida con el monto retirado La transacci ó n queda registrada en el log del cajero
76
76 Usuarios de los Casos de Uso Clientes – validan que los desarrolladores comprendieron el problema Usuarios – clarifican sus ideas respecto al problema Desarrolladores – comprenden lo que el usuario espera del sistema a desarrollar Revisores – verifican la calidad de los requerimientos Analistas y diseñadores – base para el análisis y el diseño Tester – a partir de estos validan que el sistema hace lo que el cliente/usuario pidió Líder de proyecto – es la base para el plan de trabajo Documentador – lo usan como base aproximada de un manual de usuario
77
77 Prototipo GUI Facilita el levantamiento de requerimientos Al usuario y a los desarrolladores les ayuda a aterrizar y esclarecer ideas Reduce riesgos de requerimientos mal entendidos Realizarlos en paralelo con los casos de uso
78
78 El Prototipo y el Caso de Uso Caso de Uso: Cotizar Seguro de Vida Descripción: El caso de uso comienza cuando el ejecutivo registra los datos del asegurado, el sistema utiliza los parámetros de cotización para indicar el monto...
79
79 Ejercicio Desarrollar para el caso de uso especificado: Las precondiciones El flujo de eventos primario Los flujos de eventos alternos Un flujo excepcional Las postcondiciones
80
80 Conclusiones Los flujos de eventos son la forma en que se describen textualmente y a detalle los casos de uso Los flujos de eventos permiten especificar el funcionamiento del sistema Es uno de los principales artefactos de entrada utilizados por los diferentes stakeholders Los prototipos GUI facilitan la identificaci ó n de requerimientos y casos de uso, y ayudan a eliminar riesgos tempranamente
81
81 Diseño Orientado a Objetos
82
82 Diagramas de Interacción El Diagrama de Secuencia y de Colaboración
83
83 Objetivos Aprender cómo modelar la estructura dinámica de un sistema Aprender a desarrollar un diagrama de secuencia para modelar el comportamiento de los objetos en un sistema Aprender a desarrollar un diagrama de colaboración Entender las diferencias y similitudes entre los 2 tipos de diagramas de interacción
84
84 Diagrama de Interacción Son los artefactos de UML mediante los cuales se modelan las interacciones entre las clases para llevar a cabo (o realizar) un caso de uso, una parte de este o un escenario en particular. Es la representación gráfica de un flujo de eventos.
85
85 Tipos de Diagramas de Interacción Existen 2 tipos de diagramas de Interacción: Diagramas de Secuencia Diagramas de Colaboración Cada uno de estos diagramas se enfoca en ciertos aspectos especiales del sistema.
86
86 Diagramas de Interacción Diagrama de SecuenciaDiagrama de Colaboración
87
87 Diagrama de Secuencia Es el artefacto de UML que se utiliza para mostrar las interacciones entre los objetos, enfocándose en el orden o la secuencia de pasos del caso de uso.
88
88 Elementos del D. de Secuencia
89
89 Objetos y Clases Existen 3 formas de mostrar un objeto o clase en un diagrama de secuencia Únicamente el nombre del objeto o instancia nombre del objeto y clase asociada Únicamente el nombre de la clase
90
90 Línea de Vida Línea vertical punteada que representa la existencia de un objeto en un momento determinado. Es posible indicar la creación y destrucción del objeto. :Avion :Vuelo create destroy
91
91 Mensaje Las flechas que van de una línea de vida a otra son mensajes entre los objetos El objeto que recibe el mensaje es el servidor y el que envía el mensaje es el cliente Un mensaje puede corresponder a una operación en una clase o a un trigger en un diagrama de estados :Avion:Vuelo Asignar (IdAvion) Vuelo Asignar (IdAvion) VerificarSalida ()
92
92 Foco de Control Periodo de tiempo en el que un objeto está realizando una acción, ya sea directamente o mediante un procedimiento subordinado Foco de control del procedimiento Asignar(IdAvion) Tiempo en que se está ejecutando Asignar(IdAvion) :Avion:Vuelo Asignar (IdAvion) :Plan Verificar (IdAvion)
93
93 Foco de Control Jerárquico Sirve para remarcar el control que tiene un subprocedimiento de un objeto :Avion:Vuelo Asignar (IdAvion) Foco de control del procedimiento Asignar(IdAvion) Tiempo en que se ejecuta VerificarSalida VerificarSalida ( )
94
94 Notación de Mensajes [predecesor]+[condición de guardia]+[variable :=]+mensaje (parámetros) :Avion:Vuelo 1. blnVueloAbierto:= FueAbierto (IdVuelo:Integer):Boolean 1.1 VerificarSalida ( ) 2. [blnVueloAbierto] Asignar (IdAvion)
95
95 Numeración de Mensajes Enteros secuenciales Jerárquicos :Cajero:Cuenta 1. AplicarRetiro ( ) 3. CrearTransaccion ( ) :PersCuenta 2. ValidarCuenta ( ) :Cajero:Cuenta 1. AplicarRetiro ( ) 1.2. GuardarTransaccion ( ) :PersCuenta 1.1. ValidarCuenta ( )
96
96 Numeración de Mensajes Sin numeración Alternativos :Cajero:Cuenta AplicarRetiro ( ) CrearTransaccion ( ) :PersCuenta ValidarCuenta ( ) :Cajero:Cuenta 1. AplicarRetiro ( ) 1.1b. [Not NIPValido]CrearTransaccion ( ) :PersCuenta 1.1a. [NIPValido]ValidarCuenta( )
97
97 Mensajes Iterativos Para expresar que un mensaje se envía repetidamente al objeto receptor se utiliza un ‘*’ :POST:Venta 1*: li:= siguienteRenglonVenta():RenglonVenta :POST :Venta 1*: [i:=1..10]li:= siguienteRenglonVenta():RenglonVenta
98
98 Mensajes Mensaje Llamada a procedimiento Retorno de una llamada a procedimiento AsignarVuelo (IdVuelo) Verificar edad del empleado AsignarVuelo (IdVuelo)
99
99 Relación entre el Diagrama de Secuencia y el de Clases
100
100 Ejercicio Desarrollar el diagrama de secuencia del caso de uso especificado.
101
101 Diagrama de Colaboración Al igual que el diagrama de secuencia modela las interacciones entre las clases, y entre actores y clases en un caso de uso o escenario. A diferencia de los diagramas de secuencia que dan más énfasis al orden de los pasos, este se enfoca más en la parte estructural o la relación entre las clases.
102
102 Diagrama de Colaboración Ligas
103
103 Objetos y Clases Indica el objeto y/o clase que interviene en la interacción Puede estar descrito de 3 formas diferentes: :Clase Objeto Objeto:Clase
104
104 Colecciones de Objetos En el diagrama de colaboración las colecciones de objetos aparecen gráficamente con la siguiente notación Representan grupos de objetos con multiplicidad mayor a uno
105
105 Colecciones de Objetos Colección en Diagrama de Clases Colección en Diagrama de Colaboración
106
106 Ligas Sirve para indicar que dos objetos pueden realizar interacciones entre sí Junto a la liga se indica cada uno de los mensajes que se envían los objetos
107
107 Mensajes Es una llamada de un objeto a otro Se coloca junto a la liga entre dos objetos Una liga puede servir como medio para transmitir más de un mensaje Un mensaje puede representar una operación del objeto receptor Un mensaje puede ser reflexivo, cuando el cliente y el servidor es la misma clase
108
108 Analogías Diagrama de SecuenciaDiagrama de Colaboración
109
109 Ejercicio Desarrollar el Diagrama de Colaboración del caso de uso especificado.
110
110 Conclusiones Los diagramas de interacción muestran la forma en que se da la comunicación entre las clases participantes en un caso de uso o escenario. Existen 2 tipos de diagramas de interacción: de secuencia y de colaboración. Cada uno de los tipos de diagramas de colaboración se enfoca a aspectos específicos de la colaboración entre los objetos.
111
111 El Diagrama de Clases La Estructura Estática del Sistema
112
112 Objetivos Conocer los elementos de UML para modelar un diagrama de clases El alumno podrá desarrollar un diagrama de clases con base en los artefactos generados durante el análisis El alumno conocerá los elementos de un diagrama de clases
113
113 Diagrama de Clases Es el artefacto principal en el desarrollo orientado a objetos Muestra las clases en las que se implementará el sistema, sus relaciones, atributos y operaciones
114
114 Elementos en un Diagrama de Clases (1/2) Clases Atributos Operaciones Scope o alcance de atributos y operaciones
115
115 Elementos en un Diagrama de Clases (2/2) Relaciones Elementos de las Asociaciones y Agregaciones Navegabilidad Roles Multiplicidad Visibilidad entre clases
116
116 Atributos Descripción de un dato que define a una clase El atributo debe tener especificado un nombre, tipo de dato y scope Cada objeto instanciado de una clase tiene su propio valor para el atributo
117
117 Operaciones Especificación de una transformación o query que puede ser solicitado a un objeto Consta de un nombre y una serie de parámetros (firma de la operación) Un método es la implementación de una operación
118
118 Scope de Atributos y Operaciones Es la visibilidad que tienen las clases hacia los atributos y operaciones de una clase con la cual están relacionadas. Existen 3 tipos de scope: Público Privado Protegido
119
119 Control de Acceso y Encapsulamiento El control de acceso se emplea para reforzar el encapsulamiento
120
120 Especificación del Control de Acceso Se pueden usar símbolos de acceso en una clase para indicar la accesibilidad a sus atributos y operaciones + Acceso Público # Acceso Protegido - Acceso Privado El acceso es concedido, de manera explícita, por la misma clase y no forzado por el cliente
121
121 Especificación del Control de Acceso Curso - maxAlumnos - Nombre + agregarAlumno () + estaLleno () # determinarTamañoCurso ()
122
122 Tipos de Relaciones entre Clases Asociación Agregación y Composición Generalización Dependencia Curso Diplomado Modulo Alumno
123
123 Asociación Es la relación más simple entre dos clases Indica que 2 clases pueden verse o solicitar sus servicios
124
124 Clases Asociación Una clase asociación contiene información perteneciente a un vínculo entre objetos Alumno Curso 3..10 4 Calificación Promedio
125
125 Roles En términos de análisis indica el rol que toma una clase con respecto a otra en una relación de asociación En términos de implementación es el nombre de la instancia u objeto que se utilizará para solicitar los servicios de la clase y para asignarle valores a sus atributos
126
126 Navegabilidad La asociación sin flechas indica que ambas clases pueden verse y comunicarse entre sí Pero, en ocasiones no es necesario eso, sino que una sola clase es la que requiere comunicarse con la otra, en este caso indicamos que existe navegabilidad hacia un solo lado por medio de una punta de flecha al final de la asociación
127
127 Agregación Es una clase especial de asociación donde una clase “contiene” a otra clase, o donde una clase “es parte de” otra clase Un Motor “contiene” Válvulas (o las válvulas son parte del motor)
128
128 Composición Es un tipo de agregación más sólido donde las partes sólo existen cuando existe el contenedor Una mano está compuesta de dedos Si la mano desaparece los dedos no sirven de nada Sólo puede ser parte de un contenedor
129
129 Herencia Es una relación donde una clase es un tipo especial de otra clase. Es decir, tiene todas las características (atributos, operaciones y relaciones) de la súperclase más otras especiales Un carro es un tipo especial de transporte Existen dos formas de identificar la herencia: Generalización Especialización
130
130 Generalización Cuando obtenemos características comunes de varias clases para crear una súperclase de la cual van a heredar todas las subclases las características comunes Carro Motor Llantas Barco Motor Aspas
131
131 Generalización Transporte Motor Carro Llantas Barco Aspas
132
132 Especialización Es la técnica mediante la cual se identifica que una clase puede comportarse o tener características diferentes dependiendo de cierta situación o condición Identificamos cuáles son las características que nunca cambian y las dejamos en una súperclase, y las características especiales las ponemos en nuevas clases llamadas subclases Transporte Motor Llantas Aspas Transporte Motor Carro Llantas Barco Aspas
133
133 Dependencia Es un tipo de relación menos duradera que una asociación o una agregación La comunicación sólo es posible en momentos específicos de la clase dependiente (p.ej. cuando instancía o recibe como parámetro a la 2a clase)
134
134 Visibilidad Existen cuatro opciones de visibilidad Global El objeto servidor es un objeto global Parámetro El objeto servidor es un parámetro de una operación del objeto cliente Local El objeto servidor se declara localmente Campo El objeto servidor es un campo contenido en el objeto cliente
135
135 Visibilidad Indica cómo y bajo que circunstancias pueden comunicarse dos clases relacionadas VisibilidadTipo de Relación Globaldependencia Por parámetrodependencia Localdependencia Por campoasociación, agregación o composición
136
136 Elaboración del Diagrama de Clases Identificar operaciones y su scope (usar d. de interacción) Identificar atributos con su tipo de dato y scope Identificar relaciones entre clases (usar d. de interacción) Organizar clases en paquetes lógicos
137
137 Información en Diagrama de Interacción El diagrama de interacción es uno de los productos de entrada más importantes para elaborar el de clases Pasos para Refinar el Diagrama de Clases a partir del de interacción Convertir mensajes en operaciones Definir scope de las operaciones Decidir visibilidad requerida entre 2 clases comunicándose en el d. De interacción Si es global, local o por parámetro mostrar una dependencia en el d. De clases Si es por campo Identificar si es una relación de un todo con sus partes Si la parte, sólo es “parte” en una relación de composición, marcarla como composión Si no marcarla como agregación Si no, marcarla como asociación Mostrar la multiplicidad, navegabilidad y rol
138
138 Paquetes de Clases Las clases se pueden agrupar lógicamente en paquetes Las clases que se agrupan son las que guardan una relación cercana entre sí, ya sea de funcionalidad o de datos Estos grupos o paquetes lógicos de clases son los que suelen convertirse en componentes
139
139 VentasEmpresaNómina Paquete de Clases EmpleadoEmpresa Dirección Venta Nómina Producto Cliente Impuestos Factura
140
140 Ejercicio Desarrollar el diagrama de clases del caso de estudio.
141
141 Conclusiones El diagrama de clases muestra la estructura estática del sistema Un diagrama de clases muestra las clases y sus relaciones Existen diferentes tipos de relaciones y visibilidad entre las clases Las clases se pueden agrupar lógicamente en paquetes para reducir la complejidad
142
142 Diagrama de Estados
143
143 Objetivos Aprenderá a modelar los posibles estados de una clase por medio de un diagrama de transición de estados Entenderá el comportamiento de un sistema a partir de sus cambios de estado Podrá interpretar el diagrama de estados en código
144
144 Definición El diagrama de estados muestra: La biografía de un objeto Los eventos que causan la transición de un estado a otro Las acciones resultantes de un cambio de estado Muestra todos los posibles estados de un objeto
145
145 Ejemplos Simples
146
146 Estado Un estado es una condición o situación en la vida de un objeto durante la cual satisface alguna condición, realiza algunas actividades o está en espera de algún evento
147
147 Elementos Estados Transiciones Eventos Condiciones de Guarda Acciones Estados Anidados Historia
148
148 Estado Es una de las posibles condiciones en la que un objeto puede existir y está determinada por una de las 3: Valores de atributos Espera de algún evento Ejecución de alguna acción Nombre único a nivel de clase o a nivel de superestado Estados con el mismo nombre en un diagrama representan el mismo estado Abierto
149
149 Estados Especiales o Pseudoestados Estado Inicial. Un pseudo estado que indica el primer estado que toma un objeto cuando es creado Es obligatorio Sólo se permite uno Estado Final Indica el final de la vida de un objeto Es opcional Puede existir más de uno Inicializando do/ Inicializar el objeto curso RegistroCompletado do/ Generar lista del curso
150
150 Transición de Estado Es un cambio del estado original a un estado sucesor como respuesta a un estímulo El estado sucesor puede ser el estado original En respuesta a un evento Al cumplirse una condición Abierto entry/ Registrar un alumno Cerrado do/ Reportar que el curso esta cerrado agregarAlumno [ numAlumnos = 10 ] evento (argumentos) [condición] / acción ^ objetivo.enviarEvento (argumentos)
151
151 Eventos Es una ocurrencia que sucede en un instante de tiempo dado El estado de un objeto determina la respuesta a diferentes eventos Inicialización Operación Apagada Apagar PC Encender PC
152
152 Condición de Guarda Es una expresión Booleana sobre el valor de los atributos de un objeto que se debe cumplir para que se dé la transición de estado Abierto Cerrado agregarAlumno [ numAlumnos = 10 ]
153
153 Acciones Es una operación que puede estar asociada a una transición o a un estado Transición Instantáneas No interrumpibles Estado No instantáneas Interrumpibles Se ejecutan a la entrada, durante, a la salida o al ocurrir un evento. Abierto Cerrado agregarAlumno [ numAlumnos = 10 ]
154
154 Estados Anidados o Compuestos Reducir la complejidad El superestado anida subestados Las transiciones comunes a los subestados se representan a nivel de superestado Anidamiento a cualquier nivel de profundidad Registrando Cerrado do/ Reportar que el curso esta cerrado NoAsignado do/ Asignar profesor al curso Abierto entry/ Registrar un alumno H agregarAlumno / numAlumnos = 0 [ numAlumnos = 10 ] agregarAlumno H
155
155 Historia Al regresar a un superestado, éste recuerda cual fue el último estado visitado e inicia ahí Si la característica de historia no es empleada, al regresar al superestado se ingresará siempre al estado inicial Registrando Cerrado do/ Reportar que el curso esta cerrado NoAsignado do/ Asignar profesor al curso Abierto entry/ Registrar un alumno H agregarAlumno / numAlumnos = 0 [ numAlumnos = 10 ] agregarAlumno H
156
156 Consideraciones Durante el análisis, se debe poner especial atención en las clases que presentan un comportamiento significativamente dinámico
157
157 Conclusiones Un diagrama de transición de estados sirve para mostrar los posibles estados y transiciones de un objeto. Una transición indica el posible cambio de un estado a otro cuando ocurre un evento y/o se cumple una condición. Los estados compuestos o súper estados agrupan un conjunto de estados.
158
158 El Modelo de Componentes
159
159 Objetivos El alumno aprenderá a modelar los componentes que conforman a un sistema Comprender qué es un componente de software Enlistar los beneficios de los componentes Aprender en qué consiste el desarrollo de software basado en componentes Apreciar los beneficios del desarrollo de software basado en componentes El alumno aprenderá a modelar la distribución del sistema en componentes de hardware
160
160 Desarrollo Basado en Componentes El desarrollo basado en componentes es la adopción e implantación de métodos, técnicas, herramientas, estándares y tecnologías de soporte para crear sistemas de software a partir de componentes predefinidos.
161
161 Componente de Software Los componentes son agregaciones de piezas más pequeñas de software (p.ej. Clases) Los componentes se utilizan como bloques de construcción de la estructura de un sistema Es una parte física reemplazable de un sistema de software que tiene una interfaz que proporciona acceso a sus servicios. Factura
162
162 Encapsulamiento en Componentes Un componente encapsula la complejidad de la implementación mostrando únicamente la interfaz. La interfaz es todo aquello que puede ser visto y controlado por el usuario para hacer uso del componente
163
163 Beneficios de los Componentes Aumenta la productividad de la gente Aumenta la calidad Disminuye el tiempo de entrega Fáciles de utilizar
164
164 Tipos de Componentes Existen diferentes tipos de componentes Librerías.cpp.h.java.class Ejecutables.exe.dll El tipo de componente se indica como estereotipo del componente > Factura
165
165 Diagrama de Componentes Producto Solicitud Cotizacion Proveedor Productos.dll Cotizacion.dll Catalogo Cotizador Compras.exe Conta.exe Sistema Contable ProductoCtrlSolicitud Cotizacion CtrlProveedores
166
166 Interfaces Un especificador de las operaciones externamente visibles de una clase, componentes u otras entidades como los paquetes Interface: IGestorVentas Servicios: Registrar Agregar Producto Imprimir Un componente puede implementar una o más interfaces. Se simboliza con un círculo asociado con una línea al componente Ventas IGestor Ventas
167
167 Implementación de Interfaces Equivale a una clase abstracta sin atributos ni métodos, únicamente contiene operaciones abstractas Características: Estructura interna no especificada No tienen implementación No tienen atributos, estados o asociaciones Sólo tienen operaciones (pero no métodos) Pueden tener relaciones de generalización
168
168 Realización La clase que se ocupa de la implementación de las operaciones de una interface tiene una relación de realización con la interface (o con la clase abstracta) El componente donde está la clase que la implementa también tiene una relación de realización
169
169 Dependencia entre Componentes Si un componente depende de otro significa que una clase del primer componente utiliza los servicios de una clase del segundo componente Factura depende de Productos Factura no funciona si no existe Productos, pero lo contrario si es posible Productos Factura
170
170 Clases dentro de Componentes Tips para seleccionar las clases de cada componente: Juntas forman un solo objeto más complejo desde la perspectiva del usuario Existe mucha dependencia entre ellas Si los servicios de una de las clases son requeridos por más de 1 componente entonces tal vez debería de estar en un componente aparte para poder ser utilizada por varios
171
171 Clases dentro de Componentes Si una clase “es parte” únicamente de una clase X y de ninguna otra, entonces debería de encontrarse en el mismo componente. El componente debe ofrecer pocos servicios y muy especializados hacia el exterior
172
172 Clases en Componentes Empleado Empresa Dirección Venta Nómina Producto Cliente Impuestos Factura
173
173 Componente: CtasCliente.dll CtasCliente
174
174 Comunicación con Interfaces
175
175 Ejercicio Agrupa las clases del caso de estudio y define los componentes en un diagrama de distribución
176
176 Conclusiones Un componente es una parte física reemplazable de un sistema Los componentes agrupan clases lógicamente relacionadas entre sí Los componentes pueden implementar una o varias interfaces Una interface es un conjunto de servicios con un nombre La dependencia entre componentes indica que una clase dentro de un componente utiliza a otra en otro componente
177
177 Diagrama de Distribución o Despliegue
178
178 Objetivos Que el alumno sea capaz de modelar la arquitectura física de un sistema Entenderá los elementos de un diagrama de distribución
179
179 Diagrama de Distribución Muestra la implementación física de los componentes de software en componentes de hardware, así como el tipo de conexión entre estos. Detalla: Capacidad de la red, especificaciones de servidores, requerimientos de hardware y demás información necesaria para distribuir el sistema propuesto
180
180 Nodos Los nodos se utilizan para representar cualquier servidor, estación de trabajo o cualquier otro hardware utilizado para distribuir los componentes en el ambiente de producción Ejemplo: Servidor 3PentiumIII, Cliente Pentium II, Servidor de BD.
181
181 Ligas Muestra la conexión entre dos dispositivos de hardware (nodos). Se le pueden agregar notas o estereotipos para indicar el tipo de conección y/o protocolo utilizado.
182
182 Distribución de Componentes Pueden combinarse el diagrama de componentes con el de distribución para mostrar qué componentes de software irán en qué nodo de hardware Algunas herramientas de modelado no soportan este tipo de notación
183
183 Ejemplo
184
184 Dispositivos Además de los nodos, que representan computadoras y/o procesadores en este diagrama pueden mostrarse los dispositivos especiales requeridos: Lectores ópticos, monitores, sensores, etc. Se conectan mediante ligas al nodo que representa la computadora a la cual van conectados físicamente
185
185 Diagrama de Despliegue
186
186 Ejercicio: Desarrollar el Diagrama de Distribución para el caso de estudio.
187
187 Conclusiones El diagrama de distribución muestra la ubicación de los componentes de software en componentes de hardware El diagrama de distribución está compuesto de nodos y ligas Se puede mostrar en un nodo los componentes que corren en este
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.