You are on page 1of 20

Fundamentos de Ingeniera de Software

Marcello Visconti y Hernn Astudillo Departamento de Informtica Universidad Tcnica Federico Santa Mara {visconti,hernan} at inf.utfsm.cl

Sesion 05

Fundamentos de Ingeniera de SW

Anlisis Orientado a Objetos


? Modelo conceptual ? Identificacin de conceptos ? -- Asociaciones ? Atributos

Contenido

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos


? Una asociacin es una relacin entre dos conceptos que indica alguna conexin significativa entre ellos. ? En UML se describen como relaciones estructurales entre clases de objetos. ? Es necesario identificar las asociaciones de los conceptos que se requieren para satisfacer los requerimientos de informacin de los casos de uso en cuestin y los que contribuyen a entender el modelo conceptual.

Agregacin de Asociaciones

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Agregacin de Asociaciones: Criterios


? Las asociaciones que vale la pena mencionar suelen incluir el conocimiento de una relacin que ha de preservarse durante algn tiempo: puede tratarse de milisegundos o aos segn el contexto.
TPDV 1 Registra 1 Venta actual

Anlisis Orientado a Objetos

Asociacin

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Agregacin de Asociaciones: Criterios


? Examine la conveniencia de incluir las siguientes asociaciones en un modelo conceptual:
? Las asociaciones en que el conocimiento de la relacin ha de ser preservado durante algn tiempo (asociaciones que deben conocerse) ? Las asociaciones provenientes de la lista de asociaciones comunes.
? Por ejemplo, las instancias de VentaLineaDeProducto deben ir asociadas a la instancia Venta, sin esto sera imposible imprimir un recibo, calcular el total, etc. ? En cambio, no necesitamos una relacin entre Gerente y Venta.

Anlisis Orientado a Objetos

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Agregacin de Asociaciones: Notacin


? Una asociacin se representa como una lnea entre los conceptos con el nombre de la asociacin.
? Esta es intrnsecamente bidireccional: es un nexo entre objetos. ? Los extremos de una asociacin pueden contener una expresin de multiplicidad que indique la relacin numrica entre las instancias o conceptos, que se llaman papeles.

Anlisis Orientado a Objetos

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Asociaciones : Identificacin de casos comunes [1]


? Comience por agregar las asociaciones utilizando la lista de anexa.
? Categoras comunes que normalmente vale la pena incluir.
Categora A es una parte fsica de B A es una parte lgica de B A est fsicamente contenido en B Ejemplos Caja-TPDV Ala-Avin VentasLineaDeProducto-Venta TramoDeVuelo-RutaDeVuelo TPDV-Tienda Producto-Estante Pasajero- Avin DescripcionDeProducto Catlogo Vuelo - ProgramaDeVuelo

Anlisis Orientado a Objetos

A est lgicamente contenido en B

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Asociaciones: Identificacin de casos comunes [2]

Anlisis Orientado a Objetos

A es una descripcin de B A es un elemento de lnea en una transaccin o reporte B A se conoce/ introduce/ registra/ presenta/ captura en B A es miembro de B A es una subunidad organizacional de B A usa o dirige a B A se comunica con B

DescripcionDeProducto Producto DescripcionDeVuelo - Vuelo VentasLineaDeProducto-Venta TrabajoDeManteniemiento-Mantenimiento Venta TPDV Reservacion - ListaDePasajeros Cajero Tienda Piloto Avion Departamento Tienda Mantenimiento - LineaAerea Cajero TPDV Piloto Avion Cliente Cajero AgenteDeReservaciones - Pasajero

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Asociaciones: Identificacin de casos comunes [3]

Anlisis Orientado a Objetos

A se relaciona con una transaccin B A es una transaccin relacionada con otra transaccin B A est contiguo a B A es propiedad de B

Pago Boleta Pasajero Boleto Pago Venta Reservacion Cancelacion TPDV TPDV Cuidad Cuidad TPDV Tienda Avion LineaAerea

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

Asociaciones: Identificacin de casos comunes [4] ? Las categoras de alta prioridad que siempre vale la pena incluir son:
? A es una parte fsica o lgica de B ? A est fsicamente o lgicamente contenido en B ? A est registrado en B

Anlisis Orientado a Objetos

