Desarrollo de Sistemas - cs.uns.edu.ar

Post on 15-Oct-2021

3 views 0 download

Transcript of Desarrollo de Sistemas - cs.uns.edu.ar

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

1

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Mg. María Mercedes Vitturini

[mvitturi@cs.uns.edu.ar]

Dpto. Cs. e Ing. de la Computación

Universidad Nacional del Sur

ANÁLISIS Y DISEÑO DE

SISTEMAS

Clase VII: Modelado

Estructural I

Primer Cuatrimestre 2013

AyDS2013 - Clase 7- MMV 2

Vistas de un Sistema- Repaso

– Vista del usuario: representa un sistema (producto) desde la vista

del usuario (actor).

– Vista estructural: modela la estructura estática

(clases, objetos y relaciones). – Vista del comportamiento: representa los aspectos dinámicos o de

comportamiento del sistema. Muestra las interacciones entre los

elementos estructurales.

– Vista de implementación: representa cómo se implementa el

sistema.

– Otras

• Un modelo es la representación abstracta de un problema.

• Los modelos de IS representan distintas vistas de un mismo problema:

La vista estructural Ejemplo – Venta Electrónica de Material Bibliográfico

• La funcionalidad será de uso público, pero se requiere que los

clientes se previamente se registren.

• Al registrar a un nuevo usuario se le solicitará nombre y apellido,

dirección de correo electrónico, la que servirá como

identificación del usuario, fecha de nacimiento, sexo y

opcionalmente un teléfono de contacto. Además se requerirá

que ingrese y confirme una clave a elección y copie el texto

variable que se muestra en pantalla.

• Al confirmar la registración, el sistema controlará si el usuario

existe, en cuyo caso notificará la situación.

• También se dará la opción de solicitar recuperar la contraseña

para los casos de olvido.

Identificar que corresponde a la vista de datos en este enunciado AyDS2013 - Clase 7- MMV 3

Modelos de Datos

Clasificación según el nivel de abstracción

• Modelos Conceptuales: de mayor abstracción. Se

usan en la etapa de Análisis y están orientados a

representar los elementos del problema y sus

relaciones.

• Modelos Lógicos: de abstracción intermedia.

Manejan estructuras simples que se usan a nivel de

desarrollo.

• Modelos Físicos: de menor abstracción. Son

estructuras de datos a bajo nivel usadas en la

implementación

AyDS2013 - Clase 7- MMV 4

+

-

Modelo de Datos Conceptual

Características

• Está orientado a la descripción de las

organización de los datos y restricciones de

integridad.

• Se usa en la etapa de análisis del problema.

• Busca representaciones abstractas para los

elementos del mundo real que intervienen en el

problema.

• Se abstrae de consideraciones y limitaciones de

implementación.

5 AyDS2013 - Clase 7- MMV

Métodos y Técnicas para MDC

MDC tradicionales:

• Existen distintas opciones en modelos de datos

– En análisis orientados a objetos: diagramas de

clases y sus variantes.

– En área de bases de datos: diagramas entidad

relación.

• Los MDC, según el caso, en general se usan como

medio de comunicación con expertos del dominio.

• Pueden resultar complejos para usuarios y clientes

que no están adiestrados en el uso de

abstracciones.

AyDS2013 - Clase 7- MMV 6

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

2

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

MDC Orientados a Objetos • El modelado datos conceptual de las metodologías

Orientadas a Objetos muestra la estructura estática de los

objetos y sus relaciones. Incluye:

– El diagrama de Conceptos de Negocio.

– El diagrama de Clases, como un esquema o molde para

describir todas las instancias posibles de los datos.

– El diagrama de Instancias o Diagrama de Objetos.

Describe un conjunto particular de objetos que se

relacionan según lo especifica el diagrama de clases.

• Un diagrama de clases se corresponde con infinitos

conjuntos de diagramas de instancias.

AyDS2013 - Clase 7- MMV 7

El Diagrama de Clases

Herramienta de UML que sirve para

modelar la Vista Estructural OO

Diagrama de Clases (DC)

• Modela la vista estática del sistema, no modela

