Curso de UML Actividad 4 Diagramas de Clases, de objetos y de Estructura compuesta Dra. Anaisa Hernández González.

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Fundamentos de Diseño de Software INFT.1
TECNICATURA UNIVERSITARIA EN INFORMATICA
Diagrama de Colaboración
Tomado de:
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Arquitectura CLARO-TECNOTREE
Introducción a la Orientación a Objetos
Modelos de Datos Modelado y Diseño de Bases de Datos
Prof. César Luza Montero
Tipo de Dato Abstracto Tipos de datos:
Etapas y actividades en el desarrollo OO basado en UML
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
LENGUAJE UNIFICADO DE MODELADO UML
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
POO (Programación Orientada a Objetos)
DIAGRAMA DE CLASE.
Análisis y Diseño orientado a objetos con UML.
Profesor: Miguel Angel Vidal
Introducción a la programación Orientada a objetos
Tema 10: Interfaces Antonio J. Sierra.
Modelado Arquitectónico
Análisis y Diseño Orientado a Objetos utilizando UML CAPITULO V DISEÑO DE SISTEMAS ORIENTADOS A OBJETOS.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Diagramas de Clase Angela Carrillo R..
Ingeniería de Software Orientado a Objetos
UNIDAD 3: “Desarrollo Orientado a Objetos con UML”
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
Bases de Datos Modelamiento.
Modelo de Análisis. Contenido Análisis Modelo de Análisis Modelo Conceptual.
Poder Expresivo de UML 2.0 para especificar arquitecturas de Software
Análisis y Diseño Orientado a Objetos utilizando UML
Programación Orientada Objetos
Modelos de Bases de Datos
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Ingeniería de software
Diagrama de Clases ACI 570.
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Bases de Datos.
Facultad de Ingeniería
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Ingeniería de Software
I NGENIERÍA DE S OFTWARE L ABORATORIO VI Diseño - Diagrama de clases Eduardo Saavedra A. 07/10/2009.
Clasificación de Diagramas
Introducción a la Programación Orientada a Objetos (POO)
Ingeniería del Software 2002
Ingeniería de Requisitos
Jairo Pinto Ing. sistemas
DIAGRAMA DE CLASES.
UML.
UML Casos de Uso (repaso) y Diagramas de Clase
Actividad 3 Diagrama de Actividades Dra. Anaisa Hernández González
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Análisis y Diseño de Aplicaciones 3º Educación Media Tecnológica
La Programación Orientado a Objetos
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Fundamentos de Ingeniería de Software
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
1 Qué es UML Es un Lenguaje de Modelado Unificado basado en una notación gráfica que permite especificar,construir, visualizar y documentar los objetos.
Modelado UML Diagrama de Clases
Transcripción de la presentación:

Curso de UML Actividad 4 Diagramas de Clases, de objetos y de Estructura compuesta Dra. Anaisa Hernández González

Diagrama de clases

¿Qué es un Diagrama de clases? Modela los conceptos del dominio de la aplicación, así como los conceptos internos generados como parte de la implementación de la aplicación. Es un paso esencial en el análisis OO. Es una colección de elementos declarativos del modelo (clases y sus relaciones), conectados como un grafo.

Diagrama de clases Un diagrama de clases es una colección estática de los elementos declaratorios del modelo, como clases, tipos y sus relaciones, conectados unos a otros y a sus contenidos.

<<estereotipo>> Clases Definición: Descriptor para un juego de datos con estructura, conducta, y relaciones similares. [UML] Ícono estereotipo Nombre Ventana <<estereotipo>> {abstracta} +tamaño: TTamaño #visibilidad: boleano = v +presentar() +ocultar() -conectar() Definición de abstracta Estereotipo Atributos Visibilidad Operaciones

Atributos de las Clases Definición: Identifican las características propias de cada clase. Son de tipos simples. Sintaxis: visibilidad nombre: tipo = valor_inicial {cadena de propiedades} Ventana <<estereotipo>> {abstracta} +tamaño: TTamaño #visibilidad: boleano = v +presentar() +ocultar() -conectar() Visibilidad: + pública # protegida - privada

Operaciones de las Clases Definición: El conjunto de operaciones describen el comportamiento de los objetos de una clase. Sintaxis: visibilidad nombre(lista_parametros) : expresion_tipo_retorno {cadena de propiedades} Ventana <<estereotipo>> {abstracta} +tamaño: TTamaño #visibilidad: boleano = v +presentar() +ocultar() -conectar() lista_parametros: una lista separada por comas de parámetros formales

Restricciones de las clases Invariantes: Siempre es cierta Se definen sobre los atributos DNI  Not Empty() Estudiante Nombre: string DNI: string Sexo: char Total de asignaturas matrículadas: integer Actualizar asignaturas matrículadas (Cantidad: string)