? Las asociaciones son importantes, pero un error comn es dedicar demasiado tiempo a descubrirlas.
? Es mucho ms importante identificar conceptos que asociaciones. El tiempo asignado a crear el modelo conceptual debera destinarse a identificar conceptos, no asociaciones. ? Demasiadas asociaciones tienden a confundir el modelo conceptual en vez de aclararlo. A veces se requiere mucho tiempo para descubrirlas, y los beneficios son escasos.

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

10

Anlisis Orientado a Objetos Asociaciones : Directrices


? Concentrarse en las asociaciones en que el conocimiento de la relacin ha de preservarse durante algn tiempo (asociaciones que es necesario conocer). ? No incluir las asociaciones redundantes, ni las derivables.
? Redundantes: repiten lo dicho por otras asociaciones. ? Derivables: pueden ser deducidas a partir de otras asociaciones.

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

11

Anlisis Orientado a Objetos Asociaciones : Multiplicidad


? La multiplicidad define cuntas instancias de tipo A pueden asociarse a una instancia del tipo B en determinado momento.
Tienda 1 Almacena * Producto

Multiplicidad del papel

? Algunos ejemplos de multiplicidad:


* cero o ms, muchos 1..* uno o ms 3,5,8 exactamente 3, 5 u 8 1..40 de uno a 40 5 exactamente 5

? En UML, el valor de multiplicidad depende del contexto.


? P.ej., la multiplicidad de Trabaja-Para entre Persona y Compaa ser diferente si se est haciendo el sistema al SII (*..*) o una empresa (1..*).
UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

12

Anlisis Orientado a Objetos Asociaciones : Notacin


? Se asigna un nombre a una asociacin basndose en el esquema NombreDeTipo FraseNominal NombreDeTipo.
? La idea es genera una secuencia (con al frase nominal) que sea legible y significativa dentro del contexto del modelo. ? Los nombres de las asociaciones comienzan con mayscula. ? Una frase nominal (verbo) debe construirse con guiones. ? La direccin de lectura es de izquierda a derecha y de arriba hacia abajo.

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

13

Anlisis Orientado a Objetos Asociaciones : Ejemplo


Tienda 1 Contiene 1..* TPDV 1 Captura 1..* Venta 1 Pagada-por 1 Pago

Linea Aerea 1 Emplea 1..* Persona 1 Supervisa UTFSM


EXUMBRA IN SOLEM

1 *

Asignada-a

Vuelo

Asignado-a

Avin

Fundamentos de Ingenier a de SW

14

Asociaciones mltiples entre 2 conceptos


? Dos conceptos pueden tener varias asociaciones entre ellos.
? P.ej., en el dominio de la lnea area encontramos varias relaciones entre Vuelo y Aeropuerto. ? Las asociaciones volar-hacia y volar-de son netamente diferentes que deben mostrarse por separado. ? Nota: no se garantiza que todos los vuelos aterricen en un aeropuerto.

Anlisis Orientado a Objetos

* Vuelo *

Vuela-de

1 Aeropuerto

Vuela-hacia

0..1

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

15

Anlisis Orientado a Objetos


? Durante la fase de anlisis, una asociacin no es una proposicin sobre flujos de datos, variables de instancia, ni conexiones de objetos en una solucin de software; es una proposicin de que una relacin es significativa en el mundo real. ? Una asociacin no necesariamente debe ser implementada durante la construccin.
? Es posible que una asociacin sea reemplazada por una clase al elaborar el modelo de software.

Asociaciones: Implementacin

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

16

Ej. punto de venta: Asociaciones del dominio


? Deberamos incorporar las asociaciones que indican los requerimientos (los casos de uso, por ejemplo), las que conllevan la necesidad de recordar o que de alguna otra forma nos sugiere nuestra percepcin del dominio del problema. ? Conceptos:
? ? ? ? TPDV, Producto, Tienda, Venta, Pago Catalogo De Producto, Especificacin De Producto Ventas Lnea De Productos Cajero, Cliente, Gerente

Anlisis Orientado a Objetos

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

17

Ej. punto de venta: Asociaciones del dominio


? Relaciones inolvidables en la Tienda

Anlisis Orientado a Objetos

TPDV captura Venta Venta pagada en efectivo CatalogoDeProductos registra EspecificacionDeProducto

Para conocer la venta actual genera un total e imprime un recibo. Para saber si se pag la venta, relaciona la cantidad ofrecida con el total de la venta e imprime un recibo. Para recuperar la especificacin de producto con un cdigo universal de producto

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

