• No se han encontrado resultados

Introducció a l Enginyeria del. Programari

N/A
N/A
Protected

Academic year: 2022

Share "Introducció a l Enginyeria del. Programari"

Copied!
43
0
0

Texto completo

(1)

Introducció a l’Enginyeria del Programari

Atributs i interrelacions

Model conceptual

(2)

Què hi ha en aquest material

2

Testos de validesa d’atributs

Atomicitat i monoavaluació

Transformacions de models

TrAtom i TrMono

La importància de pensar

Les transformacions indiquen un procedir, però no és automàtic

Els noms són part fonamental del model

Compartició

Compartició d’entitats, coincidència de valors, i el paper dels identificadors

Interrelacions 1-1

Filtre de la companyia

Interrelacions sota sospita

(3)

3

Validació d’un atribut

(4)

Testos de validesa d’un atribut

4

Aquests testos són filtres positius i negatius

Si l’atribut no passa el test llavors és un atribut invàlid

Si l’atribut passa els tests llavors és un atribut vàlid sintàcticament

El model està ben construït. Una altra cosa és que digui el que volem que digui

Atomicitat

Els valors de l’atribut no tenen estructura interna

Monoavaluació

L’atribut té un únic valor

(5)

Valors amb estructura

5

Sigui un concepte C amb un atribut a tal que els seus valors tenen estructura interna

Llavors

Cal introduir un concepte A que encapsuli l’estructura

L’atribut de C s’ha d‘expressar amb una interrelació entre C i el nou concepte A

a

C

...

A

? a 1

C

Estructura

Ho analitzem

més endavant TrAtom

(6)

No atomicitat

Cada client té assignat un agent comercial

6

agent

Client Què és l’atribut agent?

Ha de contenir diversa informació:

Nom, telèfon, ruta, ...

Convertim l’agent en una interrelació entre client i persona Client * agent 1 Persona

nom telèfon

Client * agent 1 Persona

Estructura

(7)

Cal pensar

Per assegurar l’atomicitat en l’exemple anterior hem actuat sense pensar

Hem aplicat la transformació TrAtom

El client no és una persona?

L’estructura del model és correcta, però no pas els noms

7

Client * assignació 1 Agent

Pròpiament l’agent és un concepte,

interrelacionat amb el client en virtut de l’assignació Client * agent 1 Persona

Noms semànticament correctes

S’ha produït un canvi fonamental

en el glossari!!

(8)

Valors múltiples

8

Sigui un concepte C amb un atribut a multiavaluat

Llavors

Cal introduir un concepte A que encapsuli els valors individuals de l’atribut

L’atribut de C s’ha d‘expressar amb una interrelació entre C i el nou concepte A

a*

C

...

A

? a *

C

Multiplicitat

Ho analitzem

més endavant TrMono

(9)

Multiplicitat

En Pere té tres números de telèfon

9

tel1 tel2 tel3

Persona I perquè tres atributs, i no pas quatre?

La Gemma sembla que vol demanar un número nou per cadascun dels seus quatre fills

La multiplicitat és indeterminada i no afitada

No podem usar un nombre fix d’atributs

Persona 1 contacte * Telèfon

Multiplicitat

Hem cercat noms adients

(10)

10

Transformacions de models

(11)

Transformacions

11

Què fem si no passem algun dels testos de validesa?

Apliquem una transformació de models

L’objectiu de les transformacions és fer petits canvis en el model de partida per tal d’aconseguir un model que passi el test inicialment violat

Test de l’atomicitat

Apliquem la transformació TrAtom per tal d’aconseguir atomicitat en l’atribut transformat

Test de la monoavaluació

Apliquem la transformació TrMono per tal d’aconseguir la monoavaluació de l’atribut transformat

(12)

Incompletesa de les transformacions

12

Les transformacions acostumen a introduir nous elements en els models

Sovint, però, només introdueixen part de la interacció d’aquests nous elements amb la resta del model. Són incompletes

Després d’aplicar una transformació caldrà completar el model resultant

És el cas de la multiplicitat de l’esquerra de les transformacions TrMono i TrAtom

La transformació introdueix una nova interrelació, però deixa inespecificada la multiplicitat d’un dels seus extrems

Cal doncs analitzar el problema i el model per decidir quina és aquesta multiplicitat

(13)