Restricciones de las clases Pre/Postcondiciones: Se definen sobre los métodos. Se chequean antes/después de que se ejecute. Se usan para validar entradas/Muestra cómo deben quedar los atributos después de ejecutarse el método. Estudiante Nombre: string DNI: string Sexo: char Total de asignaturas matriculadas: integer Actualizar asignaturas matriculadas (Cantidad: integer) Actualizar asignaturas matriculadas (cantidad:integer) Pre: Total de asignaturas matriculadas >= 0 Post: Total de asignaturas matriculadas <=0

Modelo de objetos del negocio

Modelo de objetos del negocio El modelo de objetos del negocio identifica todos los “ROLES” y “COSAS” en el negocio, los cuales son representados como clases en la Vista Lógica. Existen dos tipos diferentes de clases en el modelo de negocio: Trabajador del negocio Entidad del negocio

¿de dónde salen las clases?

Modelo de objetos del negocio Jefe de obra Económico Evalúa técnicamente, aprueba/rechaza Evalúa económicamente Proyecto

Diagrama de clases del análisis

Diagrama de clases del análisis 2. Atributos 3. Relaciones entre las clases Asociaciones Agregación/Composición Generalización/Especialización Tipos asociativos

Clases del análisis Se centran en los requisitos funcionales. Es más evidente en el contexto del dominio del problema porque representa conceptos y relaciones del dominio. Tiene atributos reconocibles en el dominio. Estereotipos en clases: Interfaz Control Entidad Esta clasificación da robustez al modelo porque los cambios al modelo tienden a afectar a un área en específico

Modelan la interacción entre el sistema y sus actores Clases de Interfaz CI_Aprobar/Rechazar proyecto Modelan la interacción entre el sistema y sus actores

Clases de interfaz Ejemplo Jefe de obra Económico Evaluar un proyecto económicamente técnicamente Jefe de obra Aprobar/rechazar proyecto

Clases de interfaz Ejemplo

Clases de Entidad Proyecto Modelan información que posee una vida larga y que es a menudo persistente. Modelan la información y el comportamiento asociado de algún fenómeno o concepto, como una persona, un objeto del mundo real o un suceso del mundo real.

EN PRINCIPIO, SE DEFINE UNA CLASE DE CONTROL POR CU Clases de control CC-Aceptar/Rechazar proyecto Coordinan la realización de uno o unos pocos CU, coordinando las actividades de los objetos que implementan la funcionalidad del CU: Definen el flujo de control y transacciones dentro de un CU. Delegan trabajo a otros objetos. EN PRINCIPIO, SE DEFINE UNA CLASE DE CONTROL POR CU

Clases de control Ejemplo

Niveles de abstracción Patrón Controlador

Resumiendo...Identificar clases del análisis 1. Identificar clases de entidad a partir del estudio de los CU del sistema y del modelo de objetos, extrayendo la información que debe utilizarse y manipularse en la realización del CU. 2. Identificar una clase de interfaz por cada actor que sea un sistema externo (SW y HW) y dejar que esta clase represente la interfaz de comunicación.

Resumiendo...Identificar clases del análisis 3. Identificar una clase de interfaz por cada actor humano y dejar que esta clase represente la ventana principal del interfaz de usuario con el cual interactúa el sistema. 4. Identificar una clase de control responsable del tratamiento de control y de coordinación de la realización del CU. CONSTRUIR EL DIAGRAMA DE CLASES DEL ANÁLISIS

Atributos Atributo : Características o propiedades de todas las instancias de la clase. Reglas para definirlos: Incluir aquellos atributos que se requieren según los requerimientos de información de los casos de uso en los que está involucrada la clase. Conservar atributos simples, los complejos sugieren relaciones entre clases. Ningún atributo como llave foránea.

Asociaciones Relaciones estructurales entre instancias que especifican que los objetos de un elemento están conectados con los objetos de otros. Asignatura Sustentación 0..n 1 TIENE +Evaluación Nombre de la relación Dirección en la que se lee el nombre Rol Cardinalidad

Multiplicidad de las relaciones Multiplicidad: Describe la cardinalidad de la relación, es el indicador de cuántos objetos pueden participar en una relación. Rango de las cardinalidades permisibles que un conjunto puede asumir. 0..* 1..1 0..1 1..* * 0..constante 1..constante constante..constante Ejemplo:

Rol en las relaciones Ejemplo: Rol: Un extremo puede ser explícitamente nombrado con una etiqueta, ésta describe la semántica de la relación en el sentido indicado (opcionalmente se documenta con un nombre). Ejemplo:

Navegabilidad de las relaciones Navegabilidad: Indica el grado de visibilidad que tienen las instancias de una clase respecto a otra. Indica la posibilidad de navegar unidireccionalmente en una asociación. Las asociaciones por defecto son bidireccionales si usted quiere especificar unidirección debe especificarlo con una flecha.

Asociación cualificada Reduce la multiplicidad del rol opuesto al considerar el valor del cualificador

Tipo asociativo PERSONA * 0..* CENTRO DE TRABAJO PUESTO Clase que modela una abstracción que se genera por la relación entre dos o más clases.

