SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Modelado Estático
Básico
Diseño de Software Avanzado
Departamento de Informática
Objetos y Clases (I)
Dos niveles de abstracción:
— Objeto: representación de una entidad concreta con identidad, estado y
comportamiento (no siempre entidades físicas tangibles).
— Clase: especificación de un conjunto de entidades con estructura y
comportamiento comunes.
Ejemplos de clases:
— Objetos físicos: avión, persona, libro...
— Objetos lógicos: cuenta corriente, asignatura, número complejo.
— Objetos históricos: asiento bancario, reserva de habitación.
— Objetos tipo: producto a la venta, ingrediente de una receta.
Modelado Estático Básico 2
Diseño de Software Avanzado
Departamento de Informática
Objetos y Clases (y II)
Supresión opcional de compartimentos
Relación entre un objeto y su constructor:
Modelado Estático Básico 3
p1 : Punto
p1 : Punto
posicionX = 3
posicionY = -5
p1
: Punto
Punto
posicionX
posicionY
Punto
posicionX
posicionY
situar( )
mover( )
Punto
situar( )
mover( )
Punto
p1 : Punto
Punto
posicionX
posicionY
situar( )
mover( )
<<create>>Punto (...)
Constructor de la clase
Diseño de Software Avanzado
Departamento de Informática
Atributos y Operaciones (I)
Atributo: es una propiedad compartida por los objetos de una clase.
— Cada atributo tiene un valor (probablemente diferente) para cada objeto.
— Atributo derivado: propiedad redundante que puede ser calculada a partir
de otras.
• /area ( = base * altura).
• Pueden implementarse como operaciones.
Operación: es una función o transformación que se puede aplicar a
los objetos de una clase.
— Pueden ser invocadas por otros objetos, o por el mismo objeto.
— Método: especificación procedimental (implementación) de una
operación.
(...) : para indicar que la lista de atributos/operaciones no está
completa.
Modelado Estático Básico 4
Diseño de Software Avanzado
Departamento de Informática
Atributos y Operaciones (y II)
Notación (pueden suprimirse todos los elementos excepto el nombre):
[<visibilidad>] [‗/‘] <nombre-atributo> [‗:‘ <tipo> [ ‗[‗<multiplicidad>‗]‘ ]
[‗=‗ <valor-inicial>] ]
— saldo : Moneda = 0
— telefonoOficina: String[0..2]
[visibilidad] <nombre-operación> ‗(‗ [ <parámetro> [‗,‘ <parámetro>]* ]‗)‘
[‗:‘ <tipo-retorno>]
donde, <parámetro> ::= [‗in‘|‘out|‘inout‘] <nombre-parámetro> ‗:‘ <tipo>
[‗[‗<multiplicidad>‘]‘] [‗=‗ <valor-inicial>] ] (valor por omisión: ‗in‘)
— obtenerSaldo ( ) : Moneda
— marcar (numero : Telefono, reintentos : Integer)
— +crearVentana(posicion:Coordenadas,contenedor:Contenedor[0..1]):Ventana
— -ocultar()
Modelado Estático Básico 5
Diseño de Software Avanzado
Departamento de Informática
Visibilidad
Niveles de visibilidad (diferentes en cada lenguaje):
— public: visible para todas las clases (opción por defecto para
operaciones).
— package: visible para todas las clases que estén en el mismo paquete.
— protected: visible para las subclases.
— private: visible sólo para la clase (opción por defecto para atributos).
Modelado Estático Básico 6
UML Java VB.NET
Public Public Public
Package Protected
Protected Protected-Friend
friendly Friend Protected
Private Private Private
Diseño de Software Avanzado
Departamento de Informática
Tipos de Relaciones
Dependencia
El elemento dependiente requiere la presencia del
elemento independiente para su especificación o
implementación.
Los cambios en el elemento independiente pueden
afectar al elemento dependiente.
Asociación
Especificación de un conjunto de conexiones entre
instancias.
Representan la estructura y posibilidades de
comunicación del sistema.
Generalización
Relación entre un elemento general y un elemento
específico.
El elemento específico puede añadir información y debe
ser consistente con el elemento general.
Realización
Relación donde un elemento realiza o implementa la
especificación dada por otro elemento.
Modelado Estático Básico 7
Diseño de Software Avanzado
Departamento de Informática
Enlaces y Asociaciones
Asociación: especificación de
un conjunto de enlaces entre
objetos de las clases asociadas.
— Representa la estructura y el
comportamiento del sistema.
Enlace: conexión entre
objetos.
— Determina una tupla de objetos.
Instancia de una asociación.
— Estado de los objetos
enlazados.
— Estado del sistema.
hecho + posibilidad de
comunicación
Modelado Estático Básico 8
Artículo
Vendedor
Juan : Vendedor
Ana : Vendedor
Estatuilla : Artículo
Cuadro : Artículo
Espejo : Artículo
Diseño de Software Avanzado
Departamento de Informática
Nombre de Asociación y Nombre de Rol
Los nombres de asociación se pueden repetir en un modelo, excepto
para asociaciones entre las dos mismas clases.
Los nombres de rol se pueden repetir en asociaciones distintas, y
pueden ser iguales que los nombres de las clases asociadas.
Modelado Estático Básico 9
Artículo
Vendedor
subasta
Nombre de asociación Dirección del nombre
Artículo
Persona
vendedor artículo
Nombres de rol
Diseño de Software Avanzado
Departamento de Informática
Multiplicidad de la Asociación (I)
En una asociación binaria, la multiplicidad de un extremo de
asociación especifica el número de instancias destino que pueden
estar enlazadas con una única instancia origen a través de la
asociación.
Modelado Estático Básico
Cada Persona puede
vender opcionalmente
artículos
Artículo
Persona
vendedor artículo
1..1 0..*
Todo Artículo tiene que
tener obligatoriamente
un vendedor
Persona depende funcionalmente de Artículo
{ordered}
10
Diseño de Software Avanzado
Departamento de Informática
Multiplicidad de la Asociación (y II)
• Valores típicos:
– 0..1 cero o uno
– 1..1 uno y sólo uno (abreviado como ―1‖)
– 0..* desde cero hasta ―muchos‖ (abreviado como ―*‖)
– 1..* desde uno hasta ―muchos‖
• Otros valores:
– Rangos enteros: (2..*), (0..3), etc.
– Lista de rangos separados por comas: (1, 3, 5..10, 20..*), (0, 2, 4, 8), etc.
• Si no se indica multiplicidad se considera 1.
• Restricciones (entre llaves):
– ordered/unordered: las instancias van ordenadas / o no (valor por
omisión: {unordered}).
– unique/nonunique: los valores de las instancias deben ser únicos / o no
(valor por omisión: ‗unique‘). Se pondrá ‗nonunique‘ para permitir tener
varios enlaces que asocien el mismo conjunto de instancias.
Modelado Estático Básico 11
Diseño de Software Avanzado
Departamento de Informática
Navegabilidad de la Asociación (I)
La navegabilidad de una asociación binaria especifica la capacidad
que tiene una instancia de la clase origen de acceder a las instancias
de la clase destino por medio de las instancias de la asociación
que las conectan.
Acceder = nombrar, designar o referenciar el objeto para...
— leer o modificar el valor de un atributo del objeto (desaconsejable),
— invocar una operación del objeto (enviarle un mensaje),
— usar el objeto como parámetro o valor de retorno en un mensaje,
— modificar (asignar o borrar) el enlace con el objeto.
No confundir:
— Dirección del nombre de la asociación: asimetría lingüística.
— Navegabilidad o direccionalidad de la asociación: asimetría
comunicativa.
Modelado Estático Básico 12
Diseño de Software Avanzado
Departamento de Informática
Navegabilidad de la Asociación (y II)
Modelado Estático Básico 13
Navegabilidad no
especificada/asociación
bidireccional
Asociación unidireccional
Asociación bidireccional
Artículo
Vendedor
subasta
Artículo
Vendedor
subasta
Artículo
Vendedor
subasta
X
Asociación sin navegabilidad
Artículo
Vendedor
subasta
X X
Asociación con navegabilidad
en un sentido, y sin especificar
en el otro
Artículo
Vendedor
subasta
Diseño de Software Avanzado
Departamento de Informática
Diagramas de Clases y de Objetos (I)
Diagrama de clases
— Captura y especifica el vocabulario del sistema:
• Elementos: clases, atributos, operaciones...
• Relaciones: asociaciones, generalizaciones...
• Estructura del sistema, fundamento de su comportamiento
— Sugerencias para mejorar la comunicación:
• Nombres adecuados: clases, atributos, operaciones, asociaciones, roles.
• Distribución espacial de los elementos.
• Evitar cruces de líneas.
• Distinto nivel de detalle según el propósito y nivel de abstracción.
Diagrama de objetos
— Ilustra la estructura del sistema mediante situaciones particulares.
— ―Fotografía‖ del sistema: objetos, valores de atributos; enlaces.
— Las instancias deben conformarse a sus especificaciones.
• Objetos, enlaces  clases, asociaciones.
• Las especificaciones pueden estar representadas en distintos diagramas.
Modelado Estático Básico 14
Diseño de Software Avanzado
Departamento de Informática
Diagramas de Clases y de Objetos (y II)
Modelado Estático Básico 15
Acme : Sociedad
Emca :
SociedadLimitada
Ana : Persona
Clara : Persona
Pedro : Persona
accionista
empleado
empleado
accionista
Sociedad
Sociedad
Anónima
Sociedad
Limitada
Persona
accionista
empleado
0..*
0..*
0..*
0..*
sociedad
sociedad
Diseño de Software Avanzado
Departamento de Informática
Restricciones y Notas
Modelado Estático Básico 16
Los 8 dígitos compondrán un número que
se divide entre 23 y nos quedamos con el
resto de la división. El resto se
corresponde con un índice que nos dará
una letra de acuerdo al siguiente conjunto
de caracteres:
TRWAGMYFPDXBNJZSQVHLCKE
{ningún accionista
puede ser empleado}
Falta determinar
las subclases
de Sociedad
Sociedad Persona
accionista
empleado
0..*
0..*
0..*
0..*
sociedad
sociedad
Diseño de Software Avanzado
Departamento de Informática
Tipos Enumerados
Un tipo enumerado es un tipo de datos cuyos valores se enumeran
en el modelo como literales.
Modelado Estático Básico 17
Visibilidad
supervisor
gerente
administrador
<<enumeration>>
Vendedor
nif: String {regla nif}
nombreDescriptivo: String
nombreUsuario: String
contraseña:String
acceso: Visibilidad
Diseño de Software Avanzado
Departamento de Informática
Clases de Análisis y Clases de Diseño
Análisis = modelo conceptual
— Clases, atributos y operaciones corresponden a conceptos del dominio.
— No es fácil determinar las operaciones antes de realizar el modelo dinámico.
— Es habitual usar una notación simplificada al máximo.
Diseño = modelo del software
— Clases, atributos y operaciones corresponden a fragmentos de código.
— Nuevos artefactos que dependen del lenguaje y la plataforma de
implementación.
— Clases:
• Una clase de análisis puede ser implementada por varias clases de diseño.
• Ejemplo: Producto = VentanaProducto + DatosProducto
— Atributos:
• Unicidad (atributo identificador).
• Modificabilidad de los valores.
• Mecanismos de almacenamiento persistente.
— Operaciones:
• Se define la implementación de las operaciones mediante métodos.
Modelado Estático Básico 18
Diseño de Software Avanzado
Departamento de Informática