Recordatori:

No atomicitat

Cada client té assignat un agent comercial

13

Client ? assignació 1 Agent

agent

Client Què és l’atribut agent?

Ha de contenir diversa informació:

Nom, telèfon, ruta, ...

Pròpiament l’agent és un concepte, interrelacionat amb el client en virtut de l’assignació

nom telèfon

Client ? assignació 1 Agent

Estructura M1

M2

(14)

L’agent té molts clients assignats

Si a M1 dos clients distints tenen agents iguals sembla lògic pensar que a M2 estaran

interrelacionats amb el mateix agent

A M2 l’agent encapsula l’estructura. El canvi de telèfon, per exemple, de l’agent ha d’afectar tots els clients que a M1 tenien el mateix (igual però distint) agent

És justament l’objectiu d’encapsular l’estructura

L’agent, com a entitat, és compartible per múltiples clients

14

nom telèfon

Client * assignació 1 Agent

(15)

Estructura no compartida

Tot producte té un codi

El codi està format pel numProd, el número de sèrie, i un codi intern del fabricant

Cada codi és únic i intransferible

No hi ha compartició

15

codiProd

Producte

Per simplificar l’exemple no analitzem quin és

l’identificador

numProd numSèrie

codiFabricant

Producte 1 assignació 1 Codi

(16)

El paper de les transformacions

16

Són moltes les transformacions

Per a donar validesa a models no vàlids

Per a introduir restriccions al model

Per a comparar models

Per a donar més simplicitat i abstracció al model

Com a mecanisme d’abstracció

Com a mecanisme de disseny

Com a mecanisme d’implementació

Per a obtenir més eficiència en el disseny o en la implementació

Són la nostra eina de treball

(17)

17

Compartició

(18)

Coincidència de valors

18

Sigui un concepte C amb un atribut a

Cada entitat e:C pot tenir el valor que vulgui en l’atribut a

Més concretament, e.a pot ser qualsevol valor compatible amb el tipus de l’atribut A

Per tant, res impedeix que dues entitats distintes tinguin valors iguals (però distints) per a un mateix atribut

Hi ha coincidència de valors, però no pas compartició

En el cas que C.a sigui identificador aquesta

afirmació és falsa

Perquè?

(19)

Recordatori:

Fixem les interpretacions

19

3 euros preu A

5 euros preu B

5 euros Preu

preu C

3 euros

5 euros

Preu

cistell

barret

Producte

A

B

3 euros

5 euros

Preu

8 euros

Preu

3 euros preu A

5 euros preu B

5 euros preu C

C D

pvp

1 * Preu Producte

pvp

1 * Preu Producte

M7 M6

pvp

* * Preu Producte

* * Preu Producte

M5

M4

(20)

Dos casos paradigmàtics

Permetem la compartició d’entitats i prohibim la compartició de valors

Prohibim la compartició d’entitats i permetem la compartició de valors

Permetem compartir valors?

Ho resolem amb un identificadordiferent del valor

Ex. El valor en euros no és l’identificador de preu

Prohibim compartir valors?

Ho resolem convertint el valor en identificador

Ex. El valor en euros és l’identificador de preu

Recordatori:

Multiplicitat, compartició i identificador

20

En la multiplicitat de valors cal tenir present la compartició

Volem compartir valors?

La coincidència és simple casualitat

Ex. Dos productes que valen el mateix

Volem compartir entitats?

La coincidència és expressament buscada

Ex. Dos productes tenen el mateix proveïdor

M4 i M5

M4

Permetem compartir entitats?

Ho resolem amb la multiplicitat

Ex. Producte—Preu és *—*

Prohibim compartir entitats?

Ho resolem amb la multiplicitat

Ex. Producte—Preu és 1

M6 i M7

M5 i M7

M4 i M6

M7

Es poden produir efectes laterals

(21)

Compartició de valors?

Pròpiament no hi ha compartició de valors

El que hi ha és que ens interrelacionem amb entitats que tenen valors iguals (però distints)

La multiplicitat permet la compartició d’entitats

La identificació decideix quin atribut no pot tenir valors iguals en entitats distintes

Hi ha coincidència de valors, no pas compartició

21

(22)

L’efecte de les transformacions

22

Les transformacions TrMono i TrAtom

introdueixen la possibilitat de la compartició d’entitats