Agregación Compositiva o Composición Es una forma fuerte de agregación donde el tiempo de vida de la parte coincide con el todo. Las partes no deben sobrevivir fuera del todo. Operaciones de copia o eliminación al todo deben propagarse a las partes. La multiplicidad en el extremo del compuesto puede ser a lo sumo 1. Indica que únicamente el compuesto posee la parte y que se encuentra en una jerarquía de partes con estructura de árbol. Mano Dedo 0..7 Agregación compositiva o simplemente composición

Agregación compartida Se identifican con relaciones entre tipos que impliquen que uno “tiene a” otro. Es aquella, en que la parte puede estar en muchas instancias compuestas porque la relación entre el todo y sus partes no liga las vidas del todo y las partes. Cuando deja de existir la agregada no necesariamente dejan de existir las partes. ESTUDIANTE GRUPO 0..1 1..* tiene Agregación compartida o simplemente agregación

Generalización/Especialización Actividad que consiste en identificar aspectos comunes entre conceptos y definir las relaciones entre el supertipo (concepto general) y el subtipo (concepto específico). Concepto Pago en efectivo con tarjeta con cheque supertipo subtipos notación

Generalización/Especialización Restricciones predefinidas en UML: disjunta - no disjunta total (completa) - parcial (incompleta) Estática/dinámica {disjunta/incompleta/estática}

Relaciones entre las clases 1. Entre clases de un mismo tipo: Asociaciones Agregación/Composición Generalización/Especialización 2. Entre clases de diferentes tipos:

Restricciones XOR Una de las varias asociaciones potenciales que pueden ser instanciadas en cada momento para cualquier objeto. Reservación Suscripción Reservación individual 0..1 (XOR) 0..1 Ticket 3..6 1

Resumiendo … Asociación Generalización Realización Dependencia < < tipo > > Dependencia

Diagrama de clases del diseño

Clases del diseño Tienen operaciones, parámetros, atributos, tipos, etc. ; necesarios para su implementación en el lenguaje de programación elegido. <<entity>> Persona Nombre e-mail GetNombre() GetCorreo()

Diagrama de objetos

Diagrama de clases Diagrama de objetos Muestra la abstracción de una parte del dominio Diagrama de clases Representa una situación concreta del dominio Diagrama de objetos P:TProfesor A:TAsignatura 0..* 1..* 1 imparte dirige

Diagrama de objetos Se usa para representar cómo los objetos en un determinado escenario trabajan juntos, por lo que no están todas las clases ni todas sus características P:TProfesor A:TAsignatura 0..* 1..* 1 imparte dirige

Diagrama de estructura compuesta

Diagrama de estructura compuesta Diagrama que muestra la estructura interna de las clases y las relaciones que se establecen entre ellas en un contexto dado. Es una forma alternativa de mostrar las relaciones de asociación y agregación/composición. Concepto Nombre: tipo Nombre1: tipo1 conector puerto

Estructura interna de una clase Estructura interna de las clases y las relaciones. Contiene un conjunto de partes unidas por conectores Una parte tiene un tipo y una multiplicidad dentro de un contenedor. Partes Nombre: tipo Nombre1: tipo1 conector puerto multplicidad Contenedor

Estructura interna de una clase Un conector es una relación contextual entre las partes. Es un mecanismo fuerte que encapsula las relaciones entre el medio externo y las partes internas al establecer que la relación es por un puerto. Partes Nombre: tipo Nombre1: tipo1 conector puerto Contenedor

Estructura interna de una clase Un puerto es un tipo de interacción con el medio. Los mensajes que recibe un puerto, los pasa a las partes. Un puerto tiene un conjunto de interfaces que definen las operaciones que son permitidas con el medio externo. Nombre: tipo Nombre1: tipo1 conector puerto

Estructura interna de una clase Las interfaces pueden ser: Interfaz proporcionada: Conjunto de servicios disponibles de esa clase Interfaz requerida: Conjunto de servicios que esa clase necesita que le proporcione otro elemento  Nombre: tipo Nombre1: tipo1 conector puerto Nombre: tipo conector  Nombre1: tipo1

Diagrama de estructura compuesta Artículo empieza 1 1 desarrolla Introducción Cuerpo Artículo 1 Empieza :Introducción 1 Desarrolla: Cuerpo

Diagrama de estructura compuesta Artículo escrito 0..3 1 desarrolla Autor Cuerpo Artículo 0..3 Escrito: Autor 1 Desarrolla: Cuerpo

Diagrama de estructura compuesta CAJERO AUTOMÁTICO CC: Controlador del cajero 1 IC: Interfaz cajero * ISC: Servicio de tarjeta de crédito

Resumiendo … Los diagramas de clases resultan esenciales en la modelación OO pues son su columna vertebral. Representan clases y asociaciones. Muestran atributos y operaciones. Tipos de asociaciones: Asociaciones, Agregación y Generalización-especialización. Los diagramas de objetos muestran algunas de las clases y algunas de sus características. Los diagramas de estructura compuesta muestran las partes que contienen las clases y las relaciones entre ellas.