comportamiento en el tiempo.

• El DC describe el caso general.

• Provee una notación gráfica que permite representar

las clases y sus relaciones.

• En un diagrama de clase se pueden reunir:

Únicamente conceptos del dominio,

así como aquellos que forman parte del diseño o implementación.

Modelos de dominio.

Modelos de diseño.

ANALISIS

DISEÑO

AyDS2013 - Clase 7- MMV 9 AyDS2013 - Clase 7- MMV

Ejemplo #1

Película

Número

Título

Genero

Duración

Estado

darNúmero ()

darEstado ()

Socio

Número

Apellido

Nombres

Domicilio

Estado

darNúmero ()

darApellido y Nombres ()

alquila

Diagrama de Clases del Dominio (vista parcial)

* *

10

AyDS2013 - Clase 7- MMV

Ejemplo #2

Película

Número

Título

Genero

Duración

Estado

darNúmero ()

darEstado ()

Socio

Número

Apellido

Nombres

Domicilio

Estado

darNúmero ()

darApellido y Nombres ()

Diagrama de Clases del Dominio Refinado (vista parcial)

*

11

Alquiler

Alq_número

Alq_Fecha

Alq_FechaDevol

Alq_Tipo

aTérmino ()

darTipo ()

*

Diagrama de Objetos (DO)

• El diagrama de objetos o diagrama de instancias

muestra objetos individuales y sus relaciones.

• Se puede usar para:

– Discutir con los usuarios.

– Plantear casos de prueba.

• Un diagrama de clases se corresponde con

infinitos diagramas de objetos.

AyDS2013 - Clase 7- MMV 12

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

3

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Diagrama de Objetos

Diagrama de Objetos o Diagrama de Instancias

Objetos

AyDS2013 - Clase 7- MMV 13

Objetos y Clases

Objeto – Es un concepto, abstracción, o cosa con

identidad y significado para el contexto de la

aplicación.

Clase – Reúne a un grupo de objetos con iguales:

– propiedades (atributos),

– comportamiento común (operaciones),

– tipos de relaciones con otros objetos comunes,

– y semántica común.

AyDS2013 - Clase 7- MMV 14

Representación Gráfica

Persona

nombre: string,

fecha_nac: date()

darNombre ()

darEdad ()

nombre

atributos

operaciones

Clase

Mario, (“24 /10/1985”): Persona

: Persona

Mario: Persona

Objetos

AyDS2013 - Clase 7- MMV

Mario: Persona

15

Clases

• Una clase del diagrama puede representar:

– Un concepto del mundo real (modelo del conceptual)

– Un concepto de implementación (modelo de diseño).

• El nombre de la clase debe identificar claramente

a los objetos que representa.

• Las clases conceptuales se nombran con un

sustantivo extraído del vocabulario del dominio

de la aplicación.

• Los objetos se agrupan en clases, para abstraer un problema. En la

abstracción radica el poder del modelado.

AyDS2013 - Clase 7- MMV 16

Atributos y Valores • Un atributo es una propiedad de la clase que tiene un

nombre y que describe el valor que mantiene cada objeto

dicha clase.

• El nombre de atributo es único en la clase.

• El valor que puede tomar un atributo está definido por el

dominio del atributo.

• Un atributo debe ser un valor de dato no un objeto.

• Los atributos pueden ir acompañado de más detalles como

tipo, valor por defecto, etc.

Persona

nombre: string,

edad: integer

Mario:Persona

nombre= Mario

edad= 22

Clase con atributos Objeto con valores

17 AyDS2013 - Clase 7- MMV

Operaciones

Operación: es una función o transformación que se

puede aplicar a, o por objetos de una clase.

• El comportamiento de la operación depende de la

clase de su destino.

• La misma operación se puede aplicar a varias clases.

Una operación se dice polimórfica si se implementa

de diferentes maneras en distintas clases.

• En UML las operaciones se listan en la tercer parte

de la caja.

AyDS2013 - Clase 7- MMV 18

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

4

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Operaciones - Ejemplos

Ventana

abrir()

cerrar()

mover()

dibujar()