18

Ej. punto de venta: Asociaciones del dominio


? Recorreremos la lista de comprobacin, basndonos en tipos anteriormente identificados y teniendo presentes los requerimientos actuales del caso de uso.
Categora A es una parte fsica de B A es una parte lgica de B A est contenido fsicamente en B A est contenido lgicamente en B A es una descripcin de B A es un elemento de lnea en una transaccin o reporte B Sistema TPDV no se aplica VentasLineaDeProducto -Venta TPDV-Tienda Producto -Tienda EspecificacionDeProducto CatalogodeProductos CatalogodeProductos - Tienda EspecificacionDeProducto Producto VentasLineaDeProducto -Venta

Anlisis Orientado a Objetos

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

19

Ej. punto de venta: Asociaciones del dominio

Anlisis Orientado a Objetos

A se conoce/ introduce/ registra/ presenta/ captura en B A es miembro de B A es una subunidad organizacional de B A usa o dirige a B A se comunica con B A se relaciona con una transaccin B A es una transaccin relacionada con otra transaccin B A est contiguo a B A es propiedad de B
UTFSM
EXUMBRA IN SOLEM

Venta (terminada) Tienda Venta (actual) TPDV Cajero Tienda no aplicable Cajero TPDV Gerente TPDV Gerente Cajero, probablemente no aplicable Cliente Cajero Cliente Pago Cajero Pago Pago Venta TPDV TPDV, probablemente no aplicable TPDV Tienda
20

Fundamentos de Ingenier a de SW

10

Ej. punto de venta: Modelo Conceptual


Descrita-por Contiene

Anlisis Orientado a Objetos


EspecificaciondeProducto 1 1..* 1 CatalogoDeProductos
Describe

* VentasLineaDeProducto 0..1 1..*

1 1
Registra-Venta-de Usado-por

* Producto

*
Contenidas-en Capturas-Terminada

* 1
Almacena

Tienda 1 1
Aloja

* 1 Venta 1 1 1
Iniciado-por Pagado-por Capturadas-en

Iniciado-por

1 Gerente

1..*

1 1 1
Registra-Ventas-en

TPDV 1

Cajero

Pago

Cliente

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

21

Ej. punto de venta: Modelo Conceptual


? El conjunto de asociaciones que se incluye en el modelo se obtuvo de manera bastante mecnica a partir de la lista de comprobacin. Pero tal vez hay que ser ms restrictivos con las asociaciones. ? Venta Capturada por Cajero
? Los requerimientos no indican la necesidad de conocer, ni de registrar al cajero actual. Adems es derivable si existe la asociacin TPDV usado-por Cajero.

Anlisis Orientado a Objetos

? TPDV Usado-por Cajero


? Los requerimientos no indican la necesidad de conocer, ni de registrar al cajero actual.

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

22

11

Ej. punto de venta: Modelo Conceptual


? TPDV Iniciado-por Gerente
? Los requerimientos no indican la necesidad de conocer, ni de registrar al gerente que inici un TPDV.

Anlisis Orientado a Objetos

? Venta Iniciada por Cliente


? Los requerimientos no indican la necesidad de conocer, ni de registrar al cliente actual.

? Tienda Almacena Producto


? Los requerimientos no indican la necesidad de conocer o mantener la informacin del inventario.

? Ventas Lnea De Producto Registra-venta-de Producto


? Los requerimientos no indican la necesidad de mantener la informacin del inventario.

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

23

Ej. punto de venta: Modelo Conceptual


Descrita-por Contiene

Anlisis Orientado a Objetos


EspecificaciondeProducto 1 1..* 1 CatalogoDeProductos 1
Describe

* VentasLineaDeProducto 1..*

* Producto

Usado-por

*
Contenidas-en Capturas-Terminada

Tienda 1 1
Aloja

* 1 Venta 1 1 1
Pagado-por Capturadas-en

Gerente 1..* TPDV Cajero

Pago

Cliente

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

24

12

Ej. punto de venta: Modelo Conceptual


? Ntese que la necesidad de conocer una asociacin depende de los requerimientos; un cambio de ellos (p.ej., exigir que la identificacin del cajero aparezca en el recibo) altera la necesidad de recordar la relacin. ? Hay asociaciones que deben conocerse, pero hay otras opcionales que son tiles slo para la comprensin.
? Para documentar un conocimiento enriquecido del dominio. ? El propsito t pico de un modelo es ser ledo por personas.