Más contenido relacionado

Similar a clases.pdf

Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)
esacre
 
Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)
esacre
 
Modelo_Entidad_Relacion.pdf
Modelo_Entidad_Relacion.pdfModelo_Entidad_Relacion.pdf
Modelo_Entidad_Relacion.pdf
a e
 
Analisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetosAnalisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetos
Gloria Gonzales
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
Antonio Palomares Sender
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Sergio Sanchez
 

Similar a clases.pdf (20)

Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)
 
Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)Modelos De Datos (Segunda Parte)
Modelos De Datos (Segunda Parte)
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
 
Bd Cap4 1
Bd Cap4 1Bd Cap4 1
Bd Cap4 1
 
Bd Cap 2
Bd Cap 2Bd Cap 2
Bd Cap 2
 
Bd Cap4 1
Bd Cap4 1Bd Cap4 1
Bd Cap4 1
 
Metodologia de la Programación II Modelo Estructural Avanzado
Metodologia de la Programación II Modelo Estructural  AvanzadoMetodologia de la Programación II Modelo Estructural  Avanzado
Metodologia de la Programación II Modelo Estructural Avanzado
 
Poo java v fin
Poo java v finPoo java v fin
Poo java v fin
 
Introducción a los Modelos De Datos
Introducción a los Modelos De DatosIntroducción a los Modelos De Datos
Introducción a los Modelos De Datos
 