manejarEvento()

Transacción

commit()

rollback()

tuvoExito()

PelículaVideo

reproducir()

iniciar()

parar()

rebobinar()

AyDS2013 - Clase 7- MMV 19

Métodos

Método – es la implementación de una operación

en una clase.

• Si la misma operación tiene distintos métodos

en diferentes clases, debe tener la misma

signatura, esto es, número y tipo de argumentos

y tipo de resultado.

• Cada operación puede ir acompañada de

detalles adicionales como tipo de los

argumentos y tipo del resultado.

AyDS2013 - Clase 7- MMV 20

Representación de clases

Nombre de la Clase

nombre_atributo_1: tipo_de_dato = valor_por_defecto

...

nombre_oper_1: (lista_argumentos) : tipo_resultado

...

Resumen de la Notación Gráfica para Clases:

AyDS2013 - Clase 7- MMV 21

Asociaciones y Links

Asociaciones y Links: son formas de establecer

relaciones o vínculos.

– Las asociaciones establecen relaciones entre

clases.

– Los links establecen relaciones entre objetos.

• Una asociación describe un conjunto de links

potenciales, de la misma manera que una clase

describe un conjunto de objetos potenciales.

• Generalmente aparecen como verbos en el

enunciado de un problema.

AyDS2013 - Clase 7- MMV 22

Asociaciones

Asociación: describe un grupo de links con

estructura común y semántica común.

• Las asociaciones son inherentemente bidireccionales (forward o inversa).

• La asociación puede tener nombre, que en general se lee en una dirección.

• No necesariamente se implementan ambas.

• Ejemplo

– trabaja en (emplea a)

AyDS2013 - Clase 7- MMV 23

Links

Link: formalmente un link es una conexión conceptual o física entre instancias de objetos.

• Un link es una instancia de una asociación.

• Matemáticamente es una “tupla” o lista ordenada de instancias de objetos.

AyDS2013 - Clase 7- MMV 24

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

5

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

• Multiplicidad: determina cuántas instancias de

una clase se relacionan con una instancia de otra

clase.

• Ejemplos: – 3 – 5

– 2, 4, 6

– Muchos

– Uno

Multiplicidad de asociación

Empleado

Cargos

1-2

AyDS2013 - Clase 7- MMV 25

Multiplicidad • Generalmente las asociaciones son a “1” o a

muchos.

• En UML la multiplicidad se especifica como un

intervalo a los extremos de la asociación:

– “1..*” indica 1 a muchos,

– “3..5”, entre 3 y 5, “

– “*” en forma reducida indica 0 ó muchas.

– Si no se especifica, se por convención se

considera exactamente uno.

AyDS2013 - Clase 7- MMV 26

Multiplicidad

• Una instancia de A se asocia con “ cero o varias” instancias de B.

• Una instancia de A se asocia con “1 o ninguna” instancias de B.

• Una instancia de A se asocia con exactamente “1” instancias de B.

AyDS2013 - Clase 7- MMV 27

0 ..*

AyDS2013 - Clase 7- MMV 28

Notación UML

Ejercicios

• Establecer la multiplicidad para las siguientes

asociaciones.

– Es capital entre CIUDAD y PROVINCIA.

– Pertenece entre CIUDAD y PROVINCIA.

– Cursa entre MATERIA y ALUMNO.

– Escrito por entre AUTOR y LIBRO.

– Reserva entre ESPECTADOR y TICKET.

– Padre entre PERSONA Y PERSONA.

– Alquilado_por entre AUTO Y CLIENTE

AyDS2013 - Clase 7- MMV 29

IMPORTANTE

• En el modelado conceptual, NO deben usarse

punteros u otra clase de referencia de objetos

dentro de las clases como atributos. En cambio

debe modelarse como asociación, para indicar

que la información que contiene no está

subordinada a ninguna clase.

AyDS2013 - Clase 7- MMV 30

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

6

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Asociaciones con Atributos • Una asociación puede tener unos o más atributo/s

de asociación que la describen o aportan datos

relacionados con la asociación.

• Se representa como una caja, enlazada a la