Anlisis Orientado a Objetos

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

25

Anlisis Orientado a Objetos


? Modelo conceptual ? Identificacin de conceptos ? Asociaciones ? -- Atributos

Contenido

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

26

13

Anlisis Orientado a Objetos


Atributos [1]
? Un atributo es un valor lgico de un dato u objeto.
? Pertenece a un concepto. ? Tiene un tipo, que define sus posibles valores. ? En UML, los atributos aparecen en la 2da seccin de un concepto (con tipo opcional).
Venta fecha HoraDeInicio: hora Atributos

? Los tipos ms simples de atributos corresponden a tipos primitivos de datos; los tipos simples ms comunes son:
? Booleano, Tiempo (Fecha, Hora, ), Nmero, String (Texto) ? Color, Geometra (Punto, Rect ngulo, ) ? Direccin, Telfono, RUT, Cdigo (de producto, postal, ), enumeraciones
UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

27

Anlisis Orientado a Objetos


? En un modelo conceptual:
? Los atributos que aparecen en un modelo conceptual derivan de requerimientos (p.ej., casos de uso) que indican o implican la necesidad de recordar informacin.
? P.ej., si un recibo de ventas incluya fecha y hora, el concepto Venta requiere atributos fecha y hora.

Atributos [2]

? Los atributos deberan ser atributos simples o valores puros de datos.


? Normalmente, el tipo de un atributo no debera ser un concepto complejo del dominio (como Venta o Aeropuerto). ? Si un atributo parece requerir un tipo complejo ( p.ej. el TPDV actual) , generalmente es mejor expresarlo con una asociacin.
Cajero nombre TPDVactual Cajero 1 nombre Usa 1 numero TPDV

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

28

14

Anlisis Orientado a Objetos


? Es necesario producir una lista de atributos para los conceptos del dominio de punto de venta. Debera estar reservada especficamente a los requerimientos a las simplificaciones en cuestin: Comprar productos versin 1. ? Para eso habr que leer los siguientes documentos:
? especificacin de requerimientos ? casos de uso en cuesti n ? documentos de simplificaciones, clarificaciones y suposiciones

Ej. punto de venta: Atributos

? P.ej., podemos identificar los atributos:


? ? ? ? ?
EXUMBRA IN SOLEM

Tienda: direccin, nombre Venta: fecha, hora VentasLineaDeProducto: cantidad Pago: monto EspecificacionDeProducto: descripcin, precio, cup
Fundamentos de Ingenier a de SW 29

UTFSM

Anlisis Orientado a Objetos


? Es posible que el cajero reciba un grupo de productos afines (seis paquetes de pauelos desechables) y introduzca una sola vez el CUP y la cantidad (6).
? En consecuencia una instancia de VentasLineaDeProducto puede estar asociada a ms de una instancia de cada producto. ? La cantidad que introduce el cajero puede quedar registrada como atributo de VentasLineaDeProducto.

Ej. punto de venta: Atributos

? Sin embargo, tambin puede ser calculada a partir del valor real de multiplicidad de la relacin; as puede caracterizarse como atributo derivado, el cual puede ser deducido de otra informacin.
? En UML, un atributo derivado se denota con el smbolo /.

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

30

15

Anlisis Orientado a Objetos

Ej. punto de venta: Atributos

VentasLineaDeProducto /cantidad 0..1 Registra-venta-de 1..*

Producto

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

31

Ej. punto de venta: Modelo Conceptual


Descrita-por Contiene

Anlisis Orientado a Objetos


EspecificaciondeProducto 1 1..* 1
Describe

* VentasLineaDeProducto cantidad 1..*

1 CatalogoDeProductos descripcion precio CUP 1


Usado-por

* Producto

*
Contenidas-en Capturas-Terminada

1 Venta fecha hora 1

* 1
Capturadas-en

Tienda direccio n 1

1 1 1..*

Aloja

Pagado-por

TPDV

Pago

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

32

16

Ej. punto de venta: Modelo Conceptual


? Hemos creado un modelo conceptual relativamente til del dominio del punto de venta. ? No existe un modelo apropiado para todos los casos y circunstancias, todos ellos no son ms que aproximaciones al dominio que queremos entender. ? Un buen modelo conceptual capta las abstracciones esenciales y l a informacin indispensable para comprender el dominio dentro del contexto de los requerimientos actuales.

