Aprendre plegats
dijous, de març 24, 2005
 
ES2(40) Exercici per al dia 31 de març
Considereu el diagrama de classes següent:

Diagrama de classes


Suposeu que el sistema inclou (entre d’altres) els dos casos d’ús (operacions del sistema) següents:
novaSessió (títol:String, sala:Sala, dia:Date, hora:Hora)

pre: --en el cinema fan la pel·lícula
sala.cinema.pel·lícula.títol -> includes(títol)
post: --creem una sessió
let peli:Pel·lícula = Pel·lícula.allInstances ()-> any (p p.títol = títol)
in
s.oclIsNew() and s.oclIsTypeOf(Sessió) and
s.entradesDisponibles = sala.capacitat and s.dia = dia and s.hora = hora and s.sala = sala and s.pel·lícula = peli


OnLaFan (títol: String, dia:Date, preuMàxim:Diner) : Set(String)

body: -- dóna els noms dels cinemes (amb preu de les entrades inferior a preuMàxim) on fan la pel·lícula del títol indicat en el dia indicat i amb sessions on encara hi ha entrades
Pel·lícula.allInstances()->
select(p p.títol = títol).sessió -> select(s s.hiHaEntrades() and s.dia = dia).sala.cinema -> select(c preuMàxim > c.preuEntrada).nom ->asSet()

(Observeu que aquests contractes provenen de l’especificació del sistema i, per tant, no tenen en compte els aspectes propis del disseny com són la navegabilitat de les associacions o la visibilitat de les operacions, atributs i rols).

Es demana:

1. Dissenyeu dos controladors del tipus transacció per a aquestes dues operacions del sistema.
2. Analitzeu la responsabilitat de les operacions executar dels dos controladors anteriors. Decidiu quins altres objectes intervindran en la seva execució. Documenteu amb diagrames de seqüència l’execució de les operacions executar. Aquests diagrames han de mostrar tots els objectes que intervenen directament o indirecta en l’execució, i les operacions que s’invoquen dels objectes que intervenen.
3. Completeu el diagrama de classes de disseny, mostrant totes les operacions que heu decidit en el punt anterior. Hi heu d’incloure les operacions constructores que hagueu definit (si és el cas), amb els seus paràmetres.

Notes:
Per fer aquest exercici es pot usar com a màxim un diccionari (per a les pel·lícules).
Les quatre associacions indicades al diagrama de classes tenen doble navegabilitat.

El dia 31 recollirem aquest exercici i en comentarem les solucions a la classe.
Comments: Publica un comentari a l'entrada

<< Home

Powered by Blogger