asociación por una línea punteada, y se dice que

representan una clase de asociación.

Cliente Cuenta

Solicitud

Fecha

posee 0..* 0..*

AyDS2013 - Clase 7- MMV 31

Asociaciones vs Clases • No confundir clases con atributos de asociación.

Una clase, tiene identidad propia.

Materia Alumno

Cursado

Nro_Acta

Año

Cuatrimestre

Resultado

Examen

nota

fecha

0..* 0..*

0..*

AyDS2013 - Clase 7- MMV 32

Roles

• La asociación además de la multiplicidad en los

extremos puede tener el rol.

• Una asociación binaria tiene dos roles, cada uno

de los cuales tiene un nombre.

• Un nombre de rol es un nombre que

unívocamente identifica un extremo de la

asociación.

• Es necesario definir roles para asociaciones

entre objetos de la misma clase.

AyDS2013 - Clase 7- MMV 33

Roles - Ejemplo

AyDS2013 - Clase 7- MMV 34

Calificador

• Una asociación calificada es una asociación en

la cual un atributo llamado el calificador quita

ambigüedad a una asociación que en su

extremo era “a muchos”.

• El calificador es un atributo especial que reduce

la multiplicidad de una asociación.

• Se pueden calificar las asociaciones 1-m o m-m.

Archivo Directorio Nombre archivo 1

0..1

AyDS2013 - Clase 7- MMV 35

Calificador

• El calificador distingue entre el conjunto de

objetos del lado muchos de la asociación.

• La calificación sirve para:

– Mejorar la exactitud de la semántica.

– Aumentar la visibilidad de los caminos de

navegación.

• La calificación se incluye en modelos de clases

más refinados.

AyDS2013 - Clase 7- MMV 36

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

7

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Asociaciones N-Arias

• Generalmente las asociaciones entre clases son

binarias.

• Ocasionalmente, se necesita de asociaciones

n-arias.

• Casi siempre se puede encontrar la

representación de una asociación n-aria a

través de varias relaciones binarias.

• A nivel conceptual es más claro en ciertos casos

modelar como asociación n-aria.

AyDS2013 - Clase 7- MMV 37

Ejemplo – Asociación N-Aria

AyDS2013 - Clase 7- MMV

Persona Lenguaje_de_Programación

Proyecto

Persona

Lenguaje_de_Programación

Proyecto

Recurso_Proyecto

Representación de relación n-aria

Resolución con relaciones binarias

*

* *

*

*

*

38

Generalización - Especialización

• Es la asociación entre una clase y una o más

versiones refinadas de ella.

• La clase que se refina es la superclase y la refinada

es la subclase.

• La generalización-especialización es un tipo de

asociación transitiva y antisimétrica.

• Los atributos y operaciones comunes a las

subclases son asociados a la superclase y

compartidos por las subclases.

• Es una relación “es un”, ya que cada instancia de la

subclase es una instancia de la superclase.

AyDS2013 - Clase 7- MMV 39

Generalización

Discriminador: es un atributo de tipo enumerado

que indica la propiedad del objeto que se abstrae

en una relación de generalización.

Empleado

Docente No_Docente

Tipo de empleado

Discriminador

AyDS2013 - Clase 7- MMV 40

Generalización

• Conceptos relacionados con el uso de

generalización en la etapa de modelado:

– Clases abstractas y concretas.

– Generalización como extensión.

– Generalización como restricción.

– Sobre-escritura de operaciones.

– Herencia múltiple.

AyDS2013 - Clase 7- MMV 41

Generalización y herencia

• Las generalización es una construcción útil tanto

para el modelado como para la implementación:

– Estructura las clases, agrupando similitudes y

diferencias.

– La herencia de operaciones es útil durante la

implementación como un medio para reutilizar

código.

AyDS2013 - Clase 7- MMV 42

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

8

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Clases Abstractas

• No contiene instancias directas.

• Sus descendientes tienen instancias directas.

• Una clase concreta es una clase con instancias.

Trabajador

Confitero Panadero

¿Abstracta o

concreta?

AyDS2013 - Clase 7- MMV 43