Anlisis Orientado a Objetos

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

33

Anlisis Orientado a Objetos


? Modelo conceptual ? Identificacin de conceptos ? Asociaciones ? Atributos

Contenido

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

34

17

Anlisis Orientado a Objetos


? Qu es lo que aparece en el modelo conceptual? ? ? ? ? ? Qu es el principio del cartgrafo? Qu representa una asociacin? Todas las asociaciones son importantes? Qu representa la multiplicidad? Porqu son tan importantes los nombres en el modelo?

Quiz

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

35

Anlisis Orientado a Objetos


? Cmo se interpreta este diagrama?
<<entorno>> OpcionesCursoProfesor 1 1 1 <<control>> GestorCursosProfesor 1 maneja 0..* 1..* <<entidad>> 1 Cursos 0..* prerrequisitos 1..* <<entidad>> OfertaCursos

Quiz

<<entorno>> AadirOfertaCurso

0..*

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

36

18

En clases 2004-08-24 p1
/usa Prerequisito Bloque dia : String horas : String 1

Cursa 0..* 5..* Alumno


(from Use Case View)

Sala edificio : String piso : Natural num : Natural capacidad : Natural 1

0..* Ramo
(from ramos)

1..*

Horario +pertenece

0..1 Hace-ayudantia-de

1 tiene

1..3 dicta 1..* +tiene Paralelo numero : Natural Profe


(from Use Case View)

Notas

temas abiertos: - Alumno cursa Paralelo, no Ramo - Alumno tiene nota por Ramo - Alumno puede hacer ayudantia de un Ramo que Cursa

Lista 1

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

37

En clases 2004-08-24 p2
Sala edificio : String piso : Natural num : Natural capacidad : Natural 1 1 Bloque dia : String horas : String pendiente: - Alumno no debe ser ayudante de Ramo que Toma

Horario oficina 1..* 1 ensena Profesor nombre : String Paralelo numero : Natural 1..* 1..* tiene 1..* /dictado-por 1 Ramo asociacion derivada creditos : Natural sigla : String 0..* DescripcionR amo 0..1 es-ayudante-de Alumno (from Use Case ...View) ) Toma 5..*

1 0..* prerequisito

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

38

19

En clases 2004-08-25 p1
Prerequisito Sala Malla 0..* +habilita 0..* 1..* Semestre ano sec 0..* 0..* Cursacion vtr nota : 0..100 cursa Alumno
(from Use Case View)

+preReq 0..* Asignatura sigla creditos

edificio : String piso : Natural num : Natural capacidad : Natural 1 1

Bloque dia : String horas : String 1

1 Horario

Ramo 0..1 1 0..1+pertenece

+horarios 1..3

nombre rol

+alumno 5..*

+profe tiene dicta


(from Use Case View)

1 Profe

0..* +ayudante 5..* Hace-ayudantia-de +tiene

+asistente

asiste 1..*

1..* Paralelo numero cupos

temas: - Alumno cursa Paralelo, no Ramo --> agr.semestre - Alumno tiene nota por Ramo --> asoc.c/clase - Alumno puede hacer ayudantia de un Ramo que Cursa - vtr es medio extrano

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

39

En clases 2004-08-25 p2
Sala edificio : String piso : Natural num : Natural capacidad : Natural 1 1 0..* Horario 0..* +horarios Paralelo 1..3 +cursos oficina ensena 1 Profesor nombre : String +ramo 0..1 Semestre ano+sem 0..* 0..* propone 0..* 0..* 0..* Asignatura 1 1 1 1 +profe 1..* numero : Natural 1..* +paralelos 0..* 1..7 inscribe 5..* tiene NotaFinal nota : 0..100 <<Actor>> Alumno
(from Use Case View)

Bloque dia : String horas : String 1

temas: - Alumno no debe ser ayudante de Ramo que Toma --> PEND - la NotaFinal no es del Alumno ni del Ramo - Alumno se inscribe en Parelelo pero parece tener NotaFinal por Asignatura --> NF es de la asoc. Alumno-Paralelo - preReqs. son de Asignatura, sin Semestre --> separar Semestre es-ayudante-de

Asignatura+Semestre

DescrAsignat ura creditos sigla nombre horasLab

prerequisito

UTFSM
EXUMBRA IN SOLEM

Fundamentos de Ingenier a de SW

40

20