Introdueixen una nova interrelació monoavaluada en un dels seus extrems

Per tant caldrà analitzar la possibilitat o no de coincidència de valors en les noves entitats

Caldrà analitzar-ne els identificadors

(23)

Aplicació de TrAtom

Tothom té una adreça

Hi ha persones que viuen juntes

23

nomCarrer núm

pis porta

Persona

Adreça

habita 1

*

adreça

Persona Test de l’atomicitat

NO

Atomicitat Quin és

l’identificador d’adreça?

TrAtom

(24)

Anàlisi del problema

Si dues persones viuen juntes,

1. Comparteixen la mateixa entitat adreça?, o

2. Tenen adreces (entitats) distintes però amb valors iguals?

Depèn del nostre problema i de què entenem per adreça

Per exemple: L’adreça és una propietat individual de cada

persona, o és una propietat del conjunt de persones que viuen juntes?

24

(25)

Possibilitats de compartició

No hi ha dues adreces amb el mateix valor

25

nomCarrer + núm + pis + porta

#persones

Persona

Adreça

habita 1

*

nomCarrer núm

pis porta id

Persona

Adreça

habita 1

*

Adreces distintes poden ser iguals

Dues adreces iguals són la mateixa adreça

Això permet un atribut

#persones

Dues adreces

iguals són adreces distintes

Cal un atribut id

??

Identificador no correcte

(26)

Una mica de pràctica

1. Cada mes fem un control de pes del nostre

personal. Volem conèixer, en tot moment, el que pesava cada persona en el darrer control realitzat

2. Volem saber quantes persones tenim de cada pes

26

Sol

(27)

Més pràctica

3. Volem tenir constància de la ciutat on viu cadascú.

Sabem que en Joan viu a Vilanova, a casa l’Anna, la seva mare

4. Les ciutats que considerem només poden ser una d’un conjunt prefixat de ciutats

Això permet, per exemple, impedir errors en la introducció de les dades

5. Assumim que si en Joan canvia la residència s’emporta a sa mare amb ell

Exercici força més complex: hi ha un concepte ocult

28

Sol

(28)

Validesa dels atributs: conclusió

30

Els testos d’atomicitat i monovaluació permeten validar la presència d’un atribut en el model

Les transformacions TrAtom i TrMono

transformen l’atribut “erroni” en un concepte i una interrelació

En aplicar-les cal llegir el model resultant i donar noms adients

Ambdues transformacions deixen sense especificar la multiplicitat en l’extrem del concepte inicial

Cal analitzar el problema per decidir la multiplicitat

(29)

Multiavaluació i compartició

31

Sempre que tinguem en una interrelació un extrem multiavaluat cal analitzar quina és la compartició que ens interessa

Entitats distintes poden tenir els mateixos valors?

Compartició d’entitats versus coincidència de valors

Anàlisi dels identificadors

(30)

32

Interrelacions 1-1

(31)

Alternativa a la interrelació 1-1

33

Una interrelació 1-1 entre A i B ens obliga a plantejar:

i perquè tenim dos conceptes A i B, enlloc d’un sol concepte C?

A == B == C

En el cas d’existir una altra interrelació M-N (o 1-N o M-1) entre A i B, la fusió de A i B porta problemes

(32)

El perquè del filtre

34

A Ma cada a:A té una interrelació f amb múltiples :B, i aquí s’acaba la història

A Mb cada a:A té una interrelació f amb múltiples :B; i cadascun d’aquests, al seu torn, té una

interrelació f amb múltiples :B; i així successivament

? f N B

1 g 1

A A=B

f

?

n

Ma Mb

(33)

Un client no és una compra

Cada client ha realitzat diferents compres

Volem tenir constància de la darrera compra de cada client

A M1 el client realitza compres

A M2 el client realitza compres, que realitzen d’altres compres

35

Compra

1 realitza *

1 darrera 1

Client Client =

Compra

realitza

1

* M1 M2

(34)

Test de la companyia

36

Aquest és un test positiu

Si la interrelació passa el test llavors és una interrelació vàlida

Si la interrelació no passa el test llavors no podem dir res sobre la validesa de la interrelació vàlida

Es tracta d’una interrelació sospitosa

Si una interrelació 1-1 entre A i B va acompanyada d’una altra interrelació, entre A i B, multiavaluada en un dels seus extrems, la interrelació 1-1 és