Clases Abstractas

• Organizan rasgos comunes de varias clases.

• ¿Cómo surgen las clases abstractas?

– Para agrupar clases que participan de una misma

asociación o agregación.

– Representan clases que naturalmente aparecen en

el dominio de aplicación.

– Se crean artificialmente para promover la

reutilización de código

• Tip! No usar conceptos relacionados con la

implementación en la etapa de modelado del

dominio.

AyDS2013 - Clase 7- MMV 44

Agregación • Es un tipo distinguido de asociación.

• Es un tipo de relación fuerte: parte de, en la cual

los objetos que representan componentes de

algo son asociados con un objeto que representa

al objeto ensamblador.

• La agregación es transitiva y antisimétrica.

• El agregado es un objeto semánticamente

extendido que en ciertas operaciones es tratado

como una unidad.

• Notación:

AyDS2013 - Clase 7- MMV 45

Agregación – Ejemplo

Auto

Chasis Motor Rueda

5

Párrafo Documento Oración * *

AyDS2013 - Clase 7- MMV 46

Ejemplo: Agregación – Asociación

Empresa Departamento Sección

Proveedor

* *

*

AyDS2013 - Clase 7- MMV 47

Agregación vs Generalización

• Agregación:

– Es una relación “parte de”.

– Los objetos que representan componentes de algo

son asociados con un objeto que representa al

objeto “ensamblado”.

• Generalización:

– Es la relación entre una clase y una o más

versiones refinadas de ella.

– La clase que refina es la superclase y la refinada es

la subclase.

AyDS2013 - Clase 7- MMV 48

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

9

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Agregación – Ejemplo

Auto

Nro_Patente

Color

Año_Fabricación

Motor

Nro_Motor

Cilindradas

Chasis

Nro_Chasis

1 1 5

AyDS2013 - Clase 7- MMV

Rueda

Marca

Rodado

Estado

49

Generalización – Ejemplo

Auto

Nro_Patente

Color

Año_Fabricación

Camión

Altura

Tipo_Transporte

Utilitario

Nro_Asientos

Camioneta

Peso_Máximo

Fecha_Verificación

Estado

AyDS2013 - Clase 7- MMV 50

Agregación vs. Generalización

• Ambas relaciones se representan con una

estructura de árbol con clausura transitiva y

relación antisimética.

• Sin embargo,

– El árbol de agregación está compuesto por

instancias de objetos, partes de un objeto

compuesto.

– El árbol de generalización está compuesto por

clases que describen a un objeto.

AyDS2013 - Clase 7- MMV 51

Agregación – Generalización

AyDS2013 - Clase 7- MMV 52

Agregación vs. Generalización

Agregación Generalización

Relaciona instancias Relaciona clases

“parte de” “clase de”. La superclase y la

subclase se refieren a las

propiedades de un objeto.

Relación “and” Relación “or”

53 AyDS2013 - Clase 7- MMV

• Un tipo enumerado es un tipo de datos que tiene un

conjunto finito de valores.

• No confundir con generalización.

• Las clases enumeradas se marcan con el estereotipo

<<enumeration>>

• Ejemplo:

– Sería incorrecto generalizar la clase Carta en

CartaEspada, CartaBasto, etc.

Clases de Enumerados

AyDS2013 - Clase 7- MMV 54

Estas transparencias proveen sólo una referencia a los temas. Para su estudio debe remitirse a la bibliografía.

10

Universidad Nacional del Sur – Departamento de Ciencias e Ingeniería de la Computación Análisis y Diseño de Sistemas – 1er.Cuatrimestre de 2013.

Temas de la clase de hoy • Vista Estructural

– Diagrama de Clases

• Clases, atributos, operaciones

• Relaciones, asociación, generalización.

– Diagrama de Objetos

• Bibliografía

– “Object Oriented Modeling and Design with UML” – James Rumbaugh. Capítulo 3.

• Lecturas sugeridas.

– “El Lenguaje Unificado de Modelado” – Booch, Jacobson, Rumbaugh. Capítulos 4 y 5.

AyDS2013 - Clase 7- MMV 55