Modelo Entidad Relacion.pptx
Modelo Entidad Relacion.pptxModelo Entidad Relacion.pptx
Modelo Entidad Relacion.pptx
 
Introduccion a los Modelos De Datos
Introduccion a los Modelos De DatosIntroduccion a los Modelos De Datos
Introduccion a los Modelos De Datos
 
Introducción a los Modelos De Datos
Introducción a los Modelos De DatosIntroducción a los Modelos De Datos
Introducción a los Modelos De Datos
 
Modelo_Entidad_Relacion.pdf
Modelo_Entidad_Relacion.pdfModelo_Entidad_Relacion.pdf
Modelo_Entidad_Relacion.pdf
 
Tema2
Tema2Tema2
Tema2
 
Analisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetosAnalisis y Diseño de Sistemas II Orientado a objetos
Analisis y Diseño de Sistemas II Orientado a objetos
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Bd capitulo ii
Bd capitulo iiBd capitulo ii
Bd capitulo ii
 
Mer
MerMer
Mer
 
3 e uml
3 e uml3 e uml
3 e uml
 

Último

metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
MedicinaInternaresid1
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
ssuserbdc329
 

Último (20)

procedimiento paran la planificación en los centros educativos tipo v(multig...
procedimiento  paran la planificación en los centros educativos tipo v(multig...procedimiento  paran la planificación en los centros educativos tipo v(multig...
procedimiento paran la planificación en los centros educativos tipo v(multig...
 
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docxAMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
 
COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
 
Los países por porcentaje de población blanca europea en AL (2024).pdf
Los países por porcentaje de población blanca europea en AL (2024).pdfLos países por porcentaje de población blanca europea en AL (2024).pdf
Los países por porcentaje de población blanca europea en AL (2024).pdf
 
CUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptx
CUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptxCUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptx
CUADRO COMPARATIVO DE ARCHIVOS Y CARPETAS.pptx
 
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombiadecreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
 
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILASistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
 
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdfReservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
 
Investigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdfInvestigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdf
 
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdfCALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
Cesar Vilchis Vieyra  Cesar Vilchis VieyraCesar Vilchis Vieyra  Cesar Vilchis Vieyra
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
 
EXPOSICION. PROCEOS SAW SEMIATUMATIZADO,
EXPOSICION. PROCEOS SAW SEMIATUMATIZADO,EXPOSICION. PROCEOS SAW SEMIATUMATIZADO,
EXPOSICION. PROCEOS SAW SEMIATUMATIZADO,
 
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptxP.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
 
variables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpointvariables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpoint
 
Principales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto RicoPrincipales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto Rico
 
6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx
 
Las marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdfLas marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdf
 

clases.pdf

  • 1. Modelado Estático Básico Diseño de Software Avanzado Departamento de Informática
  • 2. Objetos y Clases (I) Dos niveles de abstracción: — Objeto: representación de una entidad concreta con identidad, estado y comportamiento (no siempre entidades físicas tangibles). — Clase: especificación de un conjunto de entidades con estructura y comportamiento comunes. Ejemplos de clases: — Objetos físicos: avión, persona, libro... — Objetos lógicos: cuenta corriente, asignatura, número complejo. — Objetos históricos: asiento bancario, reserva de habitación. — Objetos tipo: producto a la venta, ingrediente de una receta. Modelado Estático Básico 2 Diseño de Software Avanzado Departamento de Informática
  • 3. Objetos y Clases (y II) Supresión opcional de compartimentos Relación entre un objeto y su constructor: Modelado Estático Básico 3 p1 : Punto p1 : Punto posicionX = 3 posicionY = -5 p1 : Punto Punto posicionX posicionY Punto posicionX posicionY situar( ) mover( ) Punto situar( ) mover( ) Punto p1 : Punto Punto posicionX posicionY situar( ) mover( ) <<create>>Punto (...) Constructor de la clase Diseño de Software Avanzado Departamento de Informática
  • 4. Atributos y Operaciones (I) Atributo: es una propiedad compartida por los objetos de una clase. — Cada atributo tiene un valor (probablemente diferente) para cada objeto. — Atributo derivado: propiedad redundante que puede ser calculada a partir de otras. • /area ( = base * altura). • Pueden implementarse como operaciones. Operación: es una función o transformación que se puede aplicar a los objetos de una clase. — Pueden ser invocadas por otros objetos, o por el mismo objeto. — Método: especificación procedimental (implementación) de una operación. (...) : para indicar que la lista de atributos/operaciones no está completa. Modelado Estático Básico 4 Diseño de Software Avanzado Departamento de Informática
  • 5. Atributos y Operaciones (y II) Notación (pueden suprimirse todos los elementos excepto el nombre): [<visibilidad>] [‗/‘] <nombre-atributo> [‗:‘ <tipo> [ ‗[‗<multiplicidad>‗]‘ ] [‗=‗ <valor-inicial>] ] — saldo : Moneda = 0 — telefonoOficina: String[0..2] [visibilidad] <nombre-operación> ‗(‗ [ <parámetro> [‗,‘ <parámetro>]* ]‗)‘ [‗:‘ <tipo-retorno>] donde, <parámetro> ::= [‗in‘|‘out|‘inout‘] <nombre-parámetro> ‗:‘ <tipo> [‗[‗<multiplicidad>‘]‘] [‗=‗ <valor-inicial>] ] (valor por omisión: ‗in‘) — obtenerSaldo ( ) : Moneda — marcar (numero : Telefono, reintentos : Integer) — +crearVentana(posicion:Coordenadas,contenedor:Contenedor[0..1]):Ventana — -ocultar() Modelado Estático Básico 5 Diseño de Software Avanzado Departamento de Informática
  • 6. Visibilidad Niveles de visibilidad (diferentes en cada lenguaje): — public: visible para todas las clases (opción por defecto para operaciones). — package: visible para todas las clases que estén en el mismo paquete. — protected: visible para las subclases. — private: visible sólo para la clase (opción por defecto para atributos). Modelado Estático Básico 6 UML Java VB.NET Public Public Public Package Protected Protected Protected-Friend friendly Friend Protected Private Private Private Diseño de Software Avanzado Departamento de Informática
  • 7. Tipos de Relaciones Dependencia El elemento dependiente requiere la presencia del elemento independiente para su especificación o implementación. Los cambios en el elemento independiente pueden afectar al elemento dependiente. Asociación Especificación de un conjunto de conexiones entre instancias. Representan la estructura y posibilidades de comunicación del sistema. Generalización Relación entre un elemento general y un elemento específico. El elemento específico puede añadir información y debe ser consistente con el elemento general. Realización Relación donde un elemento realiza o implementa la especificación dada por otro elemento. Modelado Estático Básico 7 Diseño de Software Avanzado Departamento de Informática
  • 8. Enlaces y Asociaciones Asociación: especificación de un conjunto de enlaces entre objetos de las clases asociadas. — Representa la estructura y el comportamiento del sistema. Enlace: conexión entre objetos. — Determina una tupla de objetos. Instancia de una asociación. — Estado de los objetos enlazados. — Estado del sistema. hecho + posibilidad de comunicación Modelado Estático Básico 8 Artículo Vendedor Juan : Vendedor Ana : Vendedor Estatuilla : Artículo Cuadro : Artículo Espejo : Artículo Diseño de Software Avanzado Departamento de Informática
  • 9. Nombre de Asociación y Nombre de Rol Los nombres de asociación se pueden repetir en un modelo, excepto para asociaciones entre las dos mismas clases. Los nombres de rol se pueden repetir en asociaciones distintas, y pueden ser iguales que los nombres de las clases asociadas. Modelado Estático Básico 9 Artículo Vendedor subasta Nombre de asociación Dirección del nombre Artículo Persona vendedor artículo Nombres de rol Diseño de Software Avanzado Departamento de Informática
  • 10. Multiplicidad de la Asociación (I) En una asociación binaria, la multiplicidad de un extremo de asociación especifica el número de instancias destino que pueden estar enlazadas con una única instancia origen a través de la asociación. Modelado Estático Básico Cada Persona puede vender opcionalmente artículos Artículo Persona vendedor artículo 1..1 0..* Todo Artículo tiene que tener obligatoriamente un vendedor Persona depende funcionalmente de Artículo {ordered} 10 Diseño de Software Avanzado Departamento de Informática
  • 11. Multiplicidad de la Asociación (y II) • Valores típicos: – 0..1 cero o uno – 1..1 uno y sólo uno (abreviado como ―1‖) – 0..* desde cero hasta ―muchos‖ (abreviado como ―*‖) – 1..* desde uno hasta ―muchos‖ • Otros valores: – Rangos enteros: (2..*), (0..3), etc. – Lista de rangos separados por comas: (1, 3, 5..10, 20..*), (0, 2, 4, 8), etc. • Si no se indica multiplicidad se considera 1. • Restricciones (entre llaves): – ordered/unordered: las instancias van ordenadas / o no (valor por omisión: {unordered}). – unique/nonunique: los valores de las instancias deben ser únicos / o no (valor por omisión: ‗unique‘). Se pondrá ‗nonunique‘ para permitir tener varios enlaces que asocien el mismo conjunto de instancias. Modelado Estático Básico 11 Diseño de Software Avanzado Departamento de Informática
  • 12. Navegabilidad de la Asociación (I) La navegabilidad de una asociación binaria especifica la capacidad que tiene una instancia de la clase origen de acceder a las instancias de la clase destino por medio de las instancias de la asociación que las conectan. Acceder = nombrar, designar o referenciar el objeto para... — leer o modificar el valor de un atributo del objeto (desaconsejable), — invocar una operación del objeto (enviarle un mensaje), — usar el objeto como parámetro o valor de retorno en un mensaje, — modificar (asignar o borrar) el enlace con el objeto. No confundir: — Dirección del nombre de la asociación: asimetría lingüística. — Navegabilidad o direccionalidad de la asociación: asimetría comunicativa. Modelado Estático Básico 12 Diseño de Software Avanzado Departamento de Informática
  • 13. Navegabilidad de la Asociación (y II) Modelado Estático Básico 13 Navegabilidad no especificada/asociación bidireccional Asociación unidireccional Asociación bidireccional Artículo Vendedor subasta Artículo Vendedor subasta Artículo Vendedor subasta X Asociación sin navegabilidad Artículo Vendedor subasta X X Asociación con navegabilidad en un sentido, y sin especificar en el otro Artículo Vendedor subasta Diseño de Software Avanzado Departamento de Informática
  • 14. Diagramas de Clases y de Objetos (I) Diagrama de clases — Captura y especifica el vocabulario del sistema: • Elementos: clases, atributos, operaciones... • Relaciones: asociaciones, generalizaciones... • Estructura del sistema, fundamento de su comportamiento — Sugerencias para mejorar la comunicación: • Nombres adecuados: clases, atributos, operaciones, asociaciones, roles. • Distribución espacial de los elementos. • Evitar cruces de líneas. • Distinto nivel de detalle según el propósito y nivel de abstracción. Diagrama de objetos — Ilustra la estructura del sistema mediante situaciones particulares. — ―Fotografía‖ del sistema: objetos, valores de atributos; enlaces. — Las instancias deben conformarse a sus especificaciones. • Objetos, enlaces  clases, asociaciones. • Las especificaciones pueden estar representadas en distintos diagramas. Modelado Estático Básico 14 Diseño de Software Avanzado Departamento de Informática
  • 15. Diagramas de Clases y de Objetos (y II) Modelado Estático Básico 15 Acme : Sociedad Emca : SociedadLimitada Ana : Persona Clara : Persona Pedro : Persona accionista empleado empleado accionista Sociedad Sociedad Anónima Sociedad Limitada Persona accionista empleado 0..* 0..* 0..* 0..* sociedad sociedad Diseño de Software Avanzado Departamento de Informática
  • 16. Restricciones y Notas Modelado Estático Básico 16 Los 8 dígitos compondrán un número que se divide entre 23 y nos quedamos con el resto de la división. El resto se corresponde con un índice que nos dará una letra de acuerdo al siguiente conjunto de caracteres: TRWAGMYFPDXBNJZSQVHLCKE {ningún accionista puede ser empleado} Falta determinar las subclases de Sociedad Sociedad Persona accionista empleado 0..* 0..* 0..* 0..* sociedad sociedad Diseño de Software Avanzado Departamento de Informática
  • 17. Tipos Enumerados Un tipo enumerado es un tipo de datos cuyos valores se enumeran en el modelo como literales. Modelado Estático Básico 17 Visibilidad supervisor gerente administrador <<enumeration>> Vendedor nif: String {regla nif} nombreDescriptivo: String nombreUsuario: String contraseña:String acceso: Visibilidad Diseño de Software Avanzado Departamento de Informática
  • 18. Clases de Análisis y Clases de Diseño Análisis = modelo conceptual — Clases, atributos y operaciones corresponden a conceptos del dominio. — No es fácil determinar las operaciones antes de realizar el modelo dinámico. — Es habitual usar una notación simplificada al máximo. Diseño = modelo del software — Clases, atributos y operaciones corresponden a fragmentos de código. — Nuevos artefactos que dependen del lenguaje y la plataforma de implementación. — Clases: • Una clase de análisis puede ser implementada por varias clases de diseño. • Ejemplo: Producto = VentanaProducto + DatosProducto — Atributos: • Unicidad (atributo identificador). • Modificabilidad de los valores. • Mecanismos de almacenamiento persistente. — Operaciones: • Se define la implementación de las operaciones mediante métodos. Modelado Estático Básico 18 Diseño de Software Avanzado Departamento de Informática