correcta

(35)

Test de la companyia

El model és vàlid, ja que passa el Test de la companyia

La interrelació 1-1 va acompanyada d’una interrelació 1-N

37

Compra

1 realitza *

1 darrera 1

Client

M1

(36)

Test de l’optativitat

38

Si una interrelació 1-1, és optativa per un dels seus extrems, la interrelació 1-1 és correcta

Aquest és un test positiu

Si la interrelació passa el test llavors és una interrelació vàlida

Si la interrelació no passa el test llavors no podem dir res sobre la validesa de la interrelació vàlida

Es tracta d’una interrelació sospitosa

(37)

Atribut optatiu

Tot empleat té un sou. En alguns casos aquest sou consta d’un valor fix i d’un altre variable

39

nom souFix souVariabe

Empleat No és un model correcte ja que no tot empleat té sou variable

Porta a equívocs

Representem el sou variable amb una interrelació

nom souFix

Empleat

quantitat criteri

Incentiu

souVariable 1 1

(38)

Test de l’optativitat

El model és vàlid ja que supera el Test de l’optativitat

40

nom souFix

Empleat

quantitat criteri

Incentiu

souVariable 1 1

(39)

Altres testos de validesa

41

Altres casos en què podem donar validesa a les interrelacions 1-1

Perspectiva o visibilitat

Estructuració no compartible

Multiavaluació estructurada per nivells

(40)

Empleat

Diferents perspectives

El departament d’Administració ha de conèixer l’adreça i el sou de cada empleat

El departament de Producció no n’ha de fer res d’aquestes dades, i en canvi necessita saber si té jornada partida o no

42

nom adreça sou

bool jpartida

Empleat

nom adreça sou

EmpleatAdm

bool jpartida

EmpleatProd lligamEmpleats 1

1

(41)

Valoració estructurada

Cada restaurant té una valoració mensual

(numèrica), basada en la mitjana de valoracions rebudes durant el mes; i una valoració global (en

termes d’una escala de colors) que es calcula a partir de valoració mensual del moment del càlcul

ValoracióMensual i ValoracióGlobal són atributs atòmics monoavaluats

Ambdós valors, però, estan estrictament relacionats

43

Restaurant 1 mensual

global

Valor

valoració 1

Valor es pot veure com un atribut

estructurat

L’aplicació de TrAtom

genera entitats no compartibles

(42)

Full de treball

Cada empleat va apuntant totes les feines que va fent

Volem tenir agrupades les feines per mes

Feines no pot ser un atribut, per monoavaluació

En el model M1 l’agrupació no és visible

Ens cal un concepte intermedi que representi el grup

44

mes

Empleat 1 registre 1 FullDeTreball 1 descripció data

#hores

Feina

apunt *

Empleat 1 descripció

data

#hores

Feina

apunt * M1

M2

En lloc de Feina potser hauríem

de parlar de Tasca

(43)

Interrelació 1-1 sospitosa

45

Tota interrelació 1-1 que no superi els tests següents s’ha de consderar sospitosa

Test dela companyia

Optativitat

Perspectiva o visibilitat

Estructuració no compartible

Multiavaluació estructurada per nivells

Estudiem la problemàtica amb més deteniment a

“Expressivitat dels conceptes associatius”

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

La organización debe establecer las acciones necesarias para aprovisionarse de los recursos necesarios previstos de acuerdo al resultado de la evaluación de riesgos y el

Amb caràcter general, sens perjudici de les mesures de protecció i seguretat establertes en aquesta Resolució i en els plans sectorials a què fa referència l'apartat 1.2, les

Como norma general, todo el personal auxiliar que participe en el evento: azafatas, fotógrafos, intérpretes, etc, tendrán que poner en práctica las medidas de distanciamiento

Cada una d’aquestes zones es va emplaçar al lloc més convenient i per una adequada comunicació entre zones, independent i segura, coincidint amb un pronunciat desnivell a la zona

Atès que la dimensió exclusora és aquella que identifica els elements i factors que condueixen a una manca d'impacte en la recerca (científica, política i social),

Però probablement el moment més arriscat pel futur de les universitats va ser el retard en la introducció dels coneixements tècnics, acumulats i desenvolupats per